Blob Blame History Raw
From d161561290909523818e5ec16271e5f88b6152de Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 6 Jun 2012 15:12:59 +0200
Subject: [PATCH] make udevdir systemdutildir systemdsystemunitdir global vars

your distribution should ship those settings in
/etc/dracut.conf.d/01-distro.conf

see dracut.conf.d/fedora.conf.example
---
 dracut-functions.sh                    |    6 ------
 dracut.conf.d/fedora.conf.example      |    3 +++
 dracut.sh                              |   20 +++++++++++++++++++-
 modules.d/95udev-rules/module-setup.sh |   12 ------------
 modules.d/98systemd/module-setup.sh    |   11 -----------
 5 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/dracut-functions.sh b/dracut-functions.sh
index 4180f03..8aba88d 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -531,12 +531,6 @@ inst_symlink() {
     ln -sfn $(convert_abs_rel "${_target}" "${_realsrc}") "$initdir/$_target"
 }
 
-udevdir=$(pkg-config udev --variable=udevdir 2>/dev/null)
-if ! [[ -d "$udevdir" ]]; then
-    [[ -d /lib/udev ]] && udevdir=/lib/udev
-    [[ -d /usr/lib/udev ]] && udevdir=/usr/lib/udev
-fi
-
 # attempt to install any programs specified in a udev rule
 inst_rule_programs() {
     local _prog _bin
diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example
index e362e73..f3f57f1 100644
--- a/dracut.conf.d/fedora.conf.example
+++ b/dracut.conf.d/fedora.conf.example
@@ -8,3 +8,6 @@ stdloglvl=3
 realinitpath="/usr/lib/systemd/systemd"
 install_items+=" vi /etc/virc ps grep cat rm "
 prefix="/"
+systemdutildir=/usr/lib/systemd
+systemdsystemunitdir=/usr/lib/systemd/system
+udevdir=/usr/lib/udev
diff --git a/dracut.sh b/dracut.sh
index 65398a8..49ea503 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -650,13 +650,31 @@ for dev in "${host_devs[@]}"; do
     done
 done
 
+[[ -d $udevdir ]] \
+    || udevdir=$(pkg-config udev --variable=udevdir 2>/dev/null)
+if ! [[ -d "$udevdir" ]]; then
+    [[ -d /lib/udev ]] && udevdir=/lib/udev
+    [[ -d /usr/lib/udev ]] && udevdir=/usr/lib/udev
+fi
+
+[[ -d $systemdutildir ]] \
+    || systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null)
+[[ -d $systemdsystemunitdir ]] \
+    || systemdsystemunitdir=$(pkg-config systemd --variable=systemdsystemunitdir 2>/dev/null)
+
+if ! [[ -d "$systemdutildir" ]]; then
+    [[ -d /lib/systemd ]] && systemdutildir=/lib/systemd
+    [[ -d /usr/lib/systemd ]] && systemdutildir=/usr/lib/systemd
+fi
+[[ -d "$systemdsystemunitdir" ]] || systemdsystemunitdir=${systemdutildir}/system
+
 export initdir dracutbasedir dracutmodules drivers \
     fw_dir drivers_dir debug no_kernel kernel_only \
     add_drivers omit_drivers mdadmconf lvmconf filesystems \
     use_fstab fstab_lines libdirs fscks nofscks \
     stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
     debug host_fs_types host_devs sshkey add_fstab \
-    DRACUT_VERSION
+    DRACUT_VERSION udevdir systemdutildir systemdsystemunitdir
 
 # Create some directory structure first
 [[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
diff --git a/modules.d/95udev-rules/module-setup.sh b/modules.d/95udev-rules/module-setup.sh
index ff47021..a48b0cb 100755
--- a/modules.d/95udev-rules/module-setup.sh
+++ b/modules.d/95udev-rules/module-setup.sh
@@ -5,18 +5,6 @@
 install() {
     local _i
 
-    systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null)
-    if ! [[ -d "$systemdutildir" ]]; then
-        [[ -d /lib/systemd ]] && systemdutildir=/lib/systemd
-        [[ -d /usr/lib/systemd ]] && systemdutildir=/usr/lib/systemd
-    fi
-
-    udevdir=$(pkg-config udev --variable=udevdir 2>/dev/null)
-    if ! [[ -d "$udevdir" ]]; then
-        [[ -d /lib/udev ]] && udevdir=/lib/udev
-        [[ -d /usr/lib/udev ]] && udevdir=/usr/lib/udev
-    fi
-
     # Fixme: would be nice if we didn't have to know 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
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
index 1d8aefc..4fda2a2 100755
--- a/modules.d/98systemd/module-setup.sh
+++ b/modules.d/98systemd/module-setup.sh
@@ -16,17 +16,6 @@ depends() {
 }
 
 install() {
-    local systemdutildir systemdsystemunitdir
-
-    systemdutildir=$(pkg-config systemd --variable=systemdutildir)
-    systemdsystemunitdir=$(pkg-config systemd --variable=systemdsystemunitdir)
-
-    if ! [[ -d "$systemdutildir" ]]; then
-        [[ -d /lib/systemd ]] && systemdutildir=/lib/systemd
-        [[ -d /usr/lib/systemd ]] && systemdutildir=/usr/lib/systemd
-    fi
-    [[ -d "$systemdsystemunitdir" ]] || systemdsystemunitdir=${systemdutildir}/system
-
     dracut_install -o "$i" \
         $systemdutildir/systemd \
         $systemdutildir/systemd-cgroups-agent \