%define debug_package %{nil}

Name:           scx
Version:        1.1.0
Release:        6
Summary:        sched-ext schedulers and tools

License:        GPL-2.0
URL:            https://github.com/sched-ext/scx
Source0:        %{name}-%{version}.tar.gz

BuildRequires:  gcc
BuildRequires:  cargo
BuildRequires:  rust
BuildRequires:  clang
BuildRequires:  bpftool
BuildRequires:  libbpf-devel libbpf-static libseccomp-devel
BuildRequires:  kernel-headers kernel-devel

Patch9001:	0001-scx_soft_domain-domain-based-scheduling-policy-of-sc.patch
Patch9002:	0002-add-task-load-judgment-and-optimized-core-selection-.patch
Patch9003:	0003-scx_soft_domain-refactor-and-simplify-implementation.patch
Patch9004:	0004-scx_soft_domain-fix-cpu-load-stats.patch
Patch9005:	0005-scx_soft_domain-add-comprehensive-DFX-observability-.patch

%description
scx provides a collection of schedulers and tools for the sched-ext framework.

%prep
%autosetup -n %{name}-%{version} -p1

%build
export CLANG_FLAGS="-mcpu=generic"
export RUSTFLAGS="-C target-cpu=generic"

SCX_ROOT="%{_builddir}/%{name}-%{version}"
SCX_INC_DIR="$SCX_ROOT/scheds/include"
BPF_DIR="$SCX_ROOT/bpf"
ARCH=$(uname -m)
case "$ARCH" in
    x86_64)  VMLINUX_ARCH="x86" ;;
    aarch64) VMLINUX_ARCH="arm64" ;;
    armv7l)  VMLINUX_ARCH="arm" ;;
    ppc64le) VMLINUX_ARCH="powerpc" ;;
    s390x)   VMLINUX_ARCH="s390" ;;
    mips64)  VMLINUX_ARCH="mips" ;;
    riscv64) VMLINUX_ARCH="riscv" ;;
    *)       echo "Unsupported architecture: $ARCH"; exit 1 ;;
esac
VMLINUX_H_DIR="$SCX_ROOT/scheds/vmlinux/arch/$VMLINUX_ARCH"

export BPF_CFLAGS="-mcpu=v3 -I$BPF_DIR -I$SCX_INC_DIR -I$VMLINUX_H_DIR"
export BINDGEN_EXTRA_CLANG_ARGS="\
    -I$SCX_ROOT/rust/scx_bpf_compat/include \
    -I$SCX_ROOT/rust/scx_userspace_arena/src/bpf \
    -I$BPF_DIR \
    -I$SCX_INC_DIR \
    -I$SCX_ROOT/rust/scx_arena/src/bpf \
    -I/usr/include/bpf \
    -I$VMLINUX_H_DIR"

%install

%files
%doc README.md

%changelog
* Wed Jul 15 2026 yinbin <yinbin8@h-partners.com> - 1.1.0-6
- scx_soft_domain: add comprehensive DFX observability framework

* Mon Jul 13 2026 yinbin <yinbin8@h-partners.com> - 1.1.0-5
- scx_soft_domain: remove some build operation in spec
- scx_soft_domain: fix cpu load stats

* Tue Jun 30 2026 yangchen <yangchen145@huawei.com> - 1.1.0-4
- scx_soft_domain: refactor and simplify implementation

* Tue May 12 2026 hanhuihui <hanhuihui5@h-partners.com> - 1.1.0-3
- scx_soft_domain: add task load judgment and optimized core selection logic

* Tue Apr 21 2026 yangchen <yangchen145@huawei.com> - 1.1.0-2
- scx_soft_domain: domain-based scheduling policy of sched_ext

* Thu Mar 19 2026 yangchen <yangchen145@huawei.com> - 1.1.0-1
- sync upstream scx v1.1.0