teknoraver / rpms / rpm

Forked from rpms/rpm 4 months ago
Clone
Blob Blame History Raw
From 4afe09cbcfbc43c1385b8626e69bea216600ee59 Mon Sep 17 00:00:00 2001
Message-Id: <4afe09cbcfbc43c1385b8626e69bea216600ee59.1503051023.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Fri, 18 Aug 2017 12:43:27 +0300
Subject: [PATCH 1/2] Add a flag to allow quiet test for package existence with
 lookupPackage()

Turning "flag" into an actual bitfield requires testing for
PART_NAME/PART_SUBNAME differently, no actual changes here though.
---
 build/rpmbuild_internal.h |  1 +
 build/spec.c              | 16 +++++++++-------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/build/rpmbuild_internal.h b/build/rpmbuild_internal.h
index c294d5ee2..439b7d3b5 100644
--- a/build/rpmbuild_internal.h
+++ b/build/rpmbuild_internal.h
@@ -138,6 +138,7 @@ struct Package_s {
 
 #define PART_SUBNAME  0
 #define PART_NAME     1
+#define PART_QUIET    2
 
 /** \ingroup rpmbuild
  * rpmSpec file parser states.
diff --git a/build/spec.c b/build/spec.c
index 17a9b7c5a..39599e284 100644
--- a/build/spec.c
+++ b/build/spec.c
@@ -73,7 +73,7 @@ rpmRC lookupPackage(rpmSpec spec, const char *name, int flag,Package *pkg)
     }
 
     /* Construct partial package name */
-    if (flag == PART_SUBNAME) {
+    if (!(flag & PART_NAME)) {
 	rasprintf(&fullName, "%s-%s",
 		 headerGetString(spec->packages->header, RPMTAG_NAME), name);
 	name = fullName;
@@ -87,12 +87,14 @@ rpmRC lookupPackage(rpmSpec spec, const char *name, int flag,Package *pkg)
 	}
     }
 
-    if (p == NULL && pkg != NULL) {
-	rpmlog(RPMLOG_ERR, _("line %d: %s: package %s does not exist\n"),
-				spec->lineNum, spec->line, name);
-    } else if (p != NULL && pkg == NULL) {
-	rpmlog(RPMLOG_ERR, _("line %d: %s: package %s already exists\n"),
-				spec->lineNum, spec->line, name);
+    if (!(flag & PART_QUIET)) {
+	if (p == NULL && pkg != NULL) {
+	    rpmlog(RPMLOG_ERR, _("line %d: %s: package %s does not exist\n"),
+				    spec->lineNum, spec->line, name);
+	} else if (p != NULL && pkg == NULL) {
+	    rpmlog(RPMLOG_ERR, _("line %d: %s: package %s already exists\n"),
+				    spec->lineNum, spec->line, name);
+	}
     }
 
     if (fullName == name)
-- 
2.13.5

From 054de0f50fc1c8aacb6c45fa4a0fcd8d9ce5b2d1 Mon Sep 17 00:00:00 2001
Message-Id: <054de0f50fc1c8aacb6c45fa4a0fcd8d9ce5b2d1.1503051023.git.pmatilai@redhat.com>
In-Reply-To: <4afe09cbcfbc43c1385b8626e69bea216600ee59.1503051023.git.pmatilai@redhat.com>
References: <4afe09cbcfbc43c1385b8626e69bea216600ee59.1503051023.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Fri, 18 Aug 2017 12:46:59 +0300
Subject: [PATCH 2/2] Use silent lookup for debuginfo packages (#1482144)

Noarch packages do not have debuginfo, this was causing harmless
but bogus error messages via lookupPackage(). Depends on commit
4afe09cbcfbc43c1385b8626e69bea216600ee59.
---
 build/files.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/build/files.c b/build/files.c
index c7fe2485c..5e84532f1 100644
--- a/build/files.c
+++ b/build/files.c
@@ -2981,7 +2981,7 @@ static int addDebugSrc(Package pkg, char *buildroot)
 static Package findDebuginfoPackage(rpmSpec spec)
 {
     Package pkg = NULL;
-    if (lookupPackage(spec, "debuginfo", PART_SUBNAME, &pkg))
+    if (lookupPackage(spec, "debuginfo", PART_SUBNAME|PART_QUIET, &pkg))
 	return NULL;
     return pkg && pkg->fileList ? pkg : NULL;
 }
-- 
2.13.5