PR#3358: kojid: permit forcing releasever/arch within mock per tag
Merges #3358 https://pagure.io/koji/pull-request/3358 Fixes #3304 https://pagure.io/koji/issue/3304
This commit is contained in:
commit
ba5ecbb0c9
4 changed files with 19 additions and 1 deletions
|
|
@ -280,6 +280,9 @@ class BuildRoot(object):
|
|||
opts['maven_envs'] = self.maven_envs
|
||||
opts['bind_opts'] = self.bind_opts
|
||||
opts['target_arch'] = self.target_arch
|
||||
if 'mock.forcearch' in self.config['extra']:
|
||||
if bool(self.config['extra']['mock.forcearch']):
|
||||
opts['forcearch'] = self.target_arch
|
||||
if 'mock.package_manager' in self.config['extra']:
|
||||
opts['package_manager'] = self.config['extra']['mock.package_manager']
|
||||
if 'mock.yum.module_hotfixes' in self.config['extra']:
|
||||
|
|
@ -301,6 +304,8 @@ class BuildRoot(object):
|
|||
}
|
||||
if 'mock.module_setup_commands' in self.config['extra']:
|
||||
opts['module_setup_commands'] = self.config['extra']['mock.module_setup_commands']
|
||||
if 'mock.releasever' in self.config['extra']:
|
||||
opts['releasever'] = self.config['extra']['mock.releasever']
|
||||
if self.internal_dev_setup is not None:
|
||||
opts['internal_dev_setup'] = bool(self.internal_dev_setup)
|
||||
opts['tag_macros'] = {}
|
||||
|
|
|
|||
|
|
@ -1131,11 +1131,14 @@ def anon_handle_mock_config(goptions, session, args):
|
|||
if opts['repoid'] != 'latest':
|
||||
event = session.repoInfo(opts['repoid'])['create_event']
|
||||
buildcfg = session.getBuildConfig(opts['tag_name'], event=event)
|
||||
if options.arch:
|
||||
if arch:
|
||||
if not buildcfg['arches']:
|
||||
warn("Tag %s has an empty arch list" % opts['tag_name'])
|
||||
elif arch not in buildcfg['arches']:
|
||||
warn('%s is not in the list of tag arches' % arch)
|
||||
if 'mock.forcearch' in buildcfg['extra']:
|
||||
if bool(buildcfg['extra']['mock.forcearch']):
|
||||
opts['forcearch'] = arch
|
||||
if 'mock.package_manager' in buildcfg['extra']:
|
||||
opts['package_manager'] = buildcfg['extra']['mock.package_manager']
|
||||
if 'mock.yum.module_hotfixes' in buildcfg['extra']:
|
||||
|
|
@ -1149,6 +1152,8 @@ def anon_handle_mock_config(goptions, session, args):
|
|||
opts['use_bootstrap'] = buildcfg['extra']['mock.use_bootstrap']
|
||||
if 'mock.module_setup_commands' in buildcfg['extra']:
|
||||
opts['module_setup_commands'] = buildcfg['extra']['mock.module_setup_commands']
|
||||
if 'mock.releasever' in buildcfg['extra']:
|
||||
opts['releasever'] = buildcfg['extra']['mock.releasever']
|
||||
opts['tag_macros'] = {}
|
||||
for key in buildcfg['extra']:
|
||||
if key.startswith('rpm.macro.'):
|
||||
|
|
|
|||
|
|
@ -393,6 +393,8 @@ environment follows:
|
|||
* ``mock.new_chroot`` - 0/1 value. If it is set, ``--new-chroot`` or
|
||||
`--old-chroot` option is appended to any mock call. If it is not set,
|
||||
mock's default behavior is used.
|
||||
* ``mock.releasever`` - When doing cross-compiles it may be necessary
|
||||
to explicitly set the ``releasever`` to be used.
|
||||
* ``mock.use_bootstrap`` - 0/1 value. If it is set, ``--bootstrap-chroot``
|
||||
is appended to the mock init call. This tells mock to build in two stages,
|
||||
using chroot rpm for creating the build chroot. If it is not set, mock's
|
||||
|
|
@ -431,6 +433,8 @@ environment follows:
|
|||
* ``mock.module_setup_commands`` - commands for configuring the modules active
|
||||
in a buildroot. Available in `mock 2.4
|
||||
<https://github.com/rpm-software-management/mock/wiki/Release-Notes-2.4>`__.
|
||||
* ``mock.forcearch`` - 0/1 value. If true mock will set the ``forcearch``
|
||||
config option to match the target arch of each buildroot.
|
||||
* ``mock.yum.best`` - 0/1 value. If set yum/dnf will use highest available rpm
|
||||
version (see man yum.conf)
|
||||
* ``mock.yum.module_hotfixes`` - 0/1 value. If set, yum/dnf will use packages
|
||||
|
|
|
|||
|
|
@ -1629,6 +1629,8 @@ def genMockConfig(name, arch, managed=False, repoid=None, tag_name=None, **opts)
|
|||
# turn off warning for yum being used in place of dnf
|
||||
'dnf_warning': False,
|
||||
}
|
||||
if 'forcearch' in opts:
|
||||
config_opts['forcearch'] = opts['forcearch']
|
||||
if opts.get('package_manager'):
|
||||
config_opts['package_manager'] = opts['package_manager']
|
||||
if opts.get('bootstrap_image'):
|
||||
|
|
@ -1638,6 +1640,8 @@ def genMockConfig(name, arch, managed=False, repoid=None, tag_name=None, **opts)
|
|||
config_opts['use_bootstrap'] = bool(opts['use_bootstrap'])
|
||||
if 'module_setup_commands' in opts:
|
||||
config_opts['module_setup_commands'] = opts['module_setup_commands']
|
||||
if 'releasever' in opts:
|
||||
config_opts['releasever'] = opts['releasever']
|
||||
|
||||
# bind_opts are used to mount parts (or all of) /dev if needed.
|
||||
# See kojid::LiveCDTask for a look at this option in action.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue