# mock defaults # vim:tw=0:ts=4:sw=4:et: # # If you want to alter just some setting for one user, you can put the # configuration in: # ~/.config/mock.cfg # # This config file is for site-specific default values that apply across all # configurations. Options specified in this config file can be overridden in # the individual mock config files. # # The site-defaults.cfg delivered by default has NO options set. Only set # options here if you want to override the defaults. # # It's possible to use include statement in order to make one config included to another: # include('/path/to/included/config.cfg') # # Entries in this file follow the same format as other mock config files. # config_opts['foo'] = bar ############################################################################# # # Things that we recommend you set in site-defaults.cfg: # # config_opts['basedir'] = '/var/lib/mock/' # config_opts['cache_topdir'] = '/var/cache/mock' # Note: the path pointed to by basedir and cache_topdir must be owned # by group 'mock' and must have mode: g+rws # config_opts['rpmbuild_timeout'] = 0 # config_opts['use_host_resolv'] = True # You can configure log format to pull from logging.ini formats of these names: # config_opts['build_log_fmt_name'] = "unadorned" # config_opts['root_log_fmt_name'] = "detailed" # config_opts['state_log_fmt_name'] = "state" # # mock will normally set up a minimal chroot /dev. # If you want to use a pre-configured /dev, disable this and use the bind-mount # plugin to mount your special /dev # config_opts['internal_dev_setup'] = True # # internal_setarch defaults to 'True' if the python 'ctypes' package is # available. It is in the python std lib on >= python 2.5. On older versions, # it is available as an addon. On systems w/o ctypes, it will default to 'False' # config_opts['internal_setarch'] = False # # the cleanup_on_* options allow you to automatically clean and remove the # mock build directory, but only take effect if --resultdir is used. # config_opts provides fine-grained control. cmdline only has big hammer # # config_opts['cleanup_on_success'] = 1 # config_opts['cleanup_on_failure'] = 1 # The build user's homedir is partially cleaned up even when --no-clean is # specified in order to prevent garbage from previous builds from altering # successive builds. Mock can be configured to exclude certain files/directories # from this. Default is SOURCES directory to support nosrc rpms. Paths are # relative to build user's homedir # config_opts['exclude_from_homedir_cleanup'] = ['build/SOURCES'] # By default Mock use simple chroot(1). When you set this to True # it will use systemd-nspawn(1) ### Workarond for https://bugzilla.redhat.com/1530571 config_opts['use_nspawn'] = False # If you're using nspawn, then by default networking will be turned off # for rpmbuild. This helps ensure more reproducible builds. # config_opts['rpmbuild_networking'] = False # Workaround for mock 1.4.7 - https://bugzilla.redhat.com/1514028 config_opts['rpmbuild_networking'] = True ## When RPM is build in container then build hostname is set to name of ## container. This sets the build hostname to name of container's host. ## Works only in F25+ chroots # config_opts['use_container_host_hostname'] = True # The default package manager is Yum # config_opts['package_manager'] = 'yum' # If you want to use DNF, set it to 'dnf'. To use DNf you need to have dnf and # dnf-plugins-core installed # You can configure Yum, DNF, rpm and rpmbuild executable paths if you need to # use different versions that the system-wide ones # config_opts['yum_command'] = '/usr/bin/yum' # config_opts['yum_builddep_command'] = '/usr/bin/yum-builddep' # config_opts['dnf_command'] = '/usr/bin/dnf' # config_opts['rpm_command'] = '/bin/rpm' # config_opts['rpmbuild_command'] = '/usr/bin/rpmbuild' # config_opts['target_dir'] = '/var/cache/%(package_manager)s/' # # By default a Yum/DNF update is performed before each rebuild # config_opts['update_before_build'] = True # if you want mock to automatically run createrepo on the rpms in your # resultdir. # config_opts['createrepo_on_rpms'] = False # config_opts['createrepo_command'] = '/usr/bin/createrepo_c -d -q -x *.src.rpm' # if you want mock to backup the contents of a result dir before clean # config_opts['backup_on_clean'] = False # config_opts['backup_base_dir'] = config_opts['basedir'] + "backup" # if you want to speed up the package installation and the build process, mock # can use nosync library to skip fsync and related calls from programs called # from within mock. It needs nosync library to be installed and for multilib # target, it requires both architectures of nosync to be present. If these # conditions aren't met, it won't be enabled # config_opts['nosync'] = False # if you cannot or don't want to install both architectures of nosync and still # want mock to use it, you can force it, but then expect a lot of (generally # harmless) error messages from ld.so when a 32bit program is executed # config_opts['nosync_force'] = False # By default Mock unshare namespace so it is different from your other application # in unpriviliged container, this is skipped. We will warn you that running mock # and some other applications in the same container is not good idea and # can be security risk. If you are fully aware of this risk or mock is your # only one application in that container you can disable the warning here. # config_opts['docker_unshare_warning'] = True ############################################################################# # # plugin related. Below are the defaults. Change to suit your site # policy. site-defaults.cfg is a good place to do this. # # NOTE: Some of the caching options can theoretically affect build # reproducability. Change with care. # # config_opts['plugin_conf']['package_state_enable'] = True # config_opts['plugin_conf']['package_state_opts'] = {} # config_opts['plugin_conf']['package_state_opts']['available_pkgs'] = False # config_opts['plugin_conf']['package_state_opts']['installed_pkgs'] = True # config_opts['plugin_conf']['ccache_enable'] = False # config_opts['plugin_conf']['ccache_opts'] = {} # config_opts['plugin_conf']['ccache_opts']['max_cache_size'] = '4G' # config_opts['plugin_conf']['ccache_opts']['compress'] = None # config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/%(root)s/ccache/u%(chrootuid)s/" # config_opts['plugin_conf']['yum_cache_enable'] = True # config_opts['plugin_conf']['yum_cache_opts'] = {} # config_opts['plugin_conf']['yum_cache_opts']['max_age_days'] = 30 # config_opts['plugin_conf']['yum_cache_opts']['max_metadata_age_days'] = 30 # config_opts['plugin_conf']['yum_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/%(package_manager)s_cache/" # config_opts['plugin_conf']['yum_cache_opts']['target_dir'] "/var/cache/%(package_manager)s/" # config_opts['plugin_conf']['yum_cache_opts']['online'] = True # config_opts['plugin_conf']['root_cache_enable'] = True # config_opts['plugin_conf']['root_cache_opts'] = {} # config_opts['plugin_conf']['root_cache_opts']['age_check'] = True # config_opts['plugin_conf']['root_cache_opts']['max_age_days'] = 15 # config_opts['plugin_conf']['root_cache_opts']['dir'] = "%(cache_topdir)s/%(root)s/root_cache/" # config_opts['plugin_conf']['root_cache_opts']['compress_program'] = "pigz" # config_opts['plugin_conf']['root_cache_opts']['extension'] = ".gz" # config_opts['plugin_conf']['root_cache_opts']['exclude_dirs'] = ["./proc", "./sys", "./dev", # "./tmp/ccache", "./var/cache/yum" ] # # bind mount plugin is enabled by default but has no configured directories to # mount # config_opts['plugin_conf']['bind_mount_enable'] = True # config_opts['plugin_conf']['bind_mount_opts']['dirs'].append(('/host/path', '/bind/mount/path/in/chroot/' )) # # config_opts['plugin_conf']['tmpfs_enable'] = False # config_opts['plugin_conf']['tmpfs_opts'] = {} # config_opts['plugin_conf']['tmpfs_opts']['required_ram_mb'] = 1024 # config_opts['plugin_conf']['tmpfs_opts']['max_fs_size'] = '768m' # config_opts['plugin_conf']['tmpfs_opts']['mode'] = '0755' # config_opts['plugin_conf']['tmpfs_opts']['keep_mounted'] = False # # config_opts['plugin_conf']['chroot_scan_enable'] = False # config_opts['plugin_conf']['chroot_scan_opts'] = { ## Regexp of files which should be copied from buildroot to resultdir. # 'regexes': [ "^[^k]?core(\.\d+)?", "\.log$",], ## If set to True files are copied only if build failed. # 'only_failed': True, #} # # lvm_root plugin is not enabled by default and is distributed in separate # subpackage mock-lvm. If you want to use it, it's recommended to disable the # root_cache plugin, otherwise you'd be caching twice. # config_opts['plugin_conf']['lvm_root_enable'] = False # config_opts['plugin_conf']['lvm_root_opts'] = {} # You need to give it a volume group with sufficient space. It won't touch any # of the existing logical volumes, so you can use the same volume group you use # for other purposes. It requires a name of the VG (not device path). # config_opts['plugin_conf']['lvm_root_opts']['volume_group'] = 'my_vg' # You need to specify the size that will mock's thinpool occupy. For regular # packages with small set of dependencies, 2G should suffice. For large packages # such as libreoffice, you should set it to at least 5 GB otherwise you may run # out of space and the build process will be blocked # config_opts['plugin_conf']['lvm_root_opts']['size'] = '2G' # You can specify alternative pool metadata size, format is the same as size. # Default value is determined by lvcreate based on size # config_opts['plugin_conf']['lvm_root_opts']['poolmetadatasize'] = None # When thin pool utilization is over 90% mock will refuse to continue. # Because once it reach 100% utilization weird things will happens. # config_opts['plugin_conf']['lvm_root_opts']['check_size'] = True ### pm_request plugin can install packages requested from within the buildroot # It is disabled by default, as it affects build reproducibility. It can be enabled # by setting the following to True, but it's not advised to have it enabled globally. # It's better to enable it per build by using --enable-plugin pm_request # config_opts['plugin_conf']['pm_request_enable'] = False # config_opts['plugin_conf']['pm_request_opts'] = {} ### If you want to compress mock log, enable this plugin # config_opts['plugin_conf']['compress_logs_enable'] = False # config_opts['plugin_conf']['compress_logs_opts'] = {} ### Command used to compress logs - e.g. "/usr/bin/xz -9 --force" # config_opts['plugin_conf']['compress_logs_opts']['command'] = "" # # Configuration options for the sign plugin: # config_opts['plugin_conf']['sign_enable'] = False # config_opts['plugin_conf']['sign_opts'] = {} # config_opts['plugin_conf']['sign_opts']['cmd'] = 'rpmsign' # The options to pass to the signing command. %(rpms)s will be expanded to # the rpms in the results folder. # config_opts['plugin_conf']['sign_opts']['opts'] = '--addsign %(rpms)s -D "%%_gpg_name your_name" -D "%%_gpg_path /home/your_name/.gnupg' ############################################################################# # # environment for chroot # # config_opts['environment']['TERM'] = 'vt100' # config_opts['environment']['SHELL'] = '/bin/bash' # config_opts['environment']['HOME'] = '/builddir' # config_opts['environment']['HOSTNAME'] = 'mock' # config_opts['environment']['PATH'] = '/usr/bin:/bin:/usr/sbin:/sbin' # config_opts['environment']['PROMPT_COMMAND'] = 'printf "\\033]0;\\007"' # config_opts['environment']['PS1'] = ' \\s-\\v\\$ ' # config_opts['environment']['LANG'] = os.environ.setdefault('LANG', 'en_US.UTF-8') # config_opts['environment']['TZ'] = os.environ.setdefault('TZ', 'EST5EDT') ############################################################################# # # Things that you can change, but we dont recommend it: # config_opts['chroothome'] = '/builddir' # config_opts['clean'] = True ## you could not really use substitution here so it will not work if overridden: # config['rootdir'] = '/var/lib/mock//root/' ## This works in F25+ chroots. This overrides 'use_container_host_hostname' option # config_opts['macros']['%_buildhost'] = 'my.own.hostname' ############################################################################# # # Things that must be adjusted if SCM integration is used: # # config_opts['scm'] = True # config_opts['scm_opts']['method'] = 'git' # config_opts['scm_opts']['cvs_get'] = 'cvs -d /srv/cvs co SCM_BRN SCM_PKG' # config_opts['scm_opts']['git_get'] = 'git clone SCM_BRN git://localhost/SCM_PKG.git SCM_PKG' # config_opts['scm_opts']['svn_get'] = 'svn co file:///srv/svn/SCM_PKG/SCM_BRN SCM_PKG' # config_opts['scm_opts']['spec'] = 'SCM_PKG.spec' # config_opts['scm_opts']['ext_src_dir'] = '/dev/null' # config_opts['scm_opts']['write_tar'] = True # config_opts['scm_opts']['git_timestamps'] = True # config_opts['scm_opts']['exclude_vcs'] = True # These options are also recognized but usually defined in cmd line # with --scm-option package= --scm-option branch= # config_opts['scm_opts']['package'] = 'mypkg' # config_opts['scm_opts']['branch'] = 'master' ############################################################################# # # Things that are best suited for individual chroot config files: # # MUST SET (in individual chroot cfg file): # config_opts['root'] = 'name-of-yum-build-dir' # Mock will set architecture to 'target_arch' using personality(2) syscall. # config_opts['target_arch'] = 'i386' # When host system architecture is not in 'legal_host_arches' list, mock will refuse to switch to # 'target_arch' and will raise error. # config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64') # Contains content of $CHROOT/etc/yum/yum.conf or $CHROOT/etc/dnf/dnf.conf. If DNF is used and # 'dnf.conf' is not set, then content of 'yum.conf' is used to populate $CHROOT/etc/dnf/dnf.conf # config_opts['yum.conf'] = '' # or # config_opts['dnf.conf'] = '' # Important! You must use 'assumeyes=1' in yum/dnf.conf otherwise Mock will fail. # # Flip this if you want to get rid of warning message on systems which does not support DNF # Warning! Setting this to False will automatically use Yum on RHEL{6,7} platforms. # config_opts['dnf_warning'] = True # # CAN SET, defaults usually work ok: # config_opts['chroot_setup_cmd'] = 'install buildsys-build' # config_opts['chroot_additional_packages'] = '' # config_opts['log_config_file'] = 'logging.ini' # config_opts['more_buildreqs']['srpm_name-version-release'] = 'dependencies' # config_opts['macros']['%Add_your_macro_name_here'] = "add macro value here" # config_opts['files']['path/name/no/leading/slash'] = "put file contents here." # config_opts['chrootuid'] = os.getuid() # config_opts['releasever'] = '20' # config_opts['yum_common_opts'] = [] # config_opts['dnf_common_opts'] = ['--disableplugin=local', '--setopt=deltarpm=false'] # config_opts['yum_builddep_opts'] = '' # config_opts['dnf_builddep_opts'] = '' # config_opts['priorities.conf'] = 'put file contents here.' # config_opts['rhnplugin.conf'] = 'put file contents here.' # config_opts['subscription-manager.conf'] = 'put file contents here.' # If you change chrootgid, you must also change "mock" to the correct group # name in this line of the mock PAM config: # auth sufficient pam_succeed_if.so user ingroup mock use_uid quiet # config_opts['chrootgid'] = grp.getgrnam("mock")[2] # config_opts['useradd'] = '/usr/sbin/useradd -m -u %(uid)s -g %(gid)s -d %(home)s -n %(user)s' # Fedora/RedHat # # Security related # config_opts['no_root_shells'] = False # # Proxy settings (https_proxy, ftp_proxy, and no_proxy can also be set) # config_opts['http_proxy'] = 'http://localhost:3128' # # Extra dirs to be created when the chroot is initialized # This is just a list of strings representing chroot paths such as: # [ '/run/lock', ] # config_opts['extra_chroot_dirs'] = []