zoryn build¶
Run a local or remote hasher build. Driven by ~/.zoryn plus per-builder configs in ~/.config/zoryn/builders.d/.
Synopsis¶
zoryn build [-v] [-l dir] [-C dir] [-d] [-r|--rebuild] [-b pattern] [-a arch]
[-B branch] [-p] [-s] [--fail-if-busy] [--skip-busy] [--top]
[--skip-check[=LIST]] [--batch-pkgs=PKGS]
[--section=SECTION] [--rpmbuild-args=ARGS]
Reads the build command from ~/.zoryn or the builder configuration. Supports both local and remote builders configured in ~/.config/zoryn/builders.d/.
Before building, zoryn validates that the builder's allowed_mountpoints and allowed_devices (from hasher-priv config) include every mountpoint required by the build command (--mountpoint=…). If entries are missing, the build is stopped with a fix message.
If the package has a batch configuration in .gear/version-up (specsubst with multiple values), builds are run for each specsubst value.
By default, build output goes only to the log file (silent mode). Use -v to also show it on screen.
Options¶
-v, --verbose— show build output on screen (in addition to the log file).-l, --log-dir <dir>— save build logs to the specified directory instead of.gear/.-C <dir>— change to directory before running.-d, --debug— enable debug output.-b, --builder <pattern>— select builders by name or pattern (see Builder Patterns).-a, --arch <arch>— select builder by architecture (comma-separated for multiple).-B, --branch <branch>— select builder by branch (comma-separated for multiple).-p, --parallel— run builds in parallel when using multiple builders.-s, --sequential— run builds sequentially (overridesparallel = onin config).--fail-if-busy— exit immediately if builder is busy (default: wait).--skip-busy— skip busy builders without error.-r, --rebuild— usehsh-rebuildinstead ofhsh(rebuild in existing hasher without recreating chroot).--top— interactive TUI for monitoring builds (htop-like).--skip-check[=LIST]— skip specified checks (comma-separated). Values:rpmbuild(skip%check), tool names likesisyphus_check,all. Without a value — skips everything.--batch-pkgs=PKGS— build only specified batch values (comma-separated) instead of all values from[batch].--no-python-auto-deps— disable automaticpyproject_deps.jsonupdate and rebuild retry when Python dependencies change.--section <SECTION>— run only a specific rpmbuild section in existing chroot with spec sync. Values:prep,build,install,check,bb(aliaspkgbinary; repackage only, produces rpm),ba(aliaspkgall; repackage only, produces src.rpm + rpm).--rpmbuild-args <ARGS>— additional rpmbuild arguments (requires--section).
TUI mode (--top)¶
Interactive interface with:
- Real-time builder status table with build stages.
- Live log panel with scrolling (Up/Down, PgUp/PgDn, Home/End, mouse wheel).
- Regex search in logs (
/to search,n/Nfor next/prev). - Persistent search history: use Up/Down or Ctrl+R in log search inputs to recall past patterns.
- TAB to switch between builders,
cto cancel,rto restart. - Requires the
ocaml-lambda-term-develpackage.
Examples¶
zoryn build # local build using ~/.zoryn config
zoryn build -v # build with output on screen
zoryn build --builder=shell64 # build on specific builder
zoryn build --builder=shell32,shell64 # build on multiple builders
zoryn build --arch=aarch64 # build on ARM64 builder
zoryn build --branch=p11 # build for p11 (waits if busy)
zoryn build -b @all # build on all builders
zoryn build -b @all -p # parallel build on all builders
zoryn build -b @all --arch=x86_64 # build on all x86_64 builders
zoryn build -b @all --top # interactive TUI mode
zoryn build -b @all,^local # all builders except local
zoryn build -b @host:basalt # all builders on host basalt
zoryn build --section check # run %check in existing chroot
zoryn build --section build -b arm-server # run %build on specific builder
zoryn build --section bb # repackage only (rpm)
zoryn build --section ba # repackage only (src.rpm + rpm)
Builder patterns¶
The -b flag supports patterns for flexible builder selection:
| Pattern | Meaning |
|---|---|
@all | All configured builders |
@host:basalt | All builders on host basalt |
@host:basalt[2-5] | Builders on basalt with hasher number 2–5 |
local[1-3] | Builders local1, local2, local3 |
@all,^local | All builders except local |
@all,^@host:basalt | All except builders on basalt |
@host:basalt,^@host:basalt[4-5] | Builders on basalt except numbers 4–5 |
Patterns use @ prefix for selectors and ^ for exclusions. Multiple patterns can be combined with commas — inclusions are unioned, then exclusions subtracted. Patterns work with --arch / --branch (intersection).