Blob Blame History Raw
From cbcd9dd38dd1d0379e5d25ed3c1b1e96353e4014 Mon Sep 17 00:00:00 2001
Message-Id: <cbcd9dd38dd1d0379e5d25ed3c1b1e96353e4014.1651130985.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Thu, 28 Apr 2022 10:17:16 +0300
Subject: [PATCH] Fix regression in rubygem unpacking (#2040)

Externalizing the source unpack in commit
cd5d667e99f931504a512b591fcde7ed92cee344 required changing the way
rubygems are unpacked, and now the .gemspec file gets unpacked into
different place. Oops. Reported and initial patch by Vit Ondruch.

Fixes: #2040
---
 tools/rpmuncompress.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/rpmuncompress.c b/tools/rpmuncompress.c
index 609fb0f53..55aac4c44 100644
--- a/tools/rpmuncompress.c
+++ b/tools/rpmuncompress.c
@@ -97,12 +97,13 @@ static char *doUntar(const char *fn)
 	if (needtar) {
 	    rasprintf(&buf, "%s '%s' | %s %s -", zipper, fn, tar, taropts);
 	} else if (at->compressed == COMPRESSED_GEM) {
-	    size_t nvlen = strlen(fn) - 3;
+	    const char *bn = basename(fn);
+	    size_t nvlen = strlen(bn) - 3;
 	    char *gem = rpmGetPath("%{__gem}", NULL);
 	    char *gemspec = NULL;
 	    char gemnameversion[nvlen];
 
-	    rstrlcpy(gemnameversion, fn, nvlen);
+	    rstrlcpy(gemnameversion, bn, nvlen);
 	    gemspec = rpmGetPath("", gemnameversion, ".gemspec", NULL);
 
 	    rasprintf(&buf, "%s '%s' && %s spec '%s' --ruby > '%s'",
-- 
2.35.1