Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

kbuild: rpm-pkg: do not include depmod-generated files

Installing the kernel package is fine, but when uninstalling it, the
following warnings are shown:

warning: file modules.symbols.bin: remove failed: No such file or directory
warning: file modules.symbols: remove failed: No such file or directory
warning: file modules.softdep: remove failed: No such file or directory
warning: file modules.devname: remove failed: No such file or directory
warning: file modules.dep.bin: remove failed: No such file or directory
warning: file modules.dep: remove failed: No such file or directory
warning: file modules.builtin.bin: remove failed: No such file or directory
warning: file modules.builtin.alias.bin: remove failed: No such file or directory
warning: file modules.alias.bin: remove failed: No such file or directory
warning: file modules.alias: remove failed: No such file or directory

The %preun scriptlet runs 'kernel-install remove', which in turn invokes
/usr/lib/kernel/install.d/50-depmod.install to remove those files before
the actual package removal.

RPM-based distributions do not ship files generated by depmod. Mark them
as %ghost in order to exclude them from the package, but still claim the
ownership on them.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>

+19 -3
+19 -3
scripts/package/kernel.spec
··· 66 66 %{make} %{makeflags} run-command KBUILD_RUN_COMMAND='${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}' 67 67 %endif 68 68 69 + { 70 + for x in System.map config kernel modules.builtin \ 71 + modules.builtin.modinfo modules.order vmlinuz; do 72 + echo "/lib/modules/%{KERNELRELEASE}/${x}" 73 + done 74 + 75 + for x in alias alias.bin builtin.alias.bin builtin.bin dep dep.bin \ 76 + devname softdep symbols symbols.bin; do 77 + echo "%ghost /lib/modules/%{KERNELRELEASE}/modules.${x}" 78 + done 79 + 80 + echo "%exclude /lib/modules/%{KERNELRELEASE}/build" 81 + } > %{buildroot}/kernel.list 82 + 69 83 %clean 70 84 rm -rf %{buildroot} 71 85 ··· 92 78 cp "/lib/modules/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}" 93 79 fi 94 80 done 81 + if [ ! -e "/lib/modules/%{KERNELRELEASE}/modules.dep" ]; then 82 + /usr/sbin/depmod %{KERNELRELEASE} 83 + fi 95 84 96 85 %preun 97 86 if [ -x /sbin/new-kernel-pkg ]; then ··· 108 91 /sbin/update-bootloader --remove %{KERNELRELEASE} 109 92 fi 110 93 111 - %files 94 + %files -f %{buildroot}/kernel.list 112 95 %defattr (-, root, root) 113 - /lib/modules/%{KERNELRELEASE} 114 - %exclude /lib/modules/%{KERNELRELEASE}/build 96 + %exclude /kernel.list 115 97 116 98 %files headers 117 99 %defattr (-, root, root)