%global runnerlibdir %{_prefix}/lib/runner-framework %global runnersharedir %{_datadir}/runner Name: samestack Version: 0.1.0 Release: 2%{?dist} Summary: Deterministic automation engine for real-time workloads License: GPL-2.0-or-later URL: https://gitlab.com/redhat-kernel-rts/samestack Source0: %{url}/-/archive/%{version}/%{name}-%{version}.tar.gz # Patches from 0.1.0 tag to current HEAD Patch0: samestack-Modernize-Python-packaging-with-pyproject..patch Patch1: runner-Add-stress-ng-runner.patch Patch2: runner-Move-file-to-correct-spot.patch Patch3: runner-Default-to-of-load-cpus-as-threads.patch Patch4: runner-Add-more-test-types-to-stressng.patch Patch5: runner-Fixup-copyright-on-stressng.patch BuildArch: noarch BuildRequires: python3-devel BuildRequires: pyproject-rpm-macros %description Runner Framework executes declarative workload definitions deterministically. It installs the reusable runner modules, YAML examples, and pre-generated system sequences that SameStack and other tooling consume. %prep %autosetup -n samestack-%{version} -p1 %generate_buildrequires cd runner %pyproject_buildrequires %build cd runner %pyproject_wheel cd .. %install cd runner %pyproject_install %pyproject_save_files -l runner test_runner application_runner rteval_runner # Install YAML configuration examples install -d %{buildroot}%{_sysconfdir}/runner cp -r yaml_examples/* %{buildroot}%{_sysconfdir}/runner/ # Generate system sequences inside the RPM payload install -d %{buildroot}%{runnerlibdir}/system-sequences PYTHONPATH=%{buildroot}%{python3_sitelib}:$PYTHONPATH \ RUNNER_FRAMEWORK_DIR=%{buildroot}%{python3_sitelib} \ RUNNER_SYSTEM_SEQUENCE_DIR=%{buildroot}%{runnerlibdir}/system-sequences \ python3 -m runner --generate-runner-sequences cd .. %check # Optional: uncomment when tests land. # PYTHONPATH=%{buildroot}%{python3_sitelib} \ # RUNNER_FRAMEWORK_DIR=%{buildroot}%{python3_sitelib} \ # python3 -m runner --list %files -f %{pyproject_files} %doc README.md runner/docs/*.rst %{_bindir}/runner %{_bindir}/test_runner %dir %{_sysconfdir}/runner %dir %{_sysconfdir}/runner/rteval %{_sysconfdir}/runner/rteval/*.yaml %dir %{_sysconfdir}/runner/rteval/test_config_examples %dir %{_sysconfdir}/runner/rteval/test_config_examples/rteval-runner %{_sysconfdir}/runner/rteval/test_config_examples/rteval-runner/*.yaml %dir %{runnerlibdir} %dir %{runnerlibdir}/system-sequences %dir %{runnerlibdir}/system-sequences/rteval %{runnerlibdir}/system-sequences/*/*-seq.yaml %dir %{runnersharedir} %dir %{runnersharedir}/yaml_examples %dir %{runnersharedir}/yaml_examples/rteval %{runnersharedir}/yaml_examples/rteval/*.yaml %dir %{runnersharedir}/yaml_examples/rteval/test_config_examples %dir %{runnersharedir}/yaml_examples/rteval/test_config_examples/rteval-runner %{runnersharedir}/yaml_examples/rteval/test_config_examples/rteval-runner/*.yaml %changelog * Tue Dec 02 2025 John Kacur - 0.1.0-2 - Modernize specfile to use %%pyproject_* macros - Update Python requirement to >=3.10 - Simplify BuildRequires using pyproject-rpm-macros - Remove deprecated rm -rf buildroot * Thu Feb 20 2025 William Christopher White - 0.1.0-1 - Initial packaging pass for runner-framework (SameStack integration to follow)