Skip to content
zoryn/ maintainer-assistant

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 (overrides parallel = on in config).
  • --fail-if-busy — exit immediately if builder is busy (default: wait).
  • --skip-busy — skip busy builders without error.
  • -r, --rebuild — use hsh-rebuild instead of hsh (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 like sisyphus_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 automatic pyproject_deps.json update 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 (alias pkgbinary; repackage only, produces rpm), ba (alias pkgall; 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/N for next/prev).
  • Persistent search history: use Up/Down or Ctrl+R in log search inputs to recall past patterns.
  • TAB to switch between builders, c to cancel, r to restart.
  • Requires the ocaml-lambda-term-devel package.

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:

PatternMeaning
@allAll configured builders
@host:basaltAll builders on host basalt
@host:basalt[2-5]Builders on basalt with hasher number 2–5
local[1-3]Builders local1, local2, local3
@all,^localAll builders except local
@all,^@host:basaltAll 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).