From 5f550bb6cb82465617a703ddc02778131845ffb0 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: May 30 2019 06:43:12 +0000 Subject: Expose 'dynamic_buildrequires' mock setting Signed-off-by: Igor Gnatenko --- diff --git a/builder/kojid b/builder/kojid index be1cb26..e507e87 100755 --- a/builder/kojid +++ b/builder/kojid @@ -272,6 +272,8 @@ class BuildRoot(object): opts['target_arch'] = self.target_arch if 'mock.package_manager' in self.config['extra']: opts['package_manager'] = self.config['extra']['mock.package_manager'] + if 'mock.dynamic_buildrequires' in self.config['extra']: + opts['dynamic_buildrequires'] = self.config['extra']['mock.dynamic_buildrequires'] if self.internal_dev_setup is not None: opts['internal_dev_setup'] = bool(self.internal_dev_setup) output = koji.genMockConfig(self.name, self.br_arch, managed=True, **opts) diff --git a/cli/koji_cli/commands.py b/cli/koji_cli/commands.py index 018428a..276917b 100644 --- a/cli/koji_cli/commands.py +++ b/cli/koji_cli/commands.py @@ -999,6 +999,8 @@ def anon_handle_mock_config(goptions, session, args): buildcfg = session.getBuildConfig(opts['tag_name'], event=event) if 'mock.package_manager' in buildcfg['extra']: opts['package_manager'] = buildcfg['extra']['mock.package_manager'] + if 'mock.dynamic_buildrequires' in buildcfg['extra']: + opts['dynamic_buildrequires'] = buildcfg['extra']['mock.dynamic_buildrequires'] output = koji.genMockConfig(name, arch, **opts) if options.ofile: diff --git a/docs/source/using_the_koji_build_system.rst b/docs/source/using_the_koji_build_system.rst index 7517307..0d9064c 100644 --- a/docs/source/using_the_koji_build_system.rst +++ b/docs/source/using_the_koji_build_system.rst @@ -455,6 +455,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.dynamic_buildrequires` - 0/1 value. If this is set, it will override + mock's default setting of `dynamic_buildrequires`. Using Koji to control tasks ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/koji/__init__.py b/koji/__init__.py index 4388e8b..a6668ce 100644 --- a/koji/__init__.py +++ b/koji/__init__.py @@ -1489,6 +1489,8 @@ def genMockConfig(name, arch, managed=False, repoid=None, tag_name=None, **opts) } if opts.get('package_manager'): config_opts['package_manager'] = opts['package_manager'] + if 'dynamic_buildrequires' in opts: + config_opts['dynamic_buildrequires'] = opts['dynamic_buildrequires'] # bind_opts are used to mount parts (or all of) /dev if needed. # See kojid::LiveCDTask for a look at this option in action. diff --git a/tests/test_cli/test_add_tag.py b/tests/test_cli/test_add_tag.py index 422b924..47112c5 100644 --- a/tests/test_cli/test_add_tag.py +++ b/tests/test_cli/test_add_tag.py @@ -56,7 +56,8 @@ class TestAddTag(utils.CliTestCase): '--maven-support', '--include-all'] # extra fields, arguments += ['--extra', 'mock.package_manager=dnf', - '--extra', 'mock.new_chroot=0'] + '--extra', 'mock.new_chroot=0', + '--extra', 'mock.dynamic_buildrequires=1'] opts = { 'parent': 'parent', @@ -67,6 +68,7 @@ class TestAddTag(utils.CliTestCase): { 'mock.package_manager': 'dnf', 'mock.new_chroot': 0, + 'mock.dynamic_buildrequires': 1, } }