Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/pungi/scripts/pungi_koji.py", line 683, in cli_main main() File "/usr/lib/python3.11/site-packages/pungi/scripts/pungi_koji.py", line 352, in main run_compose( File "/usr/lib/python3.11/site-packages/pungi/scripts/pungi_koji.py", line 509, in run_compose init_phase.start() File "/usr/lib/python3.11/site-packages/pungi/phases/base.py", line 66, in start self.run() File "/usr/lib/python3.11/site-packages/pungi/phases/init.py", line 47, in run global_comps = write_global_comps(self.compose) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/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.11/site-packages/pungi/wrappers/scm.py", line 391, in get_file_from_scm scm.export_file(scm_repo, i, scm_branch=scm_branch, target_dir=tmp_dir) File "/usr/lib/python3.11/site-packages/pungi/wrappers/scm.py", line 226, in export_file self._clone(scm_root, scm_branch, tmp_dir) File "/usr/lib/python3.11/site-packages/pungi/wrappers/scm.py", line 198, in _clone self.run_process_command(destdir) File "/usr/lib/python3.11/site-packages/pungi/wrappers/scm.py", line 61, in run_process_command raise RuntimeError( RuntimeError: 'make' failed with exit code 2 Frame run_process_command in /usr/lib/python3.11/site-packages/pungi/wrappers/scm.py at line 61 54 workdir=cwd, 55 can_fail=True, 56 stdin_data="", 57 universal_newlines=True, 58 ) 59 if retcode != 0: 60 self.log_error("Output was: %r" % output) --> 61 raise RuntimeError( 62 "%r failed with exit code %s" % (self.command, retcode) 63 ) 64 65 66 class FileWrapper(ScmBase): 67 def export_dir(self, scm_root, scm_dir, target_dir, scm_branch=None): cwd = '/tmp/tmpqqbke3nz' output = './update-eln-extras-comps comps-eln.xml.in.in comps-eln.xml.in\nTraceback (most recent call last):\n File "/tmp/tmpqqbke3nz/./update-eln-extras-comps", line 7, in \n import xmltodict\nMod retcode = 2 self = self._logger = self.command = 'make' self.compose = self.options = {} Frame _clone in /usr/lib/python3.11/site-packages/pungi/wrappers/scm.py at line 198 191 self.log_debug( 192 "Copying %s to %s for debugging" % (destdir, debugdir) 193 ) 194 makedirs(debugdir) 195 copy_all(destdir, debugdir) 196 raise 197 --> 198 self.run_process_command(destdir) 199 200 def export_dir(self, scm_root, scm_dir, target_dir, scm_branch=None): 201 scm_dir = scm_dir.lstrip("/") 202 scm_branch = scm_branch or "master" 203 204 with temp_dir() as tmp_dir: branch = 'ffa1fbf07f9fce02b38db71b4231313ad49696c9' destdir = '/tmp/tmpqqbke3nz' git_cmd = ['git'] repo = 'https://pagure.io/fedora-comps.git' self = self._logger = self.command = 'make' self.compose = self.options = {} Frame export_file in /usr/lib/python3.11/site-packages/pungi/wrappers/scm.py at line 226 219 target_path = os.path.join(target_dir, os.path.basename(scm_file)) 220 221 self.log_debug( 222 "Exporting file %s from git %s (branch %s)..." 223 % (scm_file, scm_root, scm_branch) 224 ) 225 --> 226 self._clone(scm_root, scm_branch, tmp_dir) 227 228 makedirs(target_dir) 229 shutil.copy2(os.path.join(tmp_dir, scm_file), target_path) 230 231 232 class RpmScmWrapper(ScmBase): scm_branch = 'ffa1fbf07f9fce02b38db71b4231313ad49696c9' scm_file = 'comps-epel8.xml' scm_root = 'https://pagure.io/fedora-comps.git' self = self._logger = self.command = 'make' self.compose = self.options = {} target_dir = '/tmp/scm_checkout_5b5orebg' target_path = '/tmp/scm_checkout_5b5orebg/comps-epel8.xml' tmp_dir = '/tmp/tmpqqbke3nz' Frame get_file_from_scm in /usr/lib/python3.11/site-packages/pungi/wrappers/scm.py at line 391 384 scm = _get_wrapper( 385 scm_type, logger=logger, command=command, compose=compose, options=options 386 ) 387 388 files_copied = [] 389 for i in force_list(scm_file): 390 with temp_dir(prefix="scm_checkout_") as tmp_dir: --> 391 scm.export_file(scm_repo, i, scm_branch=scm_branch, target_dir=tmp_dir) 392 files_copied += copy_all(tmp_dir, target_path) 393 return files_copied 394 395 396 def get_file(source, destination, compose, overwrite=False): 397 """ command = 'make' compose = files_copied = [] i = 'comps-epel8.xml' logger = options = {} scm = scm_branch = 'ffa1fbf07f9fce02b38db71b4231313ad49696c9' scm_dict = {'scm': 'git', 'repo': 'https://pagure.io/fedora-comps.git', 'branch': 'ffa1fbf07f9fce02b38db71b4231313ad49696c9', 'file': 'comps-epel8.xml', 'command': 'make'} scm_file = 'comps-epel8.xml' scm_repo = 'https://pagure.io/fedora-comps.git' scm_type = 'git' target_path = '/mnt/koji/compose/updates/Fedora-Epel-8-updates-20230930.0/work/global/tmp/comps_r20l888b' tmp_dir = '/tmp/scm_checkout_5b5orebg' Frame write_global_comps in /usr/lib/python3.11/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/koji/compose/updates/Fedora-Epel-8-updates-20230930.0/work/global/comps/comps-global.xml' comps_name = 'comps-epel8.xml' scm_dict = {'scm': 'git', 'repo': 'https://pagure.io/fedora-comps.git', 'branch': 'ffa1fbf07f9fce02b38db71b4231313ad49696c9', 'file': 'comps-epel8.xml', 'command': 'make'} tmp_dir = '/mnt/koji/compose/updates/Fedora-Epel-8-updates-20230930.0/work/global/tmp/comps_r20l888b' Frame run in /usr/lib/python3.11/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 = 1696034237.642198 self.compose = self.finished = False self.msg = '---------- PHASE: INIT ----------' self.name = 'init' self.used_patterns = None Frame start in /usr/lib/python3.11/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 = 1696034237.642198 self.compose = self.finished = False self.msg = '---------- PHASE: INIT ----------' self.name = 'init' self.used_patterns = None Frame run_compose in /usr/lib/python3.11/site-packages/pungi/scripts/pungi_koji.py at line 509 502 print(err_msg) 503 raise RuntimeError(err_msg) 504 505 if signing_key_password: 506 # Store the password 507 compose.conf["signing_key_password"] = signing_key_password 508 --> 509 init_phase.start() 510 init_phase.stop() 511 512 pkgset_phase.start() 513 pkgset_phase.stop() 514 515 # WEAVER phase - launches other phases which can safely run in parallel buildinstall_phase = compose = config_copy_path = '/mnt/koji/compose/updates/Fedora-Epel-8-updates-20230930.0/logs/global/config-copy' config_dump_full = '/mnt/koji/compose/updates/Fedora-Epel-8-updates-20230930.0/logs/global/config-dump.global.log' config_file = '/tmp/bodhi-pungi-epel8-qitw37pm/pungi_multilib.conf' create_latest_link = False createiso_phase = createrepo_phase = errors = [] extra_isos_phase = extrafiles_phase = f = <_io.TextIOWrapper name='/mnt/koji/compose/updates/Fedora-Epel-8-updates-20230930.0/logs/global/config-dump.global.log' mode='w' encoding='UTF-8'> gather_phase = image_build_phase = image_checksum_phase = image_container_phase = init_phase = installed_pkgs_log = '/mnt/koji/compose/updates/Fedora-Epel-8-updates-20230930.0/logs/global/installed-pkgs.global.log' latest_link_components = -1 latest_link_status = None liveimages_phase = livemedia_phase = osbs_phase = osbuild_phase = ostree_installer_phase = ostree_phase = phase = pkgset_phase = pungi = repoclosure_phase = test_phase = Frame main in /usr/lib/python3.11/site-packages/pungi/scripts/pungi_koji.py at line 352 345 logger.error("Config validation failed with the error: %s" % error) 346 fail_to_start("Config validation failed", errors=errors) 347 sys.exit(1) 348 349 notifier.compose = compose 350 COMPOSE = compose 351 try: --> 352 run_compose( 353 compose, 354 create_latest_link=create_latest_link, 355 latest_link_status=latest_link_status, 356 latest_link_components=latest_link_components, 357 ) 358 except UnsignedPackagesError: Compose = PHASES_NAMES_MODIFIED = ['buildinstall', 'createiso', 'createrepo', 'extra_files', 'extra_isos', 'gather', 'image_build', 'image_checksum', 'image_container', 'init', 'live_images', 'live_media', 'osbs', 'osbuild', 'ostree', abort = .abort at 0x7fb0d54dbe20> compose = compose_dir = '/mnt/koji/compose/updates/Fedora-Epel-8-updates-20230930.0' compose_type = 'production' conf = {'release_is_layered': False, 'hashed_directories': True, 'pkgset_source': 'koji', 'filter_system_release_packages': False, 'greedy_method': 'build', 'createrepo_c': True, 'createrepo_checksum': 'sha2 create_latest_link = False errors = [] fail_to_start = .fail_to_start at 0x7fb0d54dbce0> group = kobo = latest_link_components = -1 latest_link_status = None logger = notifier = opts = Namespace(target_dir='/mnt/koji/compose/updates', compose_dir=None, label='Update-20230930.0037', no_label=False, supported=False, old_composes=['/mnt/koji/compose/updates/'], config='/tmp/bodhi-pungi parser = ArgumentParser(prog='pungi-koji', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) productmd = pungi = rv = None 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.11/site-packages/pungi/scripts/pungi_koji.py at line 683 676 677 678 def cli_main(): 679 signal.signal(signal.SIGINT, sigterm_handler) 680 signal.signal(signal.SIGTERM, sigterm_handler) 681 682 try: --> 683 main() 684 except (Exception, KeyboardInterrupt) as ex: 685 if COMPOSE: 686 COMPOSE.log_error("Compose run failed: %s" % ex) 687 COMPOSE.traceback(show_locals=getattr(ex, "show_locals", True)) 688 COMPOSE.log_critical("Compose failed: %s" % COMPOSE.topdir) 689 COMPOSE.write_status("DOOMED") ex = RuntimeError("'make' failed with exit code 2")