hsh(1)

HSH(1) User Commands HSH(1)

NAME

hsh - build package using hasher utilities

SYNOPSIS

hsh [options] [<path-to-workdir>] <package>...
hsh [options] --workdir=DIR <package>...
hsh [options] --initroot-only [<path-to-workdir>]
hsh [options] --initroot-only --workdir=DIR
hsh [options] --cleanup-only [<path-to-workdir>]
hsh [options] --cleanup-only --workdir=DIR
hsh [options] --printenv-only [<path-to-workdir>]
hsh [options] --printenv-only --workdir=DIR

DESCRIPTION

hsh - build package using hasher utilities.

<path-to-workdir> must be valid writable directory.

OPTIONS

--with-stuff / --without-stuff
Controls whether to use results of previous builds stored in <path-to-workdir>/repo during setup of a new build environment. Default is to use this stuff. ($no_stuff);
--number=NUMBER
Choose a subconfig identifier (positive integer). By default, simultaneous builds are not allowed, so user can do at most a single build in every point of time. To overcome this restriction, an additional pseudouser pairs should be created by hasher-useradd(8). The subconfig identifier defines the pair to use. Additionally, when NUMBER starts with slash character, it specifies a directory to deduce the subconfig identifier from. ($number);
--mountpoints=LIST
Comma-separated list of known mount points. Every build dependency that belongs to this list will be mounted. If some mount point is not explicitly allowed in hasher-priv.conf(5), then the build will fail. ($known_mountpoints);
--apt-config=FILE
path to custom apt.conf file ($apt_config);
--apt-prefix=DIR
path to apt directory prefix (e.g. /usr) ($apt_prefix);
--build-args=ARGS
a deprecated synonym for --rpmbuild-args;
--build-srpm-only
do not build binary packages, produce src.rpm only;
--cleanup-only
do not build at all, just cleanup workdir;
--eager-cleanup
cleanup build environment after each successful build ($lazy_cleanup);
--lazy-cleanup
cleanup build environment before each new build ($lazy_cleanup);
--excludedocs
do not install documentation files ($exclude_docs);
--hasher-priv-dir=DIR
alternative hasher-priv directory ($def_hasher_priv_dir);
--initroot-only
do not build, stop after initroot stage;
--printenv
print configuration environment variables;
--install-langs=LIST
colon-separated list of languages to install ($def_install_langs);
--repo-mountpoints=LIST
comma-separated list of mountpoints containing a repo used for image building ($repo_mountpoints);
--cache-compress=FILE
alternative cache compress executable ($cache_compress);
--cache-dir=DIR
alternative cache directory ($cache_dir);
--no-cache
do not use initroot cache ($no_cache);
--no-contents-indices
do not use content indices ($no_contents_indices);
--no-repackage-source
do not repackage source along with binaries ($repackage_source);
--no-sisyphus-check-in[=LIST]
do not run sisyphus_check input tests [specified in comma-separated LIST] ($no_sisyphus_check_in);
--no-sisyphus-check[=LIST]
do not run sisyphus_check tests [specified in comma-separated LIST] ($no_sisyphus_check);
--no-sisyphus-check-out[=LIST]
do not run sisyphus_check output tests [specified in comma-separated LIST] ($no_sisyphus_check_out);
--nprocs=NUMBER
number of CPUs to use ($nprocs);
--packager=EMAIL
override default RPM packager tag ($packager);
--pkg-build-list=LIST
override default build package file list ($pkg_build_list);
--pkg-init-list=LIST
override default initial package file list ($pkg_init_list);
--predb-prog
program to run inside the chroot after unpacking of init list packages, but before rpmi --justdb ($prog_predb);
--query-repackage
repackage the source before query for requirements (default) ($query_repackage);
--no-query-repackage
query original source package for requirements;
--query-req-prog=FILE
program to run to query for requirements instead of autogenerated script ($prog_query_req);
--rebuild-prog=FILE
program to run for rebuild instead of autogenerated script ($prog_rebuild);
--repackage-source
repackage source along with binaries ($repackage_source);
--repo=DIR
repository directory ($def_repo);
--repo-bin=DIR
binary packages destination directory, overriding --repo option for binary packages ($repo_bin);
--repo-src=DIR
source packages destination directory, overriding --repo option for source packages ($repo_src);
--images=DIR
image output directory ($def_images);
--rpmbuild-args=ARGS
extra arguments for rpmbuild ($rpmargs);
--save-fakeroot
save fakeroot state ($save_fakeroot);
--target=ARCH
target architecture ($def_target);
--wait-lock
wait for workdir and hasher-priv locks ($lock_nowait);
--no-wait-lock
do not wait for workdir and hasher-priv locks ($lock_nowait);
--img-apt-config
path to a custom apt.conf file used for image building ($img_apt_config);
--with-qemu=ARCH
copy qemu executable into the chroot .host directory;
--workdir=DIR
path to workdir to use ($workdir);
-q, --quiet
try to be more quiet;
-v, --verbose
print a message for each action;
-V, --version
print program version and exit;
-h, --help
show this text and exit.

Correspondent config file variable, if any, is mentioned by dollar sign at the end of option description ($like_this).

FILES

~/.hasher/config - user config file sourced by all hasher utilities; uses shell syntax.

~/.hasher/install/post
- postinstall script; mkchroot copies it into chroot, and install executes the copy at the end of the package installation transaction.
Working directory contents:
aptbox
- created automatically by mkaptbox(1), required for apt.
cache
- build environment and rpm database cache, created automatically by initroot.
chroot
- build environment, created automatically by mkchroot.
pid
- pid file, handled internally by hsh.
repo
- package repository, contains the build results.

AUTHOR

Written by Dmitry V. Levin <ldv@altlinux.org> et al.

REPORTING BUGS

Report bugs to https://bugzilla.altlinux.org/

COPYRIGHT

Copyright © 2003-2022 Dmitry V. Levin <ldv@altlinux.org>
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO

mkaptbox(1), hsh-initroot(1), hsh-install(1), hsh-mkchroot(1), hsh-rebuild(1), hsh-rmchroot(1), hsh-run(1), hasher-priv.conf(5), hasher(7), hasher-useradd(8).

August 2023 hasher 1.7.2