From 25922912c7e37f3bc3000e71b647e77677d8f2c5 Mon Sep 17 00:00:00 2001 From: coast Date: Mon, 12 Oct 2026 14:41:07 +0330 Subject: sync --- .../kernel-cachyos-7.2.9-r1.exheres-0 | 110 +++++++++++++++++++++ .../scx-loader/scx-loader-1.1.3.exheres-0 | 53 ++++++++++ packages/sys-kernel/scx/scx-1.1.3.exheres-0 | 84 ++++++++++++++++ 3 files changed, 247 insertions(+) create mode 100644 packages/sys-kernel/kernel-cachyos/kernel-cachyos-7.2.9-r1.exheres-0 create mode 100644 packages/sys-kernel/scx-loader/scx-loader-1.1.3.exheres-0 create mode 100644 packages/sys-kernel/scx/scx-1.1.3.exheres-0 (limited to 'packages/sys-kernel') 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 +# 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 +# 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 +# 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 +} -- cgit v1.3