diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-04-11 08:43:59 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-04-11 08:43:59 +0100 |
commit | bb59556b3302a941db4630613c604644d5f7a617 (patch) | |
tree | 42e60b7ae227b0fe3af52dfac08d59653066a2db /sys-kernel/scx/scx-1.0.11.ebuild | |
parent | 3cd09a18bad26aad2645241b868755cfdf41b6ae (diff) |
Diffstat (limited to 'sys-kernel/scx/scx-1.0.11.ebuild')
-rw-r--r-- | sys-kernel/scx/scx-1.0.11.ebuild | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/sys-kernel/scx/scx-1.0.11.ebuild b/sys-kernel/scx/scx-1.0.11.ebuild new file mode 100644 index 000000000000..b92746810bd7 --- /dev/null +++ b/sys-kernel/scx/scx-1.0.11.ebuild @@ -0,0 +1,129 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {16..19} ) + +CRATES=" +" + +RUST_MIN_VER="1.74.1" + +inherit llvm-r1 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/zlib:= + >=dev-libs/libbpf-1.5:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + app-misc/jq + >=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" + +pkg_setup() { + linux-info_pkg_setup + llvm-r1_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 + + # bug #944832 + sed -i 's;^#!/usr/bin/;#!/sbin/;' \ + services/openrc/scx.initrd || die +} + +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 + -Dlibalpm=disabled + -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 +} |