Sync from SUSE:SLFO:Main kernel-source revision 0334cbaa688a134d499d3e2f3d037eca

This commit is contained in:
Adrian Schröter 2025-02-27 18:45:28 +01:00
parent d0f051cc04
commit 8984b3b1ec
33 changed files with 38848 additions and 355 deletions

View File

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

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

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -22,12 +22,12 @@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: dtb-aarch64 Name: dtb-aarch64
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif
@ -90,7 +90,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -160,7 +159,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@
%define srcversion 6.12 %define srcversion 6.12
%define patchversion 6.12.0 %define patchversion 6.12.0
%define git_commit 6642b425d8de140c969bc185b2b1527f15588dfc %define git_commit 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@ -34,12 +34,12 @@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-64kb Name: kernel-64kb
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif
@ -73,6 +73,9 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
%if 0%{?suse_version} == 1600
BuildRequires: gcc13
%endif
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@ -780,6 +781,9 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
%if 0%{?suse_version} == 1600
Requires: gcc13
%endif
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@ -808,7 +812,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@ -847,17 +850,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@ -1320,6 +1320,10 @@ EOF
../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem"
fi fi
%if 0%{?suse_version} == 1600
MAKE_ARGS="$MAKE_ARGS CC=gcc-13"
%endif
case %cpu_arch in case %cpu_arch in
x86_64 | i386) x86_64 | i386)
MAKE_ARGS="$MAKE_ARGS ARCH=x86" MAKE_ARGS="$MAKE_ARGS ARCH=x86"
@ -1415,14 +1419,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols} # Generate compile_commands.json
%_sourcedir/klp-symbols . Symbols.list make compile_commands.json
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%endif %endif
%install %install
@ -1611,27 +1610,22 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y" find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir tar -C %kernel_build_dir \
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500 %if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \ --verbatim-files-from \
%endif %endif
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif
%endif %endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
@ -1745,7 +1739,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo "export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor" > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo "include ../../../%{basename:%src_install_dir}/Makefile" >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@ -1826,7 +1821,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image

View File

@ -73,6 +73,9 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
%if 0%{?suse_version} == 1600
BuildRequires: gcc13
%endif
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@ -585,6 +588,9 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
%if 0%{?suse_version} == 1600
Requires: gcc13
%endif
@PROVIDES_OBSOLETES_DEVEL@ @PROVIDES_OBSOLETES_DEVEL@
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@ -614,7 +620,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@ -653,17 +658,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@ -897,6 +899,10 @@ EOF
../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem"
fi fi
%if 0%{?suse_version} == 1600
MAKE_ARGS="$MAKE_ARGS CC=gcc-13"
%endif
case %cpu_arch in case %cpu_arch in
x86_64 | i386) x86_64 | i386)
MAKE_ARGS="$MAKE_ARGS ARCH=x86" MAKE_ARGS="$MAKE_ARGS ARCH=x86"
@ -992,14 +998,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols} # Generate compile_commands.json
%_sourcedir/klp-symbols . Symbols.list make compile_commands.json
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%endif %endif
%install %install
@ -1188,27 +1189,22 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y" find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir tar -C %kernel_build_dir \
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500 %if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \ --verbatim-files-from \
%endif %endif
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif
%endif %endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
@ -1322,7 +1318,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo "export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor" > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo "include ../../../%{basename:%src_install_dir}/Makefile" >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@ -1403,7 +1400,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@
%define srcversion 6.12 %define srcversion 6.12
%define patchversion 6.12.0 %define patchversion 6.12.0
%define git_commit 6642b425d8de140c969bc185b2b1527f15588dfc %define git_commit 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@ -34,12 +34,12 @@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-debug Name: kernel-debug
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif
@ -73,6 +73,9 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
%if 0%{?suse_version} == 1600
BuildRequires: gcc13
%endif
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@ -772,6 +773,9 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
%if 0%{?suse_version} == 1600
Requires: gcc13
%endif
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@ -800,7 +804,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@ -839,17 +842,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@ -1312,6 +1312,10 @@ EOF
../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem"
fi fi
%if 0%{?suse_version} == 1600
MAKE_ARGS="$MAKE_ARGS CC=gcc-13"
%endif
case %cpu_arch in case %cpu_arch in
x86_64 | i386) x86_64 | i386)
MAKE_ARGS="$MAKE_ARGS ARCH=x86" MAKE_ARGS="$MAKE_ARGS ARCH=x86"
@ -1407,14 +1411,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols} # Generate compile_commands.json
%_sourcedir/klp-symbols . Symbols.list make compile_commands.json
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%endif %endif
%install %install
@ -1603,27 +1602,22 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y" find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir tar -C %kernel_build_dir \
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500 %if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \ --verbatim-files-from \
%endif %endif
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif
%endif %endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
@ -1737,7 +1731,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo "export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor" > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo "include ../../../%{basename:%src_install_dir}/Makefile" >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@ -1818,7 +1813,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@
%define srcversion 6.12 %define srcversion 6.12
%define patchversion 6.12.0 %define patchversion 6.12.0
%define git_commit 6642b425d8de140c969bc185b2b1527f15588dfc %define git_commit 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@ -34,12 +34,12 @@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-default Name: kernel-default
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif
@ -73,6 +73,9 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
%if 0%{?suse_version} == 1600
BuildRequires: gcc13
%endif
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@ -848,6 +849,9 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
%if 0%{?suse_version} == 1600
Requires: gcc13
%endif
%ifarch s390x %ifarch s390x
Provides: kernel-trace-devel = 3.13 Provides: kernel-trace-devel = 3.13
Obsoletes: kernel-trace-devel <= 3.13 Obsoletes: kernel-trace-devel <= 3.13
@ -892,7 +896,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@ -931,17 +934,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@ -1404,6 +1404,10 @@ EOF
../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem"
fi fi
%if 0%{?suse_version} == 1600
MAKE_ARGS="$MAKE_ARGS CC=gcc-13"
%endif
case %cpu_arch in case %cpu_arch in
x86_64 | i386) x86_64 | i386)
MAKE_ARGS="$MAKE_ARGS ARCH=x86" MAKE_ARGS="$MAKE_ARGS ARCH=x86"
@ -1499,14 +1503,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols} # Generate compile_commands.json
%_sourcedir/klp-symbols . Symbols.list make compile_commands.json
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%endif %endif
%install %install
@ -1695,27 +1694,22 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y" find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir tar -C %kernel_build_dir \
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500 %if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \ --verbatim-files-from \
%endif %endif
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif
%endif %endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
@ -1829,7 +1823,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo "export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor" > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo "include ../../../%{basename:%src_install_dir}/Makefile" >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@ -1910,7 +1905,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image

File diff suppressed because it is too large Load Diff

View File

@ -18,19 +18,19 @@
%define srcversion 6.12 %define srcversion 6.12
%define patchversion 6.12.0 %define patchversion 6.12.0
%define git_commit 6642b425d8de140c969bc185b2b1527f15588dfc %define git_commit 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%define variant %{nil} %define variant %{nil}
%define build_html 1 %define build_html 1
%define build_pdf 0 %define build_pdf 0
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-docs Name: kernel-docs
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif
@ -133,7 +133,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -203,7 +202,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@
%define srcversion 6.12 %define srcversion 6.12
%define patchversion 6.12.0 %define patchversion 6.12.0
%define git_commit 6642b425d8de140c969bc185b2b1527f15588dfc %define git_commit 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@ -34,12 +34,12 @@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-kvmsmall Name: kernel-kvmsmall
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif
@ -73,6 +73,9 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
%if 0%{?suse_version} == 1600
BuildRequires: gcc13
%endif
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@ -796,6 +797,9 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
%if 0%{?suse_version} == 1600
Requires: gcc13
%endif
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@ -824,7 +828,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@ -863,17 +866,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@ -1336,6 +1336,10 @@ EOF
../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem"
fi fi
%if 0%{?suse_version} == 1600
MAKE_ARGS="$MAKE_ARGS CC=gcc-13"
%endif
case %cpu_arch in case %cpu_arch in
x86_64 | i386) x86_64 | i386)
MAKE_ARGS="$MAKE_ARGS ARCH=x86" MAKE_ARGS="$MAKE_ARGS ARCH=x86"
@ -1431,14 +1435,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols} # Generate compile_commands.json
%_sourcedir/klp-symbols . Symbols.list make compile_commands.json
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%endif %endif
%install %install
@ -1627,27 +1626,22 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y" find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir tar -C %kernel_build_dir \
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500 %if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \ --verbatim-files-from \
%endif %endif
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif
%endif %endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
@ -1761,7 +1755,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo "export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor" > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo "include ../../../%{basename:%src_install_dir}/Makefile" >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@ -1842,7 +1837,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image

File diff suppressed because it is too large Load Diff

View File

@ -38,7 +38,7 @@
%endif %endif
%endif %endif
%endif %endif
%global kernel_package kernel%kernel_flavor-srchash-6642b425d8de140c969bc185b2b1527f15588dfc %global kernel_package kernel%kernel_flavor-srchash-6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%endif %endif
%if 0%{?rhel_version} %if 0%{?rhel_version}
%global kernel_package kernel %global kernel_package kernel
@ -47,7 +47,7 @@
Name: kernel-obs-build Name: kernel-obs-build
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif

File diff suppressed because it is too large Load Diff

View File

@ -25,7 +25,7 @@
Name: kernel-obs-qa Name: kernel-obs-qa
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif

File diff suppressed because it is too large Load Diff

View File

@ -18,17 +18,17 @@
%define srcversion 6.12 %define srcversion 6.12
%define patchversion 6.12.0 %define patchversion 6.12.0
%define git_commit 6642b425d8de140c969bc185b2b1527f15588dfc %define git_commit 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-source Name: kernel-source
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif
@ -105,7 +105,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -151,6 +150,9 @@ Recommends: dwarves >= 1.22
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
Recommends: kernel-install-tools Recommends: kernel-install-tools
%endif %endif
%if 0%{?suse_version} == 1600
Recommends: gcc13
%endif
%obsolete_rebuilds %name %obsolete_rebuilds %name
# Force bzip2 instead of lzma compression to # Force bzip2 instead of lzma compression to

View File

@ -105,7 +105,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -151,6 +150,9 @@ Recommends: dwarves >= 1.22
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300 %if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
Recommends: kernel-install-tools Recommends: kernel-install-tools
%endif %endif
%if 0%{?suse_version} == 1600
Recommends: gcc13
%endif
%obsolete_rebuilds %name %obsolete_rebuilds %name
# Force bzip2 instead of lzma compression to # Force bzip2 instead of lzma compression to

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,7 @@
# #
%define git_commit 6642b425d8de140c969bc185b2b1527f15588dfc %define git_commit 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%define variant %{nil} %define variant %{nil}
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
@ -25,7 +25,7 @@ Name: kernel-syms
Version: 6.12.0 Version: 6.12.0
%if %using_buildservice %if %using_buildservice
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@
%define srcversion 6.12 %define srcversion 6.12
%define patchversion 6.12.0 %define patchversion 6.12.0
%define git_commit 6642b425d8de140c969bc185b2b1527f15588dfc %define git_commit 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
%define variant %{nil} %define variant %{nil}
%define compress_modules zstd %define compress_modules zstd
%define compress_vmlinux xz %define compress_vmlinux xz
@ -34,12 +34,12 @@
%include %_sourcedir/kernel-spec-macros %include %_sourcedir/kernel-spec-macros
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,klp-symbols,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build})
Name: kernel-zfcpdump Name: kernel-zfcpdump
Version: 6.12.0 Version: 6.12.0
%if 0%{?is_kotd} %if 0%{?is_kotd}
Release: <RELEASE>.g6642b42 Release: <RELEASE>.g6dd51d0
%else %else
Release: 0 Release: 0
%endif %endif
@ -73,6 +73,9 @@ BuildRequires: pesign-obs-integration
# pahole for CONFIG_DEBUG_INFO_BTF # pahole for CONFIG_DEBUG_INFO_BTF
BuildRequires: dwarves >= 1.22 BuildRequires: dwarves >= 1.22
%endif %endif
%if 0%{?suse_version} == 1600
BuildRequires: gcc13
%endif
# for objtool # for objtool
BuildRequires: libelf-devel BuildRequires: libelf-devel
# required for 50-check-kernel-build-id rpm check # required for 50-check-kernel-build-id rpm check
@ -135,7 +138,7 @@ ExclusiveArch: do_not_build
%define cpu_arch_flavor %cpu_arch/%build_flavor %define cpu_arch_flavor %cpu_arch/%build_flavor
%if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") ) %if 0%{?_project:1} && ( %(echo %_project | grep -Ex -f %_sourcedir/release-projects | grep -vc ^PTF) || %(echo %_project | grep -Ec "^(Devel:)?Kernel:") )
%define klp_symbols 1 %define klp_ipa_clones 1
%endif %endif
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle # Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@ -145,7 +148,7 @@ ExclusiveArch: do_not_build
%define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y") %define split_extra ("%CONFIG_MODULES" == "y" && "%CONFIG_SUSE_KERNEL_SUPPORTED" == "y")
%if "%CONFIG_MODULES" != "y" %if "%CONFIG_MODULES" != "y"
%define klp_symbols 0 %define klp_ipa_clones 0
%endif %endif
%global certs %( space="" ; for f in %_sourcedir/*.crt; do \ %global certs %( space="" ; for f in %_sourcedir/*.crt; do \
@ -209,7 +212,6 @@ Source73: dtb.spec.in.in
Source74: mkspec-dtb Source74: mkspec-dtb
Source75: release-projects Source75: release-projects
Source76: check-module-license Source76: check-module-license
Source77: klp-symbols
Source78: modules.fips Source78: modules.fips
Source79: splitflist Source79: splitflist
Source80: mergedep Source80: mergedep
@ -279,7 +281,6 @@ NoSource: 73
NoSource: 74 NoSource: 74
NoSource: 75 NoSource: 75
NoSource: 76 NoSource: 76
NoSource: 77
NoSource: 78 NoSource: 78
NoSource: 79 NoSource: 79
NoSource: 80 NoSource: 80
@ -780,6 +781,9 @@ Requires: dwarves >= 1.22
Provides: kernel-preempt-devel = %version-%release Provides: kernel-preempt-devel = %version-%release
%endif %endif
%endif %endif
%if 0%{?suse_version} == 1600
Requires: gcc13
%endif
%obsolete_rebuilds %name-devel %obsolete_rebuilds %name-devel
PreReq: coreutils PreReq: coreutils
@ -808,7 +812,6 @@ relink ../../linux-%{kernelrelease}%{variant}-obj/"%cpu_arch_flavor" /usr/src/li
%dir /usr/src/linux-obj %dir /usr/src/linux-obj
%dir /usr/src/linux-obj/%cpu_arch %dir /usr/src/linux-obj/%cpu_arch
%ghost /usr/src/linux-obj/%cpu_arch_flavor %ghost /usr/src/linux-obj/%cpu_arch_flavor
%exclude %obj_install_dir/%cpu_arch_flavor/Symbols.list
%if %generate_compile_commands %if %generate_compile_commands
%exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json %exclude %obj_install_dir/%cpu_arch_flavor/compile_commands.json
%endif %endif
@ -847,17 +850,14 @@ static, unlike the %{patch_package}-<kernel-version>-flavor package names.
%dir %modules_dir %dir %modules_dir
%endif %endif
%if 0%{?klp_symbols} && "%livepatch" != "" %if 0%{?klp_ipa_clones} && "%livepatch" != "" && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
%package %{livepatch}-devel %package %{livepatch}-devel
Summary: Kernel symbols file used during kGraft patch development Summary: Kernel symbols file used during kGraft patch development
Group: System/Kernel Group: System/Kernel
Provides: klp-symbols = %version
%description %{livepatch}-devel %description %{livepatch}-devel
This package brings a file named Symbols.list, which contains a list of all This package brings ipa-clones files, which are used to to track
kernel symbols and its respective kernel object . This list is to be used by set of functions where a code from another function can eventually occur.
the klp-convert tool, which helps livepatch developers by enabling automatic
symbol resolution.
%files %{livepatch}-devel -f livepatch-files %files %{livepatch}-devel -f livepatch-files
%endif %endif
@ -1320,6 +1320,10 @@ EOF
../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem" ../scripts/config --set-str CONFIG_MODULE_SIG_KEY ".kernel_signing_key.pem"
fi fi
%if 0%{?suse_version} == 1600
MAKE_ARGS="$MAKE_ARGS CC=gcc-13"
%endif
case %cpu_arch in case %cpu_arch in
x86_64 | i386) x86_64 | i386)
MAKE_ARGS="$MAKE_ARGS ARCH=x86" MAKE_ARGS="$MAKE_ARGS ARCH=x86"
@ -1415,14 +1419,9 @@ while true; do
fi fi
done done
# Generate list of symbols that are used to create kernel livepatches %if 0%{?klp_ipa_clones} && %generate_compile_commands
%if 0%{?klp_symbols} # Generate compile_commands.json
%_sourcedir/klp-symbols . Symbols.list make compile_commands.json
%if %generate_compile_commands
# Generate compile_commands.json
make compile_commands.json
%endif
%endif %endif
%install %install
@ -1611,27 +1610,22 @@ if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor mkdir -p %rpm_install_dir/%cpu_arch/%build_flavor
cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor cp Module.symvers %rpm_install_dir/%cpu_arch/%build_flavor
# List of symbols that are used to generate kernel livepatches # List of ipa-clones that are used to to track set of functions where a code from another function can eventually occur.
%if 0%{?klp_symbols} %if 0%{?klp_ipa_clones} && "%CONFIG_LIVEPATCH_IPA_CLONES" == "y"
cp Symbols.list %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/Symbols.list > %my_builddir/livepatch-files.no_dir
%if %generate_compile_commands %if %generate_compile_commands
cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor cp compile_commands.json %rpm_install_dir/%cpu_arch/%build_flavor
echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir echo %obj_install_dir/%cpu_arch/%build_flavor/compile_commands.json >> %my_builddir/livepatch-files.no_dir
%endif %endif
%if "%CONFIG_LIVEPATCH_IPA_CLONES" == "y" find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list
find %kernel_build_dir -name "*.ipa-clones" ! -size 0 | sed -e 's|^%kernel_build_dir/||' | sort > ipa-clones.list cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor
cp ipa-clones.list %rpm_install_dir/%cpu_arch/%build_flavor echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir
echo %obj_install_dir/%cpu_arch/%build_flavor/ipa-clones.list >> %my_builddir/livepatch-files.no_dir tar -C %kernel_build_dir \
tar -C %kernel_build_dir \
%if ! 0%{?suse_version} || 0%{?suse_version} >= 1500 %if ! 0%{?suse_version} || 0%{?suse_version} >= 1500
--verbatim-files-from \ --verbatim-files-from \
%endif %endif
-T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf- -T ipa-clones.list -cf- | tar -C %rpm_install_dir/%cpu_arch/%build_flavor -xvf-
cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir cat ipa-clones.list | sed -e 's|^|%obj_install_dir/%cpu_arch/%build_flavor/|' >> %my_builddir/livepatch-files.no_dir
%endif
%endif %endif
# Table of types used in exported symbols (for modversion debugging). # Table of types used in exported symbols (for modversion debugging).
@ -1745,7 +1739,8 @@ if [ %CONFIG_MODULES = y ]; then
%rpm_install_dir/%cpu_arch_flavor \ %rpm_install_dir/%cpu_arch_flavor \
$(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/') $(echo %srcversion | sed -r 's/^([0-9]+)\.([0-9]+).*/\1 \2/')
else else
echo include ../../../%{basename:%src_install_dir}/Makefile > %rpm_install_dir/%cpu_arch_flavor/Makefile echo "export KBUILD_OUTPUT = %obj_install_dir/%cpu_arch_flavor" > %rpm_install_dir/%cpu_arch_flavor/Makefile
echo "include ../../../%{basename:%src_install_dir}/Makefile" >> %rpm_install_dir/%cpu_arch_flavor/Makefile
fi fi
fi fi
@ -1826,7 +1821,7 @@ shopt -s nullglob dotglob
fi fi
} | add_dirs_to_filelist >%my_builddir/kernel-devel.files } | add_dirs_to_filelist >%my_builddir/kernel-devel.files
( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \ ( cd %buildroot ; find .%obj_install_dir/%cpu_arch_flavor -type f ; ) | \
sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/Symbols[.]list$' -e '/ipa-clones[.]list$'| \ sed -e 's/^[.]//' | grep -v -e '[.]ipa-clones$' -e '/ipa-clones[.]list$'| \
add_dirs_to_filelist >> %my_builddir/kernel-devel.files add_dirs_to_filelist >> %my_builddir/kernel-devel.files
{ echo %ghost /boot/%image { echo %ghost /boot/%image

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

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

Binary file not shown.

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

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,3 @@
2025-02-04 15:54:44 +0000 2025-02-25 12:54:45 +0000
GIT Revision: 6642b425d8de140c969bc185b2b1527f15588dfc GIT Revision: 6dd51d0a11560ade1bafd2a3c43cd094fed165dd
GIT Branch: users/vkarasulli/SUSE-2025/for-next GIT Branch: SLE16

View File

@ -451,7 +451,7 @@
drivers/bluetooth/btmtk.ko drivers/bluetooth/btmtk.ko
- drivers/bluetooth/btmtksdio - drivers/bluetooth/btmtksdio
- drivers/bluetooth/btmtkuart - drivers/bluetooth/btmtkuart
- drivers/bluetooth/btnxpuart # SP6-NEED-REVIEW drivers/bluetooth/btnxpuart # SP6-NEED-REVIEW, jsc#PED-12016
drivers/bluetooth/btqca drivers/bluetooth/btqca
- drivers/bluetooth/btqcomsmd - drivers/bluetooth/btqcomsmd
- drivers/bluetooth/btrsi - drivers/bluetooth/btrsi
@ -2537,7 +2537,7 @@
- drivers/mailbox/bcm-pdc-mailbox - drivers/mailbox/bcm-pdc-mailbox
- drivers/mailbox/hi3660-mailbox - drivers/mailbox/hi3660-mailbox
- drivers/mailbox/hi6220-mailbox - drivers/mailbox/hi6220-mailbox
- drivers/mailbox/imx-mailbox # armv7hl drivers/mailbox/imx-mailbox # armv7hl jsc#PED-12016
- drivers/mailbox/mailbox-altera # armv7hl - drivers/mailbox/mailbox-altera # armv7hl
- drivers/mailbox/mailbox-sti # armv7hl - drivers/mailbox/mailbox-sti # armv7hl
drivers/mailbox/mailbox-xgene-slimpro # fate#319483 drivers/mailbox/mailbox-xgene-slimpro # fate#319483
@ -3341,7 +3341,7 @@
drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio
drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp
drivers/net/ethernet/freescale/enetc/fsl-enetc-vf drivers/net/ethernet/freescale/enetc/fsl-enetc-vf
drivers/net/ethernet/freescale/fec # armv7hl drivers/net/ethernet/freescale/fec # armv7hl jsc#PED-12016
drivers/net/ethernet/freescale/fman/* drivers/net/ethernet/freescale/fman/*
- drivers/net/ethernet/freescale/fsl_pq_mdio - drivers/net/ethernet/freescale/fsl_pq_mdio
- drivers/net/ethernet/freescale/gianfar_driver - drivers/net/ethernet/freescale/gianfar_driver
@ -3947,7 +3947,7 @@
- drivers/nvmem/nvmem-bcm-ocotp - drivers/nvmem/nvmem-bcm-ocotp
-!optional drivers/nvmem/nvmem-imx-iim -!optional drivers/nvmem/nvmem-imx-iim
- drivers/nvmem/nvmem-imx-ocotp - drivers/nvmem/nvmem-imx-ocotp
- drivers/nvmem/nvmem-imx-ocotp-ele drivers/nvmem/nvmem-imx-ocotp-ele # jsc#PED-12016
- drivers/nvmem/nvmem-imx-ocotp-scu - drivers/nvmem/nvmem-imx-ocotp-scu
- drivers/nvmem/nvmem-layerscape-sfp # SP6-NEED-REVIEW - drivers/nvmem/nvmem-layerscape-sfp # SP6-NEED-REVIEW
drivers/nvmem/nvmem-rmem drivers/nvmem/nvmem-rmem
@ -4016,7 +4016,7 @@
- drivers/perf/cxl_pmu - drivers/perf/cxl_pmu
- drivers/perf/dwc_pcie_pmu - drivers/perf/dwc_pcie_pmu
- drivers/perf/fsl_imx8_ddr_perf - drivers/perf/fsl_imx8_ddr_perf
- drivers/perf/fsl_imx9_ddr_perf drivers/perf/fsl_imx9_ddr_perf # jsc#PED-12016
- drivers/perf/hisilicon/hisi_pcie_pmu # SP6-NEED-REVIEW - drivers/perf/hisilicon/hisi_pcie_pmu # SP6-NEED-REVIEW
- drivers/perf/hisilicon/hns3_pmu # SP6-NEED-REVIEW - drivers/perf/hisilicon/hns3_pmu # SP6-NEED-REVIEW
drivers/perf/hisilicon/* drivers/perf/hisilicon/*
@ -4433,6 +4433,7 @@
- drivers/pwm/pwm-stm32 - drivers/pwm/pwm-stm32
- drivers/pwm/pwm-stm32-lp - drivers/pwm/pwm-stm32-lp
drivers/pwm/pwm-tegra drivers/pwm/pwm-tegra
drivers/pwm/pwm-imx-tpm # jsc#PED-12016
- drivers/pwm/* - drivers/pwm/*
- drivers/rapidio/rapidio - drivers/rapidio/rapidio
- drivers/rapidio/* - drivers/rapidio/*
@ -4530,7 +4531,7 @@
- drivers/regulator/mt6397-regulator # armv7hl - drivers/regulator/mt6397-regulator # armv7hl
- drivers/regulator/palmas-regulator # armv7hl - drivers/regulator/palmas-regulator # armv7hl
- drivers/regulator/pbias-regulator # armv7hl - drivers/regulator/pbias-regulator # armv7hl
-!optional drivers/regulator/pca9450-regulator drivers/regulator/pca9450-regulator # jsc#PED-12016
- drivers/regulator/pf8x00-regulator - drivers/regulator/pf8x00-regulator
drivers/regulator/pfuze100-regulator # bsc#1199909 drivers/regulator/pfuze100-regulator # bsc#1199909
- drivers/regulator/pv88060-regulator - drivers/regulator/pv88060-regulator
@ -4614,7 +4615,7 @@
- drivers/regulator/wm8400-regulator # armv7hl - drivers/regulator/wm8400-regulator # armv7hl
-!optional drivers/regulator/wm8994-regulator -!optional drivers/regulator/wm8994-regulator
- drivers/remoteproc/imx_dsp_rproc # SP6-NEED-REVIEW - drivers/remoteproc/imx_dsp_rproc # SP6-NEED-REVIEW
- drivers/remoteproc/imx_rproc drivers/remoteproc/imx_rproc # jsc#PED-12016
- drivers/remoteproc/keystone_remoteproc # armv7hl - drivers/remoteproc/keystone_remoteproc # armv7hl
- drivers/remoteproc/mtk_scp - drivers/remoteproc/mtk_scp
- drivers/remoteproc/mtk_scp_ipi - drivers/remoteproc/mtk_scp_ipi
@ -4889,6 +4890,7 @@
- drivers/soc/hisilicon/kunpeng_hccs - drivers/soc/hisilicon/kunpeng_hccs
-!optional drivers/soc/imx/imx93-pd # SP6-NEED-REVIEW -!optional drivers/soc/imx/imx93-pd # SP6-NEED-REVIEW
-!optional drivers/soc/imx/imx93-src # SP6-NEED-REVIEW -!optional drivers/soc/imx/imx93-src # SP6-NEED-REVIEW
drivers/soc/imx/soc-imx9 # jsc#PED-12016
- drivers/soc/mediatek/mtk-cmdq-helper - drivers/soc/mediatek/mtk-cmdq-helper
- drivers/soc/mediatek/mtk-devapc - drivers/soc/mediatek/mtk-devapc
- drivers/soc/mediatek/mtk-mmsys # SP6-NEED-REVIEW - drivers/soc/mediatek/mtk-mmsys # SP6-NEED-REVIEW
@ -4946,7 +4948,7 @@
- drivers/spi/spi-dw-pci - drivers/spi/spi-dw-pci
- drivers/spi/spi-fsi # SP6-NEED-REVIEW - drivers/spi/spi-fsi # SP6-NEED-REVIEW
drivers/spi/spi-fsl-dspi drivers/spi/spi-fsl-dspi
-!optional drivers/spi/spi-fsl-lpspi drivers/spi/spi-fsl-lpspi # jsc#PED-12016
drivers/spi/spi-fsl-qspi drivers/spi/spi-fsl-qspi
- drivers/spi/spi-geni-qcom - drivers/spi/spi-geni-qcom
-!optional drivers/spi/spi-gpio -!optional drivers/spi/spi-gpio
@ -5556,6 +5558,7 @@
- drivers/usb/typec/altmodes/typec_nvidia - drivers/usb/typec/altmodes/typec_nvidia
- drivers/usb/typec/anx7411 # SP6-NEED-REVIEW - drivers/usb/typec/anx7411 # SP6-NEED-REVIEW
- drivers/usb/typec/hd3ss3220 - drivers/usb/typec/hd3ss3220
drivers/usb/typec/typec_thunderbolt
- drivers/usb/typec/mux/fsa4480 # SP6-NEED-REVIEW - drivers/usb/typec/mux/fsa4480 # SP6-NEED-REVIEW
- drivers/usb/typec/mux/gpio-sbu-mux # SP6-NEED-REVIEW - drivers/usb/typec/mux/gpio-sbu-mux # SP6-NEED-REVIEW
drivers/usb/typec/mux/intel_pmc_mux drivers/usb/typec/mux/intel_pmc_mux
@ -5790,7 +5793,7 @@
drivers/watchdog/ib700wdt # IB700 SBC watchdog driver drivers/watchdog/ib700wdt # IB700 SBC watchdog driver
drivers/watchdog/ibmasr # IBM Automatic Server Restart driver drivers/watchdog/ibmasr # IBM Automatic Server Restart driver
drivers/watchdog/imx2_wdt # ls1043a drivers/watchdog/imx2_wdt # ls1043a
- drivers/watchdog/imx7ulp_wdt drivers/watchdog/imx7ulp_wdt # jsc#PED-12016
- drivers/watchdog/imx_sc_wdt - drivers/watchdog/imx_sc_wdt
drivers/watchdog/it8712f_wdt drivers/watchdog/it8712f_wdt
drivers/watchdog/it87_wdt # ITE IT87xx watchdog driver drivers/watchdog/it87_wdt # ITE IT87xx watchdog driver

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

Binary file not shown.