bionic (1) mock.1.gz

Provided by: mock_1.3.2-2_all bug

NAME

       mock - build SRPMs in a chroot

SYNTAX

       mock  [options] --rebuild SRPM [SRPM...]

       mock  [options] --buildsrpm {--spec spec --sources src --symlink-dereference | --scm-enable}

       mock  [options] --chroot <cmd>

       mock  [options] {--init|clean|shell}

       mock  [options] --installdeps {SRPM|RPM}

       mock  [options] -i, --install PACKAGE [PACKAGE...]

       mock  [options] --update [PACKAGE...]

       mock  [options] --remove PACKAGE [PACKAGE...]

       mock  [options] --orphanskill

       mock  [options] -p, --print-root-path

       mock  [options] --copyin path [path...] destination

       mock  [options] --copyout path [path...] destination

       mock  [options] --scm-enable [--scm-option key=value ...]

       mock  [options] -l, --list-snapshots

       mock  [options] --snapshot [snapshot-name]

       mock  [options] --rollback-to [snapshot-name]

       mock  [options] --remove-snapshot [snapshot-name]

       mock  [options] --umount

       mock  [options] --pm-cmd [arguments ...]

       mock  [options] --yum-cmd [arguments ...]

       mock  [options] --dnf-cmd [arguments ...]

DESCRIPTION

       Mock  is  a  simple  program that will build source RPMs inside a chroot. It doesn't do anything terribly
       fancy other than populate a chroot with the contents specified by a configuration file,  then  build  any
       input SRPM(s) in that chroot.

       The  content  of  a  chroot  is  specified by the configuration specified with the -r option. The default
       configuration file is /etc/mock/default.cfg,  which  is  usually  a  symlink  to  one  of  the  installed
       configurations.

       There  is  a  site-wide  configuration  file,  /etc/mock/site-defaults.cfg,  which can be used to specify
       site-wide options. The shipped version of this file has no active options, but does have a list of all of
       the configuration options, examples of how to set them, and their default values.

       For  backwards compatibility, old-style commands, ("rebuild", "init", "clean", etc.) without leading '--'
       are still accepted, but are deprecated.  See  COMMANDS  section,  below,  for  detailed  listing  of  all
       commands.

       To use mock, a user should become a member of the mock group by adding their username to the mock line in
       /etc/group. This can be done with the following command:

               sudo /usr/sbin/usermod -a -G mock $USER

       Note that mock is not intended to be run directly as root.

       Warning: Mock is running some parts of code under root privileges. There are known ways how to  get  root
       access once user is in mock group (and once he is able to run mock). This is possible when user abuse the
       mock configuration options. Please do not add anyone who is not trustworthy to the mock group!

COMMANDS

       --buildsrpm
              Builds the specified SRPM either from a spec file and  source  file/directory  or  from  SCM.  The
              chroot is cleaned first, unless --no-clean is specified.

       --clean
              Purge the chroot tree.

       --copyin
              Copies  the  source  paths (files or directory trees) into the chroot at the specified destination
              path.

       --copyout
              Copies the source paths (files or directory trees) from the chroot to  the  specified  destination
              path.

       --chroot COMMAND [ARGS...]
              Run  the  specified command non-interactively within the chroot (no 'clean' is performed). Command
              output will be sent to the log files. Note that COMMAND is shell expanded only  if  there  are  no
              ARGS. Otherwise there is no shell expansion.

       --dnf-cmd
              Execute  following  arguments  with  DNF  with  installroot  set  to  the chroot path. DNF must be
              installed on the system.  It will use the binary which is specified  in  'dnf_command'  option  in
              site-defaults.cfg config, which by default is /usr/bin/dnf.  This option will enforce --dnf.

       --init Initialize a chroot (clean, install chroot packages, etc.)

       -i, --install
              Do a yum install PACKAGE inside the chroot. No 'clean' is performed

       --installdeps
              Find  out  deps  for  SRPM  or  RPM, and do a yum install to put them in the chroot. No 'clean' is
              performed

       -l, --list-snapshots
              List all existing snapshots of the  chroot  belonging  to  current  configuration.   Current  base
              snapshot is marked with an asterisk (*)

       --mount
              Mount  all  everything mounted in the chroot path including the root itself that might have been a
              LVM volume or TMPFS.

       --orphanskill
              No-op mode that simply checks that no stray  processes  are  running  in  the  chroot.  Kills  any
              processes that it finds using specified root.

       --pm-cmd
              Execute following arguments with current package manager with installroot set to the chroot path.

       -p, --print-root-path
              Prints a path to the currently used chroot directory.

       --rebuild
              If  no  command  is  specified,  rebuild is assumed. Rebuilds the specified SRPM(s). The chroot is
              cleaned first, unless --no-clean is specified.

       --remove
              Do a yum remove PACKAGE inside the chroot. No 'clean' is performed

       --remove-snapshot
              Remove given snapshot freeing the space it occupied. This action cannot be undone.   This  feature
              is available only when lvm_root plugin is installed and enabled.

       --rollback-to
              Return  chroot  to  the  state in specified snapshot and set it as the current base to which clean
              actions will return. It won't delete nor modify the snapshot that  was  set  as  base  previously.
              This feature is available only when lvm_root plugin is installed and enabled.

       --scm-enable
              Enable   building   from   an  SCM  (CVS/Git/SVN).  The  SCM  repository  must  be  configured  in
              site-defaults.cfg before SCM checkouts are possible. SCM package and branch can  be  defined  with
              --scm-option arguments, see site-defaults.cfg for more information.

       --scrub=TYPE
              Completely  remove  the specified chroot or cache dir or all of the chroot and cache.  TYPE is one
              of all, chroot, cache, root-cache, c-cache, yum-cache or dnf-cache. In  fact,  dnf-cache  is  just
              alias for yum-cache and both removes Dnf and Yum cache.

       --shell [COMMAND [ARGS...]]
              Run the specified command interactively within the chroot (no 'clean' is performed). If no command
              specified, /bin/sh is run. Note that COMMAND is shell expanded using shell in chroot.

       --sources=SOURCES
              Specifies sources (either a single file or a directory of files) to use to  build  an  SRPM  (used
              only with --buildsrpm).

       --spec=SPEC
              Specifies spec file to use to build an SRPM (used only with --buildsrpm).

       --update [PACKAGE...]
              Do a package update inside the chroot. The package list is optional, if omitted, all packages will
              be updated. No 'clean' is performed

       --snapshot
              Make a snapshot of the current state of the chroot. That snapshot will be set as the current  base
              to which --clean and implicit clean happening during rebuild command will return.  This feature is
              available only when lvm_root plugin is installed and enabled.

       --umount
              Umount all everything mounted in the chroot path including the root itself that might have been  a
              LVM volume or TMPFS.

       --yum-cmd
              Execute  following  arguments  with  YUM  with  installroot  set  to  the chroot path. Yum must be
              installed on the system.  It will use the binary which is specified  in  'yum_command'  option  in
              site-defaults.cfg  config, which by default is /usr/bin/yum.  Note that in config files for Fedora
              22+ this value is overwriten in chroot config to default to /usr/bin/yum-deprecated.  This  option
              will enforce --yum.

       Note:  While  you  can  specify more commands on command line, only one can be executed. The last command
       will win.

OPTIONS

       --arch=ARCH
              Calls the linux personality() syscall to tell the kernel to emulate a secondary architecture.  For
              example, building i386 packages on an x86_64 buildhost.

       --cache-alterations
              Rebuild  the  root cache after making alterations to the chroot (i.e. --install). Only useful when
              using tmpfs plugin.

       --cleanup-after
              Clean chroot after building. Use with --resultdir. Only active for '--rebuild'.

       --configdir=CONFIGDIR
              Change directory where config files are found

       --cwd=DIR
              Change to the specified directory (relative to the  chroot)  before  running  command  when  using
              --chroot

       -D "MACRO EXPR", --define="MACRO EXPR"
              Specify macro definitions used for the build.  This option may be used multiple times, just as the
              rpmbuild --define option can be.  For example:

              --define "with_extra_cheese 1" --define="packager Monkey"

       --disable-plugin=PLUGIN
              Disable the specified plugin.  This option may be used multiple times.

       --disablerepo=REPO
              Pass --disablerepo option to package manager  to  disable  a  repository.   It  can  be  specified
              multiple times.

       --dnf  Use  DNF  as  the current package manager. You should have DNF (and dnf-plugins-core) installed on
              your system.

       --enable-plugin=PLUGIN
              Enable the specified plugin.  This option may be used multiple times.

       --enablerepo=REPO
              Pass --enablerepo option to package manager to enable a repository.  It can be specified  multiple
              times.

       -h, --help
              Show usage information and exit.

       --macro-file=FILE
              Use  pre-defined rpm macro file. Macros passed to '--define' override macros of the same name from
              FILE.

       --new-chroot
              use new chroot (systemd-nspawn) - this is experimental and will break existing scripts.

       -n, --no-clean
              Do not clean chroot before building package.

       --nocheck
              Pass --nocheck to rpmbuild to skip 'make check' tests.

       --no-cleanup-after
              Don't clean chroot after building. If automatic cleanup is enabled, use this to disable.

       --offline
              Run in 'offline' mode where we tell 'yum' to run completely from local cache. Also disables  cache
              expiry for the mock yum cache.

       --old-chroot
              use old chroot instead of systemd-nspawn.

       --plugin-option PLUGIN:KEY=VALUE
              Set plugin specific parameter. This option may be used multiple times.

       --postinstall
              Try to install built packages in the same buildroot right after build.

       -q, --quiet
              Be quiet.

       -r CONFIG, --root=CONFIG
              Uses  specified  chroot  configuration  as defined in /etc/mock/<CONFIG>.cfg. Optionally if CONFIG
              ends in '.cfg', it is interpreted as full path to config file. If none specified, uses the  chroot
              config linked to by /etc/mock/default.cfg.

       --resultdir=RESULTDIR
              Change  directory  where  resulting files (RPMs and build logs) are written. Resultdir can contain
              python-string substitutions for any variable in the chroot config. For example:

              --resultdir=./my/"%(dist)s"/"%(target_arch)s"/

              This option enables automatic cleanup, this can be changed in config file (by  cleanup_on_success,
              cleanup_on_failure  configuration  options)  or  overridden  by --no-cleanup-after/--cleanup-after
              arguments.

       --rootdir=ROOTDIR
              Path   for   where   the   chroot   should   be   built.   By   default   it   is    created    in
              /var/lib/mock/<CONFIG>/root/.

       --rpmbuild-opts=OPTIONS
              Pass additional options to rpmbuild. To pass more options, put them in quotes.

       --rpmbuild_timeout=SECONDS
              Fail build if rpmbuild takes longer than 'timeout' seconds

       --scm-option=OPTIONS
              define an SCM option (may be used more than once).

       --short-circuit=STAGE
              Use  rpmbuild's  short-circuit  mechanism  to  skip  already executed stages of build.  It doesn't
              produce RPMs, it's useful only for debugging packaging. Implies --no-clean. STAGE specifies  which
              stage will be executed as the first.  Available values: prep, build, install, binary.

       --symlink-dereference
              Follow symlinks in sources (used only with --buildsrpm).

       --target=ARCH
              This  argument  is passed to rpmbuild to specify the target arch to build. It defaults to whatever
              is   specified   for   --arch,   or   whatever   is   specified   in   the    config    file    as
              config_opts['target_arch'].

       --trace
              Enables  verbose  tracing  of function enter/exit with function arguments and return codes. Useful
              for debugging mock itself.

       --uniqueext=text
              Arbitrary, unique extension to append to chroot directory name

       --unpriv
              Drop privileges before running command when using --chroot

       -v, --verbose
              Output verbose progress information.

       --version
              Show version number and exit.

       --with=OPTION
              Enable configure OPTION for build.  This option may be used multiple times.  For example:

              --with=extra_cheese

       --without=OPTION
              Disable configure OPTION for build.  This option may be used multiple times.  For example:

              --without=anchovies

       --yum  Use yum as the current package manager. This is the default.

FILES

       /etc/mock/ - default configuration directory

       /var/lib/mock - directory where chroots are created

EXAMPLES

       To rebuild test.src.rpm using the Fedora 14 configuration for x86_64

            mock -r fedora-14-x86_64 --rebuild /path/to/test.src.rpm

       Note that the available configurations are found in the /etc/mock directory with the extension  .cfg.  To
       specify a configuration use the filename without the trailing .cfg extension.

       To place the output RPMs and logs in a specified location.

            mock -r fedora-14-i386 --resultdir=./my-results /path/to/your.src.rpm

       To  build  a  package  from  the default SCM repository configured in site-defaults.cfg use the following
       arguments.

            mock -r fedora-14-i386 --scm-enable --scm-option package=pkg

       To build execute command inside of chroot.

            mock -r fedora-21-x86_64 --chroot -- rpm --eval %dist

            mock -r fedora-21-x86_64 --chroot 'rpm --eval %dist'

       To build rawhide package using yum:

            mock -r fedora-rawhide-x86_64 --yum --rebuild your.src.rpm

       Query rpm database inside chroot using Yum:

            mock -r fedora-rawhide-x86_64 --yum-cmd whatprovides foo

       List package manager history using package manager which is configured in chroot config  (can  be  either
       DNF or YUM):

            mock -r fedora-rawhide-x86_64 --pm-cmd history list

BUGS

       To report bugs in mock, go to:

            https://apps.fedoraproject.org/packages/mock/.

       Select  the  Bugs  tab.  If there is a bug similar to the one you are seeing, add your information to the
       comments. If not, press Open A New Bug and fill in the form.

AUTHORS

       Michael Brown <mebrown1.3.2-2"michaels-house.net>

       Clark Williams <williams1.3.2-2"redhat.com>

       Seth Vidal <skvidal1.3.2-2"linux.duke.edu>

       and a cast of...tens

SEE ALSO

       mockchain(1), rpmbuild(8), yum(8), https://fedoraproject.org/wiki/Mock