From 5d13ad5dc444932baa033afd1b6ebdb857ea63c9 Mon Sep 17 00:00:00 2001 From: Pratham Patel Date: Sat, 18 Nov 2023 10:43:17 +0530 Subject: [PATCH] make the SPEC file more generic - Removed versions from file names. - Add spec files that specify items that vary between kernel versions. - Move the kernel-ml SPEC file as the file that gets included. - Make the include file more "generic" such that a kernel can be built with only version, package name and source0 specified. - Do not `exit 1` on finding new options. - Remove the '-s' that gets passed to the make macro to get "normally verbose" build output. --- config-6.6.1-aarch64 => config-aarch64 | 0 config-6.6.1-x86_64 => config-x86_64 | 0 kernel-ml-6.6.spec => kernel-common.inc | 262 +++++++++++------------- kernel-lts.spec | 12 ++ kernel-mainline.spec | 13 ++ kernel-next.spec | 13 ++ kernel-stable.spec | 12 ++ 7 files changed, 174 insertions(+), 138 deletions(-) rename config-6.6.1-aarch64 => config-aarch64 (100%) rename config-6.6.1-x86_64 => config-x86_64 (100%) rename kernel-ml-6.6.spec => kernel-common.inc (91%) create mode 100644 kernel-lts.spec create mode 100644 kernel-mainline.spec create mode 100644 kernel-next.spec create mode 100644 kernel-stable.spec diff --git a/config-6.6.1-aarch64 b/config-aarch64 similarity index 100% rename from config-6.6.1-aarch64 rename to config-aarch64 diff --git a/config-6.6.1-x86_64 b/config-x86_64 similarity index 100% rename from config-6.6.1-x86_64 rename to config-x86_64 diff --git a/kernel-ml-6.6.spec b/kernel-common.inc similarity index 91% rename from kernel-ml-6.6.spec rename to kernel-common.inc index 32833c4..aee0c1c 100644 --- a/kernel-ml-6.6.spec +++ b/kernel-common.inc @@ -24,21 +24,16 @@ %global _binary_payload w3T.xzdio # Define the version of the Linux Kernel Archive tarball. -%global LKAver 6.6.1 +%global LKAver %{major_ver}.%{minor_ver}.%{patch_ver} # Define the buildid, if required. #global buildid .local # Determine the sublevel number and set pkg_version. -%define sublevel %(echo %{LKAver} | %{__awk} -F\. '{ print $3 }') -%if "%{sublevel}" == "" -%global pkg_version %{LKAver}.0 -%else %global pkg_version %{LKAver} -%endif # Set pkg_release. -%global pkg_release 1%{?buildid}%{?dist} +%global pkg_release %{release_v}%{?rc_ver:.rc%{rc_ver}}%{?next_snapshot_date:.next%{next_snapshot_date}}%{?buildid}%{?dist} # Architectures upon which we can sign the kernel # for secure boot authentication. @@ -79,13 +74,13 @@ # by later architecture-specific checks. These can also be disabled by using # --without in the rpmbuild command, or by forcing these values to 0. # -# kernel-ml +# kernel-* %define with_std %{?_without_std: 0} %{?!_without_std: 1} # -# kernel-ml-headers +# kernel-*-headers %define with_headers %{?_without_headers: 0} %{?!_without_headers: 1} # -# kernel-ml-doc +# kernel-*-doc %define with_doc %{?_without_doc: 0} %{?!_without_doc: 1} # # perf @@ -100,13 +95,13 @@ # control whether to install the vdso directories %define with_vdso_install %{?_without_vdso_install: 0} %{?!_without_vdso_install: 1} # -# Additional option for toracat-friendly, one-off, kernel-ml building. -# Only build the base kernel-ml (--with baseonly): +# Additional option for toracat-friendly, one-off, kernel-* building. +# Only build the base kernel-* (--with baseonly): %define with_baseonly %{?_with_baseonly: 1} %{?!_with_baseonly: 0} %global KVERREL %{pkg_version}-%{pkg_release}.%{_target_cpu} -# If requested, only build base kernel-ml package. +# If requested, only build base kernel-* package. %if %{with_baseonly} %define with_doc 0 %define with_perf 0 @@ -155,10 +150,7 @@ # Packages that need to be installed before the kernel is installed, # as they will be used by the %%post scripts. # -%define kernel_ml_prereq coreutils, systemd >= 203-2, /usr/bin/kernel-install -%define initrd_prereq dracut >= 027 -Name: kernel-ml Summary: The Linux kernel. (The core of any Linux kernel based operating system.) License: GPLv2 and Redistributable, no modification permitted. URL: https://www.kernel.org/ @@ -172,7 +164,7 @@ Requires: %{name}-core-uname-r = %{KVERREL} Requires: %{name}-modules-uname-r = %{KVERREL} # -# List the packages required for the kernel-ml build. +# List the packages required for the kernel-* build. # BuildRequires: bash, bc, binutils, bison, bzip2, coreutils, diffutils, dwarves, elfutils-devel BuildRequires: findutils, flex, gawk, gcc, gcc-c++, gcc-plugin-devel, git-core, glibc-static @@ -223,10 +215,8 @@ BuildConflicts: rhbuildsys(DiskFree) < 500Mb ### ### Sources ### -Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{LKAver}.tar.xz - -Source2: config-%{version}-x86_64 -Source4: config-%{version}-aarch64 +Source2: config-x86_64 +Source4: config-aarch64 Source20: mod-denylist.sh Source21: mod-sign.sh @@ -244,9 +234,6 @@ Source2000: cpupower.service Source2001: cpupower.config Source2002: kvm_stat.logrotate -# Do not package the source tarball. -NoSource: 0 - %if %{signkernel} %define secureboot_ca_0 %{_datadir}/pki/sb-certs/secureboot-ca-%{_arch}.cer %define secureboot_key_0 %{_datadir}/pki/sb-certs/secureboot-kernel-%{_arch}.cer @@ -258,26 +245,26 @@ NoSource: 0 The %{name} meta package. # -# This macro does requires, provides, conflicts, obsoletes for a kernel-ml package. -# %%kernel_ml_reqprovconf -# It uses any kernel_ml__conflicts and kernel_ml__obsoletes +# This macro does requires, provides, conflicts, obsoletes for a kernel-* package. +# %%reqprovconf +# It uses any _conflicts and _obsoletes # macros defined above. # -%define kernel_ml_reqprovconf \ +%define reqprovconf \ Provides: %{name} = %{pkg_version}-%{pkg_release}\ Provides: %{name}-%{_target_cpu} = %{pkg_version}-%{pkg_release}%{?1:+%{1}}\ Provides: %{name}-drm-nouveau = 16\ Provides: %{name}-uname-r = %{KVERREL}%{?1:+%{1}}\ -Requires(pre): %{kernel_ml_prereq}\ -Requires(pre): %{initrd_prereq}\ +Requires(pre): coreutils, systemd >= 203-2, /usr/bin/kernel-install\ +Requires(pre): dracut >= 027\ Requires(pre): ((linux-firmware >= 20150904-56.git6ebf5d57) if linux-firmware)\ Recommends: linux-firmware\ Requires(preun): systemd >= 200\ Conflicts: xfsprogs < 4.3.0-1\ Conflicts: xorg-x11-drv-vmmouse < 13.0.99\ -%{expand:%%{?kernel_ml%{?1:_%{1}}_conflicts:Conflicts: %%{%{name}%{?1:_%{1}}_conflicts}}}\ -%{expand:%%{?kernel_ml%{?1:_%{1}}_obsoletes:Obsoletes: %%{%{name}%{?1:_%{1}}_obsoletes}}}\ -%{expand:%%{?kernel_ml%{?1:_%{1}}_provides:Provides: %%{%{name}%{?1:_%{1}}_provides}}}\ +%{expand:%%{?name%{?1:_%{1}}conflicts:Conflicts: %%{%{name}%{?1:_%{1}}conflicts}}}\ +%{expand:%%{?name%{?1:_%{1}}obsoletes:Obsoletes: %%{%{name}%{?1:_%{1}}obsoletes}}}\ +%{expand:%%{?name%{?1:_%{1}}provides:Provides: %%{%{name}%{?1:_%{1}}provides}}}\ # We can't let RPM do the dependencies automatically because it'll then pick up\ # a correct but undesirable perl dependency from the module headers which\ # isn't required for the kernel proper to function.\ @@ -377,10 +364,10 @@ and simple manipulation of eBPF programs and maps. %endif # -# This macro creates a kernel-ml--devel package. -# %%kernel_ml_devel_package [-m] +# This macro creates a kernel-*--devel package. +# %%devel_package [-m] # -%define kernel_ml_devel_package(m) \ +%define devel_package(m) \ %package %{?1:%{1}-}devel\ Summary: Development package for building %{name} modules to match the %{?2:%{2} }%{name}.\ Provides: %{name}%{?1:-%{1}}-devel-%{_target_cpu} = %{version}-%{release}\ @@ -391,7 +378,7 @@ Provides: kernel-devel-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\ Provides: kernel-devel-uname-r = %{KVERREL}%{?1:+%{1}}\ Provides: kernel-devel = %{version}-%{release}%{?1:+%{1}}\ Provides: installonlypkg(kernel)\ -Provides: installonlypkg(kernel-ml)\ +Provides: installonlypkg(%{name})\ AutoReqProv: no\ Requires(pre): findutils\ Requires: findutils\ @@ -411,11 +398,11 @@ against the %{?2:%{2} }%{name} package.\ %{nil} # -# This macro creates an empty kernel-ml--devel-matched package that +# This macro creates an empty kernel-*--devel-matched package that # requires both the core and devel packages locked on the same version. -# %%kernel_ml_devel_matched_package [-m] +# %%devel_matched_package [-m] # -%define kernel_ml_devel_matched_package(m) \ +%define devel_matched_package(m) \ %package %{?1:%{1}-}devel-matched\ Summary: Meta package to install matching core and devel packages for a given %{?2:%{2} }%{name}.\ Requires: %{name}%{?1:-%{1}}-devel = %{version}-%{release}\ @@ -425,17 +412,17 @@ This meta package is used to install matching core and devel packages for a give %{nil} # -# This macro creates a kernel-ml--modules-extra package. -# %%kernel_ml_modules_extra_package [-m] +# This macro creates a kernel-*--modules-extra package. +# %%modules_extra_package [-m] # -%define kernel_ml_modules_extra_package(m) \ +%define modules_extra_package(m) \ %package %{?1:%{1}-}modules-extra\ Summary: Extra %{name} modules to match the %{?2:%{2} }%{name}.\ Provides: %{name}%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}\ Provides: %{name}%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\ Provides: %{name}%{?1:-%{1}}-modules-extra = %{version}-%{release}%{?1:+%{1}}\ Provides: installonlypkg(kernel-module)\ -Provides: installonlypkg(kernel-ml-module)\ +Provides: installonlypkg(%{name}-module)\ Provides: %{name}%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: %{name}-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: %{name}%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?1:+%{1}}\ @@ -449,17 +436,17 @@ This package provides less commonly used %{name} modules for the %{?2:%{2} }%{na %{nil} # -# This macro creates a kernel-ml--modules package. -# %%kernel_ml_modules_package [-m] +# This macro creates a kernel-*--modules package. +# %%modules_package [-m] # -%define kernel_ml_modules_package(m) \ +%define modules_package(m) \ %package %{?1:%{1}-}modules\ Summary: %{name} modules to match the %{?2:%{2}-}core %{name}.\ Provides: %{name}%{?1:-%{1}}-modules-%{_target_cpu} = %{version}-%{release}\ Provides: %{name}-modules-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\ Provides: %{name}-modules = %{version}-%{release}%{?1:+%{1}}\ Provides: installonlypkg(kernel-module)\ -Provides: installonlypkg(kernel-ml-module)\ +Provides: installonlypkg(%{name}-module)\ Provides: %{name}%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: %{name}-uname-r = %{KVERREL}%{?1:+%{1}}\ %if %{-m:1}%{!-m:0}\ @@ -472,48 +459,48 @@ This package provides commonly used %{name} modules for the %{?2:%{2}-}core %{na %{nil} # -# this macro creates a kernel-ml- meta package. -# %%kernel_ml_meta_package +# this macro creates a kernel-*- meta package. +# %%meta_package # -%define kernel_ml_meta_package() \ +%define meta_package() \ %package %{1}\ Summary: %{name} meta-package for the %{1} ${name}.\ Requires: %{name}-%{1}-core-uname-r = %{KVERREL}+%{1}\ Requires: %{name}-%{1}-modules-uname-r = %{KVERREL}+%{1}\ Provides: installonlypkg(kernel)\ -Provides: installonlypkg(kernel-ml)\ +Provides: installonlypkg(%{name})\ %description %{1}\ The meta-package for the %{1} %{name}.\ %{nil} # -# This macro creates a kernel-ml- and its -devel. -# %%define variant_summary The Linux kernel-ml compiled for -# %%kernel_ml_variant_package [-n ] [-m] +# This macro creates a kernel-*- and its -devel. +# %%define variant_summary The Linux kernel-* compiled for +# %%variant_package [-n ] [-m] # -%define kernel_ml_variant_package(n:m) \ +%define variant_package(n:m) \ %package %{?1:%{1}-}core\ Summary: %{variant_summary}.\ Provides: %{name}-%{?1:%{1}-}core-uname-r = %{KVERREL}%{?1:+%{1}}\ Provides: installonlypkg(kernel)\ -Provides: installonlypkg(kernel-ml)\ +Provides: installonlypkg(%{name})\ %if %{-m:1}%{!-m:0}\ Requires: %{name}-core-uname-r = %{KVERREL}\ %endif\ -%{expand:%%kernel_ml_reqprovconf}\ +%{expand:%%reqprovconf}\ %if %{?1:1} %{!?1:0} \ -%{expand:%%kernel_ml_meta_package %{?1:%{1}}}\ +%{expand:%%meta_package %{?1:%{1}}}\ %endif\ -%{expand:%%kernel_ml_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ -%{expand:%%kernel_ml_devel_matched_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ -%{expand:%%kernel_ml_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ -%{expand:%%kernel_ml_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ +%{expand:%%devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ +%{expand:%%devel_matched_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ +%{expand:%%modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ +%{expand:%%modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %{nil} # And, finally, the main -core package. %define variant_summary The Linux kernel. -%kernel_ml_variant_package +%variant_package %description core The %{name} package contains the Linux kernel (vmlinuz), the core of any Linux kernel based operating system. The %{name} package handles the basic @@ -527,7 +514,7 @@ device input and output, etc. %global _build_id_links none # Set up our "big" %%{make} macro. -%global make %{__make} -s HOSTCFLAGS="%{?build_cflags}" HOSTLDFLAGS="%{?build_ldflags}" +%global make %{__make} HOSTCFLAGS="%{?build_cflags}" HOSTLDFLAGS="%{?build_ldflags}" %prep %ifarch x86_64 || aarch64 @@ -539,8 +526,8 @@ exit 1 %endif %endif -%setup -q -n %{name}-%{version} -c -mv linux-%{LKAver} linux-%{KVERREL} +%setup -q -n %{src_dir} -c +mv %{src_dir} linux-%{KVERREL} pushd linux-%{KVERREL} > /dev/null @@ -575,11 +562,10 @@ cp -a %{SOURCE4} . sed -i "s@^EXTRAVERSION.*@EXTRAVERSION = -%{release}.%{_target_cpu}@" Makefile %ifarch x86_64 || aarch64 -cp config-%{version}-%{_target_cpu} .config -%{__make} -s ARCH=%{bldarch} listnewconfig | grep -E '^CONFIG_' > newoptions-el9-%{_target_cpu}.txt || true +cp config-%{_target_cpu} .config +%{__make} ARCH=%{bldarch} listnewconfig | grep -E '^CONFIG_' > newoptions-el9-%{_target_cpu}.txt || true if [ -s newoptions-el9-%{_target_cpu}.txt ]; then cat newoptions-el9-%{_target_cpu}.txt - exit 1 fi rm -f newoptions-el9-%{_target_cpu}.txt %endif @@ -589,21 +575,21 @@ rm -f newoptions-el9-%{_target_cpu}.txt openssl x509 -inform der -in %{SOURCE100} -out rheldup3.pem openssl x509 -inform der -in %{SOURCE101} -out rhelkpatch1.pem cat rheldup3.pem rhelkpatch1.pem > certs/rhel.pem -for i in config-%{version}-*; do +for i in config-*; do sed -i 's@CONFIG_SYSTEM_TRUSTED_KEYS="*"@CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"@' $i done %else -for i in config-%{version}-*; do +for i in config-*; do sed -i 's@CONFIG_SYSTEM_TRUSTED_KEYS="*"@CONFIG_SYSTEM_TRUSTED_KEYS=""@' $i done %endif # Adjust the FIPS module name for RHEL9. -for i in config-%{version}-*; do +for i in config-*; do sed -i 's@CONFIG_CRYPTO_FIPS_NAME=.*@CONFIG_CRYPTO_FIPS_NAME="Red Hat Enterprise Linux 9 - Kernel Cryptographic API"@' $i done -%{__make} -s distclean +%{__make} distclean popd > /dev/null @@ -611,9 +597,9 @@ popd > /dev/null pushd linux-%{KVERREL} > /dev/null %ifarch x86_64 || aarch64 -cp config-%{version}-%{_target_cpu} .config +cp config-%{_target_cpu} .config -%{__make} -s ARCH=%{bldarch} oldconfig +%{__make} ARCH=%{bldarch} oldconfig %if %{signkernel} || %{signmodules} cp %{SOURCE23} certs/ @@ -641,7 +627,7 @@ RPM_VMLINUX_H=vmlinux.h %endif %global perf_make \ - %{__make} -s -C tools/perf NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 LIBTRACEEVENT_DYNAMIC=1 %{?perf_build_extra_opts} prefix=%{_prefix} PYTHON=%{__python3} + %{__make} -C tools/perf NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 LIBTRACEEVENT_DYNAMIC=1 %{?perf_build_extra_opts} prefix=%{_prefix} PYTHON=%{__python3} # Make sure that check-headers.sh is executable. chmod +x tools/perf/check-headers.sh @@ -654,43 +640,43 @@ chmod +x tools/perf/check-headers.sh chmod +x tools/power/cpupower/utils/version-gen.sh pushd tools/power/cpupower > /dev/null -%{__make} -s %{?_smp_mflags} CPUFREQ_BENCH=false DEBUG=false +%{__make} %{?_smp_mflags} CPUFREQ_BENCH=false DEBUG=false popd > /dev/null %ifarch x86_64 pushd tools/power/cpupower/debug/x86_64 > /dev/null -%{__make} -s %{?_smp_mflags} centrino-decode powernow-k8-decode +%{__make} %{?_smp_mflags} centrino-decode powernow-k8-decode popd > /dev/null pushd tools/power/x86/x86_energy_perf_policy > /dev/null -%{__make} -s %{?_smp_mflags} +%{__make} %{?_smp_mflags} popd > /dev/null pushd tools/power/x86/turbostat > /dev/null -%{__make} -s %{?_smp_mflags} +%{__make} %{?_smp_mflags} popd > /dev/null pushd tools/power/x86/intel-speed-select > /dev/null -%{__make} -s %{?_smp_mflags} +%{__make} %{?_smp_mflags} popd > /dev/null %endif pushd tools/thermal/tmon > /dev/null -%{__make} -s %{?_smp_mflags} +%{__make} %{?_smp_mflags} popd > /dev/null pushd tools/iio > /dev/null -%{__make} -s %{?_smp_mflags} +%{__make} %{?_smp_mflags} popd > /dev/null pushd tools/gpio > /dev/null -%{__make} -s %{?_smp_mflags} +%{__make} %{?_smp_mflags} popd > /dev/null ### BCAT %if 0 pushd tools/vm > /dev/null -%{__make} -s %{?_smp_mflags} slabinfo page_owner_sort +%{__make} %{?_smp_mflags} slabinfo page_owner_sort popd > /dev/null %endif ### BCAT @@ -698,7 +684,7 @@ popd > /dev/null %if %{with_bpftool} %global bpftool_make \ - %{__make} -s EXTRA_CFLAGS="${RPM_OPT_FLAGS}" EXTRA_LDFLAGS="%{__global_ldflags}" DESTDIR=$RPM_BUILD_ROOT VMLINUX_H="${RPM_VMLINUX_H}" + %{__make} EXTRA_CFLAGS="${RPM_OPT_FLAGS}" EXTRA_LDFLAGS="%{__global_ldflags}" DESTDIR=$RPM_BUILD_ROOT VMLINUX_H="${RPM_VMLINUX_H}" pushd tools/bpf/bpftool > /dev/null %{bpftool_make} @@ -852,7 +838,7 @@ cp -a scripts $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build rm -fr $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build/scripts/tracing rm -f $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build/scripts/spdxcheck.py -# Files for 'make scripts' to succeed with kernel-ml-devel. +# Files for 'make scripts' to succeed with kernel-*-devel. mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build/security/selinux/include cp -a --parents security/selinux/include/classmap.h $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build cp -a --parents security/selinux/include/initial_sid_to_string.h $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build @@ -860,7 +846,7 @@ mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build/tools/include/tools cp -a --parents tools/include/tools/be_byteshift.h $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build -# Files for 'make prepare' to succeed with kernel-ml-devel. +# Files for 'make prepare' to succeed with kernel-*-devel. cp -a --parents tools/include/linux/compiler* $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build cp -a --parents tools/include/linux/types.h $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build cp -a --parents tools/build/Build.include $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build @@ -919,7 +905,7 @@ cp -a --parents arch/arm/include/asm/opcodes.h $RPM_BUILD_ROOT/lib/modules/%{KVE cp -a include $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build/include %ifarch x86_64 -# Files required for 'make prepare' to succeed with kernel-ml-devel. +# Files required for 'make prepare' to succeed with kernel-*-devel. cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build/ cp -a --parents arch/x86/entry/syscalls/syscall_64.tbl $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build/ cp -a --parents arch/x86/tools/relocs_32.c $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build/ @@ -1000,11 +986,11 @@ remove_depmod_files() remove_depmod_files -# Identify modules in the kernel-ml-modules-extras package +# Identify modules in the kernel-*-modules-extras package %{SOURCE20} $RPM_BUILD_ROOT lib/modules/%{KVERREL} %{SOURCE26} # -# Generate the kernel-ml-core and kernel-ml-modules file lists. +# Generate the kernel-*-core and kernel-*-modules file lists. # # Make a copy of the System.map file for depmod to use. @@ -1017,11 +1003,11 @@ pushd $RPM_BUILD_ROOT > /dev/null mkdir restore cp -r lib/modules/%{KVERREL}/* restore/ -# Don't include anything going into kernel-ml-modules-extra in the file lists. +# Don't include anything going into kernel-*-modules-extra in the file lists. xargs rm -fr < mod-extra.list # Find all the module files and filter them out into the core and modules lists. -# This actually removes anything going into kernel-ml-modules from the directory. +# This actually removes anything going into kernel-*-modules from the directory. find lib/modules/%{KVERREL}/kernel -name *.ko -type f | sort -n > modules.list cp $RPM_SOURCE_DIR/filter-*.sh . ./filter-modules.sh modules.list %{_target_cpu} @@ -1044,7 +1030,7 @@ remove_depmod_files ### BCAT # Go back and find all of the various directories in the tree. -# We use this for the directory lists in kernel-ml-core. +# We use this for the directory lists in kernel-*-core. find lib/modules/%{KVERREL}/kernel -mindepth 1 -type d | sort -n > module-dirs.list # Cleanup. @@ -1073,15 +1059,15 @@ mv $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build $RPM_BUILD_ROOT/usr/src/kernels/ # This is going to create a broken link during the build but we don't use # it after this point. We need the link to actually point to something -# for when the kernel-ml-devel package is installed. +# for when the kernel-*-devel package is installed. ln -sf /usr/src/kernels/%{KVERREL} $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/build -# Move the generated vmlinux.h file into the kernel-ml-devel directory structure. +# Move the generated vmlinux.h file into the kernel-*-devel directory structure. if [ -f tools/bpf/bpftool/vmlinux.h ]; then mv tools/bpf/bpftool/vmlinux.h $RPM_BUILD_ROOT/usr/src/kernels/%{KVERREL}/ fi -# Purge the kernel-ml-devel tree of leftover junk. +# Purge the kernel-*-devel tree of leftover junk. find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -type f -delete # Red Hat UEFI Secure Boot CA certificate, which can be used to authenticate the kernel. @@ -1098,12 +1084,12 @@ cp certs/signing_key.x509 certs/signing_key.x509.sign %endif # We have to do the headers install before the tools install because the -# kernel-ml headers_install will remove any header files in /usr/include that +# kernel-* headers_install will remove any header files in /usr/include that # it doesn't install itself. %if %{with_headers} -# Install kernel-ml headers -%{__make} -s ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install +# Install kernel-* headers +%{__make} ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install find $RPM_BUILD_ROOT/usr/include \ \( -name .install -o -name .check -o \ @@ -1137,7 +1123,7 @@ rm -fr $RPM_BUILD_ROOT%{_libdir}/traceevent %endif %if %{with_tools} -%{__make} -s -C tools/power/cpupower DESTDIR=$RPM_BUILD_ROOT libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install +%{__make} -C tools/power/cpupower DESTDIR=$RPM_BUILD_ROOT libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la} @@ -1159,35 +1145,35 @@ install -m644 %{SOURCE2001} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/cpupower %ifarch x86_64 mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8 pushd tools/power/x86/x86_energy_perf_policy > /dev/null -%{__make} -s %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install +%{__make} %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install popd > /dev/null pushd tools/power/x86/turbostat > /dev/null -%{__make} -s %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install +%{__make} %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install popd > /dev/null pushd tools/power/x86/intel-speed-select > /dev/null -%{__make} -s %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install +%{__make} %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install popd > /dev/null %endif pushd tools/thermal/tmon > /dev/null -%{__make} -s %{?_smp_mflags} INSTALL_ROOT=$RPM_BUILD_ROOT install +%{__make} %{?_smp_mflags} INSTALL_ROOT=$RPM_BUILD_ROOT install popd > /dev/null pushd tools/iio > /dev/null -%{__make} -s %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install +%{__make} %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install popd > /dev/null pushd tools/gpio > /dev/null -%{__make} -s %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install +%{__make} %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install popd > /dev/null install -m644 -D %{SOURCE2002} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/kvm_stat pushd tools/kvm/kvm_stat > /dev/null -%{__make} -s INSTALL_ROOT=$RPM_BUILD_ROOT install-tools -%{__make} -s INSTALL_ROOT=$RPM_BUILD_ROOT install-man +%{__make} INSTALL_ROOT=$RPM_BUILD_ROOT install-tools +%{__make} INSTALL_ROOT=$RPM_BUILD_ROOT install-man install -m644 -D kvm_stat.service $RPM_BUILD_ROOT%{_unitdir}/kvm_stat.service popd > /dev/null @@ -1238,13 +1224,13 @@ popd > /dev/null %endif # -# This macro defines a %%post script for a kernel-ml*-devel package. -# %%kernel_ml_devel_post [] +# This macro defines a %%post script for a kernel-**-devel package. +# %%devel_post [] # Note we don't run hardlink if ostree is in use, as ostree is # a far more sophisticated hardlink implementation. # https://github.com/projectatomic/rpm-ostree/commit/58a79056a889be8814aa51f507b2c7a4dccee526 # -%define kernel_ml_devel_post() \ +%define devel_post() \ %{expand:%%post %{?1:%{1}-}devel}\ if [ -f /etc/sysconfig/kernel ]\ then\ @@ -1260,11 +1246,11 @@ fi\ %{nil} # -# This macro defines a %%post script for a kernel-ml*-modules-extra package. +# This macro defines a %%post script for a kernel-**-modules-extra package. # It also defines a %%postun script that does the same thing. -# %%kernel_ml_modules_extra_post [] +# %%modules_extra_post [] # -%define kernel_ml_modules_extra_post() \ +%define modules_extra_post() \ %{expand:%%post %{?1:%{1}-}modules-extra}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil}\ @@ -1273,11 +1259,11 @@ fi\ %{nil} # -# This macro defines a %%post script for a kernel-ml*-modules package. +# This macro defines a %%post script for a kernel-**-modules package. # It also defines a %%postun script that does the same thing. -# %%kernel_ml_modules_post [] +# %%modules_post [] # -%define kernel_ml_modules_post() \ +%define modules_post() \ %{expand:%%post %{?1:%{1}-}modules}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil}\ @@ -1285,11 +1271,11 @@ fi\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil} -# This macro defines a %%posttrans script for a kernel-ml package. -# %%kernel_ml_variant_posttrans [] +# This macro defines a %%posttrans script for a kernel-* package. +# %%variant_posttrans [] # More text can follow to go at the end of this variant's %%post. # -%define kernel_ml_variant_posttrans() \ +%define variant_posttrans() \ %{expand:%%posttrans %{?1:%{1}-}core}\ if [ -x %{_sbindir}/weak-modules ]\ then\ @@ -1299,15 +1285,15 @@ fi\ %{nil} # -# This macro defines a %%post script for a kernel-ml package and its devel package. -# %%kernel_ml_variant_post [-v ] [-r ] +# This macro defines a %%post script for a kernel-* package and its devel package. +# %%variant_post [-v ] [-r ] # More text can follow to go at the end of this variant's %%post. # -%define kernel_ml_variant_post(v:r:) \ -%{expand:%%kernel_ml_devel_post %{?-v*}}\ -%{expand:%%kernel_ml_modules_post %{?-v*}}\ -%{expand:%%kernel_ml_modules_extra_post %{?-v*}}\ -%{expand:%%kernel_ml_variant_posttrans %{?-v*}}\ +%define variant_post(v:r:) \ +%{expand:%%devel_post %{?-v*}}\ +%{expand:%%modules_post %{?-v*}}\ +%{expand:%%modules_extra_post %{?-v*}}\ +%{expand:%%variant_posttrans %{?-v*}}\ %{expand:%%post %{?-v*:%{-v*}-}core}\ %{-r:\ if [ `uname -i` == "x86_64" ] &&\ @@ -1317,10 +1303,10 @@ fi}\ %{nil} # -# This macro defines a %%preun script for a kernel-ml package. -# %%kernel_ml_variant_preun +# This macro defines a %%preun script for a kernel-* package. +# %%variant_preun # -%define kernel_ml_variant_preun() \ +%define variant_preun() \ %{expand:%%preun %{?1:%{1}-}core}\ /bin/kernel-install remove %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\ if [ -x %{_sbindir}/weak-modules ]\ @@ -1329,8 +1315,8 @@ then\ fi\ %{nil} -%kernel_ml_variant_preun -%kernel_ml_variant_post -r kernel-smp +%variant_preun +%variant_post -r kernel-smp if [ -x /sbin/ldconfig ] then @@ -1438,11 +1424,11 @@ fi %endif # -# This macro defines the %%files sections for a kernel-ml package +# This macro defines the %%files sections for a kernel-* package # and its devel package. -# %%kernel_ml_variant_files [-k vmlinux] +# %%variant_files [-k vmlinux] # -%define kernel_ml_variant_files(k:) \ +%define variant_files(k:) \ %if %{2}\ %{expand:%%files -f %{name}-%{?3:%{3}-}core.list %{?1:-f %{name}-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\ %{!?_licensedir:%global license %%doc}\ @@ -1488,7 +1474,7 @@ fi %endif\ %{nil} -%kernel_ml_variant_files %{_use_vdso} %{with_std} +%variant_files %{_use_vdso} %{with_std} %changelog * Wed Nov 08 2023 Akemi Yagi - 6.6.1-1 diff --git a/kernel-lts.spec b/kernel-lts.spec new file mode 100644 index 0000000..703dfe4 --- /dev/null +++ b/kernel-lts.spec @@ -0,0 +1,12 @@ +%global major_ver 6 +%global minor_ver 1 +%global patch_ver 62 +%global release_v 0 + +Name: kernel-lts + +%global src_dir linux-%{major_ver}.%{minor_ver}.%{patch_ver} + +Source0: https://cdn.kernel.org/pub/linux/kernel/v%{major_ver}.x/linux-%{major_ver}.%{minor_ver}.%{patch_ver}.tar.xz +Source1: kernel-common.inc +%include %{SOURCE1} diff --git a/kernel-mainline.spec b/kernel-mainline.spec new file mode 100644 index 0000000..243f92c --- /dev/null +++ b/kernel-mainline.spec @@ -0,0 +1,13 @@ +%global major_ver 6 +%global minor_ver 7 +%global patch_ver 0 +%global rc_ver 1 +%global release_v 0 + +Name: kernel-mainline + +%global src_dir linux-%{major_ver}.%{minor_ver}-rc%{rc_ver} + +Source0: https://git.kernel.org/torvalds/t/linux-%{major_ver}.%{minor_ver}-rc%{rc_ver}.tar.gz +Source1: kernel-common.inc +%include %{SOURCE1} diff --git a/kernel-next.spec b/kernel-next.spec new file mode 100644 index 0000000..145c439 --- /dev/null +++ b/kernel-next.spec @@ -0,0 +1,13 @@ +%global major_ver 6 +%global minor_ver 7 +%global patch_ver 0 +%global next_snapshot_date 20231117 +%global release_v 0 + +Name: kernel-next + +%global src_dir linux-next-next-%{next_snapshot_date} + +Source0: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/snapshot/linux-next-next-%{next_snapshot_date}.tar.gz +Source1: kernel-common.inc +%include %{SOURCE1} diff --git a/kernel-stable.spec b/kernel-stable.spec new file mode 100644 index 0000000..15748c2 --- /dev/null +++ b/kernel-stable.spec @@ -0,0 +1,12 @@ +%global major_ver 6 +%global minor_ver 6 +%global patch_ver 1 +%global release_v 0 + +Name: kernel-stable + +%global src_dir linux-%{major_ver}.%{minor_ver}.%{patch_ver} + +Source0: https://cdn.kernel.org/pub/linux/kernel/v%{major_ver}.x/linux-%{major_ver}.%{minor_ver}.%{patch_ver}.tar.xz +Source1: kernel-common.inc +%include %{SOURCE1}