# Status: active # Tag: Tool # Type: Driver # Category: Tool # Kernel major version %global kmaj 7 # Kernel minor version %global kmin 2 # Kernel patch version %global kpat 8 # Xan version %global kxan 1 # package version %global krel 18 %global kver %{kmaj}.%{kmin}.%{kpat} %global fcver %{dist}.%{_arch} Name: kernel-xan-mao Summary: The Linux XanMod Real Time Kernel Version: %{kver}.xan%{kxan} Release: %{krel}%{?dist} License: GPL-2.0-only URL: https://www.xanmod.org ExclusiveArch: x86_64 aarch64 Vendor: Audinux Distribution: Audinux Source0: https://gitlab.com/xanmod/linux/-/archive/%{kver}-xanmod1/linux-%{kver}-xanmod1.tar.gz Source1: kernel-xanmod-config-%{kmaj}.%{kmin} %if 0%{?fedora} > 40 && 0%{?fedora} < 45 # openssl-devel-engine existed only in OpenSSL 3.x (Fedora 41-44) BuildRequires: openssl-devel-engine %else BuildRequires: openssl-devel %endif BuildRequires: openssl BuildRequires: kmod BuildRequires: patch BuildRequires: bash BuildRequires: tar BuildRequires: bzip2 BuildRequires: xz BuildRequires: findutils BuildRequires: gzip BuildRequires: zlib-devel BuildRequires: m4 BuildRequires: perl-interpreter BuildRequires: perl-Carp BuildRequires: perl-devel BuildRequires: perl-generators BuildRequires: make BuildRequires: diffutils BuildRequires: gawk BuildRequires: gcc BuildRequires: binutils BuildRequires: redhat-rpm-config BuildRequires: bison BuildRequires: flex BuildRequires: net-tools BuildRequires: hostname BuildRequires: bc BuildRequires: elfutils-devel BuildRequires: rpm-build BuildRequires: rpm BuildRequires: elfutils BuildRequires: elfutils-libelf-devel BuildRequires: rsync BuildRequires: dwarves BuildRequires: rust BuildRequires: rust-src BuildRequires: rustfmt BuildRequires: bindgen BuildRequires: clippy Provides: kernel = %{version} Provides: kernel-xan-mao = %{version} Provides: kernel-uname-r = %{kver}-xanmod%{kxan}.%{krel}%{fcver} %global __spec_install_post /usr/lib/rpm/brp-compress || : %global debug_package %{nil} %description The Linux Real Time Kernel, the operating system core itself %package headers Summary: Header files for the Linux real time kernel for use by glibc %description headers Kernel-headers includes the C header files that specify the interface between the Linux kernel and userspace libraries and programs. The header files define structures and constants that are needed for building most standard programs and are also needed for rebuilding the glibc package. %package devel Summary: Development package for building real time kernel modules to match the %{version} kernel AutoReqProv: no # For NVidia driver build Provides: kernel-devel-uname-r = %{kver}-xanmod%{kxan}.%{krel}%{fcver} %description devel This package provides real time kernel headers and makefiles sufficient to build modules against the %{version} kernel package. %prep %autosetup -p1 -n linux-%{kver}-xanmod%{kxan} cp %{SOURCE1} .config echo "" > localversion echo "" > localversion-rt echo "" > localversion-xanmod make olddefconfig sed -i -e "s/EXTRAVERSION =.*/EXTRAVERSION = -xan%{kxan}.%{krel}%{fcver}/g" Makefile sed -i -e "s/SUBLEVEL = 0/SUBLEVEL = %{kpat}/g" Makefile %build %{make_build} KCFLAGS="-Wno-error=unused-but-set-variable" %install KBUILD_IMAGE=$(make image_name) mkdir -p %{buildroot}/boot %{buildroot}/lib/modules make %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} KBUILD_SRC= mod-fw= INSTALL_MOD_STRIP=1 CONFIG_MODULE_COMPRESS=1 CONFIG_MODULE_COMPRESS_XZ=1 modules_install # We estimate the size of the initramfs because rpm needs to take this size # into consideration when performing disk space calculations. (See bz #530778) dd if=/dev/zero of=%{buildroot}/boot/initramfs-%{kver}-xan%{kxan}.%{krel}%{fcver}.img bs=1M count=20 cp $KBUILD_IMAGE %{buildroot}/boot/vmlinuz-%{kver}-xan%{kxan}.%{krel}%{fcver} chmod a+x %{buildroot}/boot/vmlinuz-%{kver}-xan%{kxan}.%{krel}%{fcver} make %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr KBUILD_SRC= headers_install cp System.map %{buildroot}/boot/System.map-%{kver}-xan%{kxan}.%{krel}%{fcver} cp .config %{buildroot}/boot/config-%{kver}-xan%{kxan}.%{krel}%{fcver} cp %{buildroot}/boot/vmlinuz-%{kver}-xan%{kxan}.%{krel}%{fcver} %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/vmlinuz rm -f %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/build rm -f %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/source mkdir -p %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/build (cd %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver} ; ln -s build source) # dirs for additional modules per module-init-tools, kbuild/modules.txt mkdir -p %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/extra mkdir -p %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/internal mkdir -p %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/updates # CONFIG_KERNEL_HEADER_TEST generates some extra files in the process of # testing so just delete find . -name "*.h.s" -delete # first copy everything cp --parents $(find -type f \( -name "Makefile*" -o -name "Kconfig*" \)) %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/build cp Module.symvers %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/build cp System.map %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/build if [ -s Module.markers ]; then cp Module.markers %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/build fi # Move the devel headers out of the root file system DevelDir=/usr/src/kernels/%{kver}-xan%{kxan}.%{krel}%{fcver} mkdir -p %{buildroot}/usr/src/kernels/%{kver}-xan%{kxan}.%{krel}%{fcver} mv %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/build %{buildroot}/$DevelDir # 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 # when kernel-devel is installed, and a relative link doesn't work across # the F17 UsrMove feature. ln -sf $DevelDir %{buildroot}/lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/build # prune junk from kernel-devel find %{buildroot}/usr/src/kernels -name ".*.cmd" -delete EXCLUDES="--exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg --exclude .git --exclude .tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.ko.xz --exclude=*.cmd --exclude=Documentation --exclude=firmware --exclude .config.old --exclude .missing-syscalls.d" tar $EXCLUDES -cf- . | (cd %{buildroot}/usr/src/kernels/%{kver}-xan%{kxan}.%{krel}%{fcver}; tar xvf -) %post # Create the initramfs file; kernel-install also updates the bootloader (BLS) /bin/kernel-install add %{kver}-xan%{kxan}.%{krel}%{fcver} /lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/vmlinuz %preun # $1=0: full removal; $1=1: upgrade (new RPM release, same kernel version) # Only remove when fully uninstalling to avoid wiping the just-installed initramfs if [ "$1" = "0" ]; then /bin/kernel-install remove %{kver}-xan%{kxan}.%{krel}%{fcver} /lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver}/vmlinuz fi %files /lib/modules/%{kver}-xan%{kxan}.%{krel}%{fcver} /boot/vmlinuz-%{kver}-xan%{kxan}.%{krel}%{fcver} /boot/System.map-%{kver}-xan%{kxan}.%{krel}%{fcver} /boot/config-%{kver}-xan%{kxan}.%{krel}%{fcver} %ghost /boot/initramfs-%{kver}-xan%{kxan}.%{krel}%{fcver}.img %files headers /usr/include %files devel /usr/src/kernels/%{kver}-xan%{kxan}.%{krel}%{fcver} %changelog * Sat Oct 03 2026 Yann Collette - 7.2.8-xan1-18 - update to 7.2.8-xan1-18 * Wed Aug 26 2026 Yann Collette - 7.1.9-xan1-18 - fix invalid version string: use '.' instead of '-' before %%{krel} * Wed Aug 26 2026 Yann Collette - 7.1.9-xan1-17 - embed RPM release (%{krel}) in EXTRAVERSION and all module/boot paths so each RPM release installs to its own unique /lib/modules/ path * Tue Aug 25 2026 Yann Collette - 7.1.9-xan1-16 - update to 7.1.9-xan1-16 - add a missing provides * Mon Aug 24 2026 Yann Collette - 7.1.9-xan1-15 - update to 7.1.9-xan1-15 - vanilla XanMod kernel * Mon Aug 24 2026 Yann Collette - 7.1.7-xan1-15 - update to 7.1.7-xan1-15 - add a missing provides * Mon Aug 10 2026 Yann Collette - 7.1.7-xan1-14 - update to 7.1.7-xan1-12 - vanilla XanMod kernel * Mon Aug 10 2026 Yann Collette - 6.19.14-xan1-14 - fix kernel-install on RPM-release-only upgrades: replace postun with preun guarded by $1=0 so kernel-install remove is skipped during upgrades * Mon Aug 10 2026 Yann Collette - 6.19.14-xan1-13 - modernize spec: define→global, GPL→SPDX, URL http→https, make olddefconfig, {make_build} with KCFLAGS, remove ia64 dead code, drop grub2-mkconfig, fix find quoting and parentheses, explicit files instead of /boot/* * Fri May 08 2026 Yann Collette - 6.19.14-xan1-12 - update to 6.19.14-xan1-12 - vanilla XanMod kernel * Wed Mar 11 2026 Yann Collette - 6.18.16-xan1-12 - update to 6.18.16-xan1-12 - vanilla XanMod kernel * Sun Dec 14 2025 Yann Collette - 6.17.11-xan1-12 - update to 6.17.11-xan1-12 - vanilla XanMod kernel * Sun Oct 12 2025 Yann Collette - 6.16.10-xan1-12 - update to 6.16.10-xan1-12 - vanilla XanMod kernel * Thu May 08 2025 Yann Collette - 6.14.5-xan1-12 - update to 6.14.5-xan1-12 - vanilla XanMod kernel * Wed Nov 27 2024 Yann Collette - 6.11.10-xan1-12 - update to 6.11.10-xan1-12 - vanilla XanMod kernel * Fri Oct 11 2024 Yann Collette - 6.10.12-xan1-12 - update to 6.10.12-xan1-12 - vanilla XanMod kernel * Fri Jul 19 2024 Yann Collette - 6.9.9-xan1-12 - update to 6.9.9-xan1-12 - vanilla XanMod kernel * Fri May 03 2024 Yann Collette - 6.8.9-xan1-12 - update to 6.8.9-xan1-12 - vanilla XanMod kernel * Fri Feb 23 2024 Yann Collette - 6.7.6-xan1-12 - update to 6.7.6-xan1-12 - vanilla XanMod kernel * Fri Jan 19 2024 Yann Collette - 6.6.11-xan1-12 - update to 6.6.11-xan1-12 - vanilla XanMod kernel * Mon Jan 01 2024 Yann Collette - 6.6.9-xan1-12 - update to 6.6.9-xan1-12 - vanilla XanMod kernel * Thu Nov 09 2023 Yann Collette - 6.5.11-xan1-12 - update to 6.5.11-xan1-12 - vanilla XanMod kernel * Wed Oct 04 2023 Yann Collette - 6.5.5-xan1-12 - update to 6.5.5-xan1-12 - vanilla XanMod kernel * Thu Aug 03 2023 Yann Collette - 6.4.7-xan1-12 - update to 6.4.7-xan1-12 - vanilla XanMod kernel * Mon May 01 2023 Yann Collette - 6.1.18-xan1-12 - update to 6.1.18-xan1-12 - vanilla XanMod kernel * Tue Mar 07 2023 Yann Collette - 6.1.14-xan1-12 - update to 6.1.14-xan1-12 - vanilla XanMod kernel * Mon Feb 13 2023 Yann Collette - 6.1.11-xan1-12 - update to 6.1.11-xan1-12 - vanilla XanMod kernel * Sat Dec 10 2022 Yann Collette - 6.0.12-xan1-12 - update to 6.0.12-xan1-12 - vanilla XanMod kernel * Tue Nov 22 2022 Yann Collette - 6.0.9-xan1-12 - update to 6.0.9-xan1-12 - vanilla XanMod kernel * Thu Nov 10 2022 Yann Collette - 6.0.7-xan1-12 - update to 6.0.7-xan1-12 - vanilla XanMod kernel