summaryrefslogtreecommitdiffstats
path: root/packages/sys-kernel
diff options
context:
space:
mode:
authorcoast <coasteen@proton.me>2026-10-12 14:41:07 +0330
committercoast <coasteen@proton.me>2026-10-12 14:41:07 +0330
commit25922912c7e37f3bc3000e71b647e77677d8f2c5 (patch)
tree8383c5569a668613eee384ee31ea8cddc2113ee5 /packages/sys-kernel
downloadexherbo-overlay-main.tar.gz
exherbo-overlay-main.tar.bz2
exherbo-overlay-main.tar.xz
exherbo-overlay-main.tar.zst
Diffstat (limited to 'packages/sys-kernel')
-rw-r--r--packages/sys-kernel/kernel-cachyos/kernel-cachyos-7.2.9-r1.exheres-0110
-rw-r--r--packages/sys-kernel/scx-loader/scx-loader-1.1.3.exheres-053
-rw-r--r--packages/sys-kernel/scx/scx-1.1.3.exheres-084
3 files changed, 247 insertions, 0 deletions
diff --git a/packages/sys-kernel/kernel-cachyos/kernel-cachyos-7.2.9-r1.exheres-0 b/packages/sys-kernel/kernel-cachyos/kernel-cachyos-7.2.9-r1.exheres-0
new file mode 100644
index 0000000..0fb85d0
--- /dev/null
+++ b/packages/sys-kernel/kernel-cachyos/kernel-cachyos-7.2.9-r1.exheres-0
@@ -0,0 +1,110 @@
+# Copyright 2026 Gurov <thuggerthugger1@duck.com>
+# Distributed under the terms of the GNU General Public License v2
+
+SUMMARY="Prebuilt CachyOS Linux kernel with matching module headers"
+HOMEPAGE="https://github.com/CachyOS/linux-cachyos"
+
+MY_RELEASE="${PV}-2"
+MY_KERNEL="linux-cachyos-${MY_RELEASE}-x86_64_v3.pkg.tar.zst"
+MY_HEADERS="linux-cachyos-headers-${MY_RELEASE}-x86_64_v3.pkg.tar.zst"
+KERNEL_RELEASE="${MY_RELEASE}-cachyos"
+DOWNLOADS="
+ https://mirror.cachyos.org/repo/x86_64_v3/cachyos-v3/${MY_KERNEL}
+ https://mirror.cachyos.org/repo/x86_64_v3/cachyos-v3/${MY_HEADERS}
+"
+
+LICENCES="GPL-2"
+SLOT="0"
+PLATFORMS="~amd64"
+RESTRICT="mirror strip test"
+
+DEPENDENCIES="
+ build:
+ app-arch/zstd
+
+ build+run:
+ sys-apps/kmod[zstd]
+
+ run:
+ app-arch/zstd
+ dev-lang/clang
+ dev-lang/llvm
+ dev-libs/openssl
+ dev-libs/xxHash
+ dev-util/dwarves
+ dev-util/elfutils
+ sys-apps/systemd
+ sys-boot/dracut
+ sys-devel/binutils
+ sys-devel/lld
+ sys-libs/zlib
+"
+
+WORK="${WORKBASE}"
+
+pkg_pretend() {
+ if exhost --is-native -q && [[ ${ROOT} == / ]]; then
+ local flags flag
+ flags=$(grep -m1 '^flags[[:space:]]*:' /proc/cpuinfo) || die "Cannot check CPU features"
+ for flag in avx avx2 bmi1 bmi2 f16c fma movbe sse4_1 sse4_2 popcnt abm; do
+ [[ " ${flags} " == *" ${flag} "* ]] || die "CachyOS x86-64-v3 kernel requires CPU feature ${flag}"
+ done
+ fi
+}
+
+src_unpack() {
+ local archive checksum expected
+ for archive in "${MY_KERNEL}" "${MY_HEADERS}"; do
+ case ${archive} in
+ "${MY_KERNEL}") expected=1cb3b27ee69d0ef743d8c30e5811e128376ecf23bc62536405f4e86ffedf1086 ;;
+ "${MY_HEADERS}") expected=ba982020097ef03b43ae5644e3ce6ec0942c468032f62d15b47d6be475b7d2af ;;
+ esac
+ checksum=$(sha256sum "${FETCHEDDIR}/${archive}") || die "Cannot checksum ${archive}"
+ [[ ${checksum%% *} == ${expected} ]] || die "CachyOS archive changed: ${archive}"
+ done
+
+ edo mkdir -p "${WORK}/binary" "${WORK}/headers"
+ edo tar --zstd -xf "${FETCHEDDIR}/${MY_KERNEL}" -C "${WORK}/binary"
+ edo tar --zstd -xf "${FETCHEDDIR}/${MY_HEADERS}" -C "${WORK}/headers"
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ local modules="/usr/$(exhost --target)/lib/modules/${KERNEL_RELEASE}"
+ local binary="${WORK}/binary/usr/lib/modules/${KERNEL_RELEASE}"
+ local headers="${WORK}/headers/usr/lib/modules/${KERNEL_RELEASE}"
+
+ [[ -f ${binary}/vmlinuz && -d ${binary}/kernel && -f ${headers}/build/.config &&
+ -f ${headers}/build/Module.symvers && -f ${headers}/build/System.map &&
+ -d ${headers}/vdso ]] || die "CachyOS kernel or matching headers are missing"
+
+ dodir "${modules}"
+ edo cp -a "${binary}/." "${IMAGE}${modules}/"
+ edo cp -a "${headers}/." "${IMAGE}${modules}/"
+ edo depmod -b "${IMAGE}" -m "/usr/$(exhost --target)/lib/modules" -a "${KERNEL_RELEASE}"
+}
+
+pkg_postinst() {
+ local image="/usr/lib/modules/${KERNEL_RELEASE}/vmlinuz"
+ local retry="kernel-install add ${KERNEL_RELEASE} ${image}"
+
+ if [[ ${ROOT} != / ]] || ! exhost --is-native -q; then
+ elog "Boot setup skipped for non-native or alternate-root installation."
+ elog "On the target system, run: ${retry}"
+ elif ! mountpoint -q /boot || ! command -v kernel-install >/dev/null ||
+ ! command -v dracut >/dev/null; then
+ ewarn "Boot setup skipped: /boot must be mounted and kernel-install and dracut available."
+ ewarn "After fixing boot setup, run: ${retry}"
+ elif ! kernel-install add "${KERNEL_RELEASE}" "${image}"; then
+ ewarn "Boot entry or initramfs creation failed; check output above."
+ ewarn "After fixing boot setup, run: ${retry}"
+ else
+ elog "CachyOS boot entry and initramfs installed via kernel-install."
+ fi
+
+ ewarn "With Secure Boot enabled, kernel-install does not guarantee a trusted kernel signature."
+ ewarn "Verify signing and boot entry before booting CachyOS; keep your working kernel as fallback."
+}
diff --git a/packages/sys-kernel/scx-loader/scx-loader-1.1.3.exheres-0 b/packages/sys-kernel/scx-loader/scx-loader-1.1.3.exheres-0
new file mode 100644
index 0000000..ef2a6f3
--- /dev/null
+++ b/packages/sys-kernel/scx-loader/scx-loader-1.1.3.exheres-0
@@ -0,0 +1,53 @@
+# Copyright 2026 Gurov <thuggerthugger1@duck.com>
+# Distributed under the terms of the GNU General Public License v2
+
+require cargo [ rust_minimum_version=1.95 ] github [ user=sched-ext tag=v${PV} ] \
+ systemd-service [ systemd_files=[ services/scx_loader.service ] ]
+
+SUMMARY="D-Bus loader and controls for sched_ext schedulers"
+
+LICENCES="GPL-2"
+SLOT="0"
+PLATFORMS="~amd64"
+
+DEPENDENCIES+="
+ run:
+ sys-kernel/scx[~${PV}]
+ sys-apps/dbus
+ sys-apps/systemd
+ sys-auth/polkit:1
+"
+
+CARGO_SRC_COMPILE_PARAMS=( -p scx_loader -p scxctl -p scxtui )
+CARGO_SRC_TEST_PARAMS=( "${CARGO_SRC_COMPILE_PARAMS[@]}" )
+
+src_prepare() {
+ default
+ edo sed -i "s@/usr/bin/scx_loader@/usr/$(exhost --target)/bin/scx_loader@" \
+ services/scx_loader.service services/org.scx.Loader.service
+ edo sed -i "/^ExecStart=/i Environment=\"PATH=/usr/$(exhost --target)/bin:/usr/bin:/bin\"" \
+ services/scx_loader.service
+}
+
+src_install() {
+ exeinto /usr/$(exhost --target)/bin
+ local binary
+ for binary in scx_loader scxctl scxtui ; do
+ doexe "target/$(rust_target_arch_name)/release/${binary}"
+ done
+
+ install_systemd_files
+
+ insinto /usr/share/dbus-1/system-services
+ doins services/org.scx.Loader.service
+ insinto /usr/share/dbus-1/system.d
+ doins configs/org.scx.Loader.conf
+ insinto /usr/share/dbus-1/interfaces
+ doins configs/org.scx.Loader.xml
+ insinto /usr/share/polkit-1/actions
+ doins configs/org.scx.Loader.policy
+ insinto /usr/share/scx_loader
+ newins configs/scx_loader.toml config.toml
+
+ emagicdocs
+}
diff --git a/packages/sys-kernel/scx/scx-1.1.3.exheres-0 b/packages/sys-kernel/scx/scx-1.1.3.exheres-0
new file mode 100644
index 0000000..8412c9e
--- /dev/null
+++ b/packages/sys-kernel/scx/scx-1.1.3.exheres-0
@@ -0,0 +1,84 @@
+# Copyright 2026 Gurov <thuggerthugger1@duck.com>
+# Distributed under the terms of the GNU General Public License v2
+
+require cargo [ rust_minimum_version=1.94.1 ] github [ user=sched-ext tag=v${PV} ] \
+ systemd-service [ systemd_files=[ services/scx.service ] ]
+
+SUMMARY="sched_ext BPF schedulers and tools"
+
+LICENCES="GPL-2"
+SLOT="0"
+PLATFORMS="~amd64"
+
+DEPENDENCIES+="
+ build:
+ dev-lang/clang[>=16]
+ dev-util/pkgconf
+
+ build+run:
+ dev-util/elfutils
+ dev-libs/libbpf[>=1.7.0]
+ sys-libs/libseccomp
+ sys-libs/zlib
+ app-arch/zstd
+
+ run:
+ sys-apps/systemd
+"
+
+SCX_BINARIES=(
+ scx_beerland scx_bpfland scx_cake scx_chaos scx_cosmos scx_flash
+ scx_forge scx_lavd scx_layered scx_mitosis scx_p2dq
+ scx_pandemonium scx_rustland scx_rusty scx_tickless
+ scxtop vmlinux_docify
+)
+
+CARGO_SRC_COMPILE_PARAMS=()
+for scheduler in "${SCX_BINARIES[@]}" ; do
+ CARGO_SRC_COMPILE_PARAMS+=( -p "${scheduler}" )
+done
+CARGO_SRC_TEST_PARAMS=( "${CARGO_SRC_COMPILE_PARAMS[@]}" )
+
+export BPF_CLANG="/usr/$(exhost --target)/bin/clang"
+export LIBBPF_SYS_LIBRARY_PATH="/usr/$(exhost --target)/lib"
+
+src_prepare() {
+ default
+
+ local manifest count=0
+ for manifest in rust/scx_arena/scx_arena/Cargo.toml \
+ rust/scx_bpf_compat/Cargo.toml rust/scx_cargo/Cargo.toml \
+ rust/scx_rustland_core/Cargo.toml rust/scx_userspace_arena/Cargo.toml \
+ rust/scx_utils/Cargo.toml scheds/rust/scx_*/Cargo.toml \
+ tools/scxtop/Cargo.toml ; do
+ [[ -f ${manifest} ]] || die "Missing Cargo manifest: ${manifest}"
+ local before after
+ before=$(grep -Ec '^libbpf-(rs|cargo|sys) = ' "${manifest}") || :
+ [[ ${before} -gt 0 ]] || die "Unexpected libbpf declarations in ${manifest}"
+ edo sed -i -E \
+ -e 's/^(libbpf-(rs|cargo|sys) = )"(=[^"]+)"$/\1{ version = "\3", default-features = false }/' \
+ -e 's/^(libbpf-(rs|cargo|sys) = \{ version = "[^"]+") \}$/\1, default-features = false }/' \
+ "${manifest}"
+ after=$(grep -Ec '^libbpf-(rs|cargo|sys) = \{ version = "[^"]+", default-features = false \}$' "${manifest}") || :
+ [[ ${before} -eq ${after} ]] || die "Could not disable libbpf defaults in ${manifest}"
+ (( count += before ))
+ done
+ [[ ${count} -eq 26 ]] || die "Expected 26 libbpf dependency declarations, found ${count}"
+
+ edo sed -i "/^ExecStart=/i Environment=\"PATH=/usr/$(exhost --target)/bin:/usr/bin:/bin\"" \
+ services/scx.service
+}
+
+src_install() {
+ exeinto /usr/$(exhost --target)/bin
+ local binary
+ for binary in "${SCX_BINARIES[@]}" ; do
+ doexe "target/$(rust_target_arch_name)/release/${binary}"
+ done
+
+ install_systemd_files
+ insinto /etc/default
+ doins services/scx
+
+ emagicdocs
+}