1
0
forked from pool/kernel-source

5 Commits
devel ... devel

58 changed files with 352667 additions and 4147 deletions

View File

@@ -422,9 +422,8 @@ General:
Loadable kernel modules: Loadable kernel modules:
* Peter Jay Salzman, Michael Burian, Ori Pomerantz: The Linux Kernel Module * The Linux Kernel Module Programming Guide,
Programming Guide, Version 2.6, <https://sysprog21.github.io/lkmpg/>.
<https://tldp.org/LDP/lkmpg/2.6/html/index.html>.
Kernel module packages: Kernel module packages:

View File

@@ -10,23 +10,29 @@ declare -a IGNORED_CONFIGS_RE=(
'AS_VERSION' 'AS_VERSION'
'AS_WRUSS' # x86_32 'AS_WRUSS' # x86_32
'BUILTIN_RETURN_ADDRESS_STRIPS_PAC' 'BUILTIN_RETURN_ADDRESS_STRIPS_PAC'
'CC_ASM_FLAG_OUTPUT_BROKEN'
'CC_CAN_[A-Z_]*' 'CC_CAN_[A-Z_]*'
'CC_HAS_[A-Z_]*' 'CC_HAS_[A-Z_]*'
'CC_HAVE_[A-Z_]*' 'CC_HAVE_[A-Z_]*'
'CC_VERSION_TEXT' 'CC_VERSION_TEXT'
'DRM_MSM_VALIDATE_XML'
'DYNAMIC_SIGFRAME' 'DYNAMIC_SIGFRAME'
'FTRACE_MCOUNT_USE_[A-Z_]*' 'FTRACE_MCOUNT_USE_[A-Z_]*'
'GCC_ASM_FLAG_OUTPUT_BROKEN'
'GCC_ASM_GOTO_OUTPUT_BROKEN' 'GCC_ASM_GOTO_OUTPUT_BROKEN'
'GCC_ASM_GOTO_OUTPUT_WORKAROUND' 'GCC_ASM_GOTO_OUTPUT_WORKAROUND'
'GCC_VERSION' 'GCC_VERSION'
'G*CC[0-9]*_NO_[A-Z_]*' 'G*CC[0-9]*_NO_[A-Z_]*'
'HAVE_[A-Z]*_COMPILER' 'HAVE_[A-Z]*_COMPILER'
'HAVE_RUST'
'HAVE_SHADOW_CALL_STACK' 'HAVE_SHADOW_CALL_STACK'
'LD_CAN_[A-Z_]*'
'LD_VERSION' 'LD_VERSION'
'OBJTOOL' 'OBJTOOL'
'PAHOLE_HAS_[A-Z0-9_]*' 'PAHOLE_HAS_[A-Z0-9_]*'
'PAHOLE_VERSION' 'PAHOLE_VERSION'
'RISCV_ISA_[A-Z_]*' 'RISCV_ISA_[A-Z_]*'
'RUSTC_SUPPORTS_[A-Z0-9_]*'
'TOOLCHAIN_HAS_[A-Z_]*' 'TOOLCHAIN_HAS_[A-Z_]*'
'TOOLCHAIN_NEEDS_[A-Z_]*' 'TOOLCHAIN_NEEDS_[A-Z_]*'
'TOOLS_SUPPORT_[A-Z_]*' 'TOOLS_SUPPORT_[A-Z_]*'

View File

@@ -8,17 +8,17 @@
# kernel-binary and kernel-source rely on this # kernel-binary and kernel-source rely on this
# #
+i386 i386/pae
+i386 i386/default
+i386 -syms i386/debug
+i386 i386/vanilla
+x86_64 x86_64/default +x86_64 x86_64/default
+x86_64 -syms x86_64/debug +x86_64 -syms x86_64/debug
- x86_64/syzkaller - x86_64/syzkaller
+x86_64 x86_64/vanilla +x86_64 x86_64/vanilla
+x86_64 -syms x86_64/kvmsmall +x86_64 -syms x86_64/kvmsmall
+i386 i386/pae
+i386 i386/default
+i386 -syms i386/debug
+i386 i386/vanilla
+ppc64le ppc64le/default +ppc64le ppc64le/default
+ppc64le -syms ppc64le/debug +ppc64le -syms ppc64le/debug
+ppc64le ppc64le/vanilla +ppc64le ppc64le/vanilla

View File

@@ -1,5 +1,5 @@
# The version of the main tarball to use # The version of the main tarball to use
SRCVERSION=6.10 SRCVERSION=6.14
# variant of the kernel-source package, either empty or "-rt" # variant of the kernel-source package, either empty or "-rt"
VARIANT= VARIANT=
# enable kernel module compression # enable kernel module compression

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:02ee08e59c6469a9ed4ef7f357fc1a80b83b14dad2143ce5306cd800478bc1d2 oid sha256:154001349c54ec580b4944c2252b4e396da9fd8b3c5ad6362de8e59fb7815305
size 297858 size 306545

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package dtb-aarch64 # spec file for package dtb-aarch64
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,18 +16,18 @@
# #
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: dtb-aarch64 Name: dtb-aarch64
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -90,7 +90,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -160,7 +159,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package dtb-armv6l # spec file for package dtb-armv6l
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,18 +16,18 @@
# #
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: dtb-armv6l Name: dtb-armv6l
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -90,7 +90,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -160,7 +159,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package dtb-armv7l # spec file for package dtb-armv7l
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,18 +16,18 @@
# #
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: dtb-armv7l Name: dtb-armv7l
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -90,7 +90,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -160,7 +159,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -658,33 +656,6 @@ cd /boot
%dir %{dtbdir}/ti/keystone %dir %{dtbdir}/ti/keystone
%{dtbdir}/ti/keystone/keystone-*.dtb %{dtbdir}/ti/keystone/keystone-*.dtb
%package -n dtb-meson6
Summary: Amlogic Meson 6 based systems
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-meson6
Device Tree files for Amlogic Meson 6 based systems.
%post -n dtb-meson6
cd /boot
# If /boot/dtb is a symlink, remove it, so that we can replace it.
[ -d dtb ] && [ -L dtb ] && rm -f dtb
# Unless /boot/dtb exists as real directory, create a symlink.
[ -d dtb ] || ln -sf dtb-%kernelrelease dtb
%ifarch %arm aarch64 riscv64
%files -n dtb-meson6 -f dtb-meson6.list
%else
%files -n dtb-meson6
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/amlogic
%{dtbdir}/amlogic/meson6-*.dtb
%package -n dtb-meson8 %package -n dtb-meson8
Summary: Amlogic Meson 8 based systems Summary: Amlogic Meson 8 based systems
Group: System/Boot Group: System/Boot
@@ -1384,7 +1355,7 @@ export DTC_FLAGS="-R 4 -p 0x1000"
DTC_FLAGS="$DTC_FLAGS -@" DTC_FLAGS="$DTC_FLAGS -@"
cd $source/arch/arm/boot/dts cd $source/arch/arm/boot/dts
for dts in ti/omap/am335x-*.dts ti/omap/am3517*.dts ti/omap/am57xx-*.dts marvell/armada-370-*.dts marvell/armada-375-*.dts marvell/armada-385-*.dts marvell/armada-388-*.dts marvell/armada-398-*.dts marvell/armada-xp-*.dts broadcom/bcm2836*.dts marvell/dove-*.dts samsung/exynos4*.dts samsung/exynos5*.dts nxp/imx/imx5*.dts nxp/imx/imx6*.dts nxp/imx/imx7*.dts ti/keystone/keystone-*.dts amlogic/meson6-*.dts amlogic/meson8-*.dts amlogic/meson8b-*.dts mediatek/mt76*.dts ti/omap/omap3*.dts ti/omap/omap4*.dts ti/omap/omap5*.dts qcom/qcom-*.dts rockchip/rk3*.dts intel/socfpga/socfpga_*.dts st/ste-*.dts allwinner/sun4i-*.dts allwinner/sun5i-*.dts allwinner/sun6i-*.dts allwinner/sun7i-*.dts allwinner/sun8i-*.dts allwinner/sun9i-*.dts nvidia/tegra20-*.dts nvidia/tegra30-*.dts nvidia/tegra114-*.dts nvidia/tegra124-*.dts arm/vexpress-*.dts nxp/vf/vf500-*.dts nxp/vf/vf610-*.dts xen/xenvm-*.dts xilinx/zynq-*.dts ; do for dts in ti/omap/am335x-*.dts ti/omap/am3517*.dts ti/omap/am57xx-*.dts marvell/armada-370-*.dts marvell/armada-375-*.dts marvell/armada-385-*.dts marvell/armada-388-*.dts marvell/armada-398-*.dts marvell/armada-xp-*.dts broadcom/bcm2836*.dts marvell/dove-*.dts samsung/exynos4*.dts samsung/exynos5*.dts nxp/imx/imx5*.dts nxp/imx/imx6*.dts nxp/imx/imx7*.dts ti/keystone/keystone-*.dts amlogic/meson8-*.dts amlogic/meson8b-*.dts mediatek/mt76*.dts ti/omap/omap3*.dts ti/omap/omap4*.dts ti/omap/omap5*.dts qcom/qcom-*.dts rockchip/rk3*.dts intel/socfpga/socfpga_*.dts st/ste-*.dts allwinner/sun4i-*.dts allwinner/sun5i-*.dts allwinner/sun6i-*.dts allwinner/sun7i-*.dts allwinner/sun8i-*.dts allwinner/sun9i-*.dts nvidia/tegra20-*.dts nvidia/tegra30-*.dts nvidia/tegra114-*.dts nvidia/tegra124-*.dts arm/vexpress-*.dts nxp/vf/vf500-*.dts nxp/vf/vf610-*.dts xen/xenvm-*.dts xilinx/zynq-*.dts ; do
target=${dts%*.dts} target=${dts%*.dts}
mkdir -p $PPDIR/$(dirname $target) mkdir -p $PPDIR/$(dirname $target)
cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I$SRCDIR/include/ -I$SRCDIR/scripts/dtc/include-prefixes/ -P $target.dts -o $PPDIR/$target.dts cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I$SRCDIR/include/ -I$SRCDIR/scripts/dtc/include-prefixes/ -P $target.dts -o $PPDIR/$target.dts
@@ -1393,7 +1364,7 @@ done
%install %install
cd pp cd pp
for dts in ti/omap/am335x-*.dts ti/omap/am3517*.dts ti/omap/am57xx-*.dts marvell/armada-370-*.dts marvell/armada-375-*.dts marvell/armada-385-*.dts marvell/armada-388-*.dts marvell/armada-398-*.dts marvell/armada-xp-*.dts broadcom/bcm2836*.dts marvell/dove-*.dts samsung/exynos4*.dts samsung/exynos5*.dts nxp/imx/imx5*.dts nxp/imx/imx6*.dts nxp/imx/imx7*.dts ti/keystone/keystone-*.dts amlogic/meson6-*.dts amlogic/meson8-*.dts amlogic/meson8b-*.dts mediatek/mt76*.dts ti/omap/omap3*.dts ti/omap/omap4*.dts ti/omap/omap5*.dts qcom/qcom-*.dts rockchip/rk3*.dts intel/socfpga/socfpga_*.dts st/ste-*.dts allwinner/sun4i-*.dts allwinner/sun5i-*.dts allwinner/sun6i-*.dts allwinner/sun7i-*.dts allwinner/sun8i-*.dts allwinner/sun9i-*.dts nvidia/tegra20-*.dts nvidia/tegra30-*.dts nvidia/tegra114-*.dts nvidia/tegra124-*.dts arm/vexpress-*.dts nxp/vf/vf500-*.dts nxp/vf/vf610-*.dts xen/xenvm-*.dts xilinx/zynq-*.dts ; do for dts in ti/omap/am335x-*.dts ti/omap/am3517*.dts ti/omap/am57xx-*.dts marvell/armada-370-*.dts marvell/armada-375-*.dts marvell/armada-385-*.dts marvell/armada-388-*.dts marvell/armada-398-*.dts marvell/armada-xp-*.dts broadcom/bcm2836*.dts marvell/dove-*.dts samsung/exynos4*.dts samsung/exynos5*.dts nxp/imx/imx5*.dts nxp/imx/imx6*.dts nxp/imx/imx7*.dts ti/keystone/keystone-*.dts amlogic/meson8-*.dts amlogic/meson8b-*.dts mediatek/mt76*.dts ti/omap/omap3*.dts ti/omap/omap4*.dts ti/omap/omap5*.dts qcom/qcom-*.dts rockchip/rk3*.dts intel/socfpga/socfpga_*.dts st/ste-*.dts allwinner/sun4i-*.dts allwinner/sun5i-*.dts allwinner/sun6i-*.dts allwinner/sun7i-*.dts allwinner/sun8i-*.dts allwinner/sun9i-*.dts nvidia/tegra20-*.dts nvidia/tegra30-*.dts nvidia/tegra114-*.dts nvidia/tegra124-*.dts arm/vexpress-*.dts nxp/vf/vf500-*.dts nxp/vf/vf610-*.dts xen/xenvm-*.dts xilinx/zynq-*.dts ; do
target=${dts%*.dts} target=${dts%*.dts}
install -m 755 -d %{buildroot}%{dtbdir}/$(dirname $target) install -m 755 -d %{buildroot}%{dtbdir}/$(dirname $target)
# install -m 644 COPYING %{buildroot}%{dtbdir}/$(dirname $target) # install -m 644 COPYING %{buildroot}%{dtbdir}/$(dirname $target)
@@ -1421,7 +1392,6 @@ for dts in ti/omap/am335x-*.dts ti/omap/am3517*.dts ti/omap/am57xx-*.dts marvell
nxp/imx/imx6*.dts) pkgname=dtb-imx6;; nxp/imx/imx6*.dts) pkgname=dtb-imx6;;
nxp/imx/imx7*.dts) pkgname=dtb-imx7;; nxp/imx/imx7*.dts) pkgname=dtb-imx7;;
ti/keystone/keystone-*.dts) pkgname=dtb-keystone;; ti/keystone/keystone-*.dts) pkgname=dtb-keystone;;
amlogic/meson6-*.dts) pkgname=dtb-meson6;;
amlogic/meson8-*.dts) pkgname=dtb-meson8;; amlogic/meson8-*.dts) pkgname=dtb-meson8;;
amlogic/meson8b-*.dts) pkgname=dtb-meson8b;; amlogic/meson8b-*.dts) pkgname=dtb-meson8b;;
mediatek/mt76*.dts) pkgname=dtb-mt76;; mediatek/mt76*.dts) pkgname=dtb-mt76;;

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package dtb-riscv64 # spec file for package dtb-riscv64
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,18 +16,18 @@
# #
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: dtb-riscv64 Name: dtb-riscv64
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -90,7 +90,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -160,7 +159,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-64kb # spec file for package kernel-64kb
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
# needssslcertforbuild # needssslcertforbuild
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@@ -31,15 +31,17 @@
%define supported_modules_check 0 %define supported_modules_check 0
%define build_flavor 64kb %define build_flavor 64kb
%define generate_compile_commands 1 %define generate_compile_commands 1
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-64kb Name: kernel-64kb
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -356,14 +357,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -494,14 +496,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -772,6 +775,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -780,6 +786,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@@ -808,7 +815,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -817,7 +823,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -847,17 +853,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -1276,6 +1279,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1468,14 +1474,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1664,17 +1665,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1685,7 +1682,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1798,7 +1794,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1879,7 +1876,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -1977,7 +1974,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -1988,7 +1985,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

View File

@@ -31,6 +31,8 @@
%define supported_modules_check @SUPPORTED_MODULES_CHECK@ %define supported_modules_check @SUPPORTED_MODULES_CHECK@
%define build_flavor @FLAVOR@ %define build_flavor @FLAVOR@
%define generate_compile_commands @GENERATE_COMPILE_COMMANDS@ %define generate_compile_commands @GENERATE_COMPILE_COMMANDS@
%define gcc_package @GCC_PACKAGE@
%define gcc_compiler @GCC_COMPILER@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -218,14 +221,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -577,6 +581,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -585,6 +592,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
@PROVIDES_OBSOLETES_DEVEL@ @PROVIDES_OBSOLETES_DEVEL@
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@@ -614,7 +622,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -623,7 +630,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -653,17 +660,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -800,6 +804,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -992,14 +999,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1188,17 +1190,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1209,7 +1207,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1322,7 +1319,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1403,7 +1401,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -1501,7 +1499,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -1512,7 +1510,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-debug # spec file for package kernel-debug
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
# needssslcertforbuild # needssslcertforbuild
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@@ -31,15 +31,17 @@
%define supported_modules_check 0 %define supported_modules_check 0
%define build_flavor debug %define build_flavor debug
%define generate_compile_commands 1 %define generate_compile_commands 1
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-debug Name: kernel-debug
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -356,14 +357,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -492,14 +494,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -764,6 +767,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -772,6 +778,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@@ -800,7 +807,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -809,7 +815,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -839,17 +845,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -1268,6 +1271,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1460,14 +1466,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1656,17 +1657,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1677,7 +1674,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1790,7 +1786,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1871,7 +1868,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -1969,7 +1966,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -1980,7 +1977,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-default # spec file for package kernel-default
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
# needssslcertforbuild # needssslcertforbuild
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@@ -31,15 +31,17 @@
%define supported_modules_check 0 %define supported_modules_check 0
%define build_flavor default %define build_flavor default
%define generate_compile_commands 1 %define generate_compile_commands 1
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-default Name: kernel-default
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -356,14 +357,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -531,14 +533,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -860,6 +863,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -868,6 +874,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
%ifarch %ix86 %ifarch %ix86
Provides: kernel-trace-devel = 3.13 Provides: kernel-trace-devel = 3.13
Obsoletes: kernel-trace-devel <= 3.13 Obsoletes: kernel-trace-devel <= 3.13
@@ -916,7 +923,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -925,7 +931,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -955,17 +961,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -1384,6 +1387,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1576,14 +1582,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1772,17 +1773,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1793,7 +1790,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1906,7 +1902,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1987,7 +1984,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -2085,7 +2082,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -2096,7 +2093,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-docs # spec file for package kernel-docs
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,21 +16,21 @@
# #
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define build_html 1 %define build_html 1
%define build_pdf 0 %define build_pdf 0
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-docs Name: kernel-docs
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -133,7 +133,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -203,7 +202,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -285,6 +283,8 @@ cd linux-%srcversion
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols %_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
%build %build
# for reproducible builds (bsc#1238303)
export PARALLELISM=1
cd linux-%srcversion cd linux-%srcversion
export LANG=en_US.utf8 export LANG=en_US.utf8
%if %build_html %if %build_html

View File

@@ -147,6 +147,8 @@ cd linux-%srcversion
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols %_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
%build %build
# for reproducible builds (bsc#1238303)
export PARALLELISM=1
cd linux-%srcversion cd linux-%srcversion
export LANG=en_US.utf8 export LANG=en_US.utf8
%if %build_html %if %build_html

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-kvmsmall # spec file for package kernel-kvmsmall
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
# needssslcertforbuild # needssslcertforbuild
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@@ -31,15 +31,17 @@
%define supported_modules_check 0 %define supported_modules_check 0
%define build_flavor kvmsmall %define build_flavor kvmsmall
%define generate_compile_commands 1 %define generate_compile_commands 1
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-kvmsmall Name: kernel-kvmsmall
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -356,14 +357,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -498,14 +500,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -788,6 +791,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -796,6 +802,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@@ -824,7 +831,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -833,7 +839,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -863,17 +869,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -1292,6 +1295,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1484,14 +1490,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1680,17 +1681,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1701,7 +1698,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1814,7 +1810,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1895,7 +1892,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -1993,7 +1990,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -2004,7 +2001,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-lpae # spec file for package kernel-lpae
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
# needssslcertforbuild # needssslcertforbuild
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@@ -31,15 +31,17 @@
%define supported_modules_check 0 %define supported_modules_check 0
%define build_flavor lpae %define build_flavor lpae
%define generate_compile_commands 1 %define generate_compile_commands 1
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-lpae Name: kernel-lpae
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -356,14 +357,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -492,14 +494,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -764,6 +767,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -772,6 +778,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@@ -800,7 +807,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -809,7 +815,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -839,17 +845,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -1268,6 +1271,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1460,14 +1466,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1656,17 +1657,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1677,7 +1674,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1790,7 +1786,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1871,7 +1868,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -1969,7 +1966,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -1980,7 +1977,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-obs-build # spec file for package kernel-obs-build
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks #!BuildIgnore: post-build-checks
%define patchversion 6.10.9 %define patchversion 6.14.6
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
@@ -38,16 +38,16 @@
%endif %endif
%endif %endif
%endif %endif
%global kernel_package kernel%kernel_flavor-srchash-5af77882e5891561a6c508a4a352a99c61465403 %global kernel_package kernel%kernel_flavor-srchash-ad69173661e912fc54ea9589c400528b76aa8aca
%endif %endif
%if 0%{?rhel_version} %if 0%{?rhel_version}
%global kernel_package kernel %global kernel_package kernel
%endif %endif
Name: kernel-obs-build Name: kernel-obs-build
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -127,7 +127,7 @@ export KERNEL_MODULES="
loop dm-crypt essiv dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 btrfs loop dm-crypt essiv dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 btrfs
xfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat xfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat
nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth overlay 9p 9pnet_virtio qemu_fw_cfg nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth overlay 9p 9pnet_virtio qemu_fw_cfg
algif_hash aegis128 xts bridge br_netfilter nf_nat xt_conntrack iptable_nat iptable_filter algif_hash aegis128 xts bridge br_netfilter nf_nat nf_tables xt_conntrack iptable_nat iptable_filter
iso9660" iso9660"
# manually load all modules to make sure they're available # manually load all modules to make sure they're available

View File

@@ -127,7 +127,7 @@ export KERNEL_MODULES="
loop dm-crypt essiv dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 btrfs loop dm-crypt essiv dm-mod dm-snapshot binfmt-misc fuse kqemu squashfs ext2 ext3 ext4 btrfs
xfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat xfs nf_conntrack_ipv6 binfmt_misc virtio_pci virtio_mmio virtio_blk virtio_rng fat vfat
nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth overlay 9p 9pnet_virtio qemu_fw_cfg nls_cp437 nls_iso8859-1 ibmvscsi sd_mod e1000 ibmveth overlay 9p 9pnet_virtio qemu_fw_cfg
algif_hash aegis128 xts bridge br_netfilter nf_nat xt_conntrack iptable_nat iptable_filter algif_hash aegis128 xts bridge br_netfilter nf_nat nf_tables xt_conntrack iptable_nat iptable_filter
iso9660" iso9660"
# manually load all modules to make sure they're available # manually load all modules to make sure they're available

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-obs-qa # spec file for package kernel-obs-qa
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,15 +17,15 @@
# needsrootforbuild # needsrootforbuild
%define patchversion 6.10.9 %define patchversion 6.14.6
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
Name: kernel-obs-qa Name: kernel-obs-qa
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-pae # spec file for package kernel-pae
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
# needssslcertforbuild # needssslcertforbuild
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@@ -31,15 +31,17 @@
%define supported_modules_check 0 %define supported_modules_check 0
%define build_flavor pae %define build_flavor pae
%define generate_compile_commands 1 %define generate_compile_commands 1
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-pae Name: kernel-pae
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -356,14 +357,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -514,14 +516,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -828,6 +831,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -836,6 +842,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
%ifarch %ix86 %ifarch %ix86
Provides: kernel-desktop-devel = 4.3 Provides: kernel-desktop-devel = 4.3
Obsoletes: kernel-desktop-devel <= 4.3 Obsoletes: kernel-desktop-devel <= 4.3
@@ -872,7 +879,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -881,7 +887,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -911,17 +917,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -1340,6 +1343,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1532,14 +1538,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1728,17 +1729,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1749,7 +1746,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1862,7 +1858,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1943,7 +1940,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -2041,7 +2038,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -2052,7 +2049,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-source # spec file for package kernel-source
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,19 +16,21 @@
# #
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-source Name: kernel-source
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -105,7 +107,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -151,6 +152,7 @@ Recommends: dwarves >= 1.22
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
Recommends: kernel-install-tools Recommends: kernel-install-tools
%endif %endif
Recommends: %gcc_package
%obsolete_rebuilds %name %obsolete_rebuilds %name
# Force bzip2 instead of lzma compression to # Force bzip2 instead of lzma compression to
@@ -270,6 +272,8 @@ fi
linux-%kernelrelease%variant linux-%kernelrelease-vanilla linux-%kernelrelease%variant linux-%kernelrelease-vanilla
cd linux-%kernelrelease-vanilla cd linux-%kernelrelease-vanilla
%_sourcedir/apply-patches --vanilla %_sourcedir/series.conf %my_builddir %symbols %_sourcedir/apply-patches --vanilla %_sourcedir/series.conf %my_builddir %symbols
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
rm -f $(find . -name ".gitignore") rm -f $(find . -name ".gitignore")
# Hardlink duplicate files automatically (from package fdupes). # Hardlink duplicate files automatically (from package fdupes).
%fdupes $PWD %fdupes $PWD
@@ -278,6 +282,8 @@ cd ..
cd linux-%kernelrelease%variant cd linux-%kernelrelease%variant
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols %_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
rm -f $(find . -name ".gitignore") rm -f $(find . -name ".gitignore")
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
@@ -317,8 +323,9 @@ popd
find %{buildroot}/usr/src/linux* -type f -name '*.[ch]' -perm /0111 -exec chmod -v a-x {} + find %{buildroot}/usr/src/linux* -type f -name '*.[ch]' -perm /0111 -exec chmod -v a-x {} +
# OBS checks don't like /usr/bin/env in script interpreter lines # OBS checks don't like /usr/bin/env in script interpreter lines
grep -Elr '^#! */usr/bin/env ' %{buildroot}/usr/src/linux* | while read f; do grep -Elr '^#! */(usr/)?bin/env ' %{buildroot}/usr/src/linux* | while read f; do
sed -re '1 { s_^#! */usr/bin/env +/_#!/_ ; s_^#! */usr/bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f" sed -re '1 { s_^#! */usr/bin/env +/_#!/_ ; s_^#! */usr/bin/env +([^/])_#!/usr/bin/\1_ }' \
-re '1 { s_^#! */bin/env +/_#!/_ ; s_^#! */bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f"
done done
# kernel-source and kernel-$flavor-devel are built independently, but the # kernel-source and kernel-$flavor-devel are built independently, but the
# shipped sources (/usr/src/linux/) need to be older than generated files # shipped sources (/usr/src/linux/) need to be older than generated files

View File

@@ -20,6 +20,8 @@
%define patchversion @PATCHVERSION@ %define patchversion @PATCHVERSION@
%define git_commit @COMMIT_FULL@ %define git_commit @COMMIT_FULL@
%define variant @VARIANT@%{nil} %define variant @VARIANT@%{nil}
%define gcc_package @GCC_PACKAGE@
%define gcc_compiler @GCC_COMPILER@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
@@ -105,7 +107,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -151,6 +152,7 @@ Recommends: dwarves >= 1.22
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
Recommends: kernel-install-tools Recommends: kernel-install-tools
%endif %endif
Recommends: %gcc_package
%obsolete_rebuilds %name %obsolete_rebuilds %name
# Force bzip2 instead of lzma compression to # Force bzip2 instead of lzma compression to
@@ -270,6 +272,8 @@ fi
linux-%kernelrelease%variant linux-%kernelrelease-vanilla linux-%kernelrelease%variant linux-%kernelrelease-vanilla
cd linux-%kernelrelease-vanilla cd linux-%kernelrelease-vanilla
%_sourcedir/apply-patches --vanilla %_sourcedir/series.conf %my_builddir %symbols %_sourcedir/apply-patches --vanilla %_sourcedir/series.conf %my_builddir %symbols
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
rm -f $(find . -name ".gitignore") rm -f $(find . -name ".gitignore")
# Hardlink duplicate files automatically (from package fdupes). # Hardlink duplicate files automatically (from package fdupes).
%fdupes $PWD %fdupes $PWD
@@ -278,6 +282,8 @@ cd ..
cd linux-%kernelrelease%variant cd linux-%kernelrelease%variant
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols %_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
rm -f $(find . -name ".gitignore") rm -f $(find . -name ".gitignore")
if [ -f %_sourcedir/localversion ] ; then if [ -f %_sourcedir/localversion ] ; then
@@ -317,8 +323,9 @@ popd
find %{buildroot}/usr/src/linux* -type f -name '*.[ch]' -perm /0111 -exec chmod -v a-x {} + find %{buildroot}/usr/src/linux* -type f -name '*.[ch]' -perm /0111 -exec chmod -v a-x {} +
# OBS checks don't like /usr/bin/env in script interpreter lines # OBS checks don't like /usr/bin/env in script interpreter lines
grep -Elr '^#! */usr/bin/env ' %{buildroot}/usr/src/linux* | while read f; do grep -Elr '^#! */(usr/)?bin/env ' %{buildroot}/usr/src/linux* | while read f; do
sed -re '1 { s_^#! */usr/bin/env +/_#!/_ ; s_^#! */usr/bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f" sed -re '1 { s_^#! */usr/bin/env +/_#!/_ ; s_^#! */usr/bin/env +([^/])_#!/usr/bin/\1_ }' \
-re '1 { s_^#! */bin/env +/_#!/_ ; s_^#! */bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f"
done done
# kernel-source and kernel-$flavor-devel are built independently, but the # kernel-source and kernel-$flavor-devel are built independently, but the
# shipped sources (/usr/src/linux/) need to be older than generated files # shipped sources (/usr/src/linux/) need to be older than generated files

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-syms # spec file for package kernel-syms
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -16,16 +16,16 @@
# #
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
Name: kernel-syms Name: kernel-syms
Version: 6.10.9 Version: 6.14.6
%if %using_buildservice %if %using_buildservice
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-vanilla # spec file for package kernel-vanilla
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
# needssslcertforbuild # needssslcertforbuild
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@@ -31,15 +31,17 @@
%define supported_modules_check 0 %define supported_modules_check 0
%define build_flavor vanilla %define build_flavor vanilla
%define generate_compile_commands 1 %define generate_compile_commands 1
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-vanilla Name: kernel-vanilla
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -356,14 +357,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -491,14 +493,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -760,6 +763,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -768,6 +774,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@@ -796,7 +803,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -805,7 +811,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -835,17 +841,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -1264,6 +1267,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1456,14 +1462,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1652,17 +1653,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1673,7 +1670,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1786,7 +1782,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1867,7 +1864,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -1965,7 +1962,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -1976,7 +1973,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
# #
# spec file for package kernel-zfcpdump # spec file for package kernel-zfcpdump
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
# needssslcertforbuild # needssslcertforbuild
%define srcversion 6.10 %define srcversion 6.14
%define patchversion 6.10.9 %define patchversion 6.14.6
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403 %define git_commit ad69173661e912fc54ea9589c400528b76aa8aca
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@@ -31,15 +31,17 @@
%define supported_modules_check 0 %define supported_modules_check 0
%define build_flavor zfcpdump %define build_flavor zfcpdump
%define generate_compile_commands 1 %define generate_compile_commands 1
%define gcc_package gcc
%define gcc_compiler gcc
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-zfcpdump Name: kernel-zfcpdump
Version: 6.10.9 Version: 6.14.6
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g5af7788 Release: <RELEASE>.gad69173
%else %else
Release: 0 Release: 0
%endif %endif
@@ -59,8 +61,8 @@ BuildRequires: flex
# does not expand %%(...) # does not expand %%(...)
%if "%build_flavor" == "syzkaller" %if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh # Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++ BuildRequires: %gcc_package-c++
BuildRequires: gcc-devel BuildRequires: %gcc_package-devel
%endif %endif
BuildRequires: hmaccalc BuildRequires: hmaccalc
BuildRequires: libopenssl-devel BuildRequires: libopenssl-devel
@@ -73,6 +75,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
BuildRequires: %gcc_package
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@@ -356,14 +357,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -494,14 +496,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and # For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat) # kmod-compat)
Requires(post): modutils Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a # Use OrderWithRequires to instruct the package manager to schedule the
# test -x update-bootloader, having perl-Bootloader is not a hard requirement. # installation of bootloader and dracut related tools as if they were
# But, there is no way to tell rpm or yast to schedule the installation # required. This will ensure they're there for post scripts without hard
# of perl-Bootloader before kernel-binary.rpm if both are in the list of # requiring them. (boo#1228659, boo#1240785)
# packages to install/update. Likewise, this is true for dracut. OrderWithRequires(post): udev
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry OrderWithRequires(post): systemd-boot
Requires(post): perl-Bootloader >= 0.4.15 OrderWithRequires(post): perl-Bootloader
Requires(post): dracut OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that # Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565) # the grub entry has correct title (bnc#757565)
Requires(post): distribution-release Requires(post): distribution-release
@@ -772,6 +775,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla) Supplements: packageand(%name:kernel-source-vanilla)
%endif %endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y" %if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22 Requires: dwarves >= 1.22
%endif %endif
@@ -780,6 +786,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@@ -808,7 +815,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@@ -817,7 +823,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu /usr/src/linux-obj/%kmp_target_cpu
%endif %endif
%if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%variant" == "-rt" && 0%livepatch_rt)) %if "%livepatch" != "" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y" && (("%variant" == "" && %build_default) || ("%build_flavor" == "rt" && 0%livepatch_rt))
%if "%livepatch" == "kgraft" %if "%livepatch" == "kgraft"
%define patch_package %{livepatch}-patch %define patch_package %{livepatch}-patch
%else %else
@@ -847,17 +853,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@@ -1276,6 +1279,9 @@ cd linux-%srcversion
%endif %endif
%_sourcedir/series.conf .. $SYMBOLS %_sourcedir/series.conf .. $SYMBOLS
sed -i -e 's/\$(CROSS_COMPILE)gcc/\$(CROSS_COMPILE)%gcc_compiler/g' Makefile
grep '\$(CROSS_COMPILE)%gcc_compiler' Makefile
cd %kernel_build_dir cd %kernel_build_dir
# Override the timestamp 'uname -v' reports with the source timestamp and # Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1468,14 +1474,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json # Generate compile_commands.json
make compile_commands.json make compile_commands.json $MAKE_ARGS
%endif
%endif %endif
%install %install
@@ -1664,17 +1665,13 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
@@ -1685,7 +1682,6 @@ if [ %CONFIG_MODULES = y ]; then
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif %endif
%endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
@@ -1798,7 +1794,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo 'export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor' > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo 'include ../../../%{basename:%src_install_dir}/Makefile' >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@@ -1879,7 +1876,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image
@@ -1977,7 +1974,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%endif %endif
%if 0%{?sle_version} >= 150000 %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150000
# By default, loading unsupported modules is disabled on SLE through # By default, loading unsupported modules is disabled on SLE through
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools # /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package. # package.
@@ -1988,7 +1985,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel). # multiversion(kernel).
modprobe_d_dir=/etc/modprobe.d modprobe_d_dir=/etc/modprobe.d
%if 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
modprobe_d_dir=/lib/modprobe.d modprobe_d_dir=/lib/modprobe.d
%endif %endif
%if %{usrmerged} %if %{usrmerged}

View File

@@ -1,72 +0,0 @@
#!/bin/bash
set -e
export LC_COLLATE=C
usage()
{
echo "Tool to generate list of symbols that are used to build kernel livepatches"
echo
echo "Usage: ${0##*/} kernel_build_dir klp_symbols"
echo " kernel_build_dir Directory where to find the built kernel binaries"
echo " klp_symbols Output file with the list of symbols"
}
if test "$1" == "-h" -o "$1" == "--help" -o $# -ne 2 ; then
usage >&2
exit 1
fi
KLP_DATA_VERSION="0.1"
KERNEL_BUILD_DIR="$1"
KLP_SYMBOLS="$2"
VMLINUX="$KERNEL_BUILD_DIR/vmlinux"
MODVER_DIR="$KERNEL_BUILD_DIR/.tmp_versions"
if ! test -f "$VMLINUX" ; then
echo "Error: Cannot open file: $VMLINUX" >&2
exit 1
fi
if ! test -d "$MODVER_DIR" ; then
# kernel >= 5.3 has *.mod in the build tree
mod_cnt=$(find "$KERNEL_BUILD_DIR" -name '*.mod' | wc -l)
if [ $mod_cnt -eq 0 ]; then
echo "Error: Directory does not exist: $MODVER_DIR" >&2
exit 1
fi
MODVER_DIR="$KERNEL_BUILD_DIR"
fi
get_symbols()
{
nm -f posix "$1" | grep -v '\( [UN] \)\|\(\.L\|__crc_\)' | cut -d\ -f1
}
echo "klp-convert-symbol-data.$KLP_DATA_VERSION" > "$KLP_SYMBOLS"
echo "*vmlinux" >> "$KLP_SYMBOLS"
get_symbols "$VMLINUX" >> "$KLP_SYMBOLS"
find "$MODVER_DIR" -iname '*.mod' | sort | while read KMOD ; do
if [ "$MODVER_DIR" = "$KERNEL_BUILD_DIR" ]; then
# kernel >= 5.3, just replace the suffix
KO_FILE="${KMOD%.mod}.ko"
else
# kernel <= 5.2, read .ko path and file from .mod file
KO_FILE="$(head -n1 $KMOD)"
fi
# obtain module name and its object file by processing .ko file name
NO_SUFFIX="$(basename -s .ko $KO_FILE)"
KMOD_NAME="$(echo $NO_SUFFIX | sed 's/-/_/g')"
OBJ_FILE="$(dirname $KO_FILE)/$NO_SUFFIX.o"
# write module name to Symbols file
echo "*$KMOD_NAME" >> "$KLP_SYMBOLS"
# extract symbols from object file and write them to Symbols file
get_symbols "$OBJ_FILE" >> "$KLP_SYMBOLS"
done
exit 0

View File

@@ -1,19 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Comment: This signature is for the .tar version of the archive
Comment: git archive --format tar --prefix=linux-6.10/ v6.10
Comment: git version 2.45.2
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmaUsSAACgkQONu9yGCS
aT78GBAAoIE07mO37CHmfOnlfold0fQ8pQbz66KrRp9vFbHlNF1k+t33mEpI3ZCw
b0mmuytDzcNYRHPiJWxjD6Z+5c/Sh/gTS4ciG9gdzVje2Hrd5zdMgHxBgDkkmcvU
bwPozW8AndTZt8HYlRlyaedRXI9aevYLl0SQmUgecfvyS29ZzHPjMBL5s5KOXu+8
ImhUysPRcQzSfW8jdKJIXklbx5pQ6Zc0v0KTOM1Qzj9ij/iwjlSXyPqIkXsyglBa
DcvqQ/eVgD6vRC11j+UQQC8NDGufGs6RUvjbedUW9/R1gTuppGotiJCe81Jslg32
zibTbn+8UNNZrgWfIsAPLJIfbwUzmFryWED/SrqMCqWHhuGzhwGDwBKcOiKYf767
SrGz+dE9ONipHvoX46EjIz5VwnbtWWUEjkjV356efrWwey96Ax64BOnB0py/aCmw
jg9FnXaiirPpZzEEg2LGFswx4oTh/NYNeSpF2v1zR16lBW0MRffRVHHt+gZbmgMj
A9dMUxBEXt5t/XFwM8F3fWWgzfM3ggigpIL5RWQWvPYdK32d7SELb6Bmeao6XhVj
bq6LHokDxHuboMowvaEPeodEnZcYC26A+LuLkY0AZZ6x0z9nNl1E6iVm9JZL4RsW
pGs7kc0RbMrNSkktsWsgDqgYxUWOx/eGfhFI2/dzMR1ELtstUBA=
=zwdu
-----END PGP SIGNATURE-----

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:774698422ee54c5f1e704456f37c65c06b51b4e9a8b0866f34580d86fef8e226
size 145142812

19
linux-6.14.tar.sign Normal file
View File

@@ -0,0 +1,19 @@
-----BEGIN PGP SIGNATURE-----
Comment: This signature is for the .tar version of the archive
Comment: git archive --format tar --prefix=linux-6.14/ v6.14
Comment: git version 2.49.0
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmfhdasACgkQONu9yGCS
aT5MVQ/+O2twsUA9kCSVelVs80Ys/vGrw278h5CLpYoaYsxDhjQWtAqFhiYuYsSf
fqWeyQJQs55YUcfCJGss4FPqWyxjNGoYVqv+GwJZIv74/kmjE31an+L0k5qEXiz5
bBzwFKUobGe2UAsNWuCTgoDh7M/Xsdz+MPq9E/7gfvRwEEjKX++scEVnGV3Qy7NS
oEOzdZpynksmF3OTnzky53XGVoW9Tk6As5r3pYy7F3KHcu/QmWKOIbU6t1+9XN08
8QvGKdnEwv6Isd7zrg2BP6gdQfwLmP9FJbsrZ5c9XP3zNz2DsEG8H459IucCOmUR
T3kkBonxSxlMdKRC23Nxmxb7wrzL4sGw8PC2a6iAFH+4glTc+jzvftKHzIPBQeFg
HC4cSb1j3EEVyv+RnQNEBShY+4ghT0Zofc5k3rSPUYpW9xn0bzFNq1sP7/7nTaYG
TNDBJrJEQmq4GarKWZ2y11I4mw7l/PBvfQpgxm6ABHfUdl0yPy89SOiBfMw+8b2Y
mk5AXuO3qdAYqVTXUodWn79Rtno5Zrj7UXMQjoK9LcP1lr1JVvC8I/gDktdBjgqW
60KkX0tNfIw0TzkcK/ogewBKKKRJJ1VZZOGx+tw/7ShBUpyAEu1boosx6bT88GVN
k1wLp1FVnouFdIBLih2/ROJjTYTWUUWmvQrHYufis0AAb9Mmtjg=
=hEZa
-----END PGP SIGNATURE-----

3
linux-6.14.tar.xz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a294b683e7b161bb0517bb32ec7ed1d2ea7603dfbabad135170ed12d00c47670
size 149408504

9
mkspec
View File

@@ -40,12 +40,19 @@ my ($srcversion, $variant, $obs_build_variant) =
$obs_build_variant = ($obs_build_variant ? $variant : "" ); $obs_build_variant = ($obs_build_variant ? $variant : "" );
my $compress_modules = 'none'; my $compress_modules = 'none';
my $compress_vmlinux = 'gz'; my $compress_vmlinux = 'gz';
my $gcc_package = 'gcc';
my $gcc_compiler = 'gcc';
if (defined($vars{'COMPRESS_MODULES'})) { if (defined($vars{'COMPRESS_MODULES'})) {
$compress_modules = $vars{'COMPRESS_MODULES'}; $compress_modules = $vars{'COMPRESS_MODULES'};
} }
if (defined($vars{'COMPRESS_VMLINUX'})) { if (defined($vars{'COMPRESS_VMLINUX'})) {
$compress_vmlinux = $vars{'COMPRESS_VMLINUX'}; $compress_vmlinux = $vars{'COMPRESS_VMLINUX'};
} }
if (defined($vars{'GCC_VERSION'})) {
my $gcc_version = $vars{'GCC_VERSION'};
$gcc_package = 'gcc' . $gcc_version;
$gcc_compiler = 'gcc-' . $gcc_version;
}
sub detect_false { sub detect_false {
my $arg = $_[0]; my $arg = $_[0];
return "" if not $arg; return "" if not $arg;
@@ -142,6 +149,8 @@ my %macros = (
COMPRESS_MODULES => $compress_modules, COMPRESS_MODULES => $compress_modules,
COMPRESS_VMLINUX => $compress_vmlinux, COMPRESS_VMLINUX => $compress_vmlinux,
GENERATE_COMPILE_COMMANDS => $generate_compile_commands, GENERATE_COMPILE_COMMANDS => $generate_compile_commands,
GCC_PACKAGE => $gcc_package,
GCC_COMPILER => $gcc_compiler,
); );
# binary spec files # binary spec files

View File

@@ -24,7 +24,6 @@ my @armv7l_package_list = (
['dtb-imx6', 'nxp/imx/imx6*.dts', "Freescale i.MX6 based systems"], ['dtb-imx6', 'nxp/imx/imx6*.dts', "Freescale i.MX6 based systems"],
['dtb-imx7', 'nxp/imx/imx7*.dts', "Freescale i.MX7 based systems"], ['dtb-imx7', 'nxp/imx/imx7*.dts', "Freescale i.MX7 based systems"],
['dtb-keystone', 'ti/keystone/keystone-*.dts', "TI Keystone 2 based systems"], ['dtb-keystone', 'ti/keystone/keystone-*.dts', "TI Keystone 2 based systems"],
['dtb-meson6', 'amlogic/meson6-*.dts', "Amlogic Meson 6 based systems"],
['dtb-meson8', 'amlogic/meson8-*.dts', "Amlogic Meson 8 based systems"], ['dtb-meson8', 'amlogic/meson8-*.dts', "Amlogic Meson 8 based systems"],
['dtb-meson8b', 'amlogic/meson8b-*.dts', "Amlogic Meson 8b based systems"], ['dtb-meson8b', 'amlogic/meson8b-*.dts', "Amlogic Meson 8b based systems"],
['dtb-mt76', 'mediatek/mt76*.dts', "MediaTek mt76 based systems"], ['dtb-mt76', 'mediatek/mt76*.dts', "MediaTek mt76 based systems"],

View File

@@ -78,6 +78,19 @@ The kernel for arm64 and x86_64 architectures that supports CONFIG_PREEMPT. Its
main purpose is to serve workloads with a higher demand on smaller latencies main purpose is to serve workloads with a higher demand on smaller latencies
than the default kernel in average. than the default kernel in average.
=== kernel-rt ===
Kernel with PREEMPT_RT (realtime) support
The kernel for arm64 and x86_64 architectures that supports CONFIG_PREEMPT_RT. Its
main purpose is to serve workloads with strict latency requirements with more
deterministic worst case behaviour than the default kernel.
=== kernel-rt_debug ===
A Debug Version of the PREEMPT_RT Kernel
This kernel has several debug facilities enabled that hurt performance.
Only use this kernel when investigating problems.
=== kernel-syzkaller === === kernel-syzkaller ===
Kernel used for fuzzing by syzkaller Kernel used for fuzzing by syzkaller

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:27e4c0fc8297a513046b0d1078a960e9d978dbc12cd21ecf9cf7af74f63fe640 oid sha256:d48cb07dec0385d3dd28bdae38513f357239d936f942743f3950af3f225959a8
size 1382781 size 1525861

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:26cbaa296e21a490af5339b646b1d2d9934d889527d089b43ccb3f2e7d3e6704 oid sha256:b0ddc67e8c27919c5c315dad0e46d8fbf53cb713bd9380c866ce21895cc9b554
size 3639 size 4144

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:625ecf57571680e3817d118381ef514e553d74bd6b8d2c028ec8a3610f71deab oid sha256:121f0ad5837925f24baf9e266720a453750040894dc79958de8a202fe8813686
size 43247 size 134531

View File

@@ -1,6 +1,9 @@
# This file contains regular expressions that define which projects # This file contains regular expressions that define which projects
# are considered part of an official release channel. # are considered part of an official release channel.
# This will mark the kernel as released when it's built. # This will mark the kernel as released when it's built.
SUSE:SLFO:[0-9].*
SUSE:ALP:Source:Standard:Core:1.0:Build
SUSE:SLFO:Kernel:1.0:Build
SUSE:SLE-.* SUSE:SLE-.*
SUSE:Maintenance:.* SUSE:Maintenance:.*
openSUSE:[0-9].*:Update openSUSE:[0-9].*:Update

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,3 @@
2024-09-08 13:43:05 +0000 2025-05-13 09:56:22 +0000
GIT Revision: 5af77882e5891561a6c508a4a352a99c61465403 GIT Revision: ad69173661e912fc54ea9589c400528b76aa8aca
GIT Branch: stable GIT Branch: stable

View File

@@ -167,6 +167,7 @@ if $opt_extra && test -f "$opt_builddir/Module.optional"; then
esac esac
path=${path%.ko} path=${path%.ko}
mod=${path##*/} mod=${path##*/}
mod=$(echo "$mod" | sed 'y/-/_/')
modmarks["$mod"]="$mark" modmarks["$mod"]="$mark"
# paths with wildcards need to be verified sequentially, so we keep # paths with wildcards need to be verified sequentially, so we keep
# the paths in the array wcpaths and each mark in wcmarks[] # the paths in the array wcpaths and each mark in wcmarks[]
@@ -185,6 +186,7 @@ if $opt_extra && test -f "$opt_builddir/Module.optional"; then
esac esac
path=${path%.ko} path=${path%.ko}
mod=${path##*/} mod=${path##*/}
mod=$(echo "$mod" | sed 'y/-/_/')
x=${modmarks["$mod"]} x=${modmarks["$mod"]}
if [ -n "$x" ]; then if [ -n "$x" ]; then
test x"$x" = x"-" && echo "$xpath" test x"$x" = x"-" && echo "$xpath"
@@ -192,6 +194,7 @@ if $opt_extra && test -f "$opt_builddir/Module.optional"; then
fi fi
# unmatched modules must be handled via wildcard # unmatched modules must be handled via wildcard
path=${path#/usr}
path=${path#/lib/modules/*/kernel/} path=${path#/lib/modules/*/kernel/}
for m in "${wcpaths[@]}"; do for m in "${wcpaths[@]}"; do
case "$path" in case "$path" in