Based on the way kdumpst alpm hooks were coded, we have currently one hook per initrd system supported (mkinitcpio, mkinitcpio-git, dracut). When a kernel package is installed/upgraded/removed, all of them are triggered; but usually users only have one initrd system (enough headaches with just one, imagine having more heh). The net effect of this, due to the "verbiage" of alpm, is that harmless error messages were shown, like the following one: "error: unable to run hook 99-kdump-dracut.hook: could not satisfy dependencies" This one was quite common since the vast majority of Arch users rely on mkinitcpio. And this message would show at *every* kernel package operation, leading users to wonder what's wrong (may they pay attention to error messages, of course). In order to fix that, we hereby follow a great and simple suggestion from Antiz at #archlinux-projects/Libera (thanks!): let's use a shell call to encompass the tests for different initrd systems. With that, was easy also to remove the redundant mkinitcpio-git hook. No functional change should be expected from this change. Closes: #14 ("Minimal initramfs pacman hooks should not present error messages on different init systems") Signed-off-by: Guilherme G. Piccoli <gpiccoli@igalia.com>
77 lines
3.9 KiB
Makefile
77 lines
3.9 KiB
Makefile
SHELL := /bin/bash
|
|
prefix := /usr
|
|
|
|
libdir := $(prefix)/lib
|
|
sharedir := $(prefix)/share
|
|
|
|
systemdunitsdir := $(shell pkg-config --define-variable=prefix=$(prefix) --variable=systemdsystemunitdir systemd 2>/dev/null \
|
|
|| echo $(libdir)/systemd/system/)
|
|
sysctldir := $(shell pkg-config --define-variable=prefix=$(prefix) --variable=sysctldir systemd 2>/dev/null \
|
|
|| echo $(libdir)/sysctl.d/)
|
|
alpmhooksdir := $(shell echo $(sharedir)/libalpm/hooks/)
|
|
|
|
kdumpst-load.sh: kdumpst-load.header common.sh kdumpst-load.sh.in
|
|
cat $^ > $@
|
|
|
|
save-dumps.sh: save-dumps.header common.sh save-dumps.sh.in
|
|
cat $^ > $@
|
|
|
|
99-kdump-dracut.hook: initramfs/alpm-hook.INITRD
|
|
sed 's/INITRD/dracut/g' $^ > initramfs/$@
|
|
|
|
kdump-dracut-hook.sh: common.sh initramfs/dracut/dracut-common.sh
|
|
sed 's/INITRD/dracut/g' initramfs/alpm-script.header > initramfs/alpm-header-dracut
|
|
sed 's/INITRD/dracut/g' initramfs/alpm-script.sh.in > initramfs/alpm-script.sh.in-dracut
|
|
cat initramfs/alpm-header-dracut $^ initramfs/alpm-script.sh.in-dracut > initramfs/dracut/$@
|
|
rm -f initramfs/alpm-header-dracut initramfs/alpm-script.sh.in-dracut
|
|
|
|
module-setup.sh: initramfs/dracut/module-setup.header common.sh initramfs/dracut/module-setup.sh.in
|
|
cat $^ > initramfs/dracut/$@
|
|
|
|
.PHONY: dracut
|
|
dracut: 99-kdump-dracut.hook kdump-dracut-hook.sh module-setup.sh
|
|
|
|
99-kdump-mkinitcpio.hook: initramfs/alpm-hook.INITRD
|
|
sed 's/INITRD/mkinitcpio/g' $^ > initramfs/$@
|
|
|
|
kdump-mkinitcpio-hook.sh: common.sh initramfs/initcpio/initcpio-common.sh
|
|
sed 's/INITRD/mkinitcpio/g' initramfs/alpm-script.header > initramfs/alpm-header-initcpio
|
|
sed 's/INITRD/mkinitcpio/g' initramfs/alpm-script.sh.in > initramfs/alpm-script.sh.in-initcpio
|
|
cat initramfs/alpm-header-initcpio $^ initramfs/alpm-script.sh.in-initcpio > initramfs/initcpio/$@
|
|
rm -f initramfs/alpm-header-initcpio initramfs/alpm-script.sh.in-initcpio
|
|
|
|
kdump.hook: initramfs/kdump-collect.sh
|
|
sed 's/\#ENTRY POINT/run_hook() \{/g' $^ > initramfs/initcpio/$@
|
|
sed -i 's/\#END/\}/g' initramfs/initcpio/$@
|
|
|
|
kdump.install: initramfs/initcpio/kdump.install.header common.sh initramfs/initcpio/kdump.install.in
|
|
cat $^ > initramfs/initcpio/$@
|
|
|
|
.PHONY: mkinitcpio
|
|
mkinitcpio: 99-kdump-mkinitcpio.hook kdump-mkinitcpio-hook.sh kdump.hook kdump.install
|
|
|
|
all: kdumpst-load.sh save-dumps.sh dracut mkinitcpio
|
|
|
|
install: all
|
|
install -D -m0644 kdumpst-init.service $(DESTDIR)$(systemdunitsdir)/kdumpst-init.service
|
|
install -D -m0644 20-panic-sysctls.conf $(DESTDIR)$(sysctldir)/20-panic-sysctls.conf
|
|
install -D -m0644 README.md $(DESTDIR)$(libdir)/kdumpst/README.md
|
|
install -D -m0755 kdumpst-load.sh $(DESTDIR)$(libdir)/kdumpst/kdumpst-load.sh
|
|
install -D -m0755 save-dumps.sh $(DESTDIR)$(libdir)/kdumpst/save-dumps.sh
|
|
install -D -m0644 00-default.conf $(DESTDIR)$(sharedir)/kdumpst.d/00-default
|
|
install -D -m0644 initramfs/99-kdump-dracut.hook $(DESTDIR)$(alpmhooksdir)/99-kdump-dracut.hook
|
|
install -D -m0644 initramfs/99-kdump-mkinitcpio.hook $(DESTDIR)$(alpmhooksdir)/99-kdump-mkinitcpio.hook
|
|
install -D -m0644 initramfs/99-kdump-kernel.hook $(DESTDIR)$(alpmhooksdir)/99-kdump-kernel.hook
|
|
install -D -m0755 initramfs/dracut/kdump-dracut-hook.sh $(DESTDIR)$(libdir)/kdumpst/kdump-dracut-hook.sh
|
|
install -D -m0755 initramfs/kdump-collect.sh $(DESTDIR)$(libdir)/kdumpst/dracut/kdump-collect.sh
|
|
install -D -m0755 initramfs/dracut/module-setup.sh $(DESTDIR)$(libdir)/kdumpst/dracut/module-setup.sh
|
|
install -D -m0755 initramfs/initcpio/kdump-mkinitcpio-hook.sh $(DESTDIR)$(libdir)/kdumpst/kdump-mkinitcpio-hook.sh
|
|
install -D -m0644 initramfs/initcpio/kdump.hook $(DESTDIR)$(libdir)/kdumpst/initcpio/kdump.hook
|
|
install -D -m0644 initramfs/initcpio/kdump.install $(DESTDIR)$(libdir)/kdumpst/initcpio/kdump.install
|
|
|
|
clean:
|
|
rm -f kdumpst-load.sh save-dumps.sh
|
|
rm -f initramfs/99-kdump-{mkinitcpio,dracut}.hook
|
|
rm -f initramfs/dracut/{kdump-dracut-hook.sh,module-setup.sh}
|
|
rm -f initramfs/initcpio/kdump{-mkinitcpio-hook.sh,.hook,.install}
|