Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/pungi/scripts/pungi_koji.py", line 658, in cli_main
main()
File "/usr/lib/python3.12/site-packages/pungi/scripts/pungi_koji.py", line 353, in main
run_compose(
File "/usr/lib/python3.12/site-packages/pungi/scripts/pungi_koji.py", line 470, in run_compose
init_phase.start()
File "/usr/lib/python3.12/site-packages/pungi/phases/base.py", line 66, in start
self.run()
File "/usr/lib/python3.12/site-packages/pungi/phases/init.py", line 47, in run
global_comps = write_global_comps(self.compose)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pungi/phases/init.py", line 110, in write_global_comps
get_file_from_scm(scm_dict, tmp_dir, compose=compose)
File "/usr/lib/python3.12/site-packages/pungi/wrappers/scm.py", line 475, in get_file_from_scm
scm.export_file(
File "/usr/lib/python3.12/site-packages/pungi/wrappers/scm.py", line 264, in export_file
tmp_dir = self.setup_repo(scm_root, scm_branch)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pungi/wrappers/scm.py", line 235, in setup_repo
self.run_process_command(tmp_dir)
File "/usr/lib/python3.12/site-packages/pungi/wrappers/scm.py", line 65, in run_process_command
raise RuntimeError(
RuntimeError: 'make comps-centos-stream-9.xml DISTRO=centos' failed with exit code 2
Frame run_process_command in /usr/lib/python3.12/site-packages/pungi/wrappers/scm.py at line 65
58 can_fail=True,
59 stdin_data="",
60 text=True,
61 errors="replace",
62 )
63 if retcode != 0:
64 self.log_error("Output was: %r" % output)
--> 65 raise RuntimeError(
66 "%r failed with exit code %s" % (self.command, retcode)
67 )
68
69
70 class FileWrapper(ScmBase):
71 def export_dir(self, scm_root, scm_dir, target_dir, scm_branch=None):
cwd = '/tmp/pungi-temp-git-repos-7151/comps.git-adc1776f7cfab54033e748af0596ddf53c470daa'
output = './update-comps comps-centos-stream-9.xml centos\n./update-comps: line 11: intltool-merge: command not found\nwarning: failed to load external entity "comps-centos-stream-9.xml"\nunable to parse comps
retcode = 2
self =
self._logger =
self.command = 'make comps-centos-stream-9.xml DISTRO=centos'
self.compose =
self.options = {}
Frame setup_repo in /usr/lib/python3.12/site-packages/pungi/wrappers/scm.py at line 235
228
229 def setup_repo(self, scm_root, scm_branch):
230 tmp_dir = self.get_temp_repo_path(scm_root, scm_branch)
231 if not os.path.isdir(tmp_dir):
232 makedirs(tmp_dir)
233 with tracing.span("git-clone", repo=scm_root, ref=scm_branch):
234 self._clone(scm_root, scm_branch, tmp_dir)
--> 235 self.run_process_command(tmp_dir)
236 return tmp_dir
237
238 def export_dir(self, scm_root, scm_dir, target_dir, scm_branch=None):
239 scm_dir = scm_dir.lstrip("/")
240 scm_branch = scm_branch or "master"
241
scm_branch = 'adc1776f7cfab54033e748af0596ddf53c470daa'
scm_root = 'https://gitlab.com/redhat/centos-stream/release-engineering/comps.git'
self =
self._logger =
self.command = 'make comps-centos-stream-9.xml DISTRO=centos'
self.compose =
self.options = {}
tmp_dir = '/tmp/pungi-temp-git-repos-7151/comps.git-adc1776f7cfab54033e748af0596ddf53c470daa'
Frame export_file in /usr/lib/python3.12/site-packages/pungi/wrappers/scm.py at line 264
257
258 self.log_debug(
259 "Exporting file %s from git %s (branch %s)..."
260 % (scm_file, scm_root, scm_branch)
261 )
262
263 with lock:
--> 264 tmp_dir = self.setup_repo(scm_root, scm_branch)
265
266 makedirs(target_dir)
267 shutil.copy2(os.path.join(tmp_dir, scm_file), target_path)
268
269
270 class RpmScmWrapper(ScmBase):
arch = None
scm_branch = 'adc1776f7cfab54033e748af0596ddf53c470daa'
scm_file = 'comps-centos-stream-9.xml'
scm_root = 'https://gitlab.com/redhat/centos-stream/release-engineering/comps.git'
self =
self._logger =
self.command = 'make comps-centos-stream-9.xml DISTRO=centos'
self.compose =
self.options = {}
target_dir = '/tmp/scm_checkout_315h23ew'
target_path = '/tmp/scm_checkout_315h23ew/comps-centos-stream-9.xml'
Frame get_file_from_scm in /usr/lib/python3.12/site-packages/pungi/wrappers/scm.py at line 475
468 # Most SCM wrappers need a temporary directory: the git repo is
469 # cloned there, and only relevant files are copied out. But this
470 # doesn't work for the container image fetching. That pulls in only
471 # required files, and the final output needs to be done by skopeo
472 # to correctly handle multiple containers landing in the same OCI
473 # archive.
474 dest = target_path if scm_type == "container-image" else tmp_dir
--> 475 scm.export_file(
476 scm_repo, i, scm_branch=scm_branch, target_dir=dest, arch=arch
477 )
478 if dest == tmp_dir:
479 files_copied += copy_all(tmp_dir, target_path)
480 return files_copied
481
arch = None
command = 'make comps-centos-stream-9.xml DISTRO=centos'
compose =
dest = '/tmp/scm_checkout_315h23ew'
files_copied = []
i = 'comps-centos-stream-9.xml'
logger =
options = {}
scm =
scm_branch = 'adc1776f7cfab54033e748af0596ddf53c470daa'
scm_dict = {'scm': 'git', 'repo': 'https://gitlab.com/redhat/centos-stream/release-engineering/comps.git', 'branch': 'adc1776f7cfab54033e748af0596ddf53c470daa', 'file': 'comps-centos-stream-9.xml', 'command': 'm
scm_file = 'comps-centos-stream-9.xml'
scm_repo = 'https://gitlab.com/redhat/centos-stream/release-engineering/comps.git'
scm_type = 'git'
target_path = '/mnt/centos/composes/pungi/20260305-134447/work/global/tmp/comps_lhoqekx6'
tmp_dir = '/tmp/scm_checkout_315h23ew'
Frame write_global_comps in /usr/lib/python3.12/site-packages/pungi/phases/init.py at line 110
103 scm_dict["file"] = os.path.join(compose.config_dir, scm_dict["file"])
104 else:
105 comps_name = os.path.basename(scm_dict)
106 scm_dict = os.path.join(compose.config_dir, scm_dict)
107
108 compose.log_debug("Writing global comps file: %s", comps_file_global)
109 tmp_dir = compose.mkdtemp(prefix="comps_")
--> 110 get_file_from_scm(scm_dict, tmp_dir, compose=compose)
111 shutil.copy2(os.path.join(tmp_dir, comps_name), comps_file_global)
112 shutil.rmtree(tmp_dir)
113
114 return comps_file_global
115
116
compose =
comps_file_global = '/mnt/centos/composes/pungi/20260305-134447/work/global/comps/comps-global.xml'
comps_name = 'comps-centos-stream-9.xml'
scm_dict = {'scm': 'git', 'repo': 'https://gitlab.com/redhat/centos-stream/release-engineering/comps.git', 'branch': 'adc1776f7cfab54033e748af0596ddf53c470daa', 'file': 'comps-centos-stream-9.xml', 'command': 'm
tmp_dir = '/mnt/centos/composes/pungi/20260305-134447/work/global/tmp/comps_lhoqekx6'
Frame run in /usr/lib/python3.12/site-packages/pungi/phases/init.py at line 47
40 # INIT must never be skipped,
41 # because it generates data for LIVEIMAGES
42 return False
43
44 def run(self):
45 if self.compose.has_comps:
46 # write global comps and arch comps, create comps repos
--> 47 global_comps = write_global_comps(self.compose)
48 validate_comps(global_comps)
49 num_workers = self.compose.conf["createrepo_num_threads"]
50 run_in_threads(
51 _arch_worker,
52 [(self.compose, arch) for arch in self.compose.get_arches()],
53 threads=num_workers,
self =
self._skipped = False
self._start_time = 1772718291.0642393
self.compose =
self.finished = False
self.msg = '---------- PHASE: INIT ----------'
self.name = 'init'
self.used_patterns = None
Frame start in /usr/lib/python3.12/site-packages/pungi/phases/base.py at line 66
59 if self._skipped:
60 self.compose.log_warning("[SKIP ] %s" % self.msg)
61 self.finished = True
62 return
63 self._start_time = time.time()
64 self.compose.log_info("[BEGIN] %s" % self.msg)
65 self.compose.notifier.send("phase-start", phase_name=self.name)
--> 66 self.run()
67
68 def get_config_block(self, variant, arch=None):
69 """In config for current phase, find a block corresponding to given
70 variant and arch. The arch should be given if and only if the config
71 uses variant/arch mapping.
72 """
self =
self._skipped = False
self._start_time = 1772718291.0642393
self.compose =
self.finished = False
self.msg = '---------- PHASE: INIT ----------'
self.name = 'init'
self.used_patterns = None
Frame run_compose in /usr/lib/python3.12/site-packages/pungi/scripts/pungi_koji.py at line 470
463 errors.append("%s: %s" % (phase.name.upper(), i))
464 if errors:
465 for i in errors:
466 compose.log_error(i)
467 print(i)
468 raise RuntimeError("Configuration is not valid")
469
--> 470 init_phase.start()
471 init_phase.stop()
472
473 pkgset_phase.start()
474 pkgset_phase.stop()
475
476 # WEAVER phase - launches other phases which can safely run in parallel
buildinstall_phase =
compose =
config_copy_path = '/mnt/centos/composes/pungi/20260305-134447/logs/global/config-copy'
config_dump_full = '/mnt/centos/composes/pungi/20260305-134447/logs/global/config-dump.global.log'
config_file = '/home/composer/tests/pungi-centos/centos/variables.conf'
create_latest_link = True
createiso_phase =
createrepo_phase =
errors = []
extra_isos_phase =
extrafiles_phase =
f = <_io.TextIOWrapper name='/mnt/centos/composes/pungi/20260305-134447/logs/global/config-dump.global.log' mode='w' encoding='UTF-8'>
gather_phase =
image_build_phase =
image_checksum_phase =
image_container_phase =
imagebuilder_phase =
init_phase =
installed_pkgs_log = '/mnt/centos/composes/pungi/20260305-134447/logs/global/installed-pkgs.global.log'
kiwibuild_phase =
latest_link_components = -1
latest_link_status = None
livemedia_phase =
osbs_phase =
osbuild_phase =
ostree_container_phase =
ostree_installer_phase =
ostree_phase =
phase =
pkgset_phase =
pungi =
repoclosure_phase =
test_phase =
Frame main in /usr/lib/python3.12/site-packages/pungi/scripts/pungi_koji.py at line 353
346 logger.error("Config validation failed with the error: %s" % error)
347 fail_to_start("Config validation failed", errors=errors)
348 sys.exit(1)
349
350 notifier.compose = compose
351 COMPOSE = compose
352 try:
--> 353 run_compose(
354 compose,
355 create_latest_link=create_latest_link,
356 latest_link_status=latest_link_status,
357 latest_link_components=latest_link_components,
358 )
359 except UnsignedPackagesError:
Compose =
PHASES_NAMES_MODIFIED = ['buildinstall', 'createiso', 'createrepo', 'extra_files', 'extra_isos', 'gather', 'image_build', 'imagebuilder', 'image_checksum', 'image_container', 'init', 'kiwibuild', 'live_media', 'osbs', 'osbui
abort = .abort at 0x7f60fc924ae0>
ci =
ci_path = '/mnt/centos/composes/pungi/20260305-134447/work/global/composeinfo-base.json'
compose =
compose_dir = '/mnt/centos/composes/pungi/20260305-134447'
compose_type = 'test'
conf = {'RELEASE_NAME': 'CentOS Stream', 'RELEASE_SHORT': 'CentOS-Stream', 'RELEASE_VERSION': '9', 'PKGSET_KOJI_TAG': 'c9s-compose', 'PKGSET_KOJI_MODULE_TAG': 'el9-modules-pending-signed', 'RUNROOT_CHANNEL':
create_latest_link = True
errors = []
fail_to_start = .fail_to_start at 0x7f60fc9249a0>
group =
kobo =
latest_link_components = -1
latest_link_status = None
logger =
notifier =
opts = Namespace(target_dir=None, compose_dir='/mnt/centos/composes/pungi/20260305-134447', label=None, no_label=True, supported=False, old_composes=[], config='/home/composer/tests/pungi-centos/centos.conf'
parser = ArgumentParser(prog='pungi-koji', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True)
productmd =
pungi =
rv = None
warning = 'WARNING: Unrecognized config option: RELEASE_VERSION.'
warnings = ["WARNING: Config option release_is_layered was removed and has no effect; remove it. It's layered if there's configuration for base product.", "WARNING: Config option runroot was removed and has no e
Frame cli_main in /usr/lib/python3.12/site-packages/pungi/scripts/pungi_koji.py at line 658
651 signal.signal(signal.SIGINT, sigterm_handler)
652 signal.signal(signal.SIGTERM, sigterm_handler)
653
654 tracing.setup()
655
656 with tracing.span("run-compose"):
657 try:
--> 658 main()
659 except (Exception, KeyboardInterrupt) as ex:
660 tracing.record_exception(ex)
661 if COMPOSE:
662 COMPOSE.log_error("Compose run failed: %s" % ex)
663 COMPOSE.traceback(show_locals=getattr(ex, "show_locals", True))
664 COMPOSE.log_critical("Compose failed: %s" % COMPOSE.topdir)
ex = RuntimeError("'make comps-centos-stream-9.xml DISTRO=centos' failed with exit code 2")