From 18f7c93ea849bca29893a21b9428c77288cb2084d7b5c4087b0a19680cf79fa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9nich=20Bon=20=C4=86iri=C4=87?= Date: Tue, 16 Jun 2026 12:22:21 -0600 Subject: [PATCH] fix(sign): construct RPM path using build directory in sign spooler MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-developed-by: Gemini AI Signed-off-by: Rénich Bon Ćirić --- roles/koji_hub/files/koji-sign-spooler | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/roles/koji_hub/files/koji-sign-spooler b/roles/koji_hub/files/koji-sign-spooler index e33e809..2709d90 100644 --- a/roles/koji_hub/files/koji-sign-spooler +++ b/roles/koji_hub/files/koji-sign-spooler @@ -188,12 +188,23 @@ def process_queue(): except Exception as e: logger.warning(f"Failed to write public key to {pubkey_path}: {e}") + # Get build info and construct RPM path + try: + build_info = kojihub.get_build(build_id) + build_dir = koji.pathinfo.build(build_info) + except Exception as e: + logger.error(f"Failed to get build info for {build_id}: {e}") + os.makedirs(FAILED_DIR, exist_ok=True) + os.rename(file_path, os.path.join(FAILED_DIR, filename)) + continue + success = True for rpm in rpms: rpm_id = rpm['id'] rpm_nvr = rpm['nvr'] - rpm_path = rpm['path'] - full_rpm_path = os.path.join(koji_dir, rpm_path) + # Construct RPM path using koji.pathinfo + rpm_rel_path = koji.pathinfo.rpm(rpm) + full_rpm_path = os.path.join(koji_dir, build_dir, rpm_rel_path) try: logger.info(f"Signing RPM {rpm_nvr} via rpmsign and Siguldry PKCS#11")