From b595c52dd18627e81559fc936c816b1a6f5325b7 Mon Sep 17 00:00:00 2001 From: Igor Raits Date: Sat, 5 Nov 2022 22:53:19 +0100 Subject: [PATCH] Update kiwi patchset --- ...h => 0001-kiwi-propagate-type-option.patch | 21 +++-- 0002-fix-additional-commas.patch | 40 +++++++++ 0003-kiwi-don-t-bind-builders-s-dev.patch | 27 ++++++ 0004-allow-to-set-it-by-user.patch | 83 +++++++++++++++++++ 3555.patch => 0005-fix-include-path.patch | 15 ++-- ...r-error-for-wrong-include-xml-format.patch | 33 ++++++++ koji.spec | 18 ++-- 7 files changed, 217 insertions(+), 20 deletions(-) rename 3558.patch => 0001-kiwi-propagate-type-option.patch (91%) create mode 100644 0002-fix-additional-commas.patch create mode 100644 0003-kiwi-don-t-bind-builders-s-dev.patch create mode 100644 0004-allow-to-set-it-by-user.patch rename 3555.patch => 0005-fix-include-path.patch (79%) create mode 100644 0006-better-error-for-wrong-include-xml-format.patch diff --git a/3558.patch b/0001-kiwi-propagate-type-option.patch similarity index 91% rename from 3558.patch rename to 0001-kiwi-propagate-type-option.patch index 03fb1ab..68b1e65 100644 --- a/3558.patch +++ b/0001-kiwi-propagate-type-option.patch @@ -1,15 +1,18 @@ -From e6a9553e9c5850c8c1b9361f84f2f9dbb426ef4c Mon Sep 17 00:00:00 2001 +From 7fd19f2239004fcf4e8060a45b75acef255b2457 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek -Date: Oct 25 2022 10:25:49 +0000 -Subject: kiwi: propagate --type option - +Date: Tue, 18 Oct 2022 14:49:59 +0200 +Subject: [PATCH 1/6] kiwi: propagate --type option Related: https://pagure.io/koji/issue/3556 - +(cherry picked from commit 6083bace39ba891d6b5db5354de356f2704fa4a1) --- + plugins/builder/kiwi.py | 8 +++++--- + plugins/cli/kiwi.py | 42 +++++++++++++++++++++++------------------ + plugins/hub/kiwi.py | 26 ++++++++++++++++--------- + 3 files changed, 46 insertions(+), 30 deletions(-) diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py -index 42aa707..7d6f6e7 100644 +index 42aa7071..7d6f6e7e 100644 --- a/plugins/builder/kiwi.py +++ b/plugins/builder/kiwi.py @@ -325,11 +325,11 @@ class KiwiCreateImageTask(BaseBuildTask): @@ -45,7 +48,7 @@ index 42aa707..7d6f6e7 100644 cmd.extend([ '--kiwi-file', os.path.basename(desc), # global option for image/system commands diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py -index 8786b13..07125d7 100644 +index 8786b135..07125d75 100644 --- a/plugins/cli/kiwi.py +++ b/plugins/cli/kiwi.py @@ -27,6 +27,7 @@ def handle_kiwi_build(goptions, session, args): @@ -109,7 +112,7 @@ index 8786b13..07125d7 100644 if not goptions.quiet: print("Created task: %d" % task_id) diff --git a/plugins/hub/kiwi.py b/plugins/hub/kiwi.py -index 79da38a..17b8e8e 100644 +index 79da38a9..17b8e8e4 100644 --- a/plugins/hub/kiwi.py +++ b/plugins/hub/kiwi.py @@ -16,7 +16,8 @@ koji.tasks.LEGACY_SIGNATURES['createKiwiImage'] = [ @@ -152,4 +155,6 @@ index 79da38a..17b8e8e 100644 return kojihub.make_task('kiwiBuild', [target, arches, desc_url, desc_path, opts], **taskOpts) +-- +2.38.1 diff --git a/0002-fix-additional-commas.patch b/0002-fix-additional-commas.patch new file mode 100644 index 0000000..9a0c4d9 --- /dev/null +++ b/0002-fix-additional-commas.patch @@ -0,0 +1,40 @@ +From 0ccf95b7aa3332585217d5da2ff7b255e9cd4b14 Mon Sep 17 00:00:00 2001 +From: Tomas Kopecek +Date: Fri, 4 Nov 2022 10:06:48 +0100 +Subject: [PATCH 2/6] fix additional commas + +(cherry picked from commit 066e7427efca7a581cb1a63974dfdfec8194bd70) +--- + plugins/cli/kiwi.py | 2 +- + plugins/hub/kiwi.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py +index 07125d75..6e965c05 100644 +--- a/plugins/cli/kiwi.py ++++ b/plugins/cli/kiwi.py +@@ -61,7 +61,7 @@ def handle_kiwi_build(goptions, session, args): + for arch in options.optional_arches.split(',') + if arch] + if options.kiwi_profile: +- kwargs['profile'] = options.kiwi_profile, ++ kwargs['profile'] = options.kiwi_profile + if options.release: + kwargs['release'] = options.release + if options.make_prep: +diff --git a/plugins/hub/kiwi.py b/plugins/hub/kiwi.py +index 17b8e8e4..7b0c2f05 100644 +--- a/plugins/hub/kiwi.py ++++ b/plugins/hub/kiwi.py +@@ -51,7 +51,7 @@ def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile + if release: + opts['release'] = release + if optional_arches: +- opts['optional_arches'] = optional_arches, ++ opts['optional_arches'] = optional_arches + if repos: + opts['repos'] = repos + if make_prep: +-- +2.38.1 + diff --git a/0003-kiwi-don-t-bind-builders-s-dev.patch b/0003-kiwi-don-t-bind-builders-s-dev.patch new file mode 100644 index 0000000..0117eb8 --- /dev/null +++ b/0003-kiwi-don-t-bind-builders-s-dev.patch @@ -0,0 +1,27 @@ +From 39cfeea12a38df825e264ce3a71489f35d4b95c3 Mon Sep 17 00:00:00 2001 +From: Tomas Kopecek +Date: Mon, 31 Oct 2022 13:09:19 +0100 +Subject: [PATCH 3/6] kiwi: don't bind builders's /dev + +Related: https://pagure.io/koji/issue/3567 +(cherry picked from commit 655cb9797fe85f8dc1244f233da2919abfa1548f) +--- + plugins/builder/kiwi.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py +index 7d6f6e7e..e220d515 100644 +--- a/plugins/builder/kiwi.py ++++ b/plugins/builder/kiwi.py +@@ -307,7 +307,7 @@ class KiwiCreateImageTask(BaseBuildTask): + repo_id=repo_info['id'], + install_group='kiwi-build', + setup_dns=True, +- bind_opts={'dirs': {'/dev': '/dev', }}) ++ bind_opts={'dirs': {}}) + broot.workdir = self.workdir + + # create the mock chroot +-- +2.38.1 + diff --git a/0004-allow-to-set-it-by-user.patch b/0004-allow-to-set-it-by-user.patch new file mode 100644 index 0000000..f2c5078 --- /dev/null +++ b/0004-allow-to-set-it-by-user.patch @@ -0,0 +1,83 @@ +From a08967bce60d50ec1d27741512dc96f6ed546594 Mon Sep 17 00:00:00 2001 +From: Tomas Kopecek +Date: Fri, 4 Nov 2022 10:13:16 +0100 +Subject: [PATCH 4/6] allow to set it by user + +(cherry picked from commit 5dcf480a401581442ace9b17e9c2a06241885ae6) +--- + plugins/builder/kiwi.py | 6 +++++- + plugins/cli/kiwi.py | 4 ++++ + plugins/hub/kiwi.py | 4 +++- + 3 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py +index e220d515..b70a13a3 100644 +--- a/plugins/builder/kiwi.py ++++ b/plugins/builder/kiwi.py +@@ -300,6 +300,10 @@ class KiwiCreateImageTask(BaseBuildTask): + desc_url, desc_path, opts=None): + self.opts = opts + build_tag = target_info['build_tag'] ++ if opts.get('bind_dev'): ++ bind_opts = {'dirs': {'/dev': '/dev'}} ++ else: ++ bind_opts = None + broot = BuildRoot(self.session, self.options, + tag=build_tag, + arch=arch, +@@ -307,7 +311,7 @@ class KiwiCreateImageTask(BaseBuildTask): + repo_id=repo_info['id'], + install_group='kiwi-build', + setup_dns=True, +- bind_opts={'dirs': {}}) ++ bind_opts=bind_opts) + broot.workdir = self.workdir + + # create the mock chroot +diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py +index 6e965c05..61764efb 100644 +--- a/plugins/cli/kiwi.py ++++ b/plugins/cli/kiwi.py +@@ -30,6 +30,9 @@ def handle_kiwi_build(goptions, session, args): + parser.add_option("--type", help="Override default build type from description") + parser.add_option("--make-prep", action="store_true", default=False, + help="Run 'make prep' in checkout before starting the build") ++ parser.add_option("--bind-dev", action="store_true", default=False, ++ help="e.g. images using device-mapper needs /dev mounted in kiwi env, " ++ "while others can fail in such env.") + parser.add_option("--can-fail", action="store", dest="optional_arches", + metavar="ARCH1,ARCH2,...", default="", + help="List of archs which are not blocking for build " +@@ -52,6 +55,7 @@ def handle_kiwi_build(goptions, session, args): + 'target': target, + 'desc_url': scm, + 'desc_path': path, ++ 'bind_dev': options.bind_dev, + } + if options.scratch: + kwargs['scratch'] = True +diff --git a/plugins/hub/kiwi.py b/plugins/hub/kiwi.py +index 7b0c2f05..f83b209d 100644 +--- a/plugins/hub/kiwi.py ++++ b/plugins/hub/kiwi.py +@@ -17,7 +17,7 @@ koji.tasks.LEGACY_SIGNATURES['createKiwiImage'] = [ + @export + def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile=None, + scratch=False, priority=None, make_prep=False, repos=None, release=None, +- type=None): ++ type=None, bind_dev=False): + context.session.assertPerm('image') + for i in [desc_url, desc_path, profile, release]: + if i is not None: +@@ -52,6 +52,8 @@ def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile + opts['release'] = release + if optional_arches: + opts['optional_arches'] = optional_arches ++ if bind_dev: ++ opts['bind_dev'] = bind_dev + if repos: + opts['repos'] = repos + if make_prep: +-- +2.38.1 + diff --git a/3555.patch b/0005-fix-include-path.patch similarity index 79% rename from 3555.patch rename to 0005-fix-include-path.patch index 797ef5d..8dbbb21 100644 --- a/3555.patch +++ b/0005-fix-include-path.patch @@ -1,15 +1,16 @@ -From 18bbb5b21d4da8120fb9f3193248dd6faa915222 Mon Sep 17 00:00:00 2001 +From 3a4286be435f6e734c528ab3a649cfd7d44e1338 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek -Date: Oct 17 2022 12:39:48 +0000 -Subject: fix include path - +Date: Mon, 17 Oct 2022 12:26:55 +0200 +Subject: [PATCH 5/6] fix include path Related: https://pagure.io/koji/issue/3553 - +(cherry picked from commit b8b52884b5208dc7ea25881108b7da5eb3d9fc86) --- + plugins/builder/kiwi.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py -index 42aa707..abb5511 100644 +index b70a13a3..4033b520 100644 --- a/plugins/builder/kiwi.py +++ b/plugins/builder/kiwi.py @@ -197,16 +197,17 @@ class KiwiCreateImageTask(BaseBuildTask): @@ -32,4 +33,6 @@ index 42aa707..abb5511 100644 # remove remaining old repos for old_repo in image.getElementsByTagName('repository'): +-- +2.38.1 diff --git a/0006-better-error-for-wrong-include-xml-format.patch b/0006-better-error-for-wrong-include-xml-format.patch new file mode 100644 index 0000000..539b3a8 --- /dev/null +++ b/0006-better-error-for-wrong-include-xml-format.patch @@ -0,0 +1,33 @@ +From c3b6e3d0bab224b1bf829c7e16a16a4fdfb1bf7a Mon Sep 17 00:00:00 2001 +From: Tomas Kopecek +Date: Thu, 10 Nov 2022 10:42:30 +0100 +Subject: [PATCH 6/6] better error for wrong include xml format + +(cherry picked from commit 8b1030f8635ba2688630adf951ac849197c19cd8) +--- + plugins/builder/kiwi.py | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py +index 4033b520..bc216c2e 100644 +--- a/plugins/builder/kiwi.py ++++ b/plugins/builder/kiwi.py +@@ -204,9 +204,12 @@ class KiwiCreateImageTask(BaseBuildTask): + raise koji.GenericError(f"Unhandled include protocol in include path: {path}.") + inc = xml.dom.minidom.parse(path) # nosec + # every included xml has image root element again +- for node in list(inc.getElementsByTagName('image')[0].childNodes): +- if node.nodeName != 'repository': +- image.appendChild(node) ++ try: ++ for node in list(inc.getElementsByTagName('image')[0].childNodes): ++ if node.nodeName != 'repository': ++ image.appendChild(node) ++ except IndexError: ++ raise koji.GenericError("Included file needs to contain tag.") + image.removeChild(inc_node) + + # remove remaining old repos +-- +2.38.1 + diff --git a/koji.spec b/koji.spec index 8bce502..a9fb61c 100644 --- a/koji.spec +++ b/koji.spec @@ -9,21 +9,24 @@ Name: koji Version: 1.30.1 -Release: 2%{?dist} +Release: 3%{?dist} # the included arch lib from yum's rpmUtils is GPLv2+ License: LGPLv2 and GPLv2+ Summary: Build system tools URL: https://pagure.io/koji/ Source0: https://releases.pagure.org/koji/koji-%{version}.tar.bz2 +# Backports +Patch0001: 0001-kiwi-propagate-type-option.patch +Patch0002: 0002-fix-additional-commas.patch +Patch0003: 0003-kiwi-don-t-bind-builders-s-dev.patch +Patch0004: 0004-allow-to-set-it-by-user.patch +Patch0005: 0005-fix-include-path.patch + # Proposed upstream -## From: https://pagure.io/koji/pull-request/3555 -Patch1: 3555.patch -## From: https://pagure.io/koji/pull-request/3558 -Patch2: 3558.patch # Not upstreamable -Patch100: fedora-config.patch +Patch1000: fedora-config.patch BuildArch: noarch Requires: python%{python3_pkgversion}-%{name} = %{version}-%{release} @@ -353,6 +356,9 @@ done %systemd_postun kojira.service %changelog +* Sat Nov 05 2022 Igor Raits - 1.30.1-3 +- Update kiwi patchset + * Tue Oct 25 2022 Neal Gompa - 1.30.1-2 - Backport more fixes for kiwibuild command for CBS