From 05b8b0e0af1d72e51a3ee61522941bf7605cd01c Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 4 Jul 2020 14:05:23 +0100 Subject: gentoo resync : 04.07.2020 --- .../dracut/files/050-busybox-module-fix.patch | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 sys-kernel/dracut/files/050-busybox-module-fix.patch (limited to 'sys-kernel/dracut/files/050-busybox-module-fix.patch') diff --git a/sys-kernel/dracut/files/050-busybox-module-fix.patch b/sys-kernel/dracut/files/050-busybox-module-fix.patch new file mode 100644 index 000000000000..faaf026e536a --- /dev/null +++ b/sys-kernel/dracut/files/050-busybox-module-fix.patch @@ -0,0 +1,102 @@ +From f769154bccf22d2b5caf5e4888f88bf7edde2662 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +Date: Mon, 25 May 2020 19:02:05 +0300 +Subject: [PATCH 1/2] dracut-functions: fix find_binary() to return full path + +Fixes: a01204202b30 (Allow running on a cross-compiled rootfs) +--- + dracut-functions.sh | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 3cb9c7af..b5c28248 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -41,31 +41,36 @@ str_ends() { [ "${1%*"$2"}" != "$1" ]; } + # search in the usual places to find the binary. + find_binary() { + local _delim ++ local _path + local l + local p + [[ -z ${1##/*} ]] || _delim="/" + + if [[ "$1" == *.so* ]]; then + for l in libdirs ; do +- if { $DRACUT_LDD "$dracutsysrootdir$l$_delim$1" &>/dev/null; }; then +- printf "%s\n" "$1" ++ _path="${l}${_delim}${1}" ++ if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then ++ printf "%s\n" "${_path}" + return 0 + fi + done +- if { $DRACUT_LDD "$dracutsysrootdir$_delim$1" &>/dev/null; }; then +- printf "%s\n" "$1" ++ _path="${_delim}${1}" ++ if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then ++ printf "%s\n" "${_path}" + return 0 + fi + fi + if [[ "$1" == */* ]]; then +- if [[ -L $dracutsysrootdir$_delim$1 ]] || [[ -x $dracutsysrootdir$_delim$1 ]]; then +- printf "%s\n" "$1" ++ _path="${_delim}${1}" ++ if [[ -L ${dracutsysrootdir}${_path} ]] || [[ -x ${dracutsysrootdir}${_path} ]]; then ++ printf "%s\n" "${_path}" + return 0 + fi + fi + for p in $DRACUT_PATH ; do +- if [[ -L $dracutsysrootdir$p$_delim$1 ]] || [[ -x $dracutsysrootdir$p$_delim$1 ]]; then +- printf "%s\n" "$1" ++ _path="${p}${_delim}${1}" ++ if [[ -L ${dracutsysrootdir}${_path} ]] || [[ -x ${dracutsysrootdir}${_path} ]]; then ++ printf "%s\n" "${_path}" + return 0 + fi + done +-- +2.26.2 + +From 50cc23ba32b0fda63eff7623b529dbeb4e6a38c6 Mon Sep 17 00:00:00 2001 +From: Alexander Tsoy +Date: Mon, 25 May 2020 17:49:20 +0300 +Subject: [PATCH 2/2] busybox: simplify listing of supported utilities + +'--list' option is supported since busybox-1.20.0, which was released +in 2010. +--- + modules.d/05busybox/module-setup.sh | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/modules.d/05busybox/module-setup.sh b/modules.d/05busybox/module-setup.sh +index ecbd6a13..5d88c5d1 100755 +--- a/modules.d/05busybox/module-setup.sh ++++ b/modules.d/05busybox/module-setup.sh +@@ -14,15 +14,16 @@ depends() { + + # called by dracut + install() { +- local _i _progs _path _busybox ++ local _i _path _busybox ++ local _progs=() + _busybox=$(type -P busybox) + inst $_busybox /usr/bin/busybox +- for _i in $($_busybox | sed -ne '1,/Currently/!{s/,//g; s/busybox//g; p}') +- do +- _progs="$_progs $_i" ++ for _i in $($_busybox --list); do ++ [[ ${_i} == busybox ]] && continue ++ _progs+=("${_i}") + done + +- for _i in $_progs; do ++ for _i in "${_progs[@]}"; do + _path=$(find_binary "$_i") + [ -z "$_path" ] && continue + ln_r /usr/bin/busybox $_path +-- +2.26.2 + -- cgit v1.2.3