diff --git a/kernel.spec b/kernel.spec index f562074..68f31c0 100644 --- a/kernel.spec +++ b/kernel.spec @@ -355,7 +355,7 @@ Source51: cpupower.config Source52: cpupower-start.sh Source53: cpupower.path -# Our patch tarball, +# Our patch tarball, # see https://abf.rosalinux.ru/soft/kernel-patches-and-configs/ Source100: kernel-patches-and-configs-%{kversion}.tar.xz @@ -375,8 +375,8 @@ Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/stable-review Source11: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/stable-review/patch-%{kversion}-%{kpatch}.sign %else Patch1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.xz -Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.sign -%endif +Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/testing/patch-%{kernelversion}.%{patchlevel}-%{kpatch}.sign +%endif %endif %if %kgit Patch2: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.x/snapshots/patch-%{kernelversion}.%{patchlevel}-%{kpatch}-git%{kgit}.xz @@ -532,7 +532,9 @@ Group: System/Kernel and hardware \ Version: %{fakever} \ Release: %{fakerel} \ Requires: glibc-devel ncurses-devel make gcc perl \ -Summary: The kernel-devel files for %{kname}-%{1}-%{buildrel} \ +Requires(post): dkms \ +Requires(preun): dkms \ +Summary: Development files for %{kname}-%{1}-%{buildrel} \ Group: Development/Kernel \ Provides: %{kname}-devel = %{kverrel} \ Provides: %{kname}-%{1}-devel \ @@ -603,7 +605,6 @@ latest %{kname}-%{1}-devel installed... \ %endif \ \ %post -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-post \ -%posttrans -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-posttrans \ %preun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-preun \ %postun -n %{kname}-%{1}-%{buildrel} -f kernel_files.%{1}-postun \ \ @@ -908,7 +909,7 @@ full preempt, rcu boost, CFS cpu scheduler and BFQ i/o scheduler. # %ifarch %{ix86} # -# kernel-nrj-desktop-core2: nrj, Intel Core 2 and newer, smp-alternatives, 4 GB +# kernel-nrj-desktop-core2: nrj, Intel Core 2 and newer, smp-alternatives, 4 GB # %if %build_nrj_desktop_core2 %define summary_nrj_desktop_core2 Linux Kernel for desktop use with i686 & 4GB RAM @@ -1178,7 +1179,7 @@ PrepareKernel() { config_dir=arch/arm64/configs %endif echo "Make config for kernel $extension" - + pushd 3rdparty perl mkbuild.pl popd @@ -1237,7 +1238,7 @@ BuildKernel() { install -d %{temp_modules}/$KernelVer %smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install - # headers + # headers %make INSTALL_HDR_PATH=%{temp_root}%{_prefix} KERNELRELEASE=$KernelVer headers_install find %{temp_root}%{_prefix} -name .install -or -name ..install.cmd | %kxargs rm -f @@ -1248,7 +1249,8 @@ BuildKernel() { SaveDevel() { devel_flavour=$1 - DevelRoot=/usr/src/linux-%{kversion}-$devel_flavour-%{buildrpmrel} + KernelVer=%{kversion}-$devel_flavour-%{buildrpmrel} + DevelRoot=/usr/src/linux-$KernelVer TempDevelRoot=%{temp_root}$DevelRoot mkdir -p $TempDevelRoot @@ -1328,6 +1330,12 @@ SaveDevel() { # disable mrproper in -devel rpms patch -p1 --fuzz=0 -d $TempDevelRoot -i %{SOURCE2} + # Create the symlinks needed by DKMS + ModulesRoot=%{temp_modules}/$KernelVer + mkdir -p $ModulesRoot + ln -sf $DevelRoot $ModulesRoot/build + ln -sf $DevelRoot $ModulesRoot/source + kernel_devel_files=../kernel_devel_files.$devel_flavour @@ -1398,33 +1406,31 @@ $DevelRoot/Makefile $DevelRoot/Module.symvers $DevelRoot/arch/Kconfig %doc README.kernel-sources +%{_modulesdir}/$KernelVer/build +%{_modulesdir}/$KernelVer/source EOF ### Create -devel Post script on the fly cat > $kernel_devel_files-post < $kernel_devel_files-preun < $kernel_devel_files-postun </dev/null +rm -rf /usr/src/linux-$KernelVer >/dev/null +# Remove the dir if it is already empty. +find /lib/modules/$KernelVer -maxdepth 0 -empty -exec rm -rf {} \; EOF } @@ -1460,6 +1466,7 @@ SaveDebug() { CreateFiles() { kernel_flavour=$1 + KernelVer=%{kversion}-$kernel_flavour-%{buildrpmrel} kernel_files=../kernel_files.$kernel_flavour @@ -1469,13 +1476,12 @@ if [ "$kernel_flavour" = "kirkwood" ]; then fi ### Create the kernel_files.* cat > $kernel_files < $kernel_files-post < /dev/null if [ -L vmlinuz-$kernel_flavour ]; then rm -f vmlinuz-$kernel_flavour fi -#ln -sf vmlinuz-\${KVER} vmlinuz-$kernel_flavour if [ -L initrd-$kernel_flavour.img ]; then rm -f initrd-$kernel_flavour.img fi -#ln -sf initrd-\${KVER}.img initrd-$kernel_flavour.img popd > /dev/null - -%if %build_devel -# create kernel-devel symlinks if matching -devel- rpm is installed -if [ -d /usr/src/linux-\${KVER} ]; then - rm -f /lib/modules/\${KVER}/{build,source} - ln -sf /usr/src/linux-\${KVER} /lib/modules/\${KVER}/build - ln -sf /usr/src/linux-\${KVER} /lib/modules/\${KVER}/source -fi -%endif -EOF - -### Create kernel Posttrans script -cat > $kernel_files-posttrans < $kernel_files-preun < /dev/null if [ -L vmlinuz-$kernel_flavour ]; then - if [ "\$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-\${KVER}" ]; then + if [ "\$(readlink vmlinuz-$kernel_flavour)" = "vmlinuz-$KernelVer" ]; then rm -f vmlinuz-$kernel_flavour fi fi if [ -L initrd-$kernel_flavour.img ]; then - if [ "\$(readlink initrd-$kernel_flavour.img)" = "initrd-\${KVER}.img" ]; then + if [ "\$(readlink initrd-$kernel_flavour.img)" = "initrd-$KernelVer.img" ]; then rm -f initrd-$kernel_flavour.img fi fi @@ -1541,35 +1527,18 @@ fi /usr/sbin/update-grub2 popd > /dev/null -%if %build_devel -if [ -L /lib/modules/\${KVER}/build ]; then - rm -f /lib/modules/\${KVER}/build -fi -if [ -L /lib/modules/\${KVER}/source ]; then - rm -f /lib/modules/\${KVER}/source -fi -%endif exit 0 EOF - ### Create kernel Postun script on the fly cat > $kernel_files-postun </dev/null -if [ -d /var/lib/dkms ]; then - rm -f /var/lib/dkms/*/kernel-\${KVER_DEVEL}-%{_target_cpu} >/dev/null - rm -rf /var/lib/dkms/*/*/\${KVER_DEVEL} >/dev/null - rm -f /var/lib/dkms-binary/*/kernel-\${KVER_DEVEL}-%{_target_cpu} >/dev/null - rm -rf /var/lib/dkms-binary/*/*/\${KVER_DEVEL} >/dev/null -fi +rm -f /boot/initrd-$KernelVer.img +rm -f /boot/initrd-$KernelVer_old.img +# Remove /lib/modules/<...>/ if it is empty (-devel uses it too). +find /lib/modules/$KernelVer -maxdepth 0 -empty -exec rm -rf {} \; EOF } - CreateKernel() { flavour=$1 @@ -1800,12 +1769,6 @@ find %{target_modules} -name "*.ko" | %kxargs xz -6e find %{target_modules} -name "*.ko" | %kxargs gzip -9 %endif -# We used to have a copy of PrepareKernel here -# Now, we make sure that the thing in the linux dir is what we want it to be -for i in %{target_modules}/*; do - rm -f $i/build $i/source -done - # sniff, if we compressed all the modules, we change the stamp :( # we really need the depmod -ae here pushd %{target_modules}