6.6: Fix For Fedora and OpenSuse (#840)

* Update 0013-fedora-rpm.patch

The patch  was using the syntax of the mkspec file instead of that of the kernel.spec, leading to the build failing.

* 6.6: Fix for Fedora and OpenSuse

* 6.6: Fix for OpenSuse

* Update 0013-fedora-rpm.patch to fix kernel-install issue on Fedora

Patch grabbed from https://lore.kernel.org/linux-kbuild/20231103-rpmpost-v1-1-9c18afab47f4@meta.com/

* Undo removing of kernel-uname-r

---------

Co-authored-by: Nanotwerp <Nanotwerp@gmail.com>
This commit is contained in:
Virtuoz-Ier
2023-11-14 09:32:10 +01:00
committed by GitHub
parent 7e07a8288d
commit df360952b9
3 changed files with 56 additions and 41 deletions

View File

@@ -244,10 +244,10 @@ if [ "$1" = "install" ]; then
_extra_ver_str="_${_kernel_flavor}"
fi
_fedora_work_dir="$_kernel_work_folder_abs/linux-tkg-rpmbuild"
_fedora_work_dir="$_kernel_work_folder_abs/rpmbuild"
msg2 "Add patched files to the diff.patch"
(cd ${_kernel_work_folder_abs} && git add -- . ':!linux-tkg-rpmbuild')
(cd ${_kernel_work_folder_abs} && git add -- . ':!rpmbuild')
msg2 "Building kernel RPM packages"
RPMOPTS="--define '_topdir ${_fedora_work_dir}'" make ${llvm_opt} -j ${_thread_num} rpm-pkg EXTRAVERSION="${_extra_ver_str}"

View File

@@ -1,40 +1,62 @@
diff --git a/scripts/package/kernel.spec b/scripts/package/kernel.spec
index 8049f0e2c..de170760d 100755
index 3eee0143e0c5..552177c1dfc5 100644
--- a/scripts/package/kernel.spec
+++ b/scripts/package/kernel.spec
@@ -18,2 +18,3 @@ $S Source2: diff.patch
@@ -18,2 +18,3 @@ Source2: diff.patch
Provides: kernel-$KERNELRELEASE
+Provides: kernel-uname-r = %{version}
BuildRequires: bc binutils bison dwarves
@@ -28,4 +29,4 @@ $S BuildRequires: gcc make openssl openssl-devel perl python3 rsync
@@ -27,8 +27,8 @@ The Linux Kernel, the operating system core itself
%package headers
Summary: Header files for the Linux kernel for use by glibc
Group: Development/System
-Obsoletes: kernel-headers
Provides: kernel-headers = %{version}
+Provides: installonlypkg(kernel) = %{version}
%description headers
@@ -41,2 +42,5 @@ $S$M Summary: Development package for building kernel modules to match the $__KE
$S$M Group: System Environment/Kernel
+$S$M Provides: kernel-devel = %{version}
+$S$M Provides: kernel-devel-uname-r = %{version}
+$S$M Provides: installonlypkg(kernel) = %{version}
$S$M AutoReqProv: no
@@ -46,2 +50,18 @@ $S$M against the $__KERNELRELEASE kernel package.
$S$M
+$S # Opt out of a lot of Fedora hardening flags etc...
+$S # See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
+$S %undefine _package_note_file
+$S %undefine _auto_set_build_flags
+$S %undefine _include_frame_pointers
+$S %define _build_id_flags -Wl,--build-id=none
+$S %undefine _annotated_build
+$S %undefine _fortify_level
+$S %undefine _hardened_build
+$S %global _lto_cflags %{nil}
+$S %global _configure_gnuconfig_hack 0
+$S %global _configure_libtool_hardening_hack 0
+$S # Nearly had to go to the deep web to find documentation on this one... Gosh
+$S # See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
+$S %define _build_id_links none
+$S
$S %prep
Kernel-headers includes the C header files that specify the interface
between the Linux kernel and userspace libraries and programs. The
@@ -40,12 +40,31 @@ glibc package.
%package devel
Summary: Development package for building kernel modules to match the %{version} kernel
Group: System Environment/Kernel
+Provides: kernel-devel = %{version}
+Provides: kernel-devel-uname-r = %{version}
+Provides: installonlypkg(kernel) = %{version}
AutoReqProv: no
%description -n kernel-devel
This package provides kernel headers and makefiles sufficient to build modules
against the %{version} kernel package.
%endif
+# Opt out of a lot of Fedora hardening flags etc...
+# See https://src.fedoraproject.org/rpms/redhat-rpm-config//blob/rawhide/f/buildflags.md
+%undefine _package_note_file
+%undefine _auto_set_build_flags
+%undefine _include_frame_pointers
+%define _build_id_flags -Wl,--build-id=none
+%undefine _annotated_build
+%undefine _fortify_level
+%undefine _hardened_build
+%global _lto_cflags %{nil}
+%global _configure_gnuconfig_hack 0
+%global _configure_libtool_hardening_hack 0
+# Nearly had to go to the deep web to find documentation on this one... Gosh
+# See https://github.com/rpm-software-management/rpm/blob/master/macros.in#L471
+%define _build_id_links none
+
%prep
%setup -q -n linux
cp %{SOURCE1} .config
@@ -77,10 +96,7 @@ rm -rf %{buildroot}
%post
if [ -x /sbin/installkernel -a -r /boot/vmlinuz-%{KERNELRELEASE} -a -r /boot/System.map-%{KERNELRELEASE} ]; then
-cp /boot/vmlinuz-%{KERNELRELEASE} /boot/.vmlinuz-%{KERNELRELEASE}-rpm
-cp /boot/System.map-%{KERNELRELEASE} /boot/.System.map-%{KERNELRELEASE}-rpm
-rm -f /boot/vmlinuz-%{KERNELRELEASE} /boot/System.map-%{KERNELRELEASE}
-/sbin/installkernel %{KERNELRELEASE} /boot/.vmlinuz-%{KERNELRELEASE}-rpm /boot/.System.map-%{KERNELRELEASE}-rpm
+/sbin/installkernel %{KERNELRELEASE} /boot/vmlinuz-%{KERNELRELEASE} /boot/System.map-%{KERNELRELEASE}
rm -f /boot/.vmlinuz-%{KERNELRELEASE}-rpm /boot/.System.map-%{KERNELRELEASE}-rpm
fi

View File

@@ -280,40 +280,33 @@ index ac3f2ee6d..e96ffc9a7 100644
%if %{with_devel}
%package devel
Summary: Development package for building kernel modules to match the %{version} kernel
@@ -67,8 +80,8 @@ cp $(%{make} %{makeflags} -s image_name) %{buildroot}/boot/vmlinuz-%{KERNELRELEA
@@ -67,7 +80,7 @@ cp $(%{make} %{makeflags} -s image_name) %{buildroot}/boot/vmlinuz-%{KERNELRELEA
%{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
cp System.map %{buildroot}/boot/System.map-%{KERNELRELEASE}
cp .config %{buildroot}/boot/config-%{KERNELRELEASE}
-ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/build
-ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/source
+ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/usr/lib/modules/%{KERNELRELEASE}/build
+ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/usr/lib/modules/%{KERNELRELEASE}/source
%if %{with_devel}
%{make} %{makeflags} run-command KBUILD_RUN_COMMAND='${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}'
%endif
@@ -99,9 +112,9 @@ fi
@@ -99,8 +112,8 @@ fi
%files
%defattr (-, root, root)
-/lib/modules/%{KERNELRELEASE}
-%exclude /lib/modules/%{KERNELRELEASE}/build
-%exclude /lib/modules/%{KERNELRELEASE}/source
+/usr/lib/modules/%{KERNELRELEASE}
+%exclude /usr/lib/modules/%{KERNELRELEASE}/build
+%exclude /usr/lib/modules/%{KERNELRELEASE}/source
/boot/*
%files headers
@@ -112,6 +125,10 @@ fi
@@ -112,5 +125,8 @@ fi
%files devel
%defattr (-, root, root)
/usr/src/kernels/%{KERNELRELEASE}
-/lib/modules/%{KERNELRELEASE}/build
-/lib/modules/%{KERNELRELEASE}/source
+/usr/lib/modules/%{KERNELRELEASE}/build
+/usr/lib/modules/%{KERNELRELEASE}/source
%endif
+
+%files syms
+%defattr (-, root, root)
+/usr/src/kernels/$KERNELRELEASE/doc