|
|
b48b289 |
From 89d3bb0d34250fe24eed5bc63edd992e932a622a Mon Sep 17 00:00:00 2001
|
|
|
b48b289 |
From: =?UTF-8?q?Ond=C5=99ej=20Nosek?= <onosek@redhat.com>
|
|
|
b48b289 |
Date: Wed, 15 Nov 2023 02:53:10 +0100
|
|
|
b48b289 |
Subject: [PATCH 14/17] `mockbuild`: new argument --extra-pkgs
|
|
|
b48b289 |
MIME-Version: 1.0
|
|
|
b48b289 |
Content-Type: text/plain; charset=UTF-8
|
|
|
b48b289 |
Content-Transfer-Encoding: 8bit
|
|
|
b48b289 |
|
|
|
b48b289 |
Added the new argument `--extra-pkgs` to `mockbuild` command.
|
|
|
b48b289 |
It installs additional packages to mock's chroot. In some cases is
|
|
|
b48b289 |
possible to use the current mechanism of extra args placed
|
|
|
b48b289 |
after `--` at the end of the command line instead of `--extra-pkgs`.
|
|
|
b48b289 |
|
|
|
b48b289 |
Example: fedpkg mockbuild -- --additional-package <pkg>
|
|
|
b48b289 |
|
|
|
b48b289 |
Argument(s) `additional-package` is passed to `mock`.
|
|
|
b48b289 |
`additional-package` can't be used together with `--shell`.
|
|
|
b48b289 |
|
|
|
b48b289 |
JIRA: RHELCMP-11017
|
|
|
b48b289 |
Fixes: https://pagure.io/fedpkg/issue/498
|
|
|
b48b289 |
|
|
|
b48b289 |
Signed-off-by: Ondřej Nosek <onosek@redhat.com>
|
|
|
b48b289 |
---
|
|
|
b48b289 |
pyrpkg/cli.py | 21 +++++++++++++++++++++
|
|
|
b48b289 |
1 file changed, 21 insertions(+)
|
|
|
b48b289 |
|
|
|
b48b289 |
diff --git a/pyrpkg/cli.py b/pyrpkg/cli.py
|
|
|
b48b289 |
index 6fd6df0..06f4c1a 100644
|
|
|
b48b289 |
--- a/pyrpkg/cli.py
|
|
|
b48b289 |
+++ b/pyrpkg/cli.py
|
|
|
b48b289 |
@@ -1152,6 +1152,9 @@ class cliClient(object):
|
|
|
b48b289 |
'--use-local-mock-config', default=None, dest="local_mock_config",
|
|
|
b48b289 |
action='store_true',
|
|
|
b48b289 |
help="Enforce use of local Mock configuration.")
|
|
|
b48b289 |
+ mockbuild_parser.add_argument(
|
|
|
b48b289 |
+ '--extra-pkgs', action='append', nargs='*',
|
|
|
b48b289 |
+ help="Install additional packages into chroot")
|
|
|
b48b289 |
|
|
|
b48b289 |
mockbuild_parser.set_defaults(command=self.mockbuild)
|
|
|
b48b289 |
|
|
|
b48b289 |
@@ -2514,6 +2517,24 @@ class cliClient(object):
|
|
|
b48b289 |
"%s-%s-%s.src.rpm"
|
|
|
b48b289 |
% (self.cmd.repo_name, self.cmd.ver, self.cmd.rel))
|
|
|
b48b289 |
self.log.debug('Srpm generated: {0}'.format(self.cmd.srpmname))
|
|
|
b48b289 |
+ if self.args.extra_pkgs:
|
|
|
b48b289 |
+ mockargs_extra_pkgs = []
|
|
|
b48b289 |
+ list_extra_pkgs = []
|
|
|
b48b289 |
+ # process possible multiple argument's occurrences
|
|
|
b48b289 |
+ for arg_arr in self.args.extra_pkgs:
|
|
|
b48b289 |
+ for additional_package in arg_arr:
|
|
|
b48b289 |
+ mockargs_extra_pkgs.extend(['--additional-package', additional_package])
|
|
|
b48b289 |
+ list_extra_pkgs.append(additional_package)
|
|
|
b48b289 |
+ # installation will run in separated mock process, so do not clean prepared chroot
|
|
|
b48b289 |
+ # before the main mock run
|
|
|
b48b289 |
+ mockargs_extra_pkgs.extend(['--no-cleanup-after'])
|
|
|
b48b289 |
+ self.log.info('Installing extra packages into the mock chroot: {}'.format(
|
|
|
b48b289 |
+ ', '.join(list_extra_pkgs)))
|
|
|
b48b289 |
+ self.cmd.mockbuild(mockargs_extra_pkgs, self.args.root,
|
|
|
b48b289 |
+ hashtype=self.args.hash,
|
|
|
b48b289 |
+ shell=None, # nosec
|
|
|
b48b289 |
+ force_local_mock_config=self.args.local_mock_config)
|
|
|
b48b289 |
+
|
|
|
b48b289 |
self.cmd.mockbuild(mockargs, self.args.root,
|
|
|
b48b289 |
hashtype=self.args.hash,
|
|
|
b48b289 |
shell=self.args.shell, # nosec
|
|
|
b48b289 |
--
|
|
|
b48b289 |
2.43.0
|
|
|
b48b289 |
|