From 694ac4148301ef1efb69fbef0072190e1671a356 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Wed, 20 Mar 2024 12:45:17 -0400 Subject: [PATCH 1/5] kiwi: Only add buildroot repo if user repositories are not defined In general, we assume that if the user is specifying repositories, the built-in one should not be used. --- plugins/builder/kiwi.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py index 369071ef..d5d4fbdc 100644 --- a/plugins/builder/kiwi.py +++ b/plugins/builder/kiwi.py @@ -351,12 +351,13 @@ class KiwiCreateImageTask(BaseBuildTask): # user repos repos = self.opts.get('repos', []) - # buildroot repo - path_info = koji.PathInfo(topdir=self.options.topurl) - repopath = path_info.repo(repo_info['id'], target_info['build_tag_name']) - baseurl = '%s/%s' % (repopath, arch) - self.logger.debug('BASEURL: %s' % baseurl) - repos.append(baseurl) + # buildroot repo if user repos not defined + if repos == []: + path_info = koji.PathInfo(topdir=self.options.topurl) + repopath = path_info.repo(repo_info['id'], target_info['build_tag_name']) + baseurl = '%s/%s' % (repopath, arch) + self.logger.debug('BASEURL: %s' % baseurl) + repos.append(baseurl) base_path = os.path.dirname(desc_path) if opts.get('make_prep'): From b13d481d56059fd51a8f9109d0d64d3f11fcbccc Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mon, 25 Mar 2024 11:33:41 +0100 Subject: [PATCH 2/5] kiwi: option for not using buildroot repo Related: https://pagure.io/koji/issue/4062 --- plugins/builder/kiwi.py | 3 +-- plugins/cli/kiwi.py | 6 ++++++ plugins/hub/kiwi.py | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py index d5d4fbdc..a878ad56 100644 --- a/plugins/builder/kiwi.py +++ b/plugins/builder/kiwi.py @@ -351,8 +351,7 @@ class KiwiCreateImageTask(BaseBuildTask): # user repos repos = self.opts.get('repos', []) - # buildroot repo if user repos not defined - if repos == []: + if self.opts.get('use_buildroot_repo', True): path_info = koji.PathInfo(topdir=self.options.topurl) repopath = path_info.repo(repo_info['id'], target_info['build_tag_name']) baseurl = '%s/%s' % (repopath, arch) diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py index f0172575..6611df73 100644 --- a/plugins/cli/kiwi.py +++ b/plugins/cli/kiwi.py @@ -34,6 +34,10 @@ def handle_kiwi_build(goptions, session, args): parser.add_option("--result-bundle-name-format", help="Override default bundle name format") parser.add_option("--make-prep", action="store_true", default=False, help="Run 'make prep' in checkout before starting the build") + parser.add_option("--no-buildroot-repo", action="store_false", + dest="use_buildroot_repo", default=True, + help="Don't add buildroot repo to installation sources, " + "use only those provided by --repo option.") parser.add_option("--can-fail", action="store", dest="optional_arches", metavar="ARCH1,ARCH2,...", default="", help="List of archs which are not blocking for build " @@ -80,6 +84,8 @@ def handle_kiwi_build(goptions, session, args): kwargs['arches'] = [canonArch(arch) for arch in options.arches] if options.repo: kwargs['repos'] = options.repo + if not options.use_buildroot_repo: + kwargs['use_buildroot_repo'] = False task_id = session.kiwiBuild(**kwargs) diff --git a/plugins/hub/kiwi.py b/plugins/hub/kiwi.py index 15f352cc..cd03ab42 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_attr=None, result_bundle_name_format=None): + type=None, type_attr=None, result_bundle_name_format=None, use_buildroot_repo=True): context.session.assertPerm('image') for i in [desc_url, desc_path, profile, release]: if i is not None: @@ -62,6 +62,8 @@ def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile opts['make_prep'] = True if type: opts['type'] = type + if not use_buildroot_repo: + opts['use_buildroot_repo'] = False if type_attr: opts['type_attr'] = type_attr if result_bundle_name_format: From dd594826f21a5b6b493ffd360745dc3b4af5c978 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Thu, 9 May 2024 12:04:33 +0200 Subject: [PATCH 3/5] Don't use buildroot repo by default --- plugins/builder/kiwi.py | 2 +- plugins/cli/kiwi.py | 12 ++++++------ plugins/hub/kiwi.py | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py index a878ad56..2ac5cb3b 100644 --- a/plugins/builder/kiwi.py +++ b/plugins/builder/kiwi.py @@ -351,7 +351,7 @@ class KiwiCreateImageTask(BaseBuildTask): # user repos repos = self.opts.get('repos', []) - if self.opts.get('use_buildroot_repo', True): + if self.opts.get('use_buildroot_repo', False): path_info = koji.PathInfo(topdir=self.options.topurl) repopath = path_info.repo(repo_info['id'], target_info['build_tag_name']) baseurl = '%s/%s' % (repopath, arch) diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py index 6611df73..840e7539 100644 --- a/plugins/cli/kiwi.py +++ b/plugins/cli/kiwi.py @@ -34,10 +34,10 @@ def handle_kiwi_build(goptions, session, args): parser.add_option("--result-bundle-name-format", help="Override default bundle name format") parser.add_option("--make-prep", action="store_true", default=False, help="Run 'make prep' in checkout before starting the build") - parser.add_option("--no-buildroot-repo", action="store_false", - dest="use_buildroot_repo", default=True, - help="Don't add buildroot repo to installation sources, " - "use only those provided by --repo option.") + parser.add_option("--buildroot-repo", action="store_false", + dest="use_buildroot_repo", default=False, + help="Add buildroot repo to installation sources. This is off by default, " + "but uf there is no --repo used, it will be turned on automatically.") parser.add_option("--can-fail", action="store", dest="optional_arches", metavar="ARCH1,ARCH2,...", default="", help="List of archs which are not blocking for build " @@ -84,8 +84,8 @@ def handle_kiwi_build(goptions, session, args): kwargs['arches'] = [canonArch(arch) for arch in options.arches] if options.repo: kwargs['repos'] = options.repo - if not options.use_buildroot_repo: - kwargs['use_buildroot_repo'] = False + if options.use_buildroot_repo or not options.repo: + kwargs['use_buildroot_repo'] = True task_id = session.kiwiBuild(**kwargs) diff --git a/plugins/hub/kiwi.py b/plugins/hub/kiwi.py index cd03ab42..81852e52 100644 --- a/plugins/hub/kiwi.py +++ b/plugins/hub/kiwi.py @@ -62,8 +62,8 @@ def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile opts['make_prep'] = True if type: opts['type'] = type - if not use_buildroot_repo: - opts['use_buildroot_repo'] = False + if use_buildroot_repo: + opts['use_buildroot_repo'] = True if type_attr: opts['type_attr'] = type_attr if result_bundle_name_format: From 810836944ad9aaf28c935e14db4405b96201ed55 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Mon, 13 May 2024 11:02:53 +0200 Subject: [PATCH 4/5] version check + typo fixes --- plugins/cli/kiwi.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py index 840e7539..8f8addaf 100644 --- a/plugins/cli/kiwi.py +++ b/plugins/cli/kiwi.py @@ -7,6 +7,7 @@ from koji_cli.lib import ( _running_in_bg, activate_session, watch_tasks, + warn, ) @@ -34,10 +35,10 @@ def handle_kiwi_build(goptions, session, args): parser.add_option("--result-bundle-name-format", help="Override default bundle name format") parser.add_option("--make-prep", action="store_true", default=False, help="Run 'make prep' in checkout before starting the build") - parser.add_option("--buildroot-repo", action="store_false", + parser.add_option("--buildroot-repo", action="store_true", dest="use_buildroot_repo", default=False, help="Add buildroot repo to installation sources. This is off by default, " - "but uf there is no --repo used, it will be turned on automatically.") + "but if there is no --repo used, it will be turned on automatically.") parser.add_option("--can-fail", action="store", dest="optional_arches", metavar="ARCH1,ARCH2,...", default="", help="List of archs which are not blocking for build " @@ -85,7 +86,14 @@ def handle_kiwi_build(goptions, session, args): if options.repo: kwargs['repos'] = options.repo if options.use_buildroot_repo or not options.repo: - kwargs['use_buildroot_repo'] = True + if not options.repo: + warn("no repos given, using buildroot repo") + if session.hub_version >= (1, 35, 0): + # for older plugin versions it is the default behaviour + # and option doesn't exist + kwargs['use_buildroot_repo'] = True + if session.hub_version < (1, 35, 0): + warn("hub version is < 1.35, buildroot repo is always used in addition to specified repos") task_id = session.kiwiBuild(**kwargs) From 0e43634af51842f92da3911899d0d10f4b544a51 Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Wed, 15 May 2024 09:26:36 +0200 Subject: [PATCH 5/5] improve warnings for older hub --- plugins/cli/kiwi.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py index 8f8addaf..02958373 100644 --- a/plugins/cli/kiwi.py +++ b/plugins/cli/kiwi.py @@ -85,15 +85,14 @@ def handle_kiwi_build(goptions, session, args): kwargs['arches'] = [canonArch(arch) for arch in options.arches] if options.repo: kwargs['repos'] = options.repo - if options.use_buildroot_repo or not options.repo: - if not options.repo: - warn("no repos given, using buildroot repo") - if session.hub_version >= (1, 35, 0): - # for older plugin versions it is the default behaviour - # and option doesn't exist - kwargs['use_buildroot_repo'] = True + if session.hub_version < (1, 35, 0): warn("hub version is < 1.35, buildroot repo is always used in addition to specified repos") + elif options.use_buildroot_repo: + kwargs['use_buildroot_repo'] = True + elif not options.repo: + warn("no repos given, using buildroot repo") + kwargs['use_buildroot_repo'] = True task_id = session.kiwiBuild(**kwargs)