You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
696 lines
22 KiB
696 lines
22 KiB
From da3dacfa5e63ca00d4c8efd8c3c603bce7937cdd Mon Sep 17 00:00:00 2001 |
|
From: Harald Hoyer <harald@redhat.com> |
|
Date: Thu, 6 Feb 2014 16:45:20 +0100 |
|
Subject: [PATCH] Factor out all the "type -V" commands |
|
|
|
Add new functions require_binaries() and require_any_binary() to be used |
|
in the check() section of module-setup.sh. |
|
|
|
These functions print a warning line telling the user, which binary is |
|
missing for the specific dracut module. |
|
|
|
This unifies the way of checking for binaries and makes the life of an |
|
initramfs creator easier, if he wants to find out why a specific dracut |
|
module is not included in the initramfs. |
|
|
|
(cherry picked from commit 30e6e809ed8d189cc8374df3c28cfbcab5a299b9) |
|
--- |
|
dracut-functions.sh | 57 +++++++++++++++++-- |
|
modules.d/00bash/module-setup.sh | 2 +- |
|
modules.d/00bootchart/module-setup.sh | 2 +- |
|
modules.d/00dash/module-setup.sh | 2 +- |
|
modules.d/00systemd-bootchart/module-setup.sh | 2 +- |
|
modules.d/02caps/module-setup.sh | 14 +++-- |
|
modules.d/03modsign/module-setup.sh | 2 +- |
|
modules.d/05busybox/module-setup.sh | 2 +- |
|
modules.d/10i18n/module-setup.sh | 4 +- |
|
modules.d/40network/module-setup.sh | 7 +-- |
|
modules.d/45url-lib/module-setup.sh | 2 +- |
|
modules.d/50plymouth/module-setup.sh | 2 +- |
|
modules.d/90btrfs/module-setup.sh | 2 +- |
|
modules.d/90crypt/module-setup.sh | 2 +- |
|
modules.d/90dm/module-setup.sh | 2 +- |
|
modules.d/90dmraid/module-setup.sh | 2 +- |
|
modules.d/90lvm/module-setup.sh | 2 +- |
|
modules.d/90mdraid/module-setup.sh | 2 +- |
|
modules.d/90multipath/module-setup.sh | 2 +- |
|
modules.d/91crypt-gpg/module-setup.sh | 2 +- |
|
modules.d/91crypt-loop/module-setup.sh | 21 ++++--- |
|
modules.d/95cifs/module-setup.sh | 2 +- |
|
modules.d/95dasd/module-setup.sh | 1 + |
|
modules.d/95dasd_mod/module-setup.sh | 1 + |
|
modules.d/95fcoe-uefi/module-setup.sh | 4 +- |
|
modules.d/95fcoe/module-setup.sh | 5 +- |
|
modules.d/95iscsi/module-setup.sh | 2 +- |
|
modules.d/95nbd/module-setup.sh | 2 +- |
|
modules.d/95nfs/module-setup.sh | 4 +- |
|
modules.d/95ssh-client/module-setup.sh | 6 +- |
|
modules.d/95udev-rules/module-setup.sh | 2 +- |
|
modules.d/95zfcp/module-setup.sh | 2 + |
|
modules.d/95znet/module-setup.sh | 2 + |
|
modules.d/97biosdevname/module-setup.sh | 2 +- |
|
modules.d/97masterkey/module-setup.sh | 2 +- |
|
modules.d/98systemd/module-setup.sh | 2 +- |
|
modules.d/99img-lib/module-setup.sh | 4 +- |
|
37 files changed, 112 insertions(+), 66 deletions(-) |
|
|
|
diff --git a/dracut-functions.sh b/dracut-functions.sh |
|
index 89438b29..4ea3204d 100755 |
|
--- a/dracut-functions.sh |
|
+++ b/dracut-functions.sh |
|
@@ -35,6 +35,51 @@ fi |
|
# Generic substring function. If $2 is in $1, return 0. |
|
strstr() { [[ $1 = *$2* ]]; } |
|
|
|
+# helper function for check() in module-setup.sh |
|
+# to check for required installed binaries |
|
+# issues a standardized warning message |
|
+require_binaries() { |
|
+ local _module_name="${moddir##*/}" |
|
+ local _ret=0 |
|
+ |
|
+ if [[ "$1" = "-m" ]]; then |
|
+ _module_name="$2" |
|
+ shift 2 |
|
+ fi |
|
+ |
|
+ for cmd in "$@"; do |
|
+ if ! find_binary "$cmd" &>/dev/null; then |
|
+ dwarning "$_module_name: Could not find command '$cmd'!" |
|
+ ((_ret++)) |
|
+ fi |
|
+ done |
|
+ return $_ret |
|
+} |
|
+ |
|
+require_any_binary() { |
|
+ local _module_name="${moddir##*/}" |
|
+ local _ret=1 |
|
+ |
|
+ if [[ "$1" = "-m" ]]; then |
|
+ _module_name="$2" |
|
+ shift 2 |
|
+ fi |
|
+ |
|
+ for cmd in "$@"; do |
|
+ if find_binary "$cmd" &>/dev/null; then |
|
+ _ret=0 |
|
+ break |
|
+ fi |
|
+ done |
|
+ |
|
+ if (( $_ret != 0 )); then |
|
+ dwarning "$_module_name: Could not find any command of '$@'!" |
|
+ return 1 |
|
+ fi |
|
+ |
|
+ return 0 |
|
+} |
|
+ |
|
# find a binary. If we were not passed the full path directly, |
|
# search in the usual places to find the binary. |
|
find_binary() { |
|
@@ -1055,7 +1100,7 @@ module_check() { |
|
. $_moddir/module-setup.sh |
|
is_func check || return 0 |
|
[ $_forced -ne 0 ] && unset hostonly |
|
- check $hostonly |
|
+ moddir=$_moddir check $hostonly |
|
_ret=$? |
|
unset check depends cmdline install installkernel |
|
fi |
|
@@ -1081,7 +1126,7 @@ module_check_mount() { |
|
unset check depends cmdline install installkernel |
|
check() { false; } |
|
. $_moddir/module-setup.sh |
|
- check 0 |
|
+ moddir=$_moddir check 0 |
|
_ret=$? |
|
unset check depends cmdline install installkernel |
|
fi |
|
@@ -1105,7 +1150,7 @@ module_depends() { |
|
unset check depends cmdline install installkernel |
|
depends() { true; } |
|
. $_moddir/module-setup.sh |
|
- depends |
|
+ moddir=$_moddir depends |
|
_ret=$? |
|
unset check depends cmdline install installkernel |
|
return $_ret |
|
@@ -1126,7 +1171,7 @@ module_cmdline() { |
|
unset check depends cmdline install installkernel |
|
cmdline() { true; } |
|
. $_moddir/module-setup.sh |
|
- cmdline |
|
+ moddir=$_moddir cmdline |
|
_ret=$? |
|
unset check depends cmdline install installkernel |
|
return $_ret |
|
@@ -1147,7 +1192,7 @@ module_install() { |
|
unset check depends cmdline install installkernel |
|
install() { true; } |
|
. $_moddir/module-setup.sh |
|
- install |
|
+ moddir=$_moddir install |
|
_ret=$? |
|
unset check depends cmdline install installkernel |
|
return $_ret |
|
@@ -1168,7 +1213,7 @@ module_installkernel() { |
|
unset check depends cmdline install installkernel |
|
installkernel() { true; } |
|
. $_moddir/module-setup.sh |
|
- installkernel |
|
+ moddir=$_moddir installkernel |
|
_ret=$? |
|
unset check depends cmdline install installkernel |
|
return $_ret |
|
diff --git a/modules.d/00bash/module-setup.sh b/modules.d/00bash/module-setup.sh |
|
index e874e73d..109642ac 100755 |
|
--- a/modules.d/00bash/module-setup.sh |
|
+++ b/modules.d/00bash/module-setup.sh |
|
@@ -3,7 +3,7 @@ |
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
|
|
|
check() { |
|
- [ -x /bin/bash ] |
|
+ require_binaries /bin/bash |
|
} |
|
|
|
depends() { |
|
diff --git a/modules.d/00bootchart/module-setup.sh b/modules.d/00bootchart/module-setup.sh |
|
index 72b60633..f03fc540 100755 |
|
--- a/modules.d/00bootchart/module-setup.sh |
|
+++ b/modules.d/00bootchart/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
check() { |
|
[[ "$mount_needs" ]] && return 1 |
|
- [ -x /sbin/bootchartd ] || return 1 |
|
+ require_binaries /sbin/bootchartd || return 1 |
|
return 255 |
|
} |
|
|
|
diff --git a/modules.d/00dash/module-setup.sh b/modules.d/00dash/module-setup.sh |
|
index dfd4d7bf..9a2a92fc 100755 |
|
--- a/modules.d/00dash/module-setup.sh |
|
+++ b/modules.d/00dash/module-setup.sh |
|
@@ -3,7 +3,7 @@ |
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
|
|
|
check() { |
|
- [ -x /bin/dash ] |
|
+ require_binaries /bin/dash |
|
} |
|
|
|
depends() { |
|
diff --git a/modules.d/00systemd-bootchart/module-setup.sh b/modules.d/00systemd-bootchart/module-setup.sh |
|
index 3eb4de1e..eb6f383c 100755 |
|
--- a/modules.d/00systemd-bootchart/module-setup.sh |
|
+++ b/modules.d/00systemd-bootchart/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
check() { |
|
[[ "$mount_needs" ]] && return 1 |
|
- [ -x $systemdutildir/systemd-bootchart ] || return 1 |
|
+ require_binaries $systemdutildir/systemd-bootchart || return 1 |
|
return 255 |
|
} |
|
|
|
diff --git a/modules.d/02caps/module-setup.sh b/modules.d/02caps/module-setup.sh |
|
index c9d94eeb..73eb215b 100755 |
|
--- a/modules.d/02caps/module-setup.sh |
|
+++ b/modules.d/02caps/module-setup.sh |
|
@@ -3,7 +3,7 @@ |
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
|
|
|
check() { |
|
- type -P capsh >/dev/null 2>&1 |
|
+ require_binaries capsh |
|
} |
|
|
|
depends() { |
|
@@ -11,9 +11,13 @@ depends() { |
|
} |
|
|
|
install() { |
|
- inst_hook pre-pivot 00 "$moddir/caps.sh" |
|
- inst $(type -P capsh 2>/dev/null) /usr/sbin/capsh |
|
- # capsh wants bash and we need bash also |
|
- inst /bin/bash |
|
+ if ! dracut_module_included "systemd"; then |
|
+ inst_hook pre-pivot 00 "$moddir/caps.sh" |
|
+ inst $(type -P capsh 2>/dev/null) /usr/sbin/capsh |
|
+ # capsh wants bash and we need bash also |
|
+ inst /bin/bash |
|
+ else |
|
+ dwarning "caps: does not work with systemd in the initramfs" |
|
+ fi |
|
} |
|
|
|
diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh |
|
index 730cd86e..bed5cfe1 100755 |
|
--- a/modules.d/03modsign/module-setup.sh |
|
+++ b/modules.d/03modsign/module-setup.sh |
|
@@ -8,7 +8,7 @@ |
|
# Peter Jones <pjones@redhat.com> |
|
|
|
check() { |
|
- [[ -x /usr/bin/keyctl ]] || return 1 |
|
+ require_binaries keyctl || return 1 |
|
|
|
# do not include module in hostonly mode, |
|
# if no keys are present |
|
diff --git a/modules.d/05busybox/module-setup.sh b/modules.d/05busybox/module-setup.sh |
|
index edcc8daa..c35ab2e9 100755 |
|
--- a/modules.d/05busybox/module-setup.sh |
|
+++ b/modules.d/05busybox/module-setup.sh |
|
@@ -3,7 +3,7 @@ |
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
|
|
|
check() { |
|
- type -P busybox >/dev/null || return 1 |
|
+ require_binaries busybox || return 1 |
|
|
|
return 255 |
|
} |
|
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh |
|
index 413ee123..2c0a275c 100755 |
|
--- a/modules.d/10i18n/module-setup.sh |
|
+++ b/modules.d/10i18n/module-setup.sh |
|
@@ -5,9 +5,7 @@ |
|
check() { |
|
[[ "$mount_needs" ]] && return 1 |
|
|
|
- for i in setfont loadkeys kbd_mode; do |
|
- type -P "$i" >/dev/null || return 1 |
|
- done |
|
+ require_binaries setfont loadkeys kbd_mode || return 1 |
|
|
|
return 0 |
|
} |
|
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh |
|
index a52e881b..3134b5ff 100755 |
|
--- a/modules.d/40network/module-setup.sh |
|
+++ b/modules.d/40network/module-setup.sh |
|
@@ -5,12 +5,7 @@ |
|
check() { |
|
local _program |
|
|
|
- for _program in ip arping dhclient ; do |
|
- if ! type -P $_program >/dev/null; then |
|
- derror "Could not find program \"$_program\" required by network." |
|
- return 1 |
|
- fi |
|
- done |
|
+ require_binaries ip arping dhclient || return 1 |
|
|
|
return 255 |
|
} |
|
diff --git a/modules.d/45url-lib/module-setup.sh b/modules.d/45url-lib/module-setup.sh |
|
index b5cf36f2..f2d068b3 100755 |
|
--- a/modules.d/45url-lib/module-setup.sh |
|
+++ b/modules.d/45url-lib/module-setup.sh |
|
@@ -2,7 +2,7 @@ |
|
# module-setup for url-lib |
|
|
|
check() { |
|
- command -v curl >/dev/null || return 1 |
|
+ require_binaries curl || return 1 |
|
return 255 |
|
} |
|
|
|
diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh |
|
index e0e69367..961c1e39 100755 |
|
--- a/modules.d/50plymouth/module-setup.sh |
|
+++ b/modules.d/50plymouth/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
check() { |
|
[[ "$mount_needs" ]] && return 1 |
|
- type -P plymouthd >/dev/null && type -P plymouth >/dev/null |
|
+ require_binaries plymouthd plymouth |
|
} |
|
|
|
depends() { |
|
diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh |
|
index a2805946..4804f58b 100755 |
|
--- a/modules.d/90btrfs/module-setup.sh |
|
+++ b/modules.d/90btrfs/module-setup.sh |
|
@@ -6,7 +6,7 @@ check() { |
|
local _rootdev |
|
# if we don't have btrfs installed on the host system, |
|
# no point in trying to support it in the initramfs. |
|
- type -P btrfs >/dev/null || return 1 |
|
+ require_binaries btrfs || return 1 |
|
|
|
[[ $hostonly ]] || [[ $mount_needs ]] && { |
|
for fs in ${host_fs_types[@]}; do |
|
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh |
|
index 272e527d..dbc87a43 100755 |
|
--- a/modules.d/90crypt/module-setup.sh |
|
+++ b/modules.d/90crypt/module-setup.sh |
|
@@ -5,7 +5,7 @@ |
|
check() { |
|
local _rootdev |
|
# if cryptsetup is not installed, then we cannot support encrypted devices. |
|
- type -P cryptsetup >/dev/null || return 1 |
|
+ require_binaries cryptsetup || return 1 |
|
|
|
[[ $hostonly ]] || [[ $mount_needs ]] && { |
|
for fs in "${host_fs_types[@]}"; do |
|
diff --git a/modules.d/90dm/module-setup.sh b/modules.d/90dm/module-setup.sh |
|
index 1fd92987..ed94f436 100755 |
|
--- a/modules.d/90dm/module-setup.sh |
|
+++ b/modules.d/90dm/module-setup.sh |
|
@@ -3,7 +3,7 @@ |
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
|
|
|
check() { |
|
- type -P dmsetup >/dev/null || return 1 |
|
+ require_binaries dmsetup || return 1 |
|
return 255 |
|
} |
|
|
|
diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh |
|
index b230cb0e..8ca69aa8 100755 |
|
--- a/modules.d/90dmraid/module-setup.sh |
|
+++ b/modules.d/90dmraid/module-setup.sh |
|
@@ -6,7 +6,7 @@ check() { |
|
local _rootdev |
|
# if we don't have dmraid installed on the host system, no point |
|
# in trying to support it in the initramfs. |
|
- type -P dmraid >/dev/null || return 1 |
|
+ require_binaries dmraid || return 1 |
|
|
|
[[ $hostonly ]] || [[ $mount_needs ]] && { |
|
for dev in "${!host_fs_types[@]}"; do |
|
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh |
|
index 0c5890a7..5ec62812 100755 |
|
--- a/modules.d/90lvm/module-setup.sh |
|
+++ b/modules.d/90lvm/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
check() { |
|
# No point trying to support lvm if the binaries are missing |
|
- type -P lvm >/dev/null || return 1 |
|
+ require_binaries lvm || return 1 |
|
|
|
[[ $hostonly ]] || [[ $mount_needs ]] && { |
|
for fs in "${host_fs_types[@]}"; do |
|
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh |
|
index 815a3ebc..2092daea 100755 |
|
--- a/modules.d/90mdraid/module-setup.sh |
|
+++ b/modules.d/90mdraid/module-setup.sh |
|
@@ -5,7 +5,7 @@ |
|
check() { |
|
local _rootdev |
|
# No mdadm? No mdraid support. |
|
- type -P mdadm >/dev/null || return 1 |
|
+ require_binaries mdadm || return 1 |
|
|
|
[[ $hostonly ]] || [[ $mount_needs ]] && { |
|
for dev in "${!host_fs_types[@]}"; do |
|
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh |
|
index feb58dcd..d37f9587 100755 |
|
--- a/modules.d/90multipath/module-setup.sh |
|
+++ b/modules.d/90multipath/module-setup.sh |
|
@@ -5,7 +5,7 @@ |
|
check() { |
|
local _rootdev |
|
# if there's no multipath binary, no go. |
|
- type -P multipath >/dev/null || return 1 |
|
+ require_binaries multipath || return 1 |
|
|
|
is_mpath() { |
|
local _dev=$1 |
|
diff --git a/modules.d/91crypt-gpg/module-setup.sh b/modules.d/91crypt-gpg/module-setup.sh |
|
index 43a5a000..17b58f1a 100755 |
|
--- a/modules.d/91crypt-gpg/module-setup.sh |
|
+++ b/modules.d/91crypt-gpg/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
# GPG support is optional |
|
check() { |
|
- type -P gpg >/dev/null || return 1 |
|
+ require_binaries gpg || return 1 |
|
|
|
return 255 |
|
} |
|
diff --git a/modules.d/91crypt-loop/module-setup.sh b/modules.d/91crypt-loop/module-setup.sh |
|
index c14fd45a..d0a49567 100644 |
|
--- a/modules.d/91crypt-loop/module-setup.sh |
|
+++ b/modules.d/91crypt-loop/module-setup.sh |
|
@@ -1,19 +1,24 @@ |
|
+#!/bin/bash |
|
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- |
|
+# ex: ts=8 sw=4 sts=4 et filetype=sh |
|
+ |
|
+# called by dracut |
|
check() { |
|
- type -P losetup >/dev/null || return 1 |
|
- |
|
- return 255 |
|
+ require_binaries losetup || return 1 |
|
+ |
|
+ return 255 |
|
} |
|
|
|
depends() { |
|
- echo crypt |
|
+ echo crypt |
|
} |
|
|
|
installkernel() { |
|
- instmods loop |
|
+ instmods loop |
|
} |
|
|
|
install() { |
|
- inst_multiple losetup |
|
- inst "$moddir/crypt-loop-lib.sh" "/lib/dracut-crypt-loop-lib.sh" |
|
- dracut_need_initqueue |
|
+ inst_multiple losetup |
|
+ inst "$moddir/crypt-loop-lib.sh" "/lib/dracut-crypt-loop-lib.sh" |
|
+ dracut_need_initqueue |
|
} |
|
diff --git a/modules.d/95cifs/module-setup.sh b/modules.d/95cifs/module-setup.sh |
|
index c17b973a..9e36f87f 100755 |
|
--- a/modules.d/95cifs/module-setup.sh |
|
+++ b/modules.d/95cifs/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
check() { |
|
# If our prerequisites are not met, fail anyways. |
|
- type -P mount.cifs >/dev/null || return 1 |
|
+ require_binaries mount.cifs || return 1 |
|
|
|
[[ $hostonly ]] || [[ $mount_needs ]] && { |
|
for fs in ${host_fs_types[@]}; do |
|
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh |
|
index 3b8396db..70b2fcc8 100755 |
|
--- a/modules.d/95dasd/module-setup.sh |
|
+++ b/modules.d/95dasd/module-setup.sh |
|
@@ -5,6 +5,7 @@ |
|
check() { |
|
local _arch=$(uname -m) |
|
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 |
|
+ require_binaries normalize_dasd_arg || return 1 |
|
return 0 |
|
} |
|
|
|
diff --git a/modules.d/95dasd_mod/module-setup.sh b/modules.d/95dasd_mod/module-setup.sh |
|
index 9c9eeead..d20764eb 100755 |
|
--- a/modules.d/95dasd_mod/module-setup.sh |
|
+++ b/modules.d/95dasd_mod/module-setup.sh |
|
@@ -5,6 +5,7 @@ |
|
check() { |
|
local _arch=$(uname -m) |
|
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 |
|
+ require_binaries grep sed seq |
|
|
|
return 0 |
|
} |
|
diff --git a/modules.d/95fcoe-uefi/module-setup.sh b/modules.d/95fcoe-uefi/module-setup.sh |
|
index c91f7754..0fb06e23 100755 |
|
--- a/modules.d/95fcoe-uefi/module-setup.sh |
|
+++ b/modules.d/95fcoe-uefi/module-setup.sh |
|
@@ -4,9 +4,7 @@ |
|
|
|
# called by dracut |
|
check() { |
|
- for i in dcbtool fipvlan lldpad ip readlink; do |
|
- type -P $i >/dev/null || return 1 |
|
- done |
|
+ require_binaries dcbtool fipvlan lldpad ip readlink || return 1 |
|
return 0 |
|
} |
|
|
|
diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh |
|
index 3ffaf5a5..8c6290d4 100755 |
|
--- a/modules.d/95fcoe/module-setup.sh |
|
+++ b/modules.d/95fcoe/module-setup.sh |
|
@@ -3,10 +3,7 @@ |
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
|
|
|
check() { |
|
- for i in dcbtool fipvlan lldpad ip readlink; do |
|
- type -P $i >/dev/null || return 1 |
|
- done |
|
- |
|
+ require_binaries dcbtool fipvlan lldpad ip readlink || return 1 |
|
return 0 |
|
} |
|
|
|
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh |
|
index c6901c08..49f9a0ed 100755 |
|
--- a/modules.d/95iscsi/module-setup.sh |
|
+++ b/modules.d/95iscsi/module-setup.sh |
|
@@ -5,7 +5,7 @@ |
|
check() { |
|
local _rootdev |
|
# If our prerequisites are not met, fail anyways. |
|
- type -P iscsistart hostname iscsi-iname >/dev/null || return 1 |
|
+ require_binaries iscsistart hostname iscsi-iname || return 1 |
|
|
|
# If hostonly was requested, fail the check if we are not actually |
|
# booting from root. |
|
diff --git a/modules.d/95nbd/module-setup.sh b/modules.d/95nbd/module-setup.sh |
|
index 3ac00f60..7e8a416c 100755 |
|
--- a/modules.d/95nbd/module-setup.sh |
|
+++ b/modules.d/95nbd/module-setup.sh |
|
@@ -5,7 +5,7 @@ |
|
check() { |
|
local _rootdev |
|
# If our prerequisites are not met, fail. |
|
- type -P nbd-client >/dev/null || return 1 |
|
+ require_binaries nbd-client || return 1 |
|
|
|
# if an nbd device is not somewhere in the chain of devices root is |
|
# mounted on, fail the hostonly check. |
|
diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh |
|
index 75beb746..02838a49 100755 |
|
--- a/modules.d/95nfs/module-setup.sh |
|
+++ b/modules.d/95nfs/module-setup.sh |
|
@@ -4,8 +4,8 @@ |
|
|
|
check() { |
|
# If our prerequisites are not met, fail anyways. |
|
- type -P rpcbind >/dev/null || type -P portmap >/dev/null || return 1 |
|
- type -P rpc.statd mount.nfs mount.nfs4 umount >/dev/null || return 1 |
|
+ require_any_binary rpcbind portmap || return 1 |
|
+ require_binaries rpc.statd mount.nfs mount.nfs4 umount || return 1 |
|
|
|
[[ $hostonly ]] || [[ $mount_needs ]] && { |
|
for fs in ${host_fs_types[@]}; do |
|
diff --git a/modules.d/95ssh-client/module-setup.sh b/modules.d/95ssh-client/module-setup.sh |
|
index c7d8ee24..6b441075 100755 |
|
--- a/modules.d/95ssh-client/module-setup.sh |
|
+++ b/modules.d/95ssh-client/module-setup.sh |
|
@@ -5,11 +5,11 @@ |
|
# fixme: assume user is root |
|
|
|
check() { |
|
- # If our prerequisites are not met, fail. |
|
- type -P ssh >/dev/null || return 1 |
|
- type -P scp >/dev/null || return 1 |
|
[[ $mount_needs ]] && return 1 |
|
|
|
+ # If our prerequisites are not met, fail. |
|
+ require_binaries ssh scp || return 1 |
|
+ |
|
if [[ $sshkey ]]; then |
|
[ ! -f $sshkey ] && { |
|
derror "ssh key: $sshkey is not found!" |
|
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh |
|
index 094479a3..fdea8c6d 100755 |
|
--- a/modules.d/95udev-rules/module-setup.sh |
|
+++ b/modules.d/95udev-rules/module-setup.sh |
|
@@ -5,7 +5,7 @@ |
|
install() { |
|
local _i |
|
|
|
- # Fixme: would be nice if we didn't have to know which rules to grab.... |
|
+ # Fixme: would be nice if we didn't have to guess, which rules to grab.... |
|
# ultimately, /lib/initramfs/rules.d or somesuch which includes links/copies |
|
# of the rules we want so that we just copy those in would be best |
|
inst_multiple udevadm cat uname blkid \ |
|
diff --git a/modules.d/95zfcp/module-setup.sh b/modules.d/95zfcp/module-setup.sh |
|
index 99066958..d19eba4c 100755 |
|
--- a/modules.d/95zfcp/module-setup.sh |
|
+++ b/modules.d/95zfcp/module-setup.sh |
|
@@ -6,6 +6,8 @@ check() { |
|
arch=$(uname -m) |
|
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1 |
|
|
|
+ require_binaries zfcp_cio_free grep sed seq || return 1 |
|
+ |
|
return 0 |
|
} |
|
|
|
diff --git a/modules.d/95znet/module-setup.sh b/modules.d/95znet/module-setup.sh |
|
index 16f84938..b052ec37 100755 |
|
--- a/modules.d/95znet/module-setup.sh |
|
+++ b/modules.d/95znet/module-setup.sh |
|
@@ -6,6 +6,8 @@ check() { |
|
arch=$(uname -m) |
|
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1 |
|
|
|
+ require_binaries znet_cio_free grep sed seq readlink || return 1 |
|
+ |
|
return 0 |
|
} |
|
|
|
diff --git a/modules.d/97biosdevname/module-setup.sh b/modules.d/97biosdevname/module-setup.sh |
|
index 4a0b4f41..fd4d4632 100755 |
|
--- a/modules.d/97biosdevname/module-setup.sh |
|
+++ b/modules.d/97biosdevname/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
check() { |
|
[[ "$mount_needs" ]] && return 1 |
|
- type -P biosdevname >/dev/null || return 1 |
|
+ require_binaries biosdevname || return 1 |
|
return 0 |
|
} |
|
|
|
diff --git a/modules.d/97masterkey/module-setup.sh b/modules.d/97masterkey/module-setup.sh |
|
index a94c4f53..cda6e809 100755 |
|
--- a/modules.d/97masterkey/module-setup.sh |
|
+++ b/modules.d/97masterkey/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
check() { |
|
[[ $hostonly ]] && { |
|
- [ -x "/bin/keyctl" ] || return 1 |
|
+ require_binaries keyctl uname || return 1 |
|
} |
|
|
|
return 255 |
|
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh |
|
index aae0319a..d0271f15 100755 |
|
--- a/modules.d/98systemd/module-setup.sh |
|
+++ b/modules.d/98systemd/module-setup.sh |
|
@@ -4,7 +4,7 @@ |
|
|
|
check() { |
|
[[ $mount_needs ]] && return 1 |
|
- if [[ -x $systemdutildir/systemd ]]; then |
|
+ if require_binaries $systemdutildir/systemd; then |
|
SYSTEMD_VERSION=$($systemdutildir/systemd --version | { read a b a; echo $b; }) |
|
(( $SYSTEMD_VERSION >= 198 )) && return 0 |
|
return 255 |
|
diff --git a/modules.d/99img-lib/module-setup.sh b/modules.d/99img-lib/module-setup.sh |
|
index 28bfc2aa..a951b930 100755 |
|
--- a/modules.d/99img-lib/module-setup.sh |
|
+++ b/modules.d/99img-lib/module-setup.sh |
|
@@ -2,9 +2,7 @@ |
|
# module-setup for img-lib |
|
|
|
check() { |
|
- for cmd in tar gzip dd; do |
|
- command -v $cmd >/dev/null || return 1 |
|
- done |
|
+ require_binaries tar gzip dd bash || return 1 |
|
return 255 |
|
} |
|
|
|
|