On Fri, 2013-05-10 at 20:31 -0700, Brian C. Lane wrote:
From: "Brian C. Lane" <bcl(a)redhat.com>
driver-disk does its own udev trigger so we need to generate these rules
after it runs. Otherwise it will try to run them twice.
Source the anaconda-lib in genrules scripts, I was seeing an error in
the dracut logs about a missing function.
---
dracut/anaconda-lib.sh | 2 +-
dracut/kickstart-genrules.sh | 2 ++
dracut/module-setup.sh | 6 +++---
dracut/repo-genrules.sh | 3 +--
dracut/updates-genrules.sh | 2 ++
5 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/dracut/anaconda-lib.sh b/dracut/anaconda-lib.sh
index 51affc7..86ab570 100755
--- a/dracut/anaconda-lib.sh
+++ b/dracut/anaconda-lib.sh
@@ -203,7 +203,7 @@ run_kickstart() {
# replay udev events to trigger actions
if [ "$do_disk" ]; then
- . $hookdir/pre-udev/*repo-genrules.sh
+ . $hookdir/pre-trigger/*repo-genrules.sh
udevadm control --reload
udevadm trigger --action=change --subsystem-match=block
fi
diff --git a/dracut/kickstart-genrules.sh b/dracut/kickstart-genrules.sh
index 880c553..f29ad87 100755
--- a/dracut/kickstart-genrules.sh
+++ b/dracut/kickstart-genrules.sh
@@ -1,6 +1,8 @@
#!/bin/sh
# generate udev rules for fetching kickstarts.
+. /lib/anaconda-lib.sh
+
case "${kickstart%%:*}" in
http|https|ftp|nfs)
# handled by fetch-kickstart-net in the online hook
diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh
index bea2da4..8e75e2c 100755
--- a/dracut/module-setup.sh
+++ b/dracut/module-setup.sh
@@ -28,9 +28,9 @@ install() {
inst_hook cmdline 27 "$moddir/parse-anaconda-repo.sh"
inst_hook cmdline 28 "$moddir/parse-anaconda-net.sh"
inst_hook pre-udev 30 "$moddir/anaconda-modprobe.sh"
- inst_hook pre-udev 40 "$moddir/repo-genrules.sh"
- inst_hook pre-udev 40 "$moddir/kickstart-genrules.sh"
- inst_hook pre-udev 40 "$moddir/updates-genrules.sh"
+ inst_hook pre-trigger 50 "$moddir/repo-genrules.sh"
+ inst_hook pre-trigger 50 "$moddir/kickstart-genrules.sh"
+ inst_hook pre-trigger 50 "$moddir/updates-genrules.sh"
inst_hook initqueue/settled 00 "$moddir/anaconda-ks-sendheaders.sh"
inst_hook initqueue/online 80 "$moddir/anaconda-netroot.sh"
inst "$moddir/anaconda-diskroot" "/sbin/anaconda-diskroot"
diff --git a/dracut/repo-genrules.sh b/dracut/repo-genrules.sh
index 8b95ce1..55abd32 100755
--- a/dracut/repo-genrules.sh
+++ b/dracut/repo-genrules.sh
@@ -2,8 +2,7 @@
# generate udev rules for handling anaconda-specific root devices
# (just the disk-based ones - the network ones are done by netroot)
-# import anaconda-lib for when_diskdev_appears
-command -v when_diskdev_appears >/dev/null || . /lib/anaconda-lib.sh
+. /lib/anaconda-lib.sh
case "$root" in
anaconda-disk:*)
diff --git a/dracut/updates-genrules.sh b/dracut/updates-genrules.sh
index 3ed1e2c..6dd8aee 100755
--- a/dracut/updates-genrules.sh
+++ b/dracut/updates-genrules.sh
@@ -1,6 +1,8 @@
#!/bin/sh
# generate udev rules for fetching updates
+. /lib/anaconda-lib.sh
+
updates=$anac_updates
[ -n "$updates" ] || return
case $updates in
Looks good to me.
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic