commit: 827ee1b154950fb82c7835ce0952f00da7a1c959 Author: Violet Purcell <vimproved <AT> inventati <DOT> org> AuthorDate: Thu Sep 11 13:53:33 2025 +0000 Commit: Florian Schmaus <flow <AT> gentoo <DOT> org> CommitDate: Mon Sep 15 07:41:06 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=827ee1b1
sys-kernel/scx: add 1.0.16 Closes: https://bugs.gentoo.org/962292 Signed-off-by: Violet Purcell <vimproved <AT> inventati.org> Part-of: https://github.com/gentoo/gentoo/pull/43742 Closes: https://github.com/gentoo/gentoo/pull/43742 Signed-off-by: Florian Schmaus <flow <AT> gentoo.org> sys-kernel/scx/Manifest | 2 + sys-kernel/scx/files/scx_loader.initd | 10 +++ sys-kernel/scx/scx-1.0.16.ebuild | 157 ++++++++++++++++++++++++++++++++++ 3 files changed, 169 insertions(+) diff --git a/sys-kernel/scx/Manifest b/sys-kernel/scx/Manifest index b37f79f2d1d6..f7ac20aabc25 100644 --- a/sys-kernel/scx/Manifest +++ b/sys-kernel/scx/Manifest @@ -11,3 +11,5 @@ DIST scx-1.0.14-crates.tar.xz 44676328 BLAKE2B 4e74857975734f81c6e1d6f9ff7d098da DIST scx-1.0.14.tar.gz 4775481 BLAKE2B 026e758f81455b5d5a2776f3cca8fd59d047ad792125603bb76c4d374ce8348982c3625159066ff8647988f98963d1975f9ddbdde4129b2fb4a598b4b447d2e2 SHA512 6b269cf0208f0f63e592f49d089084e78fbbeb10be74b9e800f5377c7b5f811e222c8b0dd2a3beb35b87a0d1f979b7b479f975662b6e035f26b211a37dcaa9e4 DIST scx-1.0.15-crates.tar.xz 57595716 BLAKE2B 64808bfe2ec3d47eb7032ddbf282c64b11fa24826dc3e48be79c133471c2144dd5ee07b84d7cbed55ff926acd3729e48190dfa6b9b7490338f06dd00bc5e9156 SHA512 03d80ade134473b11711a615ae04e99f6dad6900f7ba8617deeacf21e47562a6b40938504468774fc78bab8ac05f8772d0176185f7b5ee26112b079547cfbfaa DIST scx-1.0.15.tar.gz 5421849 BLAKE2B f5313835910e13d1a738a245a958a64333d4e7887be37776b85029cfcc17eadf32223e7b3335160bd81056a00fbffe7fec960ef5d8e685e1f7a2102d9a0ae257 SHA512 5a6652a2983825f59be8156825b8b6f547d1ff9e00c7f139c28e8eb87f389346263eeb4cdf289b078ef54915cbc119d3e2330b32f245c06fc1239562446528d8 +DIST scx-1.0.16-crates.tar.xz 50792600 BLAKE2B 3091319dbe1b1e36e30e098e092ed842c97ead64d3dfca0c057d8ec16081ded864c05bc070950856c272a07c2954c93642c1258b4a5d2b25e0ea4c95ef9d5c08 SHA512 407b6ab026f76e43cbf6d8431d1105c36a595d71076430d185ccc0178f13e66b654db49fc98ca459f13b519941bedd6b699e71864ce6165e977c6c4a374ecaa2 +DIST scx-1.0.16.tar.gz 8503783 BLAKE2B bd1a82277c8da8f197096319e1b6bbe9af7ad6a9b98fd9f691a2615c619668d195ef535889ab7ea89982d99b8c68739e0af64d1bb79fa9eb191e2d46efcf7d57 SHA512 e3412875364716fa805b156082a65568ccf917d9113477c0f21ec79130d2a3a2d5baaea4a49cf5d0fca3f66943c896ef3fc3f0a6d4528c9c8d418c220fae8267 diff --git a/sys-kernel/scx/files/scx_loader.initd b/sys-kernel/scx/files/scx_loader.initd new file mode 100644 index 000000000000..11a926f70251 --- /dev/null +++ b/sys-kernel/scx/files/scx_loader.initd @@ -0,0 +1,10 @@ +#!/sbin/openrc-run +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +supervisor=supervise-daemon + +name="scx_loader service" +description="Loader service for sched_ext schedulers" +command=/usr/bin/scx_loader +command_args="${scx_loader_args}" diff --git a/sys-kernel/scx/scx-1.0.16.ebuild b/sys-kernel/scx/scx-1.0.16.ebuild new file mode 100644 index 000000000000..820e815670ca --- /dev/null +++ b/sys-kernel/scx/scx-1.0.16.ebuild @@ -0,0 +1,157 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {16..20} ) + +CRATES=" +" + +RUST_MIN_VER="1.82.0" + +inherit eapi9-ver llvm-r2 linux-info cargo rust-toolchain toolchain-funcs meson + +DESCRIPTION="sched_ext schedulers and tools" +HOMEPAGE="https://github.com/sched-ext/scx" +SRC_URI=" + https://github.com/sched-ext/scx/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + ${CARGO_CRATE_URIS} +" +if [[ ${PKGBUMPING} != ${PVR} ]]; then + SRC_URI+=" + https://github.com/gentoo-crate-dist/scx/releases/download/v${PV}/scx-${PV}-crates.tar.xz + " +fi + +LICENSE="GPL-2" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 BSD-2 BSD CC0-1.0 ISC MIT MPL-2.0 Unicode-3.0 ZLIB +" +SLOT="0" +KEYWORDS="~amd64" +IUSE="systemd" + +DEPEND=" + virtual/libelf:= + sys-libs/libseccomp + sys-libs/zlib:= + >=dev-libs/libbpf-1.6:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + app-misc/jq + dev-libs/protobuf[protoc(+)] + >=dev-util/bpftool-7.5.0 + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}=[llvm_targets_BPF(-)] + ') +" + +CONFIG_CHECK=" + ~BPF + ~BPF_EVENTS + ~BPF_JIT + ~BPF_SYSCALL + ~DEBUG_INFO_BTF + ~FTRACE + ~SCHED_CLASS_EXT +" + +QA_PREBUILT=" + /usr/bin/scx_loader + /usr/bin/vmlinux_docify + /usr/bin/scxctl +" + +pkg_setup() { + linux-info_pkg_setup + llvm-r2_pkg_setup + rust_pkg_setup +} + +src_prepare() { + default + + if tc-is-cross-compiler; then + # Inject the rust_abi value into install_rust_user_scheds + sed -i "s;\${MESON_BUILD_ROOT};\${MESON_BUILD_ROOT}/$(rust_abi);" \ + meson-scripts/install_rust_user_scheds || die + fi +} + +src_configure() { + BUILD_DIR="${BUILD_DIR:-${WORKDIR}/${P}-build}" + + local emesonargs=( + -Dbpf_clang="$(get_llvm_prefix)/bin/clang" + -Dbpftool=disabled + -Dlibbpf_a=disabled + -Dcargo="${EPREFIX}/usr/bin/cargo" + -Dcargo_home="${ECARGO_HOME}" + -Doffline=true + -Denable_rust=true + -Dopenrc=disabled + $(meson_feature systemd) + ) + + cargo_env meson_src_configure +} + +src_compile() { + cargo_env meson_src_compile +} + +src_test() { + cargo_env meson_src_test +} + +src_install() { + cargo_env meson_src_install + + dodoc README.md + + local readme readme_name + for readme in scheds/{rust,c}/*/README.md ./rust/*/README.md; do + [[ -e ${readme} ]] || continue + readme_name="${readme#*/rust/}" + readme_name="${readme_name#*/c/}" + readme_name="${readme_name%/README.md}" + newdoc "${readme}" "${readme_name}.md" + done + + newinitd services/openrc/scx.initrd scx + insinto /etc/default + doins services/scx + dosym ../default/scx /etc/conf.d/scx + + newinitd "${FILESDIR}/scx_loader.initd" scx_loader + insinto /etc/scx_loader/ + newins services/scx_loader.toml config.toml +} + +pkg_postinst() { + if ver_replacing -lt 1.0.16; then + ewarn "Starting in 1.0.16, the scx service is being replaced with scx_loader." + ewarn "To transition to the new service, first edit" + ewarn "${EPREFIX}/etc/scx_loader/config.toml with your preferred" + ewarn "configuration, then disable the legacy scx service and enable the new" + ewarn "scx_loader service:" + ewarn + ewarn "For openrc users:" + ewarn " rc-service scx stop" + ewarn " rc-update del scx default" + ewarn " rc-service scx_loader start" + ewarn " rc-update add scx_loader default" + ewarn + ewarn "For systemd users:" + ewarn " systemctl disable --now scx" + ewarn " systemctl enable --now scx_loader" + ewarn + ewarn "For more info, see:" + ewarn "https://wiki.cachyos.org/configuration/sched-ext/#transitioning-from-scxservice-to-scx_loader-a-comprehensive-guide" + fi +}
