%define kversion 7.0.3 %define krelease 8 %define ktag shivaos %define kverstr %{kversion}-%{ktag} %define kname kernel-%{ktag} # Désactiver les vérifications debug Fedora (non applicable kernel custom) %define debug_package %{nil} %global _build_id_links none Name: %{kname} Version: %{kversion} Release: %{krelease}.%{ktag}%{?dist} Summary: ShivaOS Gaming Kernel — Linux %{kversion} + CachyOS BORE + 1000Hz + NVIDIA License: GPL-2.0-only URL: https://shivaos.com ExclusiveArch: x86_64 # ── Sources ────────────────────────────────────────────────── Source0: https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-%{kversion}.tar.xz Source1: shivaos-gaming.config Source2: bore-cachy.patch Source3: zen-gaming.patch Source4: fedora-base.config Source5: nvidia-atomic-kms.patch Source6: nvidia-ibt.patch Source7: nvidia-fix-compile.patch # ── Dépendances ────────────────────────────────────────────── BuildRequires: gcc gcc-c++ make flex bison bc perl python3 BuildRequires: openssl openssl-devel elfutils-libelf-devel dwarves BuildRequires: binutils xz rsync Requires(post): dracut grubby Requires(postun): dracut Recommends: kernel-shivaos-devel = %{version}-%{release} # Compatibilité Fedora — on fournit les mêmes "provides" que le kernel stock Provides: kernel = %{kversion}-%{release} Provides: kernel-uname-r = %{kverstr}.x86_64 Provides: installonlypkg(kernel) %description Kernel Linux %{kversion} optimisé pour ShivaOS Gaming. - Scheduler BORE (Burst-Oriented Response Enhancer) - Patches Zen (latence desktop/gaming) - Timer 1000Hz - Préemption complète - x86-64-v3 (AVX2 / FMA / BMI2) - ntsync (Wine/Proton NT synchronization) - AMD-pstate mode performance - TCP BBR, modules ZSTD - Debug kernel désactivé %package headers Summary: Headers du kernel ShivaOS %{kversion} Provides: kernel-headers = %{kversion} Obsoletes: kernel-headers < %{kversion} %description headers Headers C du kernel ShivaOS %{kversion} pour compiler des modules. %package devel Summary: Fichiers de développement du kernel ShivaOS %{kversion} Provides: kernel-devel = %{kversion}-%{release} Requires: %{kname} = %{version}-%{release} %description devel Fichiers nécessaires pour compiler des modules kernel tiers. # ── Préparation ────────────────────────────────────────────── %prep %setup -q -n linux-%{kversion} # Patch Zen (optionnel — fichier vide si indisponible) patch -p1 --forward --ignore-whitespace < %{SOURCE3} || true # Patch BORE CachyOS (scheduler gaming — remplace bore basique) patch -p1 --forward --ignore-whitespace < %{SOURCE2} # Patches NVIDIA kernel (atomic KMS, IBT support, fix compile) patch -p1 --forward --ignore-whitespace < %{SOURCE5} || true patch -p1 --forward --ignore-whitespace < %{SOURCE6} || true patch -p1 --forward --ignore-whitespace < %{SOURCE7} || true # ── Configuration ──────────────────────────────────────────── %build # Base : config Fedora stock (bundlée dans le SRPM) — garantit tous les drivers cp %{SOURCE4} .config make olddefconfig # Appliquer la config ShivaOS gaming while IFS= read -r line; do [[ "$line" =~ ^#|^$ ]] && continue key="${line%%=*}" val="${line#*=}" case "$val" in y) scripts/config --enable "$key" 2>/dev/null || true ;; n) scripts/config --disable "$key" 2>/dev/null || true ;; m) scripts/config --module "$key" 2>/dev/null || true ;; \"*) scripts/config --set-str "$key" "${val//\"/}" 2>/dev/null || true ;; [0-9]*) scripts/config --set-val "$key" "$val" 2>/dev/null || true ;; esac done < %{SOURCE1} # Forcer le nom ShivaOS scripts/config --set-str CONFIG_LOCALVERSION "-%{ktag}" make olddefconfig # Build kernel + modules + headers make %{?_smp_mflags} bzImage modules # ── Installation ───────────────────────────────────────────── %install rm -rf %{buildroot} # La version réelle du kernel = version + LOCALVERSION = "7.0.3-shivaos" KV="%{kverstr}" install -d %{buildroot}/boot install -d %{buildroot}/usr/include install -d %{buildroot}/usr/src/kernels/${KV} # vmlinuz, System.map, config install -m 755 arch/x86/boot/bzImage %{buildroot}/boot/vmlinuz-${KV} install -m 644 System.map %{buildroot}/boot/System.map-${KV} install -m 644 .config %{buildroot}/boot/config-${KV} # Modules (installe dans /lib/modules/7.0.3-shivaos/) make INSTALL_MOD_PATH=%{buildroot} modules_install KERNELRELEASE=${KV} # Supprimer les symlinks build/source gérés par -devel rm -f %{buildroot}/lib/modules/${KV}/build rm -f %{buildroot}/lib/modules/${KV}/source # Headers publics make INSTALL_HDR_PATH=%{buildroot}/usr headers_install # Fichiers devel (pour compiler des modules) DEVEL=%{buildroot}/usr/src/kernels/${KV} cp -a --parents Makefile .config Module.symvers System.map \ include arch/x86/include arch/x86/Makefile scripts \ "$DEVEL/" 2>/dev/null || true # Symlink modules -> devel ln -sf /usr/src/kernels/${KV} %{buildroot}/lib/modules/${KV}/build # ── Scripts post-install ────────────────────────────────────── %post KV="%{kverstr}" /sbin/depmod -a ${KV} || true dracut --force --no-hostonly \ --add-drivers "amdgpu i915 xe nouveau virtio-gpu vmwgfx simpledrm" \ /boot/initramfs-${KV}.img ${KV} || true if command -v grubby &>/dev/null; then grubby --add-kernel=/boot/vmlinuz-${KV} \ --initrd=/boot/initramfs-${KV}.img \ --title="ShivaOS Kernel %{kversion}" \ --copy-default --make-default 2>/dev/null || true fi # Recompiler les modules externes (NVIDIA akmod, VirtualBox, etc.) if command -v akmods &>/dev/null; then akmods --kernels ${KV} &>/dev/null & fi %postun KV="%{kverstr}" rm -f /boot/initramfs-${KV}.img if command -v grubby &>/dev/null; then grubby --remove-kernel=/boot/vmlinuz-${KV} 2>/dev/null || true fi # ── Listes de fichiers ──────────────────────────────────────── %files %defattr(-,root,root,-) /boot/vmlinuz-%{kverstr} /boot/System.map-%{kverstr} /boot/config-%{kverstr} /lib/modules/%{kverstr}/ %files headers %defattr(-,root,root,-) /usr/include/ %files devel %defattr(-,root,root,-) /usr/src/kernels/%{kverstr}/ %changelog * Sat May 09 2026 Cédric Decelle - 7.0.3-8.shivaos - Fix patch BORE : bore-cachy incompatible 7.0.3, retour bore.patch CachyOS * Sat May 09 2026 Cédric Decelle - 7.0.3-7.shivaos - Patch BORE remplacé par bore-cachy.patch CachyOS (scheduler + Cachy sauce gaming) - Patches NVIDIA kernel : atomic KMS par défaut, IBT support, fix compile - Compatibilité akmod-nvidia améliorée pour Atomic et Classic * Fri May 08 2026 Cédric Decelle - 7.0.3-6.shivaos - Recommends: kernel-shivaos-devel (installé automatiquement pour akmod-nvidia) - %post : lance akmods automatiquement après l'installation du kernel * Thu May 07 2026 Cédric Decelle - 7.0.3-5.shivaos - Fix build COPR : ajout openssl (binaire CLI) dans BuildRequires pour signing_key.pem * Thu May 07 2026 Cédric Decelle - 7.0.3-4.shivaos - Config gaming complète : MEMCG, PSI, BPF, USER_NS, ZRAM, ZSWAP, FUTEX_PI, IO_URING - THP shmem/tmpfs pour DXVK/Wine, RCU_BOOST latence, ZRAM ZSTD, schedutil governor - Options CachyOS-spécifiques volontairement exclues (CACHY, SCHED_CLASS_EXT, etc.) * Thu May 07 2026 Cédric Decelle - 7.0.3-3.shivaos - Fix boot NVMe : CONFIG_BLK_DEV_NVME=y forcé dans gaming.config - Base config : fedora-base.config bundlé dans SRPM (plus de make defconfig sur COPR) * Wed May 06 2026 Cédric Decelle - 7.0.3-2.shivaos - Fix boot hang : dracut --no-hostonly + ajout drivers nvme/ahci/sd_mod dans initramfs * Tue May 05 2026 Cédric Decelle - 7.0.3-1.shivaos - Kernel ShivaOS 7.0.3 : Zen + BORE + 1000Hz + x86-64-v3 + ntsync