%define _debugsource_template %{nil} %define debug_package %{nil} %bcond_with vendored Name: scx-scheds Version: 1.1.0 Release: 3%{?dist} Summary: sched_ext schedulers and tools License: GPL-2.0-only URL: https://github.com/sched-ext/scx Source0: https://github.com/sched-ext/scx/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz %if %{with vendored} Source1: %{name}-%{version}-vendor.tar.zst %endif ExclusiveArch: x86_64 aarch64 BuildRequires: bash BuildRequires: cargo >= 1.82 BuildRequires: rust >= 1.82 BuildRequires: gcc BuildRequires: make BuildRequires: python3 BuildRequires: clang >= 17 BuildRequires: clang-devel BuildRequires: llvm >= 17 BuildRequires: llvm-devel BuildRequires: lld >= 17 BuildRequires: bpftool BuildRequires: pkgconf-pkg-config BuildRequires: libbpf-devel BuildRequires: elfutils-libelf-devel BuildRequires: zlib-devel BuildRequires: libzstd-devel BuildRequires: libseccomp-devel BuildRequires: protobuf-devel BuildRequires: protobuf-compiler BuildRequires: jq Requires: bash Requires: bpftool Requires: jq Requires: elfutils-libelf Requires: libseccomp Requires: protobuf Requires: zlib Requires: libzstd Conflicts: scx-scheds-git Conflicts: scx_layered Conflicts: scx_rustland Conflicts: scx_rusty Conflicts: rust-scx_utils-devel Provides: scx_layered = %{version}-%{release} Provides: scx_rustland = %{version}-%{release} Provides: scx_rusty = %{version}-%{release} Provides: rust-scx_utils-devel = %{version}-%{release} %global sched_bins scx_beerland scx_bpfland scx_cake scx_chaos scx_cosmos scx_flash scx_lavd scx_layered scx_p2dq scx_pandemonium scx_rustland scx_rusty scx_tickless scxtop %description scx-scheds provides Rust sched_ext scheduler implementations and scxtop from sched-ext/scx. sched_ext lets users load BPF-based CPU schedulers dynamically on kernels built with CONFIG_SCHED_CLASS_EXT. %prep %autosetup -n scx-%{version} rm -f rust-toolchain.toml %if %{with vendored} tar -xaf %{SOURCE1} test -d vendor test -f .cargo/config.toml %endif %build export CARGO_HOME="$PWD/.cargo-home" export RUSTFLAGS="%{?build_rustflags}" export LIBCLANG_PATH=%{_libdir} export LIBBPF_SYS_USE_PKG_CONFIG=1 export BPF_CLANG=clang %if %{with vendored} export CARGO_NET_OFFLINE=true cargo build --release --frozen --offline \ -p scx_beerland \ -p scx_bpfland \ -p scx_cake \ -p scx_chaos \ -p scx_cosmos \ -p scx_flash \ -p scx_lavd \ -p scx_layered \ -p scx_p2dq \ -p scx_pandemonium \ -p scx_rustland \ -p scx_rusty \ -p scx_tickless \ -p scxtop %else cargo fetch --locked cargo build --release --frozen \ -p scx_beerland \ -p scx_bpfland \ -p scx_cake \ -p scx_chaos \ -p scx_cosmos \ -p scx_flash \ -p scx_lavd \ -p scx_layered \ -p scx_p2dq \ -p scx_pandemonium \ -p scx_rustland \ -p scx_rusty \ -p scx_tickless \ -p scxtop %endif %install for bin in %{sched_bins}; do install -Dpm 0755 "target/release/${bin}" "%{buildroot}%{_bindir}/${bin}" done %check for bin in %{sched_bins}; do test -x "%{buildroot}%{_bindir}/${bin}" done %files %license LICENSE %doc README.md CARGO_BUILD.md INSTALL.md OVERVIEW.md %{_bindir}/scx_beerland %{_bindir}/scx_bpfland %{_bindir}/scx_cake %{_bindir}/scx_chaos %{_bindir}/scx_cosmos %{_bindir}/scx_flash %{_bindir}/scx_lavd %{_bindir}/scx_layered %{_bindir}/scx_p2dq %{_bindir}/scx_pandemonium %{_bindir}/scx_rustland %{_bindir}/scx_rusty %{_bindir}/scx_tickless %{_bindir}/scxtop %changelog * Tue May 05 2026 sachesi - 1.1.0-4 - Default to online build (--without vendored). Set enable_net=True in Copr. * Sun Apr 26 2026 sachesi - 1.1.0-3 - Recreate packaging with default vendored COPR mode and local online build support * Sun Apr 26 2026 sachesi - 1.1.0-2 - Make check deterministic by verifying installed binaries * Sun Apr 26 2026 sachesi - 1.1.0-1 - Initial RPM package for scx-scheds 1.1.0