Mark Wielaard e9309e
From c24003b77926967589546681ef893e4e11f6b77f Mon Sep 17 00:00:00 2001
Mark Wielaard e9309e
From: Panu Matilainen <pmatilai@redhat.com>
Mark Wielaard e9309e
Date: Fri, 19 May 2017 11:01:12 +0300
Mark Wielaard e9309e
Subject: [PATCH 50/53] Consolidate %defattr/%attr(-,root,root) generation to
Mark Wielaard e9309e
 helper function
Mark Wielaard e9309e
Mark Wielaard e9309e
(cherry picked from commit b71d63ef598cb5bf504265a18166d782fb017569)
Mark Wielaard e9309e
---
Mark Wielaard e9309e
 build/files.c | 33 ++++++++++++++++++++++++---------
Mark Wielaard e9309e
 1 file changed, 24 insertions(+), 9 deletions(-)
Mark Wielaard e9309e
Mark Wielaard e9309e
diff --git a/build/files.c b/build/files.c
Mark Wielaard e9309e
index f27dcc7..e93efeb 100644
Mark Wielaard e9309e
--- a/build/files.c
Mark Wielaard e9309e
+++ b/build/files.c
Mark Wielaard e9309e
@@ -193,6 +193,16 @@ static void dupAttrRec(const AttrRec oar, AttrRec nar)
Mark Wielaard e9309e
     *nar = *oar; /* struct assignment */
Mark Wielaard e9309e
 }
Mark Wielaard e9309e
 
Mark Wielaard e9309e
+static char *mkattr(const char *fn)
Mark Wielaard e9309e
+{
Mark Wielaard e9309e
+    char *s = NULL;
Mark Wielaard e9309e
+    if (fn)
Mark Wielaard e9309e
+	rasprintf(&s, "%s(-,%s,%s) %s", "%attr", "root", "root", fn);
Mark Wielaard e9309e
+    else
Mark Wielaard e9309e
+	rasprintf(&s, "%s(-,%s,%s)", "%defattr", "root", "root");
Mark Wielaard e9309e
+    return s;
Mark Wielaard e9309e
+}
Mark Wielaard e9309e
+
Mark Wielaard e9309e
 static void copyFileEntry(FileEntry src, FileEntry dest)
Mark Wielaard e9309e
 {
Mark Wielaard e9309e
     /* Copying struct makes just shallow copy */
Mark Wielaard e9309e
@@ -1820,7 +1830,7 @@ static int generateBuildIDs(FileList fl)
Mark Wielaard e9309e
 	    fl->cur.verifyFlags = RPMVERIFY_ALL;
Mark Wielaard e9309e
 	    fl->def.specdFlags |= SPECD_VERIFY;
Mark Wielaard e9309e
 	    fl->cur.specdFlags |= SPECD_VERIFY;
Mark Wielaard e9309e
-	    attrstr = xstrdup ("%defattr(-,root,root)");
Mark Wielaard e9309e
+	    attrstr = mkattr(NULL);
Mark Wielaard e9309e
 	    parseForAttr(fl->pool, attrstr, 1, &fl->def);
Mark Wielaard e9309e
 	    free (attrstr);
Mark Wielaard e9309e
 
Mark Wielaard e9309e
@@ -1833,8 +1843,7 @@ static int generateBuildIDs(FileList fl)
Mark Wielaard e9309e
 		if ((rc = rpmioMkpath(mainiddir, 0755, -1, -1)) != 0) {
Mark Wielaard e9309e
 		    rpmlog(RPMLOG_ERR, "%s %s: %m\n", errdir, mainiddir);
Mark Wielaard e9309e
 		} else {
Mark Wielaard e9309e
-		    rasprintf (&attrstr, "%s %s", "%attr(-,root,root) ",
Mark Wielaard e9309e
-			       mainiddir);
Mark Wielaard e9309e
+		    attrstr = mkattr(mainiddir);
Mark Wielaard e9309e
 		    parseForAttr(fl->pool, attrstr, 0, &fl->cur);
Mark Wielaard e9309e
 		    fl->cur.isDir = 1;
Mark Wielaard e9309e
 		    rc = addFile(fl, mainiddir, NULL);
Mark Wielaard e9309e
@@ -1846,8 +1855,7 @@ static int generateBuildIDs(FileList fl)
Mark Wielaard e9309e
 		if ((rc = rpmioMkpath(debugiddir, 0755, -1, -1)) != 0) {
Mark Wielaard e9309e
 		    rpmlog(RPMLOG_ERR, "%s %s: %m\n", errdir, debugiddir);
Mark Wielaard e9309e
 		} else {
Mark Wielaard e9309e
-		    rasprintf (&attrstr, "%s %s", "%attr(-,root,root) ",
Mark Wielaard e9309e
-			       debugiddir);
Mark Wielaard e9309e
+		    attrstr = mkattr(debugiddir);
Mark Wielaard e9309e
 		    parseForAttr(fl->pool, attrstr, 0, &fl->cur);
Mark Wielaard e9309e
 		    fl->cur.isDir = 1;
Mark Wielaard e9309e
 		    rc = addFile(fl, debugiddir, NULL);
Mark Wielaard e9309e
@@ -2739,8 +2747,10 @@ static void filterDebuginfoPackage(rpmSpec spec, Package pkg,
Mark Wielaard e9309e
 	if (access(path, F_OK) == 0) {
Mark Wielaard e9309e
 	    /* Append the file list preamble */
Mark Wielaard e9309e
 	    if (!files) {
Mark Wielaard e9309e
-		argvAdd(&files, "%defattr(-,root,root)");
Mark Wielaard e9309e
+		char *attr = mkattr(NULL);
Mark Wielaard e9309e
+		argvAdd(&files, attr);
Mark Wielaard e9309e
 		argvAddDir(&files, DEBUG_LIB_DIR);
Mark Wielaard e9309e
+		free(attr);
Mark Wielaard e9309e
 	    }
Mark Wielaard e9309e
 
Mark Wielaard e9309e
 	    /* Add the files main debug-info file */
Mark Wielaard e9309e
@@ -2797,8 +2807,10 @@ static int addDebugDwz(Package pkg, char *buildroot)
Mark Wielaard e9309e
     rasprintf(&path, "%s%s", buildroot, DEBUG_DWZ_DIR);
Mark Wielaard e9309e
     if (lstat(path, &sbuf) == 0 && S_ISDIR(sbuf.st_mode)) {
Mark Wielaard e9309e
 	if (!pkg->fileList) {
Mark Wielaard e9309e
-	    argvAdd(&pkg->fileList, "%defattr(-,root,root)");
Mark Wielaard e9309e
+	    char *attr = mkattr(NULL);
Mark Wielaard e9309e
+	    argvAdd(&pkg->fileList, attr);
Mark Wielaard e9309e
 	    argvAddDir(&pkg->fileList, DEBUG_LIB_DIR);
Mark Wielaard e9309e
+	    free(attr);
Mark Wielaard e9309e
 	}
Mark Wielaard e9309e
 	argvAdd(&pkg->fileList, DEBUG_DWZ_DIR);
Mark Wielaard e9309e
 	ret = 1;
Mark Wielaard e9309e
@@ -2828,8 +2840,11 @@ static int addDebugSrc(Package pkg, char *buildroot)
Mark Wielaard e9309e
 	    if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, ".."))
Mark Wielaard e9309e
 		continue;
Mark Wielaard e9309e
 	    rasprintf(&path, "%s/%s", DEBUG_SRC_DIR, de->d_name);
Mark Wielaard e9309e
-	    if (!pkg->fileList)
Mark Wielaard e9309e
-		argvAdd(&pkg->fileList, "%defattr(-,root,root)");
Mark Wielaard e9309e
+	    if (!pkg->fileList) {
Mark Wielaard e9309e
+		char *attr = mkattr(NULL);
Mark Wielaard e9309e
+		argvAdd(&pkg->fileList, attr);
Mark Wielaard e9309e
+		free(attr);
Mark Wielaard e9309e
+	    }
Mark Wielaard e9309e
 	    argvAdd(&pkg->fileList, path);
Mark Wielaard e9309e
 	    path = _free(path);
Mark Wielaard e9309e
 	    ret = 1;
Mark Wielaard e9309e
-- 
Mark Wielaard e9309e
2.9.4
Mark Wielaard e9309e