%define _debugsource_template %{nil} %define debug_package %{nil} Name: scx-scheds Epoch: 1 Version: 1.1.3 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 Patch0: https://github.com/sched-ext/scx/commit/6d31ddd8973333e95ae7e3584e84029533064d69.patch Patch1: https://github.com/sched-ext/scx/commit/6624f0f178e233b2f733825e5e08549048ca3700.patch Patch2: https://github.com/sched-ext/scx/commit/bdbf5eec541fdd48ed825d8e07cebdf5aad10e63.patch 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: openssl-devel 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 scx-forge-agent %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 -p1 -n scx-%{version} rm -f rust-toolchain.toml %build export CARGO_HOME="$PWD/.cargo-home" export RUSTFLAGS="%{?build_rustflags}" export LIBCLANG_PATH=%{_libdir} export LIBBPF_SYS_USE_PKG_CONFIG=1 %ifarch aarch64 # Rawhide's arm64 asm/sigcontext.h uses __u128 before linux/types.h is included. export LIBBPF_SYS_EXTRA_CFLAGS="-include linux/types.h" %endif export BPF_CLANG=clang cargo fetch --locked cargo build --release --frozen --all-features --workspace \ --exclude scx_rlfifo \ --exclude scx_mitosis \ --exclude xtask \ --exclude scx_characterize \ --exclude vmlinux_docify \ --exclude scx_arena_selftests %install find target/release \ -maxdepth 1 \ -type f \ -executable \ ! -name '*.so' \ ! -name '*.d' \ -exec install -Dpm 0755 -t %{buildroot}%{_bindir} {} + %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_* %{_bindir}/scxtop %{_bindir}/scx-forge-agent %changelog * Tue Oct 13 2026 sachesi - 1.1.3-3 - Force-include linux/types.h when building the vendored libbpf for aarch64. * Mon Sep 07 2026 sachesi - 1.1.3-2 - Backport upstream LAVD starvation and scx_cake topology portability fixes. - Remove the reverse scx-tools dependency. * Mon Aug 24 2026 sachesi - 1.1.3-1 - Update to 1.1.3. * Mon Jul 06 2026 sachesi - 1.1.2-2 - Fix build failure: upstream renamed the tools/scxcash workspace member to tools/scx_characterize in 1.1.2, so --exclude scxcash no longer matched any workspace package and cargo build failed. Exclude scx_characterize instead. * Fri Jul 03 2026 sachesi - 1.1.2-1 - Update to 1.1.2. * Tue Jun 09 2026 sachesi - 1:1.1.1-2 - Remove scx_wd40 from sched_bins, dropped upstream in 1.1.1. * Mon Jun 08 2026 sachesi - 1:1.1.1-1 - Update to 1.1.1. * Sat Jun 06 2026 sachesi - 1:1.1.0-2 - Build the full cargo workspace with --all-features, excluding non-shipped crates (scx_rlfifo, scx_mitosis, xtask, scxcash, vmlinux_docify, scx_arena_selftests), instead of a hand-maintained -p list. Adds scx_wd40. - Install all built executables from target/release. - Require scx-tools so the loader service is always available. * Tue Jun 02 2026 sachesi - 1:1.1.0-1 - Downgrade to 1.1.0. The 1.1.1 BPF objects are synced to kernel sched_ext for-7.1 and are rejected at load on 7.0 kernels ("Failed to load BPF program", EINVAL). 1.1.0 targets the stable 6.12+ ABI and loads on current Fedora kernels. - Add Epoch to supersede the previously shipped 1.1.1. * Tue May 26 2026 sachesi - 1.1.1-1 - Update to 1.1.1. * 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