[Rpm-maint] [PATCH] Mark build-id and dwz entries in packages as %artifact files
Panu Matilainen
pmatilai at redhat.com
Wed Nov 8 09:27:02 UTC 2017
In worst-case scenarios (packages with lots of binaries but little
else), the build-id entries can dominate the query output to the
point its hard to see the actual content. Marking these things as
%artifact entries (artificial by-products of our processing) allows
them to be easily filtered out from queries, eg:
$ rpm -qpl can-utils-20170830git-1.fc27.x86_64.rpm | wc -l
76
$ rpm -qpl --noartifact /can-utils-20170830git-1.fc27.x86_64.rpm | wc -l
28
Besides build-ids in the main package(s), this also marks the build-id
and dwz-related entries in the debuginfo packages as %artifacts. The
debuginfo files exist solely for carrying debuginfo data so its arguable
whether these should be %artifacts in there too or only in the main
packages, comments welcome...
---
build/files.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/build/files.c b/build/files.c
index 3c1e13b48..8d44d072e 100644
--- a/build/files.c
+++ b/build/files.c
@@ -1699,7 +1699,7 @@ static int addNewIDSymlink(ARGV_t *files,
rpmlog(RPMLOG_ERR, "%s: %s -> %s: %m\n",
linkerr, linkpath, targetpath);
} else {
- rc = argvAdd(files, linkpath);
+ argvAddAttr(files, RPMFILE_ARTIFACT, linkpath);
}
if (nr > 0) {
@@ -1900,7 +1900,7 @@ static int generateBuildIDs(FileList fl, ARGV_t *files)
if ((rc = rpmioMkpath(mainiddir, 0755, -1, -1)) != 0) {
rpmlog(RPMLOG_ERR, "%s %s: %m\n", errdir, mainiddir);
} else {
- argvAddAttr(files, RPMFILE_DIR, mainiddir);
+ argvAddAttr(files, RPMFILE_DIR|RPMFILE_ARTIFACT, mainiddir);
}
}
@@ -1908,7 +1908,7 @@ static int generateBuildIDs(FileList fl, ARGV_t *files)
if ((rc = rpmioMkpath(debugiddir, 0755, -1, -1)) != 0) {
rpmlog(RPMLOG_ERR, "%s %s: %m\n", errdir, debugiddir);
} else {
- argvAddAttr(files, RPMFILE_DIR, debugiddir);
+ argvAddAttr(files, RPMFILE_DIR|RPMFILE_ARTIFACT, debugiddir);
}
}
}
@@ -1948,7 +1948,7 @@ static int generateBuildIDs(FileList fl, ARGV_t *files)
rpmlog(RPMLOG_ERR, "%s %s: %m\n", errdir, buildidsubdir);
} else {
if (addsubdir)
- argvAddAttr(files, RPMFILE_DIR, buildidsubdir);
+ argvAddAttr(files, RPMFILE_DIR|RPMFILE_ARTIFACT, buildidsubdir);
if (rc == 0) {
char *linkpattern, *targetpattern;
char *linkpath, *targetpath;
@@ -2944,10 +2944,10 @@ static int addDebugDwz(Package pkg, char *buildroot)
if (!pkg->fileList) {
char *attr = mkattr();
argvAdd(&pkg->fileList, attr);
- argvAddAttr(&pkg->fileList, RPMFILE_DIR, DEBUG_LIB_DIR);
+ argvAddAttr(&pkg->fileList, RPMFILE_DIR|RPMFILE_ARTIFACT, DEBUG_LIB_DIR);
free(attr);
}
- argvAdd(&pkg->fileList, DEBUG_DWZ_DIR);
+ argvAddAttr(&pkg->fileList, RPMFILE_ARTIFACT, DEBUG_DWZ_DIR);
ret = 1;
}
path = _free(path);
--
2.14.2
More information about the Rpm-maint
mailing list