Installation¶
The runtime is Linux. Publication uses renameat2, a local flock, a POSIX record lock, and /proc to confirm that a build’s process group has stopped. Python 3.11 or newer is required. The package has no third-party dependencies.
eb-staged-rebuild --version prints eb_staged_rebuild.__version__. The command and the distribution metadata both identify version 1.0.0. The changelog records the release behaviour.
The static binary¶
Each release carries one static binary per architecture (x86_64, aarch64), built with Zig 0.17.1 for linux-musl, a SHA256SUMS file and build provenance attestations:
v=1.0.0 arch=x86_64
curl -LO "https://github.com/stackhands/eb-staged-rebuild/releases/download/v${v}/eb-staged-rebuild-${v}-${arch}-linux-musl"
curl -LO "https://github.com/stackhands/eb-staged-rebuild/releases/download/v${v}/SHA256SUMS"
sha256sum --check --ignore-missing SHA256SUMS
gh attestation verify "eb-staged-rebuild-${v}-${arch}-linux-musl" --repo stackhands/eb-staged-rebuild
install -m 0755 "eb-staged-rebuild-${v}-${arch}-linux-musl" ~/.local/bin/eb-staged-rebuild
The binary needs nothing else at run time; the probe tools in the table below are the same. The Zig build and the Python tool lists where its output differs from the Python tool on purpose. From a checkout, zig build -Drelease=true builds it into zig-out/bin/.
From a checkout¶
This command was run from the repository root:
python3 -m pip install .
eb-staged-rebuild --version
eb-staged-rebuild 1.0.0
A development install that also pulls the documentation tools is:
python3 -m pip install -e ".[docs]"
Build the HTML site from docs/ (Graphviz’s dot must be on PATH):
make -C docs html
The pages are written to docs/_build/html/.
Debian and Ubuntu¶
The test workflow installs the optional probe tools with:
sudo apt-get update && sudo apt-get install -y bubblewrap lmod openssl acl
unshare, used by the user-namespace backend, comes from util-linux. EasyBuild 5.4.2 in that workflow is installed with:
python -m pip install easybuild-framework==5.4.2 easybuild-easyblocks==5.4.2 easybuild-easyconfigs==5.4.2
The integration tests that call this EasyBuild are enabled with EB_STAGED_REBUILD_INTEGRATION=1. See Testing.
Fedora, RHEL, and Rocky¶
The matching package names are bubblewrap, Lmod, openssl, and acl. On RHEL and Rocky, Lmod is commonly taken from EPEL. unshare is in util-linux. The pip install from a checkout is the same command as on Debian.
What the probes need¶
Tool |
Used by |
|---|---|
|
|
|
|
|
the build, selected with |
|
|
|
the ledger test suite, which generates keys |
probe reports which of the sandbox and exchange calls succeed on the account and the filesystem you point it at. See Rebuild and publish.