File linux-cachyos.spec of Package linux-cachyos
#
# linux-cachyos.spec — CachyOS kernel BORE + LTO + Cachy Sauce
# openSUSE Tumbleweed / Slowroll
#
# Generato manualmente — versione con fix vdso
# Sorgente: home:misotolar:linux-cachyos/linux-cachyos
#
# ─── Versioni ─────────────────────────────────────────────────────────────────
%define _major 6.19
%define _minor 6
%define _cachy 1
%define _kernver %{_major}.%{_minor}
%define _srctag cachyos-%{_major}.%{_minor}-%{_cachy}
%define kbuild_flags CC=clang LD=ld.lld LLVM=1 LLVM_IAS=1
# ─── Header RPM ───────────────────────────────────────────────────────────────
Name: linux-cachyos
Version: %{_kernver}
Release: %{_cachy}.1
Summary: Linux BORE + LTO + Cachy Sauce Kernel by CachyOS
License: GPL-2.0-only
URL: https://github.com/misotolar/linux-cachyos
ExclusiveArch: x86_64
# ─── Sorgenti ─────────────────────────────────────────────────────────────────
Source0: cachyos-6.19.6-1.tar.gz
Source1: config
Source2: config.sh
Source3: config.trinity.sh
Source20: linux-cachyos.rpmlintrc
Source10: 0101-CACHYOS-bore-cachy.patch
Source11: 0102-CACHYOS-dkms-clang.patch
# ─── Dipendenze di build ──────────────────────────────────────────────────────
BuildRequires: bc
BuildRequires: clang
BuildRequires: cpio
BuildRequires: lld
BuildRequires: llvm
BuildRequires: pahole
BuildRequires: perl
BuildRequires: python3
BuildRequires: rust
BuildRequires: rust-bindgen
BuildRequires: cargo
BuildRequires: tar
BuildRequires: xz
BuildRequires: zstd
BuildRequires: dracut
BuildRequires: flex
BuildRequires: bison
BuildRequires: openssl-devel
BuildRequires: libelf-devel
BuildRequires: pkgconfig(libssl)
%description
Linux kernel %{version} con BORE scheduler, LTO Clang e patch CachyOS.
Compilato con Clang/LLVM per openSUSE Tumbleweed.
BORE (Burst-Oriented Response Enhancer) migliora la responsività del desktop.
%package headers
Summary: Headers per il kernel linux-cachyos
Requires: %{name} = %{version}-%{release}
Requires: clang llvm lld pahole
%description headers
Headers e script per la compilazione di moduli out-of-tree.
# ─── Preparazione ─────────────────────────────────────────────────────────────
%prep
%setup -q -n %{_srctag}
echo "-%{release}" > localversion.10-pkgrel
echo "-cachyos" > localversion.20-pkgname
echo "Applying patch bore-cachy..."
patch -Np1 < %{SOURCE10}
echo "Applying patch dkms-clang..."
patch -Np1 < %{SOURCE11}
cp %{SOURCE1} .config
sh %{SOURCE2}
export KBUILD_BUILD_USER="%{name}"
export KBUILD_BUILD_HOST="opensuse"
make %{kbuild_flags} prepare
yes "" | make %{kbuild_flags} config > /dev/null
make -s kernelrelease > version
echo "Preparato %{name} versione $(cat version)"
# ─── Build ────────────────────────────────────────────────────────────────────
%build
export KBUILD_BUILD_USER="%{name}"
export KBUILD_BUILD_HOST="opensuse"
export KBUILD_BUILD_TIMESTAMP="$(date -Ru)"
make %{kbuild_flags} %{?_smp_mflags} all
make -C tools/bpf/bpftool vmlinux.h feature-clang-bpf-co-re=1
# ─── Installazione ────────────────────────────────────────────────────────────
%install
export KBUILD_BUILD_USER="%{name}"
export KBUILD_BUILD_HOST="opensuse"
_kver="$(cat version)"
_modulesdir="%{buildroot}/usr/lib/modules/${_kver}"
_builddir="${_modulesdir}/build"
install -Dm644 "$(make -s image_name)" "%{buildroot}/boot/vmlinuz-${_kver}"
install -Dm644 System.map "%{buildroot}/boot/System.map-${_kver}"
install -Dm644 .config "%{buildroot}/boot/config-${_kver}"
install -Dm644 "$(make -s image_name)" "${_modulesdir}/vmlinuz"
echo "%{name}" | install -Dm644 /dev/stdin "${_modulesdir}/pkgbase"
install -Dm644 version "%{buildroot}/usr/lib/modules/${_kver}/kernelversion"
ZSTD_CLEVEL=-1 make %{kbuild_flags} \
INSTALL_MOD_PATH="%{buildroot}/usr" \
INSTALL_MOD_STRIP=1 \
DEPMOD=/doesnt/exist \
modules_install
rm -f "${_modulesdir}/build"
install -Dt "${_builddir}" -m644 \
.config Makefile Module.symvers System.map \
localversion.* version vmlinux \
tools/bpf/bpftool/vmlinux.h
install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile
cp -a scripts "${_builddir}/"
ln -srt "${_builddir}" "${_builddir}/scripts/gdb/vmlinux-gdb.py" 2>/dev/null || true
install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool
if [ -f tools/bpf/resolve_btfids/resolve_btfids ]; then
install -Dt "${_builddir}/tools/bpf/resolve_btfids" \
tools/bpf/resolve_btfids/resolve_btfids
fi
cp -a include "${_builddir}/"
cp -a arch/x86/include "${_builddir}/arch/x86/"
install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h
install -Dt "${_builddir}/drivers/iio/common/hid-sensors" -m644 \
drivers/iio/common/hid-sensors/*.h
find . -name 'Kconfig*' -exec install -Dm644 {} "${_builddir}/{}" \;
if compgen -G "rust/*.rmeta" > /dev/null 2>&1; then
install -Dt "${_builddir}/rust" -m644 rust/*.rmeta
fi
if compgen -G "rust/*.so" > /dev/null 2>&1; then
install -Dt "${_builddir}/rust" rust/*.so
fi
make %{kbuild_flags} INSTALL_MOD_PATH="%{buildroot}/usr" vdso_install link=
for arch in "${_builddir}"/arch/*/; do
[[ "$arch" == */x86/ ]] && continue
rm -rf "$arch"
done
rm -rf "${_builddir}/Documentation"
find -L "${_builddir}" -type l -delete
find "${_builddir}" -type f -name '*.o' -delete
mkdir -p "%{buildroot}/usr/src"
ln -sr "${_builddir}" "%{buildroot}/usr/src/%{name}"
# ─── Post-installazione ───────────────────────────────────────────────────────
%post
_kver=""
for f in /usr/lib/modules/*/kernelversion; do
_candidate=$(cat "$f" 2>/dev/null || true)
if echo "$_candidate" | grep -q "cachyos"; then
_kver="$_candidate"; break
fi
done
[ -z "$_kver" ] && { echo "%post: versione kernel non trovata" >&2; exit 0; }
/sbin/depmod -a "${_kver}" || true
if [ -x /usr/bin/dracut ]; then
dracut --force --kver "${_kver}" "/boot/initrd-${_kver}" 2>/dev/null \
|| echo "%post: dracut fallito per ${_kver}" >&2
else
echo "%post: dracut non trovato" >&2
fi
[ -x /usr/sbin/grub2-mkconfig ] && grub2-mkconfig -o /boot/grub2/grub.cfg 2>/dev/null || true
# ─── Post-rimozione ───────────────────────────────────────────────────────────
%postun
[ -x /usr/sbin/grub2-mkconfig ] && grub2-mkconfig -o /boot/grub2/grub.cfg 2>/dev/null || true
# ─── File list ────────────────────────────────────────────────────────────────
%files
%license COPYING
/boot/vmlinuz-*cachyos*
/boot/System.map-*cachyos*
/boot/config-*cachyos*
%dir /usr/lib/modules/*cachyos*/
/usr/lib/modules/*/vmlinuz
/usr/lib/modules/*/pkgbase
/usr/lib/modules/*/kernelversion
/usr/lib/modules/*/kernel/
/usr/lib/modules/*/modules.*
/usr/lib/modules/*/vdso/
%files headers
/usr/lib/modules/*/build/
/usr/src/%{name}
# ─── Changelog ────────────────────────────────────────────────────────────────
%changelog
* Fri Mar 14 2026 cachyos-obs-update.sh <obs@opensuse.org> - 6.19.6-1.1
- Aggiornamento automatico a kernel CachyOS 6.19.6-1
- Fix: aggiunta /usr/lib/modules/*/vdso/ alla %files list
- cachyos_hash: fce577750ec855408ecdf31cf1bfed087db36b03
- patches_hash: 776ee4906c343ffb826afc390a923b0958617383