https://bugzilla.redhat.com/show_bug.cgi?id=433121 DKMS would like to have the opportunity to run it's auto-rebuilder/installer after a new kernel RPM has been installed, without having to wait for a system restart to run it. Likewise, when a kernel RPM is removed, it would like to be able to run to remove modules managed by it. Debian kernels intentionally run scripts located in /etc/kernel/postinst.d/ following new kernel package installation, /etc/kernel/prerm.d/ before kernel package removal. DKMS drops a script into these directories, to perform the appropriate actions. I want Fedora and RHEL kernels to do likewise. Patch attached. This patch implements the same interface as that used for Debian and Ubuntu kernels. The scripts are invoked with $1 = kernel version, and $2 = path to vmlinuz file. (DKMS doesn't need $2, but I'm keeping the interface the same to match so people can reuse their scriptlets.) -- Matt Domsch Linux Technology Strategist, Dell Office of the CTO linux.dell.com & www.dell.com/linux --- kernel.spec.orig 2008-02-15 21:06:33.000000000 -0600 +++ kernel.spec 2008-02-16 00:07:36.000000000 -0600 @@ -1610,11 +1610,35 @@ %{nil} # +# This macro defines a %%posttrans script for a kernel package. +# %%kernel_variant_posttrans [-v <subpackage>] [-s <s> -r <r>] <mkinitrd-args> +# More text can follow to go at the end of this variant's %%posttrans. +# +%define kernel_variant_posttrans(v:) \ +%{expand:%%posttrans %{?-v*}}\ +for d in /etc/kernel/postinst.d /etc/kernel/postinst.d/%{KVERREL}%{?-v*} ; do \ + if [ -d "${d}" ]; then \ + for f in $(ls ${d}/); do \ + [ -x "${d}/${f}" ] && "${d}/${f}" %{KVERREL}%{?-v*} /boot/vmlinuz-%{KVERREL}%{?-v*} \ + done \ + fi \ +done \ +exit 0\ +%{nil} + +# # This macro defines a %%preun script for a kernel package. # %%kernel_variant_preun <subpackage> # %define kernel_variant_preun() \ %{expand:%%preun %{?1}}\ +for d in /etc/kernel/prerm.d /etc/kernel/prerm.d/%{KVERREL}%{?1} ; do \ + if [ -d "${d}" ]; then \ + for f in $(ls ${d}/); do \ + [ -x "${d}/${f}" ] && "${d}/${f}" %{KVERREL}%{?1} /boot/vmlinuz-%{KVERREL}%{?1} \ + done \ + fi \ +done \ /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}%{?1} || exit $?\ #if [ -x /sbin/weak-modules ]\ #then\ @@ -1624,12 +1648,15 @@ %kernel_variant_preun %kernel_variant_post -s kernel-smp -r kernel +%kernel_variant_posttrans %kernel_variant_preun smp %kernel_variant_post -v smp +%kernel_variant_posttrans -v smp %kernel_variant_preun PAE %kernel_variant_post -v PAE -s kernel-smp -r kernel-PAE +%kernel_variant_posttrans -v PAE %kernel_variant_preun debug %kernel_variant_post -v debug @@ -1644,6 +1671,8 @@ /sbin/ldconfig -X || exit $? fi +%kernel_variant_posttrans -v xen + ### ### file lists ### _______________________________________________ Fedora-kernel-list mailing list Fedora-kernel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-kernel-list