zoryn-build(1)
| ZORYN-BUILD(1) | Zoryn Manual | ZORYN-BUILD(1) |
NAME
zoryn-build - Run local hasher build.
SYNOPSIS
zoryn build [OPTION]…
DESCRIPTION
Build package locally using hasher. Reads build command from ~/.zoryn config file, section [build] option command. Default command is hsh.
If the package has batch configuration in .gear/version-up (specsubst with multiple values), builds are run for each specsubst value.
By default, build output is written only to log file. Use -v to also show it on screen.
BUILDERS
You can specify a builder to use with --builder, --arch, or --branch options. Builders are configured in ~/.config/zoryn/builders.d/*.conf files.
Use 'zoryn builder list' to see available builders.
CONFIGURATION
Build command is configured in ~/.zoryn:
[build]
command = "hsh -v --packager={packager} --mountpoint=/proc,/dev/pts,/dev/kvm --lazy-cleanup {hasher_dir}"
Batch builds are configured in .gear/version-up:
[batch]
specsubst = phpver
values = 8.4, 8.3, 8.2
OPTIONS
- -a ARCH, --arch=ARCH
- Select builder by architecture ARCH. Multiple architectures can be specified comma-separated (e.g., x86_64,aarch64). Examples: x86_64, aarch64, i586.
- -B BRANCH, --branch=BRANCH
- Select builder by branch BRANCH. Multiple branches can be specified comma-separated (e.g., sisyphus,p11). Examples: sisyphus, p11.
- -b PATTERN, --builder=PATTERN
- Use builder PATTERN for build. Supports patterns: @all (all builders), @host:HOST (by host), @host:HOST[N-M] (host range), NAME[N-M] (name range), ^NAME (exclude). Comma-separated. See 'zoryn builder list' for available builders.
- --batch-pkgs=PKGS
- Build/submit only specified batch values (comma-separated). Values must exist in [batch] section of .gear/version-up.
- -C DIR
- Change to directory DIR before running.
- -d, --debug
- Enable debug output.
- --fail-if-busy
- Exit immediately with error if builder is busy (default: wait for builder).
- -l DIR, --log-dir=DIR
- Save build logs to DIR instead of .gear/ directory.
- --no-python-auto-deps
- Disable automatic .gear/pyproject_deps.json update and rebuild retry when Python package dependencies change during build.
- -p, --parallel
- Run builds in parallel when using multi-builder mode. Default can be set in ~/.zoryn [builders] parallel = on.
- -r, --rebuild
- Use hsh-rebuild instead of hsh for building. Useful for rebuilding package in existing hasher environment without recreating chroot.
- --rpmbuild-args=ARGS
- Additional rpmbuild arguments to pass when using --section.
- -s, --sequential
- Run builds sequentially (overrides config default and --parallel).
- --section=SECTION
- Run only a specific rpmbuild section in existing chroot. Syncs spec file from working directory before running. Values: prep, build, install, check, bb (alias pkgbinary; rpmbuild -bb --short-circuit: only packaging, produces rpm), ba (alias pkgall; rpmbuild -ba --short-circuit: only packaging, produces src.rpm + rpm). Use --rpmbuild-args for full control over rpmbuild flags.
- --skip-busy
- Skip busy builders without error.
- --skip-check[=LIST] (default=rpmbuild,all)
- Skip specified checks (comma-separated). Values: rpmbuild (skip %%check section via --rpmbuild-args), post-build tool names like sisyphus_check, all (skip all post-build checks). Without a value, skips everything.
- --top
- Show interactive TUI with real-time build status (htop-like). Requires multi-builder mode (-b @all or multiple --builder/--arch values).
- -V
- Show version information.
- -v, --verbose
- Show build output on screen (in addition to log file).
COMMON OPTIONS
- --help[=FMT] (default=auto)
- Show this help in format FMT. The value FMT must be one of auto, pager, groff or plain. With auto, the format is pager or plain whenever the TERM env var is dumb or undefined.
- --version
- Show version information.
EXIT STATUS
zoryn build exits with:
- 0
- on success.
- 123
- on indiscriminate errors reported on standard error.
- 124
- on command line parsing errors.
- 125
- on unexpected internal errors (bugs).
EXAMPLES
Simple build (silent, output to log only):
zoryn build
Build with output on screen:
zoryn build -v
Build with logs in /tmp:
zoryn build -l /tmp
Build in another directory:
zoryn build -C ~/packages/mypackage
Build with specific builder:
zoryn build --builder=arm-server
Build for specific architecture:
zoryn build --arch=aarch64
Build for multiple architectures:
zoryn build --arch=aarch64,x86_64
Build for specific branch:
zoryn build --branch=p11
Fail immediately if builder is busy (don't wait):
zoryn build --builder=default --fail-if-busy
Build on all builders:
zoryn build -b @all
Build on all x86_64 builders in parallel:
zoryn build -b @all --arch=x86_64 --parallel
Build on all builders of a specific host:
zoryn build -b @host:basalt
Build on all sisyphus builders, skip busy ones:
zoryn build --branch=sisyphus -b @all --skip-busy
Exclude a builder:
zoryn build -b @all,^arm-server
Rebuild in existing hasher environment (faster, skips chroot recreation):
zoryn build --rebuild
Build on all builders with interactive TUI (htop-like interface):
zoryn build -b @all --top
Build without running %%check section (rpmbuild):
zoryn build --skip-check=rpmbuild
Skip all checks (rpmbuild %%check + post-build package checks):
zoryn build --skip-check
Run only %%build section in existing chroot:
zoryn build --section build
Run %%check (tests) with spec sync:
zoryn build --section check
Run %%install on specific builder:
zoryn build --section install --builder=arm-server
Repackage only (reuse %%prep/%%build/%%install artifacts, produce rpm):
zoryn build --section bb # or --section pkgbinary
Repackage only, produce src.rpm + rpm:
zoryn build --section ba # or --section pkgall
Pass custom rpmbuild arguments:
zoryn build --section build --rpmbuild-args="--without=check"
Pass rpmbuild --define with a value:
zoryn build --section build --rpmbuild-args="--define 'debug 1'"
SEE ALSO
zoryn-up(1), zoryn-submit(1), zoryn-builder(1)
zoryn(1)
| Zoryn 0.46.0 |
