diff --git a/Makefile b/Makefile index d03f1d7..afe9a05 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ kdumpst-load.sh: kdumpst-load.header common.sh kdumpst-load.sh.in save-dumps.sh: save-dumps.header common.sh save-dumps.sh.in cat $^ > $@ -99-kdump-dracut.hook: initramfs/alpm-hook.generic +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 @@ -31,12 +31,9 @@ module-setup.sh: initramfs/dracut/module-setup.header common.sh initramfs/dracut .PHONY: dracut dracut: 99-kdump-dracut.hook kdump-dracut-hook.sh module-setup.sh -99-kdump-mkinitcpio.hook: initramfs/alpm-hook.generic +99-kdump-mkinitcpio.hook: initramfs/alpm-hook.INITRD sed 's/INITRD/mkinitcpio/g' $^ > initramfs/$@ -99-kdump-mkinitcpio-git.hook: initramfs/alpm-hook.generic - sed 's/INITRD/mkinitcpio-git/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 @@ -51,7 +48,7 @@ kdump.install: initramfs/initcpio/kdump.install.header common.sh initramfs/initc cat $^ > initramfs/initcpio/$@ .PHONY: mkinitcpio -mkinitcpio: 99-kdump-mkinitcpio.hook 99-kdump-mkinitcpio-git.hook kdump-mkinitcpio-hook.sh kdump.hook kdump.install +mkinitcpio: 99-kdump-mkinitcpio.hook kdump-mkinitcpio-hook.sh kdump.hook kdump.install all: kdumpst-load.sh save-dumps.sh dracut mkinitcpio @@ -64,17 +61,16 @@ install: all 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-mkinitcpio-git.hook $(DESTDIR)$(alpmhooksdir)/99-kdump-mkinitcpio-git.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 -m0755 initramfs/initcpio/kdump-mkinitcpio-hook.sh $(DESTDIR)$(libdir)/kdumpst/kdump-mkinitcpio-git-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-* + 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} diff --git a/initramfs/alpm-hook.generic b/initramfs/99-kdump-kernel.hook similarity index 51% rename from initramfs/alpm-hook.generic rename to initramfs/99-kdump-kernel.hook index 0d3cc0e..4f072b4 100644 --- a/initramfs/alpm-hook.generic +++ b/initramfs/99-kdump-kernel.hook @@ -4,8 +4,8 @@ # Maintainer: Guilherme G. Piccoli # # alpm hook to deal with the kdump initramfs creation/deletion -# for INITRD users. This hook would act upon kernel installation, -# upgrade and removal, also on INITRD package installation. +# for initcpio or dracut. This hook would act upon kernel +# installation, upgrade and removal. # [Trigger] Type = Path @@ -14,14 +14,8 @@ Operation = Remove Operation = Upgrade Target = usr/lib/modules/*/vmlinuz -[Trigger] -Type = Package -Operation = Install -Target = INITRD - [Action] -Description = Managing kdump minimal initramfs and INITRD hooks... -Depends=INITRD +Description = Managing kdump minimal initramfs When = PostTransaction -Exec = /usr/lib/kdumpst/kdump-INITRD-hook.sh +Exec =/bin/bash -s -c 'if command -v mkinitcpio > /dev/null; then /usr/lib/kdumpst/kdump-mkinitcpio-hook.sh; fi && if command -v dracut > /dev/null; then /usr/lib/kdumpst/kdump-dracut-hook.sh; fi' NeedsTargets diff --git a/initramfs/alpm-hook.INITRD b/initramfs/alpm-hook.INITRD new file mode 100644 index 0000000..d088feb --- /dev/null +++ b/initramfs/alpm-hook.INITRD @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +# +# Copyright (c) 2022 Valve. +# Maintainer: Guilherme G. Piccoli +# +# alpm hook to deal with the kdump initramfs creation/deletion +# for INITRD. This hook would act upon INITRD package installation. +# +[Trigger] +Type = Path +Operation = Install +Target = usr/bin/INITRD + +[Action] +Description = Managing kdump minimal initramfs for INITRD installation +When = PostTransaction +Exec = /usr/lib/kdumpst/kdump-INITRD-hook.sh +NeedsTargets