From f4c793152e00e140e2b969db995a9d3e3facd62b Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Thu, 17 Apr 2025 20:35:47 +0200 Subject: [PATCH] - updated to 6.12.23, partial merge of PLD changes --- kernel.spec | 84 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 26 deletions(-) diff --git a/kernel.spec b/kernel.spec index 423eaee..0a05589 100644 --- a/kernel.spec +++ b/kernel.spec @@ -4,7 +4,7 @@ %bcond_with verbose # verbose build (V=1) %define basever 6.12 -%define postver 16 +%define postver 23 %define rel 1 %define __alt_kernel %{nil} @@ -21,6 +21,8 @@ %define localversion %{rel} %define kernel_release %{version}%{?alt_kernel:_%{alt_kernel}}-%{localversion} +%define kmod_ver 26-2 + Summary: The Linux kernel (the core of the Linux operating system) Summary(de.UTF-8): Der Linux-Kernel (Kern des Linux-Betriebssystems) Summary(et.UTF-8): Linuxi kernel (ehk operatsioonisüsteemi tuum) @@ -36,7 +38,7 @@ Source0: http://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz # Source0-md5: 844fae6a58c7f43af44d8cea8484b4a1 %if "%{postver}" != "0" Source1: http://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz -# Source1-md5: caaa2174c21aa98f3803f5a86cb78704 +# Source1-md5: 5c04e3c7aa02fb5166c054172c354548 %endif Source2: kernel-module-build.pl @@ -45,29 +47,36 @@ Source3: kernel.make Source10: kernel-x86.config Source11: kernel-x86_64.config -URL: http://www.kernel.org/ -BuildRequires: binutils >= 3:2.18 -BuildRequires: bison +URL: https://www.kernel.org/ +AutoReqProv: no BuildRequires: /sbin/depmod +BuildRequires: bc >= 1.06.95 +BuildRequires: binutils >= 3:2.23 +BuildRequires: bison >= 2.0 BuildRequires: elfutils-devel -BuildRequires: flex -BuildRequires: gcc >= 5:3.2 +BuildRequires: flex >= 2.5.35 +BuildRequires: gcc >= 6:7.2.0-6 +BuildRequires: gcc-c++ BuildRequires: gcc-plugin-devel -BuildRequires: xz >= 1:4.999.7 -AutoReqProv: no BuildRequires: hostname -BuildRequires: kmod -BuildRequires: openssl-devel -BuildRequires: perl-base -BuildRequires: rpm >= 4.5-74 -BuildRequires: rpmbuild(macros) >= 1.652 +BuildRequires: kmod >= %{kmod_ver} +BuildRequires: libstdc++-devel +BuildRequires: make >= 1:3.81 +BuildRequires: openssl-devel >= 1.0.0 +BuildRequires: openssl-tools >= 1.0.0 +BuildRequires: perl-base >= 5 +BuildRequires: rpm-build >= 4.5-74 +BuildRequires: rpmbuild(macros) >= 2.019 +BuildRequires: tar >= 1:1.22 +BuildRequires: xz >= 1:4.999.7 +BuildConflicts: dwarves < 1.16 Requires(post): coreutils Requires(post): dracut -Requires(post): kmod >= 12-2 +Requires(post): kmod >= %{kmod_ver} Requires: /sbin/depmod Requires: coreutils Requires: dracut -Requires: kmod >= 12-2 +Requires: kmod >= %{kmod_ver} %ifarch i686 Requires: cpuinfo(pae) %endif @@ -80,6 +89,8 @@ Obsoletes: kernel-modules Conflicts: e2fsprogs < 1.29 Conflicts: isdn4k-utils < 3.1pre1 Conflicts: jfsutils < 1.1.3 +Conflicts: libcap-libs < 1:2.34 +Conflicts: libusb < 1.0.9 Conflicts: linux-firmware < 20120720 Conflicts: lvm2 < 2.02.40 Conflicts: module-init-tools < 3.16 @@ -260,7 +271,9 @@ Summary(de.UTF-8): Development Dateien die beim Kernel Modul kompilationen gebra Summary(pl.UTF-8): Pliki służące do budowania modułów jądra Group: Development/Building Requires: %{name}-headers = %{epoch}:%{version}-%{release} -Conflicts: rpmbuild(macros) < 1.652 +Requires: elfutils-devel +Requires: make +Conflicts: rpmbuild(macros) < 2.019 AutoReqProv: no %description module-build @@ -335,6 +348,8 @@ cd linux-%{basever} %{__xz} -dc %{SOURCE1} | patch -p1 -s %endif +chmod 755 tools/objtool/sync-check.sh + # Fix EXTRAVERSION in main Makefile sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{?alt_kernel:_%{alt_kernel}}#g' Makefile @@ -343,12 +358,12 @@ find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs find -name '*.py' -print0 | \ xargs -0 %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \ - -e '1s,/usr/bin/env python$,%{__python},' \ - -e '1s,/usr/bin/env python3$,%{__python3},' + -e '1s,/usr/bin/env python$,%{__python},' \ + -e '1s,/usr/bin/env python3$,%{__python3},' %{__sed} -i -e '1s,/usr/bin/python$,%{__python},' \ -e '1s,/usr/bin/env python$,%{__python},' \ - -e '1s,/usr/bin/env python3$,%{__python3},' \ + -e '1s,/usr/bin/env python3$,%{__python3},' \ scripts/bloat-o-meter \ scripts/diffconfig \ scripts/dtc/dt-extract-compatibles \ @@ -384,14 +399,14 @@ find -name '*.pl' -print0 | \ install -d %{objdir} cat > %{targetobj}.mk <<'EOF' # generated by %{name}.spec -KERNELSRC := %{srcdir} +KERNELSRC := %{srcdir} KERNELOUTPUT := %{objdir} SRCARCH := %{target_arch_dir} ARCH := %{_target_base_arch} Q := %{!?with_verbose:@} MAKE_OPTS := %{MakeOpts} -DEFCONFIG := %{defconfig} +DEFCONFIG := %{defconfig} EOF cd %{objdir} @@ -412,7 +427,14 @@ cd - %{?with_verbose:V=1} \ oldconfig +%{__make} \ + TARGETOBJ=%{targetobj} \ + %{?with_verbose:V=1} \ + scripts + # build kernel +export DTC_FLAGS=-@ +ICECC_EXTRAFILES="${ICECC_EXTRAFILES:+$ICECC_EXTRAFILES:}$(test -d %{objdir}/scripts/gcc-plugins && find %{objdir}/scripts/gcc-plugins -name '*.so' | paste -s -d :)" %{__make} \ TARGETOBJ=%{targetobj} \ %{?with_verbose:V=1} \ @@ -420,12 +442,12 @@ cd - %install rm -rf $RPM_BUILD_ROOT -%{__make} %{MakeOpts} -j1 %{!?with_verbose:-s} modules_install \ +%{__make} %{MakeOpts} %{!?with_verbose:-s} modules_install \ -C %{objdir} \ %{?with_verbose:V=1} \ DEPMOD=%{DepMod} \ - mod_compress_cmd=true \ INSTALL_MOD_PATH=$RPM_BUILD_ROOT \ + INSTALL_MOD_STRIP="--strip-debug --remove-section=.comment --remove-section=.note.GNU-stack" \ KERNELRELEASE=%{kernel_release} install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc @@ -463,8 +485,8 @@ touch $RPM_BUILD_ROOT%{initrd_dir}/initramfs-%{kernel_release}.img touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep %endif -# /etc/modrobe.d -install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release} +# /etc/depmod.d /etc/modrobe.d +install -d $RPM_BUILD_ROOT%{_sysconfdir}/{depmod.d,modprobe.d}/%{kernel_release} # /usr/src/linux install -d $RPM_BUILD_ROOT%{_kernelsrcdir} @@ -485,6 +507,11 @@ for dir in $(cd %{objdir} && find arch -name generated -type d); do find $RPM_BUILD_ROOT%{_kernelsrcdir}/$dir -name '.*.cmd' -exec rm "{}" ";" done +# Needed for CONFIG_STACK_VALIDATION / ORC_UNWINDER enabled builds +install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool +cp -a %{objdir}/tools/objtool/fixdep $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool +cp -a %{objdir}/tools/objtool/objtool $RPM_BUILD_ROOT%{_kernelsrcdir}/tools/objtool + # version.h location changed in 3.7, but a lot of external modules don't know about it # add a compatibility symlink ln -s ../generated/uapi/linux/version.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/version.h @@ -621,6 +648,7 @@ fi %exclude /lib/modules/%{kernel_release}/kernel/drivers/usb/host/sl811_cs.ko* /lib/modules/%{kernel_release}/kernel/security +%dir %{_sysconfdir}/depmod.d/%{kernel_release} %dir %{_sysconfdir}/modprobe.d/%{kernel_release} # provided by build @@ -721,6 +749,8 @@ fi %{_kernelsrcdir}/scripts/selinux/mdp/*.c %exclude %dir %{_kernelsrcdir}/security %exclude %dir %{_kernelsrcdir}/security/selinux +%attr(755,root,root) %{_kernelsrcdir}/tools/objtool/fixdep +%attr(755,root,root) %{_kernelsrcdir}/tools/objtool/objtool %if %{with doc} %files doc @@ -793,6 +823,8 @@ fi %exclude %{_kernelsrcdir}/security/selinux/include %{_kernelsrcdir}/tools/* %exclude %{_kernelsrcdir}/tools/include +%exclude %{_kernelsrcdir}/tools/objtool/fixdep +%exclude %{_kernelsrcdir}/tools/objtool/objtool %{_kernelsrcdir}/usr %{_kernelsrcdir}/COPYING %{_kernelsrcdir}/CREDITS -- 2.49.0