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
+}

Reply via email to