1
0
forked from pool/kernel-source

1 Commits

Author SHA256 Message Date
59a3535b90 Sync changes to SLFO-1.2 branch 2025-08-20 15:19:19 +02:00
70 changed files with 1698127 additions and 2653537 deletions

View File

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

View File

@@ -4,18 +4,12 @@
<conditions>
<package>kernel-64kb</package>
<package>kernel-source:kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-source:kernel-debug</package>
<package>kernel-default</package>
<package>kernel-source:kernel-default</package>
<package>kernel-kvmsmall</package>
<package>kernel-source:kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-source:kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-source:kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-source:kernel-vanilla</package>
<package>kernel-rt</package>
<package>kernel-source:kernel-rt</package>
<package>kernel-zfcpdump</package>
<package>kernel-source:kernel-zfcpdump</package>
</conditions>
@@ -75,18 +69,12 @@
<arch>armv6l</arch>
<package>kernel-64kb</package>
<package>kernel-source:kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-source:kernel-debug</package>
<package>kernel-default</package>
<package>kernel-source:kernel-default</package>
<package>kernel-kvmsmall</package>
<package>kernel-source:kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-source:kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-source:kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-source:kernel-vanilla</package>
<package>kernel-rt</package>
<package>kernel-source:kernel-rt</package>
<package>kernel-zfcpdump</package>
<package>kernel-source:kernel-zfcpdump</package>
</conditions>
@@ -103,18 +91,12 @@
<arch>s390x</arch>
<package>kernel-64kb</package>
<package>kernel-source:kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-source:kernel-debug</package>
<package>kernel-default</package>
<package>kernel-source:kernel-default</package>
<package>kernel-kvmsmall</package>
<package>kernel-source:kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-source:kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-source:kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-source:kernel-vanilla</package>
<package>kernel-rt</package>
<package>kernel-source:kernel-rt</package>
<package>kernel-zfcpdump</package>
<package>kernel-source:kernel-zfcpdump</package>
</conditions>
@@ -136,18 +118,12 @@
<arch>riscv64</arch>
<package>kernel-64kb</package>
<package>kernel-source:kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-source:kernel-debug</package>
<package>kernel-default</package>
<package>kernel-source:kernel-default</package>
<package>kernel-kvmsmall</package>
<package>kernel-source:kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-source:kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-source:kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-source:kernel-vanilla</package>
<package>kernel-rt</package>
<package>kernel-source:kernel-rt</package>
<package>kernel-zfcpdump</package>
<package>kernel-source:kernel-zfcpdump</package>
</conditions>
@@ -164,18 +140,12 @@
<arch>ppc64le</arch>
<package>kernel-64kb</package>
<package>kernel-source:kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-source:kernel-debug</package>
<package>kernel-default</package>
<package>kernel-source:kernel-default</package>
<package>kernel-kvmsmall</package>
<package>kernel-source:kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-source:kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-source:kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-source:kernel-vanilla</package>
<package>kernel-rt</package>
<package>kernel-source:kernel-rt</package>
<package>kernel-zfcpdump</package>
<package>kernel-source:kernel-zfcpdump</package>
</conditions>
@@ -192,18 +162,12 @@
<arch>armv7l</arch>
<package>kernel-64kb</package>
<package>kernel-source:kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-source:kernel-debug</package>
<package>kernel-default</package>
<package>kernel-source:kernel-default</package>
<package>kernel-kvmsmall</package>
<package>kernel-source:kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-source:kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-source:kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-source:kernel-vanilla</package>
<package>kernel-rt</package>
<package>kernel-source:kernel-rt</package>
<package>kernel-zfcpdump</package>
<package>kernel-source:kernel-zfcpdump</package>
</conditions>
@@ -212,6 +176,18 @@
</hardware>
</overwrite>
<!-- POWER9 now required on ppc64le -->
<overwrite>
<conditions>
<arch>ppc64le</arch>
</conditions>
<hardware>
<cpu>
<flag>power9</flag>
</cpu>
</hardware>
</overwrite>
<!-- Build on recent ARMv8.1 to avoid slow builders -->
<overwrite>
<conditions>
@@ -231,18 +207,12 @@
<arch>x86_64</arch>
<package>kernel-64kb</package>
<package>kernel-source:kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-source:kernel-debug</package>
<package>kernel-default</package>
<package>kernel-source:kernel-default</package>
<package>kernel-kvmsmall</package>
<package>kernel-source:kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-source:kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-source:kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-source:kernel-vanilla</package>
<package>kernel-rt</package>
<package>kernel-source:kernel-rt</package>
<package>kernel-zfcpdump</package>
<package>kernel-source:kernel-zfcpdump</package>
</conditions>
@@ -259,18 +229,12 @@
<arch>riscv64</arch>
<package>kernel-64kb</package>
<package>kernel-source:kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-source:kernel-debug</package>
<package>kernel-default</package>
<package>kernel-source:kernel-default</package>
<package>kernel-kvmsmall</package>
<package>kernel-source:kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-source:kernel-lpae</package>
<package>kernel-pae</package>
<package>kernel-source:kernel-pae</package>
<package>kernel-vanilla</package>
<package>kernel-source:kernel-vanilla</package>
<package>kernel-rt</package>
<package>kernel-source:kernel-rt</package>
<package>kernel-zfcpdump</package>
<package>kernel-source:kernel-zfcpdump</package>
</conditions>

View File

@@ -1,18 +1,12 @@
<multibuild>
<package>dtb-aarch64</package>
<package>dtb-armv6l</package>
<package>dtb-armv7l</package>
<package>dtb-riscv64</package>
<package>kernel-64kb</package>
<package>kernel-debug</package>
<package>kernel-default</package>
<package>kernel-docs</package>
<package>kernel-kvmsmall</package>
<package>kernel-lpae</package>
<package>kernel-obs-build</package>
<package>kernel-obs-qa</package>
<package>kernel-pae</package>
<package>kernel-rt</package>
<package>kernel-syms</package>
<package>kernel-vanilla</package>
<package>kernel-zfcpdump</package>
</multibuild>

View File

@@ -6,30 +6,44 @@
# please keep them sorted alphabetically
declare -a IGNORED_CONFIGS_RE=(
'ARCH_USING_PATCHABLE_FUNCTION_ENTRY'
'AS_IS_\(GNU\|LLVM\)'
'AS_HAS_[A-Z0-9_]*'
'AS_VERSION'
'AS_WRUSS' # x86_32
'BUILTIN_RETURN_ADDRESS_STRIPS_PAC'
'CC_ASM_FLAG_OUTPUT_BROKEN'
'CC_CAN_[A-Z_]*'
'CC_IMPLICIT_FALLTHROUGH'
'CC_IS_\(CLANG\|GCC\)'
'CC_HAS_[A-Z_]*'
'CC_HAVE_[A-Z_]*'
'CC_VERSION_TEXT'
'CLANG_VERSION'
'DRM_MSM_VALIDATE_XML'
'DYNAMIC_SIGFRAME'
'FTRACE_MCOUNT_USE_[A-Z_]*'
'GCC_ASM_FLAG_OUTPUT_BROKEN'
'GCC_ASM_GOTO_OUTPUT_BROKEN'
'GCC_ASM_GOTO_OUTPUT_WORKAROUND'
'GCC_VERSION'
'G*CC[0-9]*_NO_[A-Z_]*'
'HAS_LTO_CLANG'
'HAVE_[A-Z]*_COMPILER'
'HAVE_RUST'
'HAVE_SHADOW_CALL_STACK'
'LD_CAN_[A-Z_]*'
'LD_IS_\(BFD\|LLD\)'
'LD_VERSION'
'LLD_VERSION'
'OBJTOOL'
'PAHOLE_HAS_[A-Z0-9_]*'
'PAHOLE_VERSION'
'RISCV_ISA_[A-Z_]*'
'RUSTC_SUPPORTS_[A-Z0-9_]*'
'TOOLCHAIN_HAS_[A-Z_]*'
'TOOLCHAIN_NEEDS_[A-Z_]*'
'TOOLS_SUPPORT_[A-Z_]*'
'USE_X86_SEG_SUPPORT'
)
declare -a SED_ARGS=()

View File

@@ -8,37 +8,17 @@
# 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 -syms x86_64/debug
- x86_64/syzkaller
+x86_64 x86_64/vanilla
+x86_64 -syms x86_64/kvmsmall
+x86_64 x86_64/rt
+ppc64le ppc64le/default
+ppc64le -syms ppc64le/debug
+ppc64le ppc64le/vanilla
+ppc64le -syms ppc64le/kvmsmall
# ARM architectures
+armv6hl armv6hl/default
+armv6hl armv6hl/vanilla
+armv7hl armv7hl/default
+armv7hl armv7hl/vanilla
+armv7hl armv7hl/lpae
+arm64 arm64/default
+arm64 -syms arm64/debug
+arm64 arm64/64kb
+arm64 arm64/vanilla
+arm64 -syms arm64/kvmsmall
+arm64 arm64/rt
+s390x s390x/default
+s390x s390x/vanilla
+s390x -syms s390x/zfcpdump
+riscv64 riscv64/default
+riscv64 riscv64/vanilla

View File

@@ -1,5 +1,5 @@
# The version of the main tarball to use
SRCVERSION=6.10
SRCVERSION=6.12
# variant of the kernel-source package, either empty or "-rt"
VARIANT=
# enable kernel module compression
@@ -11,19 +11,24 @@ BUILD_DTBS="Yes"
MULTIBUILD="Yes"
# Use new style livepatch package names
LIVEPATCH=livepatch
# Enable livepatching related packages on -rt variant
LIVEPATCH_RT=1
# buildservice projects to build the kernel against
OBS_PROJECT=openSUSE:Factory
OBS_PROJECT_ARM=openSUSE:Factory:ARM
OBS_PROJECT_LEGACYX86=openSUSE:Factory:LegacyX86
OBS_PROJECT_PPC=openSUSE:Factory:PowerPC
OBS_PROJECT_RISCV=openSUSE:Factory:RISCV
OBS_PROJECT_S390=openSUSE:Factory:zSystems
OBS_PROJECT=SUSE:SLFO:Main:Build
IBS_PROJECT=SUSE:SLFO:Main:Build
# Bugzilla info
BUGZILLA_SERVER="apibugzilla.suse.com"
BUGZILLA_PRODUCT="openSUSE Tumbleweed"
BUGZILLA_PRODUCT="SUSE Linux Enterprise Server 16.0"
BUGZILLA_COMPONENT="Kernel"
SPLIT_OPTIONAL=Yes
SUPPORTED_MODULES_CHECK=Yes
# build documentation in HTML format
BUILD_HTML=Yes
# build documentation in PDF format
BUILD_PDF=No
# Generate compile_commands.json
GENERATE_COMPILE_COMMANDS=Yes
# Set gcc version to the one used for build in IBS
GCC_VERSION=13
# Use the new kABI tool
USE_SUSE_KABI_TOOLS=Yes

BIN
config.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@@ -122,6 +122,18 @@
</hardware>
</overwrite>
<!-- POWER9 now required on ppc64le -->
<overwrite>
<conditions>
<arch>ppc64le</arch>
</conditions>
<hardware>
<cpu>
<flag>power9</flag>
</cpu>
</hardware>
</overwrite>
<!-- Build on recent ARMv8.1 to avoid slow builders -->
<overwrite>
<conditions>

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,18 +16,18 @@
#
%define srcversion 6.10
%define patchversion 6.10.9
%define srcversion 6.12
%define patchversion 6.12.0
%define variant %{nil}
%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,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: dtb-aarch64
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -38,11 +38,7 @@ URL: https://www.kernel.org/
BuildRequires: cpp
BuildRequires: dtc >= 1.4.3
BuildRequires: xz
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: aarch64
%else
ExclusiveArch: do_not_build
%endif
%define dtbdir /boot/dtb-%kernelrelease
@@ -80,7 +76,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -90,7 +85,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -150,7 +144,6 @@ NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
@@ -160,7 +153,6 @@ NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80

File diff suppressed because it is too large Load Diff

View File

@@ -1,269 +0,0 @@
#
# spec file for package dtb-armv6l
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define srcversion 6.10
%define patchversion 6.10.9
%define variant %{nil}
%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})
Name: dtb-armv6l
Version: 6.10.9
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
%else
Release: 0
%endif
Summary: Device Tree files for $MACHINES
License: GPL-2.0-only
Group: System/Boot
URL: https://www.kernel.org/
BuildRequires: cpp
BuildRequires: dtc >= 1.4.3
BuildRequires: xz
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: armv6l armv6hl
%else
ExclusiveArch: do_not_build
%endif
%define dtbdir /boot/dtb-%kernelrelease
Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz
Source3: kernel-source.rpmlintrc
Source14: series.conf
Source16: guards
Source17: apply-patches
Source19: kernel-binary-conflicts
Source20: obsolete-kmps
Source21: config.conf
Source23: supported.conf
Source33: check-for-config-changes
Source35: group-source-files.pl
Source36: README.PATCH-POLICY.SUSE
Source37: README.SUSE
Source38: README.KSYMS
Source40: source-timestamp
Source46: split-modules
Source47: modversions
Source48: macros.kernel-source
Source49: kernel-module-subpackage
Source50: kabi.pl
Source51: mkspec
Source52: kernel-source%variant.changes
Source53: kernel-source.spec.in
Source54: kernel-binary.spec.in
Source55: kernel-syms.spec.in
Source56: kernel-docs.spec.in
Source57: kernel-cert-subpackage
Source58: constraints.in
Source60: config.sh
Source61: compute-PATCHVERSION.sh
Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
Source71: kernel-obs-qa.spec.in
Source72: compress-vmlinux.sh
Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
Source81: moddep
Source82: modflist
Source83: kernel-subpackage-build
Source84: kernel-subpackage-spec
Source85: kernel-default-base.spec.txt
Source86: old_changelog.txt
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
Source103: patches.drivers.tar.bz2
Source104: patches.fixes.tar.bz2
Source105: patches.rpmify.tar.bz2
Source106: patches.suse.tar.bz2
Source108: patches.addon.tar.bz2
Source109: patches.kernel.org.tar.bz2
Source110: patches.apparmor.tar.bz2
Source111: patches.rt.tar.bz2
Source113: patches.kabi.tar.bz2
Source114: patches.drm.tar.bz2
Source120: kabi.tar.bz2
Source121: sysctl.tar.bz2
# These files are found in the kernel-source package:
NoSource: 0
NoSource: 3
NoSource: 14
NoSource: 16
NoSource: 17
NoSource: 19
NoSource: 20
NoSource: 21
NoSource: 23
NoSource: 33
NoSource: 35
NoSource: 36
NoSource: 37
NoSource: 38
NoSource: 40
NoSource: 46
NoSource: 47
NoSource: 48
NoSource: 49
NoSource: 50
NoSource: 51
NoSource: 52
NoSource: 53
NoSource: 54
NoSource: 55
NoSource: 56
NoSource: 57
NoSource: 58
NoSource: 60
NoSource: 61
NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
NoSource: 71
NoSource: 72
NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80
NoSource: 81
NoSource: 82
NoSource: 83
NoSource: 84
NoSource: 85
NoSource: 86
NoSource: 100
NoSource: 101
NoSource: 102
NoSource: 103
NoSource: 104
NoSource: 105
NoSource: 106
NoSource: 108
NoSource: 109
NoSource: 110
NoSource: 111
NoSource: 113
NoSource: 114
NoSource: 120
NoSource: 121
Requires: kernel = %version
%description
Device Tree files for $MACHINES.
%package -n dtb-bcm2835
Summary: Raspberry Pi 1 (A+, B, B+)
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-bcm2835
Device Tree files for Raspberry Pi 1 (A+, B, B+).
%post -n dtb-bcm2835
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-bcm2835 -f dtb-bcm2835.list
%else
%files -n dtb-bcm2835
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/broadcom
%{dtbdir}/broadcom/bcm2835*.dtb
%prep
# Unpack all sources and patches
%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 108 -a 109 -a 110 -a 111 -a 113 -a 114 -a 120 -a 121
cd linux-%srcversion
%_sourcedir/apply-patches %_sourcedir/series.conf ..
%build
source=linux-%srcversion
cp $source/COPYING .
SRCDIR=$PWD/$source
mkdir pp
PPDIR=$PWD/pp
export DTC_FLAGS="-R 4 -p 0x1000"
DTC_FLAGS="$DTC_FLAGS -@"
cd $source/arch/arm/boot/dts
for dts in broadcom/bcm2835*.dts ; do
target=${dts%*.dts}
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
dtc $DTC_FLAGS -I dts -O dtb -i ./$(dirname $target) -o $PPDIR/$target.dtb $PPDIR/$target.dts
done
%install
cd pp
for dts in broadcom/bcm2835*.dts ; do
target=${dts%*.dts}
install -m 755 -d %{buildroot}%{dtbdir}/$(dirname $target)
# install -m 644 COPYING %{buildroot}%{dtbdir}/$(dirname $target)
install -m 644 $target.dtb %{buildroot}%{dtbdir}/$(dirname $target)
%ifarch %arm aarch64 riscv64
# HACK: work around U-Boot ignoring vendor dir
baselink=%{dtbdir}/$(basename $target).dtb
ln -s $target.dtb %{buildroot}$baselink
%ifarch %arm
case $dts in
broadcom/bcm2835*.dts) pkgname=dtb-bcm2835;;
esac
echo $baselink >> ../$pkgname.list
%else
vendordir=$(basename $(dirname $target))
echo $baselink >> ../dtb-$vendordir.list
%endif
%endif
done
cd -
%changelog

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,430 +0,0 @@
#
# spec file for package dtb-riscv64
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define srcversion 6.10
%define patchversion 6.10.9
%define variant %{nil}
%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})
Name: dtb-riscv64
Version: 6.10.9
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
%else
Release: 0
%endif
Summary: Device Tree files for $MACHINES
License: GPL-2.0-only
Group: System/Boot
URL: https://www.kernel.org/
BuildRequires: cpp
BuildRequires: dtc >= 1.4.3
BuildRequires: xz
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: riscv64
%else
ExclusiveArch: do_not_build
%endif
%define dtbdir /boot/dtb-%kernelrelease
Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz
Source3: kernel-source.rpmlintrc
Source14: series.conf
Source16: guards
Source17: apply-patches
Source19: kernel-binary-conflicts
Source20: obsolete-kmps
Source21: config.conf
Source23: supported.conf
Source33: check-for-config-changes
Source35: group-source-files.pl
Source36: README.PATCH-POLICY.SUSE
Source37: README.SUSE
Source38: README.KSYMS
Source40: source-timestamp
Source46: split-modules
Source47: modversions
Source48: macros.kernel-source
Source49: kernel-module-subpackage
Source50: kabi.pl
Source51: mkspec
Source52: kernel-source%variant.changes
Source53: kernel-source.spec.in
Source54: kernel-binary.spec.in
Source55: kernel-syms.spec.in
Source56: kernel-docs.spec.in
Source57: kernel-cert-subpackage
Source58: constraints.in
Source60: config.sh
Source61: compute-PATCHVERSION.sh
Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
Source71: kernel-obs-qa.spec.in
Source72: compress-vmlinux.sh
Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
Source81: moddep
Source82: modflist
Source83: kernel-subpackage-build
Source84: kernel-subpackage-spec
Source85: kernel-default-base.spec.txt
Source86: old_changelog.txt
Source100: config.tar.bz2
Source101: config.addon.tar.bz2
Source102: patches.arch.tar.bz2
Source103: patches.drivers.tar.bz2
Source104: patches.fixes.tar.bz2
Source105: patches.rpmify.tar.bz2
Source106: patches.suse.tar.bz2
Source108: patches.addon.tar.bz2
Source109: patches.kernel.org.tar.bz2
Source110: patches.apparmor.tar.bz2
Source111: patches.rt.tar.bz2
Source113: patches.kabi.tar.bz2
Source114: patches.drm.tar.bz2
Source120: kabi.tar.bz2
Source121: sysctl.tar.bz2
# These files are found in the kernel-source package:
NoSource: 0
NoSource: 3
NoSource: 14
NoSource: 16
NoSource: 17
NoSource: 19
NoSource: 20
NoSource: 21
NoSource: 23
NoSource: 33
NoSource: 35
NoSource: 36
NoSource: 37
NoSource: 38
NoSource: 40
NoSource: 46
NoSource: 47
NoSource: 48
NoSource: 49
NoSource: 50
NoSource: 51
NoSource: 52
NoSource: 53
NoSource: 54
NoSource: 55
NoSource: 56
NoSource: 57
NoSource: 58
NoSource: 60
NoSource: 61
NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
NoSource: 71
NoSource: 72
NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80
NoSource: 81
NoSource: 82
NoSource: 83
NoSource: 84
NoSource: 85
NoSource: 86
NoSource: 100
NoSource: 101
NoSource: 102
NoSource: 103
NoSource: 104
NoSource: 105
NoSource: 106
NoSource: 108
NoSource: 109
NoSource: 110
NoSource: 111
NoSource: 113
NoSource: 114
NoSource: 120
NoSource: 121
Requires: kernel = %version
%description
Device Tree files for $MACHINES.
%package -n dtb-allwinner
Summary: Allwinner based riscv64 systems
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-allwinner
Device Tree files for Allwinner based riscv64 systems.
%post -n dtb-allwinner
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-allwinner -f dtb-allwinner.list
%else
%files -n dtb-allwinner
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/allwinner
%{dtbdir}/allwinner/*.dtb
%package -n dtb-microchip
Summary: Microchip based riscv64 systems
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-microchip
Device Tree files for Microchip based riscv64 systems.
%post -n dtb-microchip
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-microchip -f dtb-microchip.list
%else
%files -n dtb-microchip
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/microchip
%{dtbdir}/microchip/*.dtb
%package -n dtb-renesas
Summary: Renesas based riscv64 systems
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-renesas
Device Tree files for Renesas based riscv64 systems.
%post -n dtb-renesas
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-renesas -f dtb-renesas.list
%else
%files -n dtb-renesas
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/renesas
%{dtbdir}/renesas/*.dtb
%package -n dtb-sifive
Summary: SiFive based riscv64 systems
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-sifive
Device Tree files for SiFive based riscv64 systems.
%post -n dtb-sifive
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-sifive -f dtb-sifive.list
%else
%files -n dtb-sifive
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/sifive
%{dtbdir}/sifive/*.dtb
%package -n dtb-sophgo
Summary: Sophgo based riscv64 systems
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-sophgo
Device Tree files for Sophgo based riscv64 systems.
%post -n dtb-sophgo
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-sophgo -f dtb-sophgo.list
%else
%files -n dtb-sophgo
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/sophgo
%{dtbdir}/sophgo/*.dtb
%package -n dtb-starfive
Summary: StarFive based riscv64 systems
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-starfive
Device Tree files for StarFive based riscv64 systems.
%post -n dtb-starfive
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-starfive -f dtb-starfive.list
%else
%files -n dtb-starfive
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/starfive
%{dtbdir}/starfive/*.dtb
%package -n dtb-thead
Summary: T-HEAD based riscv64 systems
Group: System/Boot
Provides: multiversion(dtb)
Requires(post): coreutils
%description -n dtb-thead
Device Tree files for T-HEAD based riscv64 systems.
%post -n dtb-thead
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-thead -f dtb-thead.list
%else
%files -n dtb-thead
%endif
%defattr(-,root,root)
%ghost /boot/dtb
%dir %{dtbdir}
%dir %{dtbdir}/thead
%{dtbdir}/thead/*.dtb
%prep
# Unpack all sources and patches
%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 108 -a 109 -a 110 -a 111 -a 113 -a 114 -a 120 -a 121
cd linux-%srcversion
%_sourcedir/apply-patches %_sourcedir/series.conf ..
%build
source=linux-%srcversion
cp $source/COPYING .
SRCDIR=$PWD/$source
mkdir pp
PPDIR=$PWD/pp
export DTC_FLAGS="-R 4 -p 0x1000"
DTC_FLAGS="$DTC_FLAGS -@"
cd $source/arch/riscv/boot/dts
for dts in allwinner/*.dts microchip/*.dts renesas/*.dts sifive/*.dts sophgo/*.dts starfive/*.dts thead/*.dts ; do
target=${dts%*.dts}
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
dtc $DTC_FLAGS -I dts -O dtb -i ./$(dirname $target) -o $PPDIR/$target.dtb $PPDIR/$target.dts
done
%install
cd pp
for dts in allwinner/*.dts microchip/*.dts renesas/*.dts sifive/*.dts sophgo/*.dts starfive/*.dts thead/*.dts ; do
target=${dts%*.dts}
install -m 755 -d %{buildroot}%{dtbdir}/$(dirname $target)
# install -m 644 COPYING %{buildroot}%{dtbdir}/$(dirname $target)
install -m 644 $target.dtb %{buildroot}%{dtbdir}/$(dirname $target)
%ifarch %arm aarch64 riscv64
# HACK: work around U-Boot ignoring vendor dir
baselink=%{dtbdir}/$(basename $target).dtb
ln -s $target.dtb %{buildroot}$baselink
%ifarch %arm
case $dts in
esac
echo $baselink >> ../$pkgname.list
%else
vendordir=$(basename $(dirname $target))
echo $baselink >> ../dtb-$vendordir.list
%endif
%endif
done
cd -
%changelog

View File

@@ -38,11 +38,7 @@ URL: https://www.kernel.org/
BuildRequires: cpp
BuildRequires: dtc >= 1.4.3
BuildRequires: xz
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
$ARCH_RESTRICTIONS
%else
ExclusiveArch: do_not_build
%endif
%define dtbdir /boot/dtb-%kernelrelease

BIN
kabi.tar.bz2 (Stored with Git LFS)

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,29 +17,32 @@
# needssslcertforbuild
%define srcversion 6.10
%define patchversion 6.10.9
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403
%define srcversion 6.12
%define patchversion 6.12.0
%define git_commit b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%define variant %{nil}
%define compress_modules zstd
%define compress_vmlinux xz
%define livepatch livepatch%{nil}
%define livepatch_rt %{nil}
%define livepatch_rt 1%{nil}
%define sb_efi_only 0
%define split_base 0
%define split_optional 0
%define supported_modules_check 0
%define split_optional 1
%define supported_modules_check 1
%define build_flavor 64kb
%define generate_compile_commands 1
%define use_suse_kabi_tools 1
%define gcc_package gcc13
%define gcc_compiler gcc-13
%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,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-64kb
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -59,8 +62,8 @@ BuildRequires: flex
# does not expand %%(...)
%if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++
BuildRequires: gcc-devel
BuildRequires: %gcc_package-c++
BuildRequires: %gcc_package-devel
%endif
BuildRequires: hmaccalc
BuildRequires: libopenssl-devel
@@ -73,6 +76,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22
%endif
BuildRequires: %gcc_package
# for objtool
BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check
@@ -80,17 +84,16 @@ BuildRequires: elfutils
%ifarch %arm
BuildRequires: u-boot-tools
%endif
%if %use_suse_kabi_tools
BuildRequires: suse-kabi-tools
%endif
# Do not install p-b and dracut for the install check, the %post script is
# able to handle this
#!BuildIgnore: perl-Bootloader dracut distribution-release suse-kernel-rpm-scriptlets
# Remove some packages that are installed automatically by the build system,
# but are not needed to build the kernel
#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools udev insserv
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: aarch64
%else
ExclusiveArch: do_not_build
%endif
%ifarch %ix86 x86_64
%define image vmlinuz
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%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:") )
%define klp_symbols 1
%define klp_ipa_clones 1
%endif
# 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")
%if "%CONFIG_MODULES" != "y"
%define klp_symbols 0
%define klp_ipa_clones 0
%endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -199,7 +202,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -209,7 +211,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -269,7 +270,6 @@ NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
@@ -279,7 +279,6 @@ NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80
@@ -356,14 +355,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -494,14 +494,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -772,6 +773,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla)
%endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22
%endif
@@ -780,6 +784,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release
%endif
%endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel
PreReq: coreutils
@@ -808,7 +813,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif
@@ -817,7 +821,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu
%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"
%define patch_package %{livepatch}-patch
%else
@@ -847,17 +851,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir
%endif
%if 0%{?klp_symbols} && "%livepatch" != ""
%if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all
kernel symbols and its respective kernel object . This list is to be used by
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
This package brings ipa-clones files, which are used to to track
set of functions where a code from another function can eventually occur.
%files %{livepatch}-devel -f livepatch-files
%endif
@@ -1146,59 +1147,6 @@ accessible simultaneously from multiple nodes of a cluster.
%files -n ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
%package -n reiserfs-kmp-%build_flavor
Summary: Reiserfs kernel module
Group: System/Kernel
Requires: %name = %version-%source_rel
Provides: reiserfs-kmp = %version-%source_rel
Provides: multiversion(kernel)
# tell weak-modules2 to ignore this package
Provides: kmp_in_kernel
Requires(post): suse-module-tools >= 12.4
%if %build_default
%if "%CONFIG_PREEMPT_DYNAMIC" == "y"
Provides: reiserfs-kmp-preempt = %version-%release
%endif
%endif
Enhances: %name
Supplements: packageand(%name:reiserfs-kmp-%build_flavor)
%description -n reiserfs-kmp-%build_flavor
The reiserfs file system is no longer supported in SLE15. This package
provides the reiserfs module for the installation system.
%pre -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%post -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%preun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%postun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%posttrans -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%files -n reiserfs-kmp-%build_flavor -f reiserfs-kmp.files
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
@@ -1243,7 +1191,7 @@ awk '{
subpackages=(
base
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp reiserfs-kmp
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -1276,6 +1224,9 @@ cd linux-%srcversion
%endif
%_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
# Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1441,10 +1392,12 @@ find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' ! -name 'Module.op
cd %kernel_build_dir
source .kernel-binary.spec.buildenv
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%if !%use_suse_kabi_tools
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%endif
%if "%CONFIG_KMSG_IDS" == "y"
chmod +x ../scripts/kmsg-doc
@@ -1468,14 +1421,9 @@ while true; do
fi
done
# Generate list of symbols that are used to create kernel livepatches
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%if 0%{?klp_ipa_clones} && %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json $MAKE_ARGS
%endif
%install
@@ -1664,35 +1612,34 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %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
%if 0%{?klp_symbols}
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
# 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_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%if %generate_compile_commands
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
%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
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
tar -C %kernel_build_dir \
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
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \
--verbatim-files-from \
%endif
-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
%endif
-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
%endif
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
gzip -n -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
%if %use_suse_kabi_tools
ksymtypes consolidate %{?_smp_mflags} \
--output=%my_builddir/symtypes-%build_flavor .
%else
%_sourcedir/modversions --pack . > %my_builddir/symtypes-%build_flavor
%endif
if [ -s %my_builddir/symtypes-%build_flavor ]; then
gzip -n -9 -c %my_builddir/symtypes-%build_flavor \
> %buildroot/boot/symtypes-%kernelrelease-%build_flavor.gz
fi
# Some architecture's $(uname -m) output is different from the ARCH
@@ -1743,11 +1690,25 @@ if [ %CONFIG_MODULES = y ]; then
res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%if %use_suse_kabi_tools
ksymvers compare --rules=%my_builddir/kabi/severities \
--format=symbols:%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%else
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%endif
fi
if [ $res -ne 0 ]; then
%if %use_suse_kabi_tools
ksymtypes compare %{?_smp_mflags} \
--filter-symbol-list=%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symtypes-%build_flavor \
%my_builddir/symtypes-%build_flavor
%endif
# %ignore_kabi_badness is defined in the Kernel:* projects in the
# OBS to be able to build the KOTD in spite of kabi errors
if [ 0%{?ignore_kabi_badness} -eq 0 -a \
@@ -1798,7 +1759,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
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
@@ -1879,7 +1841,7 @@ shopt -s nullglob dotglob
fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( 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
{ echo %ghost /boot/%image
@@ -1977,7 +1939,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%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
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package.
@@ -1988,7 +1950,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel).
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
%endif
%if %{usrmerged}

View File

@@ -31,6 +31,9 @@
%define supported_modules_check @SUPPORTED_MODULES_CHECK@
%define build_flavor @FLAVOR@
%define generate_compile_commands @GENERATE_COMPILE_COMMANDS@
%define use_suse_kabi_tools @USE_SUSE_KABI_TOOLS@
%define gcc_package @GCC_PACKAGE@
%define gcc_compiler @GCC_COMPILER@
%include %_sourcedir/kernel-spec-macros
@@ -59,8 +62,8 @@ BuildRequires: flex
# does not expand %%(...)
%if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++
BuildRequires: gcc-devel
BuildRequires: %gcc_package-c++
BuildRequires: %gcc_package-devel
%endif
BuildRequires: hmaccalc
BuildRequires: libopenssl-devel
@@ -73,6 +76,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22
%endif
BuildRequires: %gcc_package
# for objtool
BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check
@@ -80,17 +84,16 @@ BuildRequires: elfutils
%ifarch %arm
BuildRequires: u-boot-tools
%endif
%if %use_suse_kabi_tools
BuildRequires: suse-kabi-tools
%endif
# Do not install p-b and dracut for the install check, the %post script is
# able to handle this
#!BuildIgnore: perl-Bootloader dracut distribution-release suse-kernel-rpm-scriptlets
# Remove some packages that are installed automatically by the build system,
# but are not needed to build the kernel
#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools udev insserv
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: @ARCHS@
%else
ExclusiveArch: do_not_build
%endif
%ifarch %ix86 x86_64
%define image vmlinuz
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%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:") )
%define klp_symbols 1
%define klp_ipa_clones 1
%endif
# 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")
%if "%CONFIG_MODULES" != "y"
%define klp_symbols 0
%define klp_ipa_clones 0
%endif
%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
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -577,6 +581,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla)
%endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22
%endif
@@ -585,6 +592,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release
%endif
%endif
Requires: %gcc_package
@PROVIDES_OBSOLETES_DEVEL@
%obsolete_rebuilds %name-devel
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/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif
@@ -623,7 +630,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu
%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"
%define patch_package %{livepatch}-patch
%else
@@ -653,17 +660,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir
%endif
%if 0%{?klp_symbols} && "%livepatch" != ""
%if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all
kernel symbols and its respective kernel object . This list is to be used by
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
This package brings ipa-clones files, which are used to to track
set of functions where a code from another function can eventually occur.
%files %{livepatch}-devel -f livepatch-files
%endif
@@ -800,6 +804,9 @@ cd linux-%srcversion
%endif
%_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
# Override the timestamp 'uname -v' reports with the source timestamp and
@@ -965,10 +972,12 @@ find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' ! -name 'Module.op
cd %kernel_build_dir
source .kernel-binary.spec.buildenv
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%if !%use_suse_kabi_tools
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%endif
%if "%CONFIG_KMSG_IDS" == "y"
chmod +x ../scripts/kmsg-doc
@@ -992,14 +1001,9 @@ while true; do
fi
done
# Generate list of symbols that are used to create kernel livepatches
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%if 0%{?klp_ipa_clones} && %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json $MAKE_ARGS
%endif
%install
@@ -1188,35 +1192,34 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %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
%if 0%{?klp_symbols}
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
# 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_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%if %generate_compile_commands
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
%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
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
tar -C %kernel_build_dir \
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
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \
--verbatim-files-from \
%endif
-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
%endif
-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
%endif
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
gzip -n -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
%if %use_suse_kabi_tools
ksymtypes consolidate %{?_smp_mflags} \
--output=%my_builddir/symtypes-%build_flavor .
%else
%_sourcedir/modversions --pack . > %my_builddir/symtypes-%build_flavor
%endif
if [ -s %my_builddir/symtypes-%build_flavor ]; then
gzip -n -9 -c %my_builddir/symtypes-%build_flavor \
> %buildroot/boot/symtypes-%kernelrelease-%build_flavor.gz
fi
# Some architecture's $(uname -m) output is different from the ARCH
@@ -1267,11 +1270,25 @@ if [ %CONFIG_MODULES = y ]; then
res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%if %use_suse_kabi_tools
ksymvers compare --rules=%my_builddir/kabi/severities \
--format=symbols:%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%else
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%endif
fi
if [ $res -ne 0 ]; then
%if %use_suse_kabi_tools
ksymtypes compare %{?_smp_mflags} \
--filter-symbol-list=%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symtypes-%build_flavor \
%my_builddir/symtypes-%build_flavor
%endif
# %ignore_kabi_badness is defined in the Kernel:* projects in the
# OBS to be able to build the KOTD in spite of kabi errors
if [ 0%{?ignore_kabi_badness} -eq 0 -a \
@@ -1322,7 +1339,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
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
@@ -1403,7 +1421,7 @@ shopt -s nullglob dotglob
fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( 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
{ echo %ghost /boot/%image
@@ -1501,7 +1519,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%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
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package.
@@ -1512,7 +1530,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel).
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
%endif
%if %{usrmerged}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,29 +17,32 @@
# needssslcertforbuild
%define srcversion 6.10
%define patchversion 6.10.9
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403
%define srcversion 6.12
%define patchversion 6.12.0
%define git_commit b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%define variant %{nil}
%define compress_modules zstd
%define compress_vmlinux xz
%define livepatch livepatch%{nil}
%define livepatch_rt %{nil}
%define livepatch_rt 1%{nil}
%define sb_efi_only 0
%define split_base 0
%define split_optional 0
%define supported_modules_check 0
%define split_optional 1
%define supported_modules_check 1
%define build_flavor default
%define generate_compile_commands 1
%define use_suse_kabi_tools 1
%define gcc_package gcc13
%define gcc_compiler gcc-13
%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,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-default
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -59,8 +62,8 @@ BuildRequires: flex
# does not expand %%(...)
%if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++
BuildRequires: gcc-devel
BuildRequires: %gcc_package-c++
BuildRequires: %gcc_package-devel
%endif
BuildRequires: hmaccalc
BuildRequires: libopenssl-devel
@@ -73,6 +76,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22
%endif
BuildRequires: %gcc_package
# for objtool
BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check
@@ -80,17 +84,16 @@ BuildRequires: elfutils
%ifarch %arm
BuildRequires: u-boot-tools
%endif
%if %use_suse_kabi_tools
BuildRequires: suse-kabi-tools
%endif
# Do not install p-b and dracut for the install check, the %post script is
# able to handle this
#!BuildIgnore: perl-Bootloader dracut distribution-release suse-kernel-rpm-scriptlets
# Remove some packages that are installed automatically by the build system,
# but are not needed to build the kernel
#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools udev insserv
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc64le riscv64 s390x x86_64
%else
ExclusiveArch: do_not_build
%endif
ExclusiveArch: aarch64 ppc64le s390x x86_64
%ifarch %ix86 x86_64
%define image vmlinuz
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%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:") )
%define klp_symbols 1
%define klp_ipa_clones 1
%endif
# 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")
%if "%CONFIG_MODULES" != "y"
%define klp_symbols 0
%define klp_ipa_clones 0
%endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -199,7 +202,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -209,7 +211,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -269,7 +270,6 @@ NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
@@ -279,7 +279,6 @@ NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80
@@ -356,14 +355,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -396,10 +396,6 @@ Provides: kernel-%build_flavor-base-srchash-%git_commit
Provides: kernel-srchash-%git_commit
# END COMMON DEPS
Provides: %name-srchash-%git_commit
%ifarch %ix86
Provides: kernel-trace = 3.13
Obsoletes: kernel-trace <= 3.13
%endif
%ifarch s390x
Provides: kernel-trace = 3.13
Obsoletes: kernel-trace <= 3.13
@@ -416,10 +412,6 @@ Obsoletes: kernel-xen <= 4.4
Provides: kernel-ec2 = 4.4
Obsoletes: kernel-ec2 <= 4.4
%endif
%ifarch %ix86
Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13
%endif
%ifarch s390x
Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13
@@ -531,14 +523,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -570,10 +563,6 @@ Provides: kernel = %version-%source_rel
Provides: kernel-%build_flavor-base-srchash-%git_commit
Provides: kernel-srchash-%git_commit
%ifarch %ix86
Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13
%endif
%ifarch s390x
Provides: kernel-trace-base = 3.13
Obsoletes: kernel-trace-base <= 3.13
@@ -647,10 +636,6 @@ Requires(pre): coreutils awk
Requires(post): modutils
Requires(post): perl-Bootloader
Requires(post): dracut
%ifarch %ix86
Provides: kernel-trace-extra = 3.13
Obsoletes: kernel-trace-extra <= 3.13
%endif
%ifarch s390x
Provides: kernel-trace-extra = 3.13
Obsoletes: kernel-trace-extra <= 3.13
@@ -737,10 +722,6 @@ Requires(pre): coreutils awk
Requires(post): modutils
Requires(post): perl-Bootloader
Requires(post): dracut
%ifarch %ix86
Provides: kernel-trace-optional = 3.13
Obsoletes: kernel-trace-optional <= 3.13
%endif
%ifarch s390x
Provides: kernel-trace-optional = 3.13
Obsoletes: kernel-trace-optional <= 3.13
@@ -860,6 +841,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla)
%endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22
%endif
@@ -868,10 +852,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release
%endif
%endif
%ifarch %ix86
Provides: kernel-trace-devel = 3.13
Obsoletes: kernel-trace-devel <= 3.13
%endif
Requires: %gcc_package
%ifarch s390x
Provides: kernel-trace-devel = 3.13
Obsoletes: kernel-trace-devel <= 3.13
@@ -916,7 +897,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif
@@ -925,7 +905,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu
%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"
%define patch_package %{livepatch}-patch
%else
@@ -955,17 +935,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir
%endif
%if 0%{?klp_symbols} && "%livepatch" != ""
%if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all
kernel symbols and its respective kernel object . This list is to be used by
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
This package brings ipa-clones files, which are used to to track
set of functions where a code from another function can eventually occur.
%files %{livepatch}-devel -f livepatch-files
%endif
@@ -1254,59 +1231,6 @@ accessible simultaneously from multiple nodes of a cluster.
%files -n ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
%package -n reiserfs-kmp-%build_flavor
Summary: Reiserfs kernel module
Group: System/Kernel
Requires: %name = %version-%source_rel
Provides: reiserfs-kmp = %version-%source_rel
Provides: multiversion(kernel)
# tell weak-modules2 to ignore this package
Provides: kmp_in_kernel
Requires(post): suse-module-tools >= 12.4
%if %build_default
%if "%CONFIG_PREEMPT_DYNAMIC" == "y"
Provides: reiserfs-kmp-preempt = %version-%release
%endif
%endif
Enhances: %name
Supplements: packageand(%name:reiserfs-kmp-%build_flavor)
%description -n reiserfs-kmp-%build_flavor
The reiserfs file system is no longer supported in SLE15. This package
provides the reiserfs module for the installation system.
%pre -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%post -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%preun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%postun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%posttrans -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%files -n reiserfs-kmp-%build_flavor -f reiserfs-kmp.files
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
@@ -1351,7 +1275,7 @@ awk '{
subpackages=(
base
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp reiserfs-kmp
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -1384,6 +1308,9 @@ cd linux-%srcversion
%endif
%_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
# Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1549,10 +1476,12 @@ find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' ! -name 'Module.op
cd %kernel_build_dir
source .kernel-binary.spec.buildenv
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%if !%use_suse_kabi_tools
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%endif
%if "%CONFIG_KMSG_IDS" == "y"
chmod +x ../scripts/kmsg-doc
@@ -1576,14 +1505,9 @@ while true; do
fi
done
# Generate list of symbols that are used to create kernel livepatches
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%if 0%{?klp_ipa_clones} && %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json $MAKE_ARGS
%endif
%install
@@ -1772,35 +1696,34 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %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
%if 0%{?klp_symbols}
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
# 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_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%if %generate_compile_commands
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
%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
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
tar -C %kernel_build_dir \
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
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \
--verbatim-files-from \
%endif
-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
%endif
-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
%endif
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
gzip -n -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
%if %use_suse_kabi_tools
ksymtypes consolidate %{?_smp_mflags} \
--output=%my_builddir/symtypes-%build_flavor .
%else
%_sourcedir/modversions --pack . > %my_builddir/symtypes-%build_flavor
%endif
if [ -s %my_builddir/symtypes-%build_flavor ]; then
gzip -n -9 -c %my_builddir/symtypes-%build_flavor \
> %buildroot/boot/symtypes-%kernelrelease-%build_flavor.gz
fi
# Some architecture's $(uname -m) output is different from the ARCH
@@ -1851,11 +1774,25 @@ if [ %CONFIG_MODULES = y ]; then
res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%if %use_suse_kabi_tools
ksymvers compare --rules=%my_builddir/kabi/severities \
--format=symbols:%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%else
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%endif
fi
if [ $res -ne 0 ]; then
%if %use_suse_kabi_tools
ksymtypes compare %{?_smp_mflags} \
--filter-symbol-list=%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symtypes-%build_flavor \
%my_builddir/symtypes-%build_flavor
%endif
# %ignore_kabi_badness is defined in the Kernel:* projects in the
# OBS to be able to build the KOTD in spite of kabi errors
if [ 0%{?ignore_kabi_badness} -eq 0 -a \
@@ -1906,7 +1843,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
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
@@ -1987,7 +1925,7 @@ shopt -s nullglob dotglob
fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( 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
{ echo %ghost /boot/%image
@@ -2085,7 +2023,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%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
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package.
@@ -2096,7 +2034,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel).
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
%endif
%if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,21 +16,21 @@
#
%define srcversion 6.10
%define patchversion 6.10.9
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403
%define srcversion 6.12
%define patchversion 6.12.0
%define git_commit b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%define variant %{nil}
%define build_html 1
%define build_pdf 0
%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,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-docs
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -84,11 +84,7 @@ BuildRequires: texlive-xetex
BuildRequires: texlive-zapfding
%endif
%endif
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
BuildArch: noarch
%else
ExclusiveArch: do_not_build
%endif
Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz
Source3: kernel-source.rpmlintrc
Source14: series.conf
@@ -123,7 +119,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -133,7 +128,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -193,7 +187,6 @@ NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
@@ -203,7 +196,6 @@ NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80
@@ -285,6 +277,8 @@ cd linux-%srcversion
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
%build
# for reproducible builds (bsc#1238303)
export PARALLELISM=1
cd linux-%srcversion
export LANG=en_US.utf8
%if %build_html

View File

@@ -84,11 +84,7 @@ BuildRequires: texlive-xetex
BuildRequires: texlive-zapfding
%endif
%endif
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
BuildArch: noarch
%else
ExclusiveArch: do_not_build
%endif
@SOURCES@
Provides: %name = %version-%source_rel
Provides: %name-srchash-%git_commit
@@ -147,6 +143,8 @@ cd linux-%srcversion
%_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
%build
# for reproducible builds (bsc#1238303)
export PARALLELISM=1
cd linux-%srcversion
export LANG=en_US.utf8
%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
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,29 +17,32 @@
# needssslcertforbuild
%define srcversion 6.10
%define patchversion 6.10.9
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403
%define srcversion 6.12
%define patchversion 6.12.0
%define git_commit b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%define variant %{nil}
%define compress_modules zstd
%define compress_vmlinux xz
%define livepatch livepatch%{nil}
%define livepatch_rt %{nil}
%define livepatch_rt 1%{nil}
%define sb_efi_only 0
%define split_base 0
%define split_optional 0
%define supported_modules_check 0
%define split_optional 1
%define supported_modules_check 1
%define build_flavor kvmsmall
%define generate_compile_commands 1
%define use_suse_kabi_tools 1
%define gcc_package gcc13
%define gcc_compiler gcc-13
%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,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-kvmsmall
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -59,8 +62,8 @@ BuildRequires: flex
# does not expand %%(...)
%if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++
BuildRequires: gcc-devel
BuildRequires: %gcc_package-c++
BuildRequires: %gcc_package-devel
%endif
BuildRequires: hmaccalc
BuildRequires: libopenssl-devel
@@ -73,6 +76,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22
%endif
BuildRequires: %gcc_package
# for objtool
BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check
@@ -80,17 +84,16 @@ BuildRequires: elfutils
%ifarch %arm
BuildRequires: u-boot-tools
%endif
%if %use_suse_kabi_tools
BuildRequires: suse-kabi-tools
%endif
# Do not install p-b and dracut for the install check, the %post script is
# able to handle this
#!BuildIgnore: perl-Bootloader dracut distribution-release suse-kernel-rpm-scriptlets
# Remove some packages that are installed automatically by the build system,
# but are not needed to build the kernel
#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools udev insserv
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: aarch64 ppc64le x86_64
%else
ExclusiveArch: do_not_build
%endif
%ifarch %ix86 x86_64
%define image vmlinuz
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%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:") )
%define klp_symbols 1
%define klp_ipa_clones 1
%endif
# 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")
%if "%CONFIG_MODULES" != "y"
%define klp_symbols 0
%define klp_ipa_clones 0
%endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -199,7 +202,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -209,7 +211,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -269,7 +270,6 @@ NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
@@ -279,7 +279,6 @@ NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80
@@ -356,14 +355,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -498,14 +498,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -788,6 +789,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla)
%endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22
%endif
@@ -796,6 +800,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release
%endif
%endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel
PreReq: coreutils
@@ -824,7 +829,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif
@@ -833,7 +837,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu
%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"
%define patch_package %{livepatch}-patch
%else
@@ -863,17 +867,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir
%endif
%if 0%{?klp_symbols} && "%livepatch" != ""
%if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all
kernel symbols and its respective kernel object . This list is to be used by
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
This package brings ipa-clones files, which are used to to track
set of functions where a code from another function can eventually occur.
%files %{livepatch}-devel -f livepatch-files
%endif
@@ -1162,59 +1163,6 @@ accessible simultaneously from multiple nodes of a cluster.
%files -n ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
%package -n reiserfs-kmp-%build_flavor
Summary: Reiserfs kernel module
Group: System/Kernel
Requires: %name = %version-%source_rel
Provides: reiserfs-kmp = %version-%source_rel
Provides: multiversion(kernel)
# tell weak-modules2 to ignore this package
Provides: kmp_in_kernel
Requires(post): suse-module-tools >= 12.4
%if %build_default
%if "%CONFIG_PREEMPT_DYNAMIC" == "y"
Provides: reiserfs-kmp-preempt = %version-%release
%endif
%endif
Enhances: %name
Supplements: packageand(%name:reiserfs-kmp-%build_flavor)
%description -n reiserfs-kmp-%build_flavor
The reiserfs file system is no longer supported in SLE15. This package
provides the reiserfs module for the installation system.
%pre -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%post -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%preun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%postun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%posttrans -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%files -n reiserfs-kmp-%build_flavor -f reiserfs-kmp.files
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
@@ -1259,7 +1207,7 @@ awk '{
subpackages=(
base
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp reiserfs-kmp
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -1292,6 +1240,9 @@ cd linux-%srcversion
%endif
%_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
# Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1457,10 +1408,12 @@ find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' ! -name 'Module.op
cd %kernel_build_dir
source .kernel-binary.spec.buildenv
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%if !%use_suse_kabi_tools
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%endif
%if "%CONFIG_KMSG_IDS" == "y"
chmod +x ../scripts/kmsg-doc
@@ -1484,14 +1437,9 @@ while true; do
fi
done
# Generate list of symbols that are used to create kernel livepatches
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%if 0%{?klp_ipa_clones} && %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json $MAKE_ARGS
%endif
%install
@@ -1680,35 +1628,34 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %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
%if 0%{?klp_symbols}
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
# 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_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%if %generate_compile_commands
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
%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
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
tar -C %kernel_build_dir \
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
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \
--verbatim-files-from \
%endif
-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
%endif
-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
%endif
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
gzip -n -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
%if %use_suse_kabi_tools
ksymtypes consolidate %{?_smp_mflags} \
--output=%my_builddir/symtypes-%build_flavor .
%else
%_sourcedir/modversions --pack . > %my_builddir/symtypes-%build_flavor
%endif
if [ -s %my_builddir/symtypes-%build_flavor ]; then
gzip -n -9 -c %my_builddir/symtypes-%build_flavor \
> %buildroot/boot/symtypes-%kernelrelease-%build_flavor.gz
fi
# Some architecture's $(uname -m) output is different from the ARCH
@@ -1759,11 +1706,25 @@ if [ %CONFIG_MODULES = y ]; then
res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%if %use_suse_kabi_tools
ksymvers compare --rules=%my_builddir/kabi/severities \
--format=symbols:%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%else
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%endif
fi
if [ $res -ne 0 ]; then
%if %use_suse_kabi_tools
ksymtypes compare %{?_smp_mflags} \
--filter-symbol-list=%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symtypes-%build_flavor \
%my_builddir/symtypes-%build_flavor
%endif
# %ignore_kabi_badness is defined in the Kernel:* projects in the
# OBS to be able to build the KOTD in spite of kabi errors
if [ 0%{?ignore_kabi_badness} -eq 0 -a \
@@ -1814,7 +1775,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
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
@@ -1895,7 +1857,7 @@ shopt -s nullglob dotglob
fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( 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
{ echo %ghost /boot/%image
@@ -1993,7 +1955,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%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
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package.
@@ -2004,7 +1966,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel).
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
%endif
%if %{usrmerged}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks
%define patchversion 6.10.9
%define patchversion 6.12.0
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -38,22 +38,23 @@
%endif
%endif
%endif
%global kernel_package kernel%kernel_flavor-srchash-5af77882e5891561a6c508a4a352a99c61465403
%global kernel_package kernel%kernel_flavor-srchash-b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%endif
%if 0%{?rhel_version}
%global kernel_package kernel
%endif
Name: kernel-obs-build
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0-only
Group: SLES
Provides: kernel-obs-build-srchash-b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
BuildRequires: coreutils
BuildRequires: device-mapper
BuildRequires: dracut
@@ -62,11 +63,7 @@ BuildRequires: util-linux
%if 0%{?suse_version} > 1550 || 0%{?sle_version} > 150200
BuildRequires: zstd
%endif
%if ! 0%{?is_kotd} || %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: aarch64 armv6hl armv7hl ppc64le riscv64 s390x x86_64
%else
ExclusiveArch: do_not_build
%endif
ExclusiveArch: aarch64 ppc64le s390x x86_64
%description
This package is repackaging already compiled kernels to make them usable
@@ -127,7 +124,7 @@ export KERNEL_MODULES="
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
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"
# manually load all modules to make sure they're available

View File

@@ -54,6 +54,7 @@ Release: @RELEASE@
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0-only
Group: SLES
Provides: kernel-obs-build-srchash-@COMMIT_FULL@
BuildRequires: coreutils
BuildRequires: device-mapper
BuildRequires: dracut
@@ -62,11 +63,7 @@ BuildRequires: util-linux
%if 0%{?suse_version} > 1550 || 0%{?sle_version} > 150200
BuildRequires: zstd
%endif
%if ! 0%{?is_kotd} || %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: @ARCHS@
%else
ExclusiveArch: do_not_build
%endif
%description
This package is repackaging already compiled kernels to make them usable
@@ -127,7 +124,7 @@ export KERNEL_MODULES="
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
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"
# 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
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,15 +17,15 @@
# needsrootforbuild
%define patchversion 6.10.9
%define patchversion 6.12.0
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
Name: kernel-obs-qa
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -35,13 +35,9 @@ Group: SLES
BuildRequires: kernel-default
# kernel-obs-build must be also configured as VMinstall, but is required
# here as well to avoid that qa and build package build parallel
BuildRequires: kernel-obs-build
BuildRequires: kernel-obs-build-srchash-b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
BuildRequires: modutils
%if ! 0%{?is_kotd} || %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: aarch64 armv6hl armv7hl ppc64le riscv64 s390x x86_64
%else
ExclusiveArch: do_not_build
%endif
ExclusiveArch: aarch64 ppc64le s390x x86_64
%description
This package is using the kernel compiled within Open Build Service(OBS)

View File

@@ -35,13 +35,9 @@ Group: SLES
BuildRequires: kernel-default
# kernel-obs-build must be also configured as VMinstall, but is required
# here as well to avoid that qa and build package build parallel
BuildRequires: kernel-obs-build
BuildRequires: kernel-obs-build-srchash-@COMMIT_FULL@
BuildRequires: modutils
%if ! 0%{?is_kotd} || %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: @ARCHS@
%else
ExclusiveArch: do_not_build
%endif
%description
This package is using the kernel compiled within Open Build Service(OBS)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

158235
kernel-rt.changes Normal file

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-rt
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,33 +17,36 @@
# needssslcertforbuild
%define srcversion 6.10
%define patchversion 6.10.9
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403
%define srcversion 6.12
%define patchversion 6.12.0
%define git_commit b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%define variant %{nil}
%define compress_modules zstd
%define compress_vmlinux xz
%define livepatch livepatch%{nil}
%define livepatch_rt %{nil}
%define livepatch_rt 1%{nil}
%define sb_efi_only 0
%define split_base 0
%define split_optional 0
%define supported_modules_check 0
%define build_flavor vanilla
%define split_optional 1
%define supported_modules_check 1
%define build_flavor rt
%define generate_compile_commands 1
%define use_suse_kabi_tools 1
%define gcc_package gcc13
%define gcc_compiler gcc-13
%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,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-vanilla
Version: 6.10.9
Name: kernel-rt
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
Summary: The Standard Kernel - without any SUSE patches
Summary: Kernel with PREEMPT_RT (realtime) support
License: GPL-2.0-only
Group: System/Kernel
URL: https://www.kernel.org/
@@ -59,8 +62,8 @@ BuildRequires: flex
# does not expand %%(...)
%if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++
BuildRequires: gcc-devel
BuildRequires: %gcc_package-c++
BuildRequires: %gcc_package-devel
%endif
BuildRequires: hmaccalc
BuildRequires: libopenssl-devel
@@ -73,6 +76,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22
%endif
BuildRequires: %gcc_package
# for objtool
BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check
@@ -80,17 +84,16 @@ BuildRequires: elfutils
%ifarch %arm
BuildRequires: u-boot-tools
%endif
%if %use_suse_kabi_tools
BuildRequires: suse-kabi-tools
%endif
# Do not install p-b and dracut for the install check, the %post script is
# able to handle this
#!BuildIgnore: perl-Bootloader dracut distribution-release suse-kernel-rpm-scriptlets
# Remove some packages that are installed automatically by the build system,
# but are not needed to build the kernel
#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools udev insserv
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc64le riscv64 s390x x86_64
%else
ExclusiveArch: do_not_build
%endif
ExclusiveArch: aarch64 x86_64
%ifarch %ix86 x86_64
%define image vmlinuz
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%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:") )
%define klp_symbols 1
%define klp_ipa_clones 1
%endif
# 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")
%if "%CONFIG_MODULES" != "y"
%define klp_symbols 0
%define klp_ipa_clones 0
%endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -199,7 +202,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -209,7 +211,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -269,7 +270,6 @@ NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
@@ -279,7 +279,6 @@ NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80
@@ -356,14 +355,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -396,6 +396,14 @@ Provides: kernel-%build_flavor-base-srchash-%git_commit
Provides: kernel-srchash-%git_commit
# END COMMON DEPS
Provides: %name-srchash-%git_commit
%ifarch x86_64
Provides: kernel-compute = 3.13
Obsoletes: kernel-compute <= 3.13
%endif
%ifarch x86_64
Provides: kernel-compute-base = 3.13
Obsoletes: kernel-compute-base <= 3.13
%endif
%obsolete_rebuilds %name
%define kmp_target_cpu %_target_cpu
@@ -429,7 +437,9 @@ Provides: kernel-preempt_%_target_cpu = %version-%source_rel
}
%description
The standard kernel - without any SUSE patches
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.
%source_timestamp
@@ -473,7 +483,7 @@ The standard kernel - without any SUSE patches
%if "%CONFIG_MODULES" == "y" && %split_base
%package base
Summary: The Standard Kernel - without any SUSE patches - base modules
Summary: Kernel with PREEMPT_RT (realtime) support - base modules
Group: System/Kernel
Url: http://www.kernel.org/
Provides: kernel-base = %version-%source_rel
@@ -491,14 +501,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -530,13 +541,19 @@ Provides: kernel = %version-%source_rel
Provides: kernel-%build_flavor-base-srchash-%git_commit
Provides: kernel-srchash-%git_commit
%ifarch x86_64
Provides: kernel-compute-base = 3.13
Obsoletes: kernel-compute-base <= 3.13
%endif
%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
%description base
The standard kernel - without any SUSE patches
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.
This package contains only the base modules, required in all installs.
@@ -576,7 +593,7 @@ This package contains only the base modules, required in all installs.
%endif
%package extra
Summary: The Standard Kernel - without any SUSE patches - Unsupported kernel modules
Summary: Kernel with PREEMPT_RT (realtime) support - Unsupported kernel modules
Group: System/Kernel
URL: https://www.kernel.org/
Provides: %name-extra_%_target_cpu = %version-%source_rel
@@ -587,6 +604,10 @@ Requires(pre): coreutils awk
Requires(post): modutils
Requires(post): perl-Bootloader
Requires(post): dracut
%ifarch x86_64
Provides: kernel-compute-extra = 3.13
Obsoletes: kernel-compute-extra <= 3.13
%endif
%obsolete_rebuilds %name-extra
Supplements: packageand(product(SLED):%{name}_%_target_cpu)
Supplements: packageand(product(sle-we):%{name}_%_target_cpu)
@@ -602,7 +623,9 @@ Provides: kernel-preempt-extra_%_target_cpu = %version-%source_rel
%endif
%description extra
The standard kernel - without any SUSE patches
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.
This package contains additional modules not supported by SUSE.
@@ -646,7 +669,7 @@ This package contains additional modules not supported by SUSE.
%if %split_extra && %split_optional
%package optional
Summary: The Standard Kernel - without any SUSE patches - Optional kernel modules
Summary: Kernel with PREEMPT_RT (realtime) support - Optional kernel modules
Group: System/Kernel
URL: https://www.kernel.org/
Provides: %name-optional_%_target_cpu = %version-%source_rel
@@ -657,6 +680,10 @@ Requires(pre): coreutils awk
Requires(post): modutils
Requires(post): perl-Bootloader
Requires(post): dracut
%ifarch x86_64
Provides: kernel-compute-optional = 3.13
Obsoletes: kernel-compute-optional <= 3.13
%endif
%obsolete_rebuilds %name-optional
Supplements: packageand(product(Leap):%{name}_%_target_cpu)
%ifarch %ix86
@@ -670,7 +697,9 @@ Provides: kernel-preempt-optional_%_target_cpu = %version-%source_rel
%endif
%description optional
The standard kernel - without any SUSE patches
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.
This package contains optional modules only for openSUSE Leap.
@@ -760,6 +789,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla)
%endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22
%endif
@@ -768,6 +800,11 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release
%endif
%endif
Requires: %gcc_package
%ifarch x86_64
Provides: kernel-compute-devel = 3.13
Obsoletes: kernel-compute-devel <= 3.13
%endif
%obsolete_rebuilds %name-devel
PreReq: coreutils
@@ -796,7 +833,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif
@@ -805,7 +841,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu
%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"
%define patch_package %{livepatch}-patch
%else
@@ -835,17 +871,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir
%endif
%if 0%{?klp_symbols} && "%livepatch" != ""
%if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all
kernel symbols and its respective kernel object . This list is to be used by
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
This package brings ipa-clones files, which are used to to track
set of functions where a code from another function can eventually occur.
%files %{livepatch}-devel -f livepatch-files
%endif
@@ -1134,59 +1167,6 @@ accessible simultaneously from multiple nodes of a cluster.
%files -n ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
%package -n reiserfs-kmp-%build_flavor
Summary: Reiserfs kernel module
Group: System/Kernel
Requires: %name = %version-%source_rel
Provides: reiserfs-kmp = %version-%source_rel
Provides: multiversion(kernel)
# tell weak-modules2 to ignore this package
Provides: kmp_in_kernel
Requires(post): suse-module-tools >= 12.4
%if %build_default
%if "%CONFIG_PREEMPT_DYNAMIC" == "y"
Provides: reiserfs-kmp-preempt = %version-%release
%endif
%endif
Enhances: %name
Supplements: packageand(%name:reiserfs-kmp-%build_flavor)
%description -n reiserfs-kmp-%build_flavor
The reiserfs file system is no longer supported in SLE15. This package
provides the reiserfs module for the installation system.
%pre -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%post -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%preun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%postun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%posttrans -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%files -n reiserfs-kmp-%build_flavor -f reiserfs-kmp.files
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
@@ -1231,7 +1211,7 @@ awk '{
subpackages=(
base
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp reiserfs-kmp
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -1264,6 +1244,9 @@ cd linux-%srcversion
%endif
%_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
# Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1429,10 +1412,12 @@ find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' ! -name 'Module.op
cd %kernel_build_dir
source .kernel-binary.spec.buildenv
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%if !%use_suse_kabi_tools
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%endif
%if "%CONFIG_KMSG_IDS" == "y"
chmod +x ../scripts/kmsg-doc
@@ -1456,14 +1441,9 @@ while true; do
fi
done
# Generate list of symbols that are used to create kernel livepatches
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%if 0%{?klp_ipa_clones} && %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json $MAKE_ARGS
%endif
%install
@@ -1652,35 +1632,34 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %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
%if 0%{?klp_symbols}
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
# 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_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%if %generate_compile_commands
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
%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
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
tar -C %kernel_build_dir \
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
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \
--verbatim-files-from \
%endif
-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
%endif
-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
%endif
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
gzip -n -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
%if %use_suse_kabi_tools
ksymtypes consolidate %{?_smp_mflags} \
--output=%my_builddir/symtypes-%build_flavor .
%else
%_sourcedir/modversions --pack . > %my_builddir/symtypes-%build_flavor
%endif
if [ -s %my_builddir/symtypes-%build_flavor ]; then
gzip -n -9 -c %my_builddir/symtypes-%build_flavor \
> %buildroot/boot/symtypes-%kernelrelease-%build_flavor.gz
fi
# Some architecture's $(uname -m) output is different from the ARCH
@@ -1731,11 +1710,25 @@ if [ %CONFIG_MODULES = y ]; then
res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%if %use_suse_kabi_tools
ksymvers compare --rules=%my_builddir/kabi/severities \
--format=symbols:%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%else
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%endif
fi
if [ $res -ne 0 ]; then
%if %use_suse_kabi_tools
ksymtypes compare %{?_smp_mflags} \
--filter-symbol-list=%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symtypes-%build_flavor \
%my_builddir/symtypes-%build_flavor
%endif
# %ignore_kabi_badness is defined in the Kernel:* projects in the
# OBS to be able to build the KOTD in spite of kabi errors
if [ 0%{?ignore_kabi_badness} -eq 0 -a \
@@ -1786,7 +1779,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
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
@@ -1867,7 +1861,7 @@ shopt -s nullglob dotglob
fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( 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
{ echo %ghost /boot/%image
@@ -1965,7 +1959,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%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
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package.
@@ -1976,7 +1970,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel).
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
%endif
%if %{usrmerged}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,19 +16,21 @@
#
%define srcversion 6.10
%define patchversion 6.10.9
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403
%define srcversion 6.12
%define patchversion 6.12.0
%define git_commit b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%define variant %{nil}
%define gcc_package gcc13
%define gcc_compiler gcc-13
%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,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-source
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -43,11 +45,7 @@ BuildRequires: bash-sh
BuildRequires: coreutils
BuildRequires: fdupes
BuildRequires: sed
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
BuildArch: noarch
%else
ExclusiveArch: do_not_build
%endif
Prefix: /usr/src
%define src_install_dir usr/src/linux-%kernelrelease%variant
@@ -95,7 +93,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -105,7 +102,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -151,6 +147,7 @@ Recommends: dwarves >= 1.22
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
Recommends: kernel-install-tools
%endif
Recommends: %gcc_package
%obsolete_rebuilds %name
# Force bzip2 instead of lzma compression to
@@ -270,6 +267,8 @@ fi
linux-%kernelrelease%variant linux-%kernelrelease-vanilla
cd linux-%kernelrelease-vanilla
%_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")
# Hardlink duplicate files automatically (from package fdupes).
%fdupes $PWD
@@ -278,6 +277,8 @@ cd ..
cd linux-%kernelrelease%variant
%_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")
if [ -f %_sourcedir/localversion ] ; then
@@ -317,8 +318,9 @@ popd
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
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"
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_ }' \
-e '1 { s_^#! */bin/env +/_#!/_ ; s_^#! */bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f"
done
# kernel-source and kernel-$flavor-devel are built independently, but the
# shipped sources (/usr/src/linux/) need to be older than generated files

View File

@@ -20,6 +20,8 @@
%define patchversion @PATCHVERSION@
%define git_commit @COMMIT_FULL@
%define variant @VARIANT@%{nil}
%define gcc_package @GCC_PACKAGE@
%define gcc_compiler @GCC_COMPILER@
%include %_sourcedir/kernel-spec-macros
@@ -43,11 +45,7 @@ BuildRequires: bash-sh
BuildRequires: coreutils
BuildRequires: fdupes
BuildRequires: sed
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
BuildArch: noarch
%else
ExclusiveArch: do_not_build
%endif
Prefix: /usr/src
%define src_install_dir usr/src/linux-%kernelrelease%variant
@@ -95,7 +93,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -105,7 +102,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -151,6 +147,7 @@ Recommends: dwarves >= 1.22
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
Recommends: kernel-install-tools
%endif
Recommends: %gcc_package
%obsolete_rebuilds %name
# Force bzip2 instead of lzma compression to
@@ -270,6 +267,8 @@ fi
linux-%kernelrelease%variant linux-%kernelrelease-vanilla
cd linux-%kernelrelease-vanilla
%_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")
# Hardlink duplicate files automatically (from package fdupes).
%fdupes $PWD
@@ -278,6 +277,8 @@ cd ..
cd linux-%kernelrelease%variant
%_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")
if [ -f %_sourcedir/localversion ] ; then
@@ -317,8 +318,9 @@ popd
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
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"
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_ }' \
-e '1 { s_^#! */bin/env +/_#!/_ ; s_^#! */bin/env +([^/])_#!/usr/bin/\1_ }' -i "$f"
done
# kernel-source and kernel-$flavor-devel are built independently, but the
# 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
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,16 +16,16 @@
#
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403
%define git_commit b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
Name: kernel-syms
Version: 6.10.9
Version: 6.12.0
%if %using_buildservice
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -38,26 +38,16 @@ License: GPL-2.0-only
Group: Development/Sources
URL: https://www.kernel.org/
BuildRequires: coreutils
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: %ix86 aarch64 armv6hl armv7hl ppc64le riscv64 s390x x86_64
%else
ExclusiveArch: do_not_build
%endif
ExclusiveArch: aarch64 ppc64le s390x x86_64
Prefix: /usr/src
AutoReqProv: off
Source: README.KSYMS
%ifarch aarch64
Requires: kernel-64kb-devel = %version-%source_rel
%endif
%ifarch aarch64 armv6hl armv7hl %ix86 ppc64le riscv64 s390x x86_64
%ifarch aarch64 ppc64le s390x x86_64
Requires: kernel-default-devel = %version-%source_rel
%endif
%ifarch armv7hl
Requires: kernel-lpae-devel = %version-%source_rel
%endif
%ifarch %ix86
Requires: kernel-pae-devel = %version-%source_rel
%endif
Requires: pesign-obs-integration
Requires: kernel-devel%variant = %version-%source_rel
Provides: %name = %version-%source_rel

View File

@@ -38,11 +38,7 @@ License: GPL-2.0-only
Group: Development/Sources
URL: https://www.kernel.org/
BuildRequires: coreutils
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: @ARCHS@
%else
ExclusiveArch: do_not_build
%endif
Prefix: /usr/src
AutoReqProv: off
Source: README.KSYMS

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,29 +17,32 @@
# needssslcertforbuild
%define srcversion 6.10
%define patchversion 6.10.9
%define git_commit 5af77882e5891561a6c508a4a352a99c61465403
%define srcversion 6.12
%define patchversion 6.12.0
%define git_commit b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
%define variant %{nil}
%define compress_modules zstd
%define compress_vmlinux xz
%define livepatch livepatch%{nil}
%define livepatch_rt %{nil}
%define livepatch_rt 1%{nil}
%define sb_efi_only 0
%define split_base 0
%define split_optional 0
%define supported_modules_check 0
%define split_optional 1
%define supported_modules_check 1
%define build_flavor zfcpdump
%define generate_compile_commands 1
%define use_suse_kabi_tools 1
%define gcc_package gcc13
%define gcc_compiler gcc-13
%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,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-zfcpdump
Version: 6.10.9
Version: 6.12.0
%if 0%{?is_kotd}
Release: <RELEASE>.g5af7788
Release: <RELEASE>.gb00eabe
%else
Release: 0
%endif
@@ -59,8 +62,8 @@ BuildRequires: flex
# does not expand %%(...)
%if "%build_flavor" == "syzkaller"
# Needed by scripts/gcc-plugin.sh
BuildRequires: gcc-c++
BuildRequires: gcc-devel
BuildRequires: %gcc_package-c++
BuildRequires: %gcc_package-devel
%endif
BuildRequires: hmaccalc
BuildRequires: libopenssl-devel
@@ -73,6 +76,7 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22
%endif
BuildRequires: %gcc_package
# for objtool
BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check
@@ -80,17 +84,16 @@ BuildRequires: elfutils
%ifarch %arm
BuildRequires: u-boot-tools
%endif
%if %use_suse_kabi_tools
BuildRequires: suse-kabi-tools
%endif
# Do not install p-b and dracut for the install check, the %post script is
# able to handle this
#!BuildIgnore: perl-Bootloader dracut distribution-release suse-kernel-rpm-scriptlets
# Remove some packages that are installed automatically by the build system,
# but are not needed to build the kernel
#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools udev insserv
%if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
ExclusiveArch: s390x
%else
ExclusiveArch: do_not_build
%endif
%ifarch %ix86 x86_64
%define image vmlinuz
@@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%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:") )
%define klp_symbols 1
%define klp_ipa_clones 1
%endif
# 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")
%if "%CONFIG_MODULES" != "y"
%define klp_symbols 0
%define klp_ipa_clones 0
%endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@@ -199,7 +202,6 @@ Source62: old-flavors
Source63: arch-symbols
Source64: package-descriptions
Source65: kernel-spec-macros
Source67: log.sh
Source68: host-memcpy-hack.h
Source69: try-disable-staging-driver
Source70: kernel-obs-build.spec.in
@@ -209,7 +211,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb
Source75: release-projects
Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips
Source79: splitflist
Source80: mergedep
@@ -269,7 +270,6 @@ NoSource: 62
NoSource: 63
NoSource: 64
NoSource: 65
NoSource: 67
NoSource: 68
NoSource: 69
NoSource: 70
@@ -279,7 +279,6 @@ NoSource: 73
NoSource: 74
NoSource: 75
NoSource: 76
NoSource: 77
NoSource: 78
NoSource: 79
NoSource: 80
@@ -356,14 +355,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -494,14 +494,15 @@ Requires: suse-module-tools
# For depmod (modutils is a dependency provided by both module-init-tools and
# kmod-compat)
Requires(post): modutils
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for dracut.
# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
Requires(post): perl-Bootloader >= 0.4.15
Requires(post): dracut
# Use OrderWithRequires to instruct the package manager to schedule the
# installation of bootloader and dracut related tools as if they were
# required. This will ensure they're there for post scripts without hard
# requiring them. (boo#1228659, boo#1240785)
OrderWithRequires(post): udev
OrderWithRequires(post): systemd-boot
OrderWithRequires(post): perl-Bootloader
OrderWithRequires(post): update-bootloader
OrderWithRequires(post): dracut
# Install the package providing /etc/SuSE-release early enough, so that
# the grub entry has correct title (bnc#757565)
Requires(post): distribution-release
@@ -772,6 +773,9 @@ Supplements: packageand(%name:kernel-devel%variant)
Requires: kernel-source-vanilla = %version-%source_rel
Supplements: packageand(%name:kernel-source-vanilla)
%endif
%if "%{compress_modules}" == "zstd"
Requires: zstd
%endif
%if "%CONFIG_DEBUG_INFO_BTF_MODULES" == "y"
Requires: dwarves >= 1.22
%endif
@@ -780,6 +784,7 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release
%endif
%endif
Requires: %gcc_package
%obsolete_rebuilds %name-devel
PreReq: coreutils
@@ -808,7 +813,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif
@@ -817,7 +821,7 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
/usr/src/linux-obj/%kmp_target_cpu
%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"
%define patch_package %{livepatch}-patch
%else
@@ -847,17 +851,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir
%endif
%if 0%{?klp_symbols} && "%livepatch" != ""
%if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all
kernel symbols and its respective kernel object . This list is to be used by
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
This package brings ipa-clones files, which are used to to track
set of functions where a code from another function can eventually occur.
%files %{livepatch}-devel -f livepatch-files
%endif
@@ -1146,59 +1147,6 @@ accessible simultaneously from multiple nodes of a cluster.
%files -n ocfs2-kmp-%build_flavor -f ocfs2-kmp.files
%package -n reiserfs-kmp-%build_flavor
Summary: Reiserfs kernel module
Group: System/Kernel
Requires: %name = %version-%source_rel
Provides: reiserfs-kmp = %version-%source_rel
Provides: multiversion(kernel)
# tell weak-modules2 to ignore this package
Provides: kmp_in_kernel
Requires(post): suse-module-tools >= 12.4
%if %build_default
%if "%CONFIG_PREEMPT_DYNAMIC" == "y"
Provides: reiserfs-kmp-preempt = %version-%release
%endif
%endif
Enhances: %name
Supplements: packageand(%name:reiserfs-kmp-%build_flavor)
%description -n reiserfs-kmp-%build_flavor
The reiserfs file system is no longer supported in SLE15. This package
provides the reiserfs module for the installation system.
%pre -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-pre --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%post -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-post --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%preun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-preun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%postun -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-postun --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%posttrans -n reiserfs-kmp-%build_flavor
%run_if_exists /usr/lib/module-init-tools/kernel-scriptlets/inkmp-posttrans --name "reiserfs-kmp-%build_flavor" \
--version "%version" --release "%release" --kernelrelease "%kernelrelease" \
--image "%image" --flavor "%build_flavor" --variant "%variant" \
--usrmerged "%{usrmerged}" --certs "%certs" "$@"
%files -n reiserfs-kmp-%build_flavor -f reiserfs-kmp.files
%endif # %CONFIG_SUSE_KERNEL_SUPPORTED
%endif # %CONFIG_MODULES
@@ -1243,7 +1191,7 @@ awk '{
subpackages=(
base
%if "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y"
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp reiserfs-kmp
cluster-md-kmp dlm-kmp gfs2-kmp kselftests-kmp ocfs2-kmp
%endif
)
for package in "${subpackages[@]}"; do
@@ -1276,6 +1224,9 @@ cd linux-%srcversion
%endif
%_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
# Override the timestamp 'uname -v' reports with the source timestamp and
@@ -1441,10 +1392,12 @@ find . ! -type d ! -name 'Module.base' ! -name 'Module.*-kmp' ! -name 'Module.op
cd %kernel_build_dir
source .kernel-binary.spec.buildenv
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%if !%use_suse_kabi_tools
# create *.symref files in the tree
if test -e %my_builddir/kabi/%cpu_arch/symtypes-%build_flavor; then
%_sourcedir/modversions --unpack . < $_
fi
%endif
%if "%CONFIG_KMSG_IDS" == "y"
chmod +x ../scripts/kmsg-doc
@@ -1468,14 +1421,9 @@ while true; do
fi
done
# Generate list of symbols that are used to create kernel livepatches
%if 0%{?klp_symbols}
%_sourcedir/klp-symbols . Symbols.list
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%if 0%{?klp_ipa_clones} && %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json $MAKE_ARGS
%endif
%install
@@ -1664,35 +1612,34 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %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
%if 0%{?klp_symbols}
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
# 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_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%if %generate_compile_commands
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
%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
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
tar -C %kernel_build_dir \
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
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \
--verbatim-files-from \
%endif
-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
%endif
-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
%endif
# Table of types used in exported symbols (for modversion debugging).
%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-%kernelrelease-%build_flavor
if [ -s %buildroot/boot/symtypes-%kernelrelease-%build_flavor ]; then
gzip -n -9 %buildroot/boot/symtypes-%kernelrelease-%build_flavor
else
rm -f %buildroot/boot/symtypes-%kernelrelease-%build_flavor
%if %use_suse_kabi_tools
ksymtypes consolidate %{?_smp_mflags} \
--output=%my_builddir/symtypes-%build_flavor .
%else
%_sourcedir/modversions --pack . > %my_builddir/symtypes-%build_flavor
%endif
if [ -s %my_builddir/symtypes-%build_flavor ]; then
gzip -n -9 -c %my_builddir/symtypes-%build_flavor \
> %buildroot/boot/symtypes-%kernelrelease-%build_flavor.gz
fi
# Some architecture's $(uname -m) output is different from the ARCH
@@ -1743,11 +1690,25 @@ if [ %CONFIG_MODULES = y ]; then
res=0
if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%if %use_suse_kabi_tools
ksymvers compare --rules=%my_builddir/kabi/severities \
--format=symbols:%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%else
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
Module.symvers || res=$?
%endif
fi
if [ $res -ne 0 ]; then
%if %use_suse_kabi_tools
ksymtypes compare %{?_smp_mflags} \
--filter-symbol-list=%my_builddir/changed-exports \
%my_builddir/kabi/%cpu_arch/symtypes-%build_flavor \
%my_builddir/symtypes-%build_flavor
%endif
# %ignore_kabi_badness is defined in the Kernel:* projects in the
# OBS to be able to build the KOTD in spite of kabi errors
if [ 0%{?ignore_kabi_badness} -eq 0 -a \
@@ -1798,7 +1759,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
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
@@ -1879,7 +1841,7 @@ shopt -s nullglob dotglob
fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( 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
{ echo %ghost /boot/%image
@@ -1977,7 +1939,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
add_dirs_to_filelist %my_builddir/optional-modules > %my_builddir/kernel-optional.files
%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
# /etc/modprobe.d/10-unsupported-modules.conf from the suse-module-tools
# package.
@@ -1988,7 +1950,7 @@ add_dirs_to_filelist >> %my_builddir/kernel-devel.files
# multiversion(kernel).
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
%endif
%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.12.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.12/ v6.12
Comment: git version 2.47.0
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmc6xcwACgkQONu9yGCS
aT65NhAAvh7QiDnvnOlH/ZI9TVDE70GYARPN0OQTE+7YmtwYYxtDmIWpl5V4gjcK
jYZYWkNWZxyIi/dzZFoY8JMEwxdPfchkc2nqJxgHbZGTWudcLnTWxIRnzlEjs+7B
B7XIlCTGYMi3hYweHNZcDzvAFp+WA2e130ZTHeJSpEy7jkdcRxnKP4kYkE52bmOr
iK0MgfPhlDY90K9T/XQ1j0CdU9ekpwXXc+vfNPtPz4H5VpAkIvLzFmu/9oYtGBlf
8w4wel6GlzYsZL8XJmBgK2GyhHXLKeEAsTFGoJSnZBwgqfr9ux9iVNCUgfMNyBh/
sPp0ZzVWnqk5CsLTO/bzV64ckRLyBp9nfTekZAjnADqXPTEfDKEGKL/AUV8AFQPE
AvZzFAV8aOFQAUkofvQyJiD61UVjziNlxh0bXLcJrTdJbNqsEQlx4Z6mWWLeufrU
7UWboDuR0+MNGUIVCxFjYF30Zb18hIxxnZ++9+MhtbY0+aAUpJUkHm6HpNls2JtI
0M0iUjTYtlohcadLCo+IdO0+8/HiN1rtDy+PypTNvVI5aoS9gPuJPXMGE+rSgUAk
M0XrPcKrekJPgkL0rQJ+CfHSodsex6de9mzmPA/RHB4iwSqkAHSShs5KXzY6jy+T
fv5YOM+4AArm5xL1uDDDINp/a3tg5Nsv49ghfeYj6IzJPJ84ciw=
=pvFU
-----END PGP SIGNATURE-----

BIN
linux-6.12.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

167
log.sh
View File

@@ -1,167 +0,0 @@
#! /bin/bash
# log.sh - Automate insertion of patches into a kernel rpm tree managed
# with series.conf
#
# Usage example:
#
# osc branch openSUSE:11.3/kernel-source
# osc co home:philipsb:branches:openSUSE:11.3:Update:Test/kernel-source
# mv ~/linux-2.6/driver-fix-for-something.patch .
# echo -e "\tpatches.drivers/driver-fix-for-something.patch" >> series.conf
# ./log.sh
# osc commit
#############################################################################
# Copyright (c) 2004-2006,2008-2010 Novell, Inc.
# All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, contact Novell, Inc.
#
# To contact Novell about this file by physical or electronic mail,
# you may find current contact information at www.novell.com
#############################################################################
# Construct a changes entry and commit log from a patch.
CHANGES=kernel-source.changes
trap 'rm -rf "$tmpdir"' EXIT
tmpdir=$(mktemp -d /tmp/${0##*/}.XXXXXX)
message=$tmpdir/message
log_entry() {
local entry=$1
echo "$entry" \
| fmt --width 65 \
| sed -e '1s/^/- /' -e '2,$s/^/ /' \
>> $message
}
patch_meta() {
local patch=$1
subject=$(formail -c -x Subject < "$patch" \
| sed -e 's, *\[[#/ A-Za-z0-9-]*\],,')
subject=${subject## }
subject=${subject%.}
set -- $(formail -c -x References -x Reference < "$patch")
references="$*"
}
patch_log_entry() {
local patch=$1 subject references old_subj old_ref old_patch="$tmpdir/old"
git show "HEAD:$patch" >"$old_patch" 2>/dev/null
patch_meta "$old_patch"
old_subj="$subject"
old_ref="$references"
patch_meta "$patch"
local msg
if test -z "$subject" -o "$subject" != "$old_subj"; then
msg="$subject${references:+ ($references)}"
elif test "$references" != "$old_ref"; then
if test -n "$references"; then
msg="Update references ($references)"
fi
else
msg="Refresh"
fi
log_entry "$patch: $msg${msg:+.}"
}
find_patches() {
osc diff series.conf \
| sed -n "s/^+\s*\(patches.*\)/\1/p"
}
for file in "$@" $(find_patches); do
dirname=$(dirname $file)
basename=$(basename $file)
archive=$dirname.tar.bz2
if [ ! -f $basename ]; then
echo "ERROR: $basename added to series.conf but doesn't exist in $PWD"
exit 1
fi
if [ ! -d $dirname ]; then
tar xvf $archive
fi
mv $basename $dirname
rm $archive
tar cfj $archive $dirname
files[${#files[@]}]=$file
done
if [ ${#files[@]} -eq 0 ]; then
echo "No modified files" >&2
exit 1
fi
for file in "${files[@]}"; do
if [ "${file:0:1}" = - ]; then
log_entry "${file:1}: Delete."
else
case "$file" in
config/*)
if [ -z "$configs_updated" ]; then
log_entry "Update config files."
configs_updated=1
fi
;;
patches.*)
patch_log_entry "$file"
;;
kabi/*/symvers-* | kabi/*/symtypes-* | kabi/*/symsets-* )
if [ -z "$symvers_updated" ]; then
log_entry "Update reference module symbol versions."
symvers_updated=1
fi
;;
series.conf)
# don't log changes in there
;;
*)
log_entry "$file: "
;;
esac
fi
done
if [ ! -s $message ]; then
echo "- " >> $message
fi
if osc vc $CHANGES $message; then
entry=$(sed -ne '1,2d' -e '/^--*$/!p' -e '/^--*$/q' $CHANGES)
entry=${entry##$'\n'}
entry=${entry%%$'\n'}
fi
for c in *.changes; do
[ $c = $CHANGES ] && continue
cp $CHANGES $c
done

12
mkspec
View File

@@ -40,12 +40,19 @@ my ($srcversion, $variant, $obs_build_variant) =
$obs_build_variant = ($obs_build_variant ? $variant : "" );
my $compress_modules = 'none';
my $compress_vmlinux = 'gz';
my $gcc_package = 'gcc';
my $gcc_compiler = 'gcc';
if (defined($vars{'COMPRESS_MODULES'})) {
$compress_modules = $vars{'COMPRESS_MODULES'};
}
if (defined($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 {
my $arg = $_[0];
return "" if not $arg;
@@ -65,6 +72,7 @@ my $supported_modules_check = to_bool $vars{'SUPPORTED_MODULES_CHECK'};
my $build_pdf = to_bool $vars{'BUILD_PDF'};
my $build_html = to_bool $vars{'BUILD_HTML'};
my $generate_compile_commands = to_bool $vars{'GENERATE_COMPILE_COMMANDS'};
my $use_suse_kabi_tools = to_bool $vars{'USE_SUSE_KABI_TOOLS'};
if (!defined ($rpmrelease)) {
$rpmrelease = $vars{'RELEASE'} || 0;
@@ -142,6 +150,9 @@ my %macros = (
COMPRESS_MODULES => $compress_modules,
COMPRESS_VMLINUX => $compress_vmlinux,
GENERATE_COMPILE_COMMANDS => $generate_compile_commands,
USE_SUSE_KABI_TOOLS => $use_suse_kabi_tools,
GCC_PACKAGE => $gcc_package,
GCC_COMPILER => $gcc_compiler,
);
# binary spec files
@@ -212,6 +223,7 @@ if ($variant eq "") {
my $syms_archs;
for my $flavor (sort keys(%syms_flavor_archs)) {
next if $flavor eq "vanilla";
next if $flavor eq "rt";
my @archs = arch2rpm(@{$syms_flavor_archs{$flavor}});
$syms_archs{$_} = 1 for @archs;
$requires .= "%ifarch @archs\n";

View File

@@ -90,9 +90,7 @@ my @riscv64_package_list = (
['dtb-microchip', 'microchip/*.dts', "Microchip based riscv64 systems"],
['dtb-renesas', 'renesas/*.dts', "Renesas based riscv64 systems"],
['dtb-sifive', 'sifive/*.dts', "SiFive based riscv64 systems"],
['dtb-sophgo', 'sophgo/*.dts', "Sophgo based riscv64 systems"],
['dtb-starfive', 'starfive/*.dts', "StarFive based riscv64 systems"],
['dtb-thead', 'thead/*.dts', "T-HEAD based riscv64 systems"],
);
sub generate_spec($$$)

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
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 used for fuzzing by syzkaller

BIN
patches.kabi.tar.bz2 (Stored with Git LFS)

Binary file not shown.

BIN
patches.kernel.org.tar.bz2 (Stored with Git LFS)

Binary file not shown.

BIN
patches.rpmify.tar.bz2 (Stored with Git LFS)

Binary file not shown.

BIN
patches.suse.tar.bz2 (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,6 +1,9 @@
# This file contains regular expressions that define which projects
# are considered part of an official release channel.
# 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:Maintenance:.*
openSUSE:[0-9].*:Update

12405
series.conf

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,3 @@
2024-09-08 13:43:05 +0000
GIT Revision: 5af77882e5891561a6c508a4a352a99c61465403
GIT Branch: stable
2025-07-21 10:20:07 +0000
GIT Revision: b00eabe67e9bafdd23c53dd65d263cbf6dc806fa
GIT Branch: SL-16.0

View File

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

File diff suppressed because it is too large Load Diff

BIN
sysctl.tar.bz2 (Stored with Git LFS)

Binary file not shown.