%global runnersharedir %{_datadir}/samestack/runner %global systemprofilesdir %{_datadir}/samestack/system/profiles Name: samestack Version: 0.5 Release: 1%{?dist} Summary: Deterministic automation engine for real-time workloads License: GPL-2.0-or-later URL: https://gitlab.com/samestack/samestack Source0: %{url}/-/archive/%{version}/%{name}-%{version}.tar.gz BuildRequires: cargo-rpm-macros BuildRequires: python3-sphinx Requires: stress-ng Requires: rteval Requires: rtla Requires: sos Requires: podman %description SameStack executes declarative workload definitions deterministically. It installs the samestack CLI and runner YAML examples that SameStack and other tooling consume. System profiles drive container orchestration via staging and apply workflows. %generate_buildrequires %cargo_generate_buildrequires -t %prep %autosetup -n samestack-%{version} %cargo_prep %build %cargo_build sphinx-build -b man docs docs/_build/man %install install -d %{buildroot}%{_bindir} install -m 755 target/rpm/samestack %{buildroot}%{_bindir}/samestack install -d %{buildroot}%{runnersharedir}/plugins install -d %{buildroot}%{runnersharedir}/yaml_examples cp -r yaml_examples/* %{buildroot}%{runnersharedir}/yaml_examples/ install -d %{buildroot}%{systemprofilesdir} cp -r system_registry/* %{buildroot}%{systemprofilesdir}/ if [ -d docs/_build/man ] && ls docs/_build/man/*.1 >/dev/null 2>&1; then \ install -d %{buildroot}%{_mandir}/man1; \ install -m 644 docs/_build/man/*.1 %{buildroot}%{_mandir}/man1/; \ fi if [ -d docs/_build/man ] && ls docs/_build/man/*.5 >/dev/null 2>&1; then \ install -d %{buildroot}%{_mandir}/man5; \ install -m 644 docs/_build/man/*.5 %{buildroot}%{_mandir}/man5/; \ fi if [ -d docs/_build/man ] && ls docs/_build/man/*.7 >/dev/null 2>&1; then \ install -d %{buildroot}%{_mandir}/man7; \ install -m 644 docs/_build/man/*.7 %{buildroot}%{_mandir}/man7/; \ fi %check %cargo_test %files %license COPYING LICENSE %doc README.md CONTRIBUTING.md TRADEMARKS docs/*.rst examples/*.yaml %{_bindir}/samestack %{_mandir}/man1/samestack*.1* %{_mandir}/man5/samestack*.5* %{_mandir}/man7/samestack*.7* %dir %{_datadir}/samestack %dir %{_datadir}/samestack/runner %dir %{runnersharedir} %dir %{runnersharedir}/plugins %dir %{runnersharedir}/yaml_examples %dir %{runnersharedir}/yaml_examples/* %dir %{runnersharedir}/yaml_examples/*/test_config_examples %dir %{runnersharedir}/yaml_examples/*/test_config_examples/* %{runnersharedir}/yaml_examples/*/*.yaml %{runnersharedir}/yaml_examples/*/test_config_examples/*/*.yaml %dir %{_datadir}/samestack/system %dir %{systemprofilesdir} %dir %{systemprofilesdir}/* %{systemprofilesdir}/*/*.yaml %{systemprofilesdir}/*/*.md %changelog * Thu Mar 05 2026 William Christopher White - 0.5-1 - Restructure repo into a single Rust crate at repo root (Cargo-based build) - Replace the legacy Python runner with the Rust runner engine and CLI - Add `samestack system` orchestration: profile render/stage/apply and backends (podman kube play, podman-run, taskset) with lifecycle management - Add deterministic config/env resolution, tracing contract, and declarative artifact staging for runner outputs - Ship the local system registry (`system_registry/`) as installed profiles under /usr/share/samestack/system/profiles - Update runtime dependencies for new execution paths (podman, sos, rtla) - Refresh Sphinx docs/manpages and ship docs/examples as package documentation - Fix yaml_examples packaging globs to match on-disk layout * Thu Feb 26 2026 John Kacur - 0.1.1-5 - Move Rust crate to repo root (remove cd runner from all spec sections) - Remove legacy system-runner (same/) component * Mon Feb 23 2026 John Kacur - 0.1.1-4 - Rewrite spec for Rust build: replace Python/pyproject with cargo - Install samestack binary instead of runner script * Mon Jan 19 2026 John Kacur - 0.1.1-3 - Add Squash old filesystems to build cleanly - Update pyproject.toml to use modern SPDX license format * 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)