# Maintainer: Eric Naim # Fedora bits %global _default_patch_fuzz 2 %define _build_id_links none %define _disable_source_fetch 0 %define debug_package %{nil} %undefine _auto_set_build_flags %undefine _include_frame_pointers # Linux Kernel Versions %define _basekver 6.12 %define _stablekver 9 %define _rpmver %{version}-%{release} %define _kver %{_rpmver}.%{_arch} # Define variables for directory paths # to be used during packaging %define _kernel_dir lib/modules/%{_kver} %define _devel_dir usr/src/kernels/%{_kver} Name: kernel-cachyos Summary: Linux BORE Cachy Sauce Kernel by CachyOS with other patches and improvements. Version: %{_basekver}.%{_stablekver} Release: cachyos3%{?dist} License: GPL-2.0-Only URL: https://cachyos.org Requires: kernel-core-uname-r = %{_kver} Requires: kernel-modules-uname-r = %{_kver} Requires: kernel-modules-core-uname-r = %{_kver} Provides: installonlypkg(kernel) Provides: kernel-uname-r = %{_kver} BuildRequires: bc BuildRequires: bison BuildRequires: cpio BuildRequires: dwarves BuildRequires: elfutils-devel BuildRequires: flex BuildRequires: gettext-devel BuildRequires: kernel-rpm-macros BuildRequires: kmod BuildRequires: make BuildRequires: openssl BuildRequires: openssl-devel BuildRequires: perl-Carp BuildRequires: perl-devel, BuildRequires: perl-generators BuildRequires: perl-interpreter BuildRequires: python3-devel BuildRequires: python3-pyyaml BuildRequires: redhat-rpm-config BuildRequires: tar BuildRequires: xz BuildRequires: zstd BuildRequires: gcc Source0: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-%{version}.tar.xz #Source0: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-%_basekver.tar.xz Source1: https://raw.githubusercontent.com/CachyOS/linux-cachyos/master/linux-cachyos/config Patch0: https://raw.githubusercontent.com/CachyOS/kernel-patches/master/%{_basekver}/all/0001-cachyos-base-all.patch Patch1: https://raw.githubusercontent.com/CachyOS/kernel-patches/master/%{_basekver}/sched/0001-bore-cachy.patch %description The meta package for %{name}. %prep %setup -q -n linux-%{version} %autopatch -p1 -v -M 9 cp %{SOURCE1} .config # Must always enable configs scripts/config -e CACHY scripts/config -e SCHED_BORE scripts/config -d HZ_300 scripts/config -e HZ_1000 scripts/config --set-val HZ 1000 scripts/config --set-val X86_64_VERSION 3 scripts/config -d HZ_PERIODIC scripts/config -d NO_HZ_IDLE scripts/config -d CONTEXT_TRACKING_FORCE scripts/config -e NO_HZ_FULL_NODEF scripts/config -e NO_HZ_FULL scripts/config -e NO_HZ scripts/config -e NO_HZ_COMMON scripts/config -e CONTEXT_TRACKING scripts/config --set-str CONFIG_LSM lockdown,yama,integrity,selinux,bpf,landlock make olddefconfig diff -u %{SOURCE1} .config || : %build make %{?_smp_mflags} EXTRAVERSION=-%{release}.%{_arch} all make -C tools/bpf/bpftool vmlinux.h feature-clang-bpf-co-re=1 %install install -Dm644 "$(make -s image_name)" "%{buildroot}/%{_kernel_dir}/vmlinuz" zstdmt -19 < Module.symvers > %{buildroot}/%{_kernel_dir}/symvers.zst # Modules ZSTD_CLEVEL=19 make INSTALL_MOD_PATH="%{buildroot}" INSTALL_MOD_STRIP=1 DEPMOD=/doesnt/exist modules_install # -devel files install -Dt %{buildroot}/%{_devel_dir} -m644 .config Makefile Module.symvers System.map vmlinux tools/bpf/bpftool/vmlinux.h cp .config %{buildroot}/%{_kernel_dir}/config cp System.map %{buildroot}/%{_kernel_dir}/System.map cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` %{buildroot}/%{_devel_dir} ln -sf %{buildroot}/%{_devel_dir} %{buildroot}/%{_kernel_dir}/build %package core Summary: Linux BORE Cachy Sauce Kernel by CachyOS with other patches and improvements Provides: kernel-core-uname-r = %{_kver} Provides: installonlypkg(kernel) Requires: kernel-modules-uname-r = %{_kver} Requires: coreutils Requires: dracut Requires: kmod %description core The kernel package contains the Linux kernel (vmlinuz), the core of any Linux operating system. The kernel handles the basic functions of the operating system: memory allocation, process allocation, device input and output, etc. %files core %dir /%{_kernel_dir} /%{_kernel_dir}/vmlinuz /%{_kernel_dir}/modules.builtin /%{_kernel_dir}/modules.builtin.modinfo /%{_kernel_dir}/symvers.zst /%{_kernel_dir}/config /%{_kernel_dir}/System.map %package modules Summary: Kernel modules package for %{name}. Provides: kernel-modules-uname-r = %{_kver} Provides: kernel-modules-core-uname-r = %{_kver} Provides: installonlypkg(kernel-module) Requires: kernel-uname-r = %{_kver} %description modules This package provides kernel modules for the %{name}-core kernel package. %files modules /%{_kernel_dir}/modules.order /%{_kernel_dir}/kernel %package devel Summary: Development package for building kernel modules to match %{name} Provides: kernel-devel-uname-r = %{_kver} Provides: installonlypkg(kernel) AutoReqProv: no Requires(pre): findutils Requires: findutils Requires: perl-interpreter Requires: openssl-devel Requires: elfutils-libelf-devel Requires: bison Requires: flex Requires: make Requires: gcc %description devel This package provides kernel headers and makefiles sufficient to build modules against %{name}. %files devel /%{_devel_dir} /%{_kernel_dir}/build %files