[arch-projects] [mkinitcpio] [PATCH] Load build and run hooks from /etc/initcpio

Dave Reisner dreisner at archlinux.org
Sun Dec 1 11:35:01 EST 2013


This lets users shoot themselves in the foot more easily, as they can
put their own modified hooks into /etc/initcpio/{hooks,install} to
override those shipped by the distro in /usr/lib/initcpio.

To make debugging easier, include the full path of the hook being used
when mkinitcpio runs in verbose mode.

Implements FS#37796.
---
 Makefile  | 6 ++++--
 functions | 6 +++++-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 66b1960..801d4c7 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,8 @@ DIRS = \
 	/usr/share/bash-completion/completions \
 	/usr/share/zsh/site-functions \
 	/etc/mkinitcpio.d \
+	/etc/initcpio/hooks \
+	/etc/initcpio/install \
 	/usr/lib/initcpio/hooks \
 	/usr/lib/initcpio/install \
 	/usr/lib/initcpio/udev \
@@ -30,8 +32,8 @@ install: all
 
 	sed -e 's|^_f_config=.*|_f_config=/etc/mkinitcpio.conf|' \
 	    -e 's|^_f_functions=.*|_f_functions=/usr/lib/initcpio/functions|' \
-	    -e 's|^_d_hooks=.*|_d_hooks=/usr/lib/initcpio/hooks:/lib/initcpio/hooks|' \
-	    -e 's|^_d_install=.*|_d_install=/usr/lib/initcpio/install:/lib/initcpio/install|' \
+	    -e 's|^_d_hooks=.*|_d_hooks=/etc/initcpio/hooks:/usr/lib/initcpio/hooks:/lib/initcpio/hooks|' \
+	    -e 's|^_d_install=.*|_d_install=/etc/initcpio/install:/usr/lib/initcpio/install:/lib/initcpio/install|' \
 	    -e 's|^_d_presets=.*|_d_presets=/etc/mkinitcpio.d|' \
 	    -e 's|%VERSION%|$(VERSION)|g' \
 	    < mkinitcpio > $(DESTDIR)/usr/bin/mkinitcpio
diff --git a/functions b/functions
index 2b89c88..33bd28d 100644
--- a/functions
+++ b/functions
@@ -709,7 +709,11 @@ run_build_hook() {
     fi
 
     # run
-    msg2 "Running build hook: [%s]" "${script##*/}"
+    if (( _optquiet )); then
+        msg2 "Running build hook: [%s]" "${script##*/}"
+    else
+        msg2 "Running build hook: [%s]" "$script"
+    fi
     build
 
     # if we made it this far, return successfully. Hooks can
-- 
1.8.4.2



More information about the arch-projects mailing list