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