diff --git a/1278.patch b/1278.patch new file mode 100644 index 00000000..91e490cb --- /dev/null +++ b/1278.patch @@ -0,0 +1,98 @@ +From 72bf795bd45e15af86e1a4f96cfbe0d40d40a8cc Mon Sep 17 00:00:00 2001 +From: Owen W. Taylor +Date: Oct 10 2019 19:13:38 +0000 +Subject: ostree-install: allow configuring additional depenencies for runroot + + +A lorax template used for the ostree-installer might need an additional +package dependency (e.g., flatpak to embed a flatpak repository) - add +a config key 'extra_runroot_pkgs' to the ostree installer configuration +to allow supplementing the set of packages installed into the runroot. + +Signed-off-by: Owen W. Taylor + +--- + +diff --git a/doc/configuration.rst b/doc/configuration.rst +index 2c8a5a3..2ce9216 100644 +--- a/doc/configuration.rst ++++ b/doc/configuration.rst +@@ -1527,6 +1527,11 @@ an OSTree repository. This always runs in Koji as a ``runroot`` task. + ``template_repo`` needs to point to a Git repository from which to take the + templates. + ++ If the templates need to run with additional dependencies, that can be configured ++ with the optional key: ++ ++ * ``extra_runroot_pkgs`` -- (*[str]*) ++ + **ostree_installer_overwrite** = False + (*bool*) -- by default if a variant including OSTree installer also creates + regular installer images in buildinstall phase, there will be conflicts (as +diff --git a/pungi/checks.py b/pungi/checks.py +index a20d0f7..513728d 100644 +--- a/pungi/checks.py ++++ b/pungi/checks.py +@@ -1132,6 +1132,7 @@ def make_schema(): + "rootfs_size": {"type": "string"}, + "template_repo": {"type": "string"}, + "template_branch": {"type": "string"}, ++ "extra_runroot_pkgs": {"$ref": "#/definitions/list_of_strings"}, + }, + "additionalProperties": False, + }), +diff --git a/pungi/phases/ostree_installer.py b/pungi/phases/ostree_installer.py +index 995ac96..46c774b 100644 +--- a/pungi/phases/ostree_installer.py ++++ b/pungi/phases/ostree_installer.py +@@ -195,6 +195,8 @@ class OstreeInstallerThread(WorkerThread): + ' '.join([shlex_quote(x) for x in lorax_cmd])) + + packages = ['pungi', 'lorax', 'ostree'] ++ packages += config.get('extra_runroot_pkgs', []) ++ + log_file = os.path.join(self.logdir, 'runroot.log') + + runroot = Runroot(compose) +diff --git a/tests/test_ostree_installer_phase.py b/tests/test_ostree_installer_phase.py +index 0cce4b8..846e23a 100644 +--- a/tests/test_ostree_installer_phase.py ++++ b/tests/test_ostree_installer_phase.py +@@ -126,7 +126,8 @@ class OstreeThreadTest(helpers.PungiTestCase): + self.assertEqual(compose.im.add.mock_calls, + [mock.call('Everything', 'x86_64', image)]) + +- def assertRunrootCall(self, koji, sources, release, isfinal=False, extra=[], weight=None): ++ def assertRunrootCall(self, koji, sources, release, isfinal=False, extra=[], ++ extra_pkgs=[], weight=None): + lorax_cmd = [ + 'lorax', + '--product=Fedora', +@@ -156,7 +157,7 @@ class OstreeThreadTest(helpers.PungiTestCase): + [mock.call('rrt', 'x86_64', + 'rm -rf %s && %s' % (outdir, ' '.join(lorax_cmd)), + channel=None, mounts=[self.topdir], +- packages=['pungi', 'lorax', 'ostree'], ++ packages=['pungi', 'lorax', 'ostree'] + extra_pkgs, + task_id=True, use_shell=True, weight=weight, + chown_paths=[outdir])]) + self.assertEqual(koji.run_runroot_cmd.call_args_list, +@@ -418,6 +419,7 @@ class OstreeThreadTest(helpers.PungiTestCase): + 'add_arch_template': ['other_file.txt'], + 'template_repo': 'git://example.com/templates.git', + 'template_branch': 'f24', ++ 'extra_runroot_pkgs': ['templatedep'], + } + koji = KojiWrapper.return_value + koji.run_runroot_cmd.return_value = { +@@ -445,7 +447,8 @@ class OstreeThreadTest(helpers.PungiTestCase): + isfinal=True, + extra=['--add-template=%s/some_file.txt' % templ_dir, + '--add-arch-template=%s/other_file.txt' % templ_dir, +- '--logfile=%s/%s/lorax.log' % (self.topdir, LOG_PATH)]) ++ '--logfile=%s/%s/lorax.log' % (self.topdir, LOG_PATH)], ++ extra_pkgs=['templatedep']) + self.assertIsoLinked(link, get_file_size, get_mtime, final_iso_path) + self.assertImageAdded(self.compose, ImageCls, iso) + self.assertAllCopied(copy_all) + diff --git a/pungi.spec b/pungi.spec index 1c33e1b8..34296aeb 100644 --- a/pungi.spec +++ b/pungi.spec @@ -2,13 +2,14 @@ Name: pungi Version: 4.1.39 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Distribution compose tool License: GPLv2 URL: https://pagure.io/pungi Source0: https://pagure.io/releases/%{name}/%{name}-%{version}.tar.bz2 Patch0: 0001-Allow-loading-overrides-for-module-defaults.patch +Patch1: https://pagure.io/pungi/pull-request/1278.patch BuildRequires: python3-nose BuildRequires: python3-mock @@ -143,6 +144,9 @@ nosetests-3 --exe %{_bindir}/%{name}-wait-for-signed-ostree-handler %changelog +* Tue Oct 15 2019 Kevin Fenzi - 4.1.39-4 +- Add https://pagure.io/pungi/pull-request/1278 + * Mon Sep 23 2019 Lubomír Sedlář - 4.1.39-3 - Backport patch for module defaults overrides