aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas C. Villa Real <lucasvr@gmail.com>2017-01-01 20:30:31 -0200
committerLucas C. Villa Real <lucasvr@gmail.com>2017-01-01 20:30:31 -0200
commit674fe65facf17062794d91f9b0aa22f5bc962d8e (patch)
treecb71e88cb02363bcadab702f579baac07fbb8912
parent7e2aaa82e0bb460c85012a098f568dbb196a711e (diff)
downloadThirdPartyInstallers-674fe65facf17062794d91f9b0aa22f5bc962d8e.tar.xz
Filter out dependencies on rpmlib from "rpminfo --dependencies".
-rwxr-xr-xbin/InstallPackage-RPM12
-rw-r--r--src/rpminfo.c6
2 files changed, 5 insertions, 13 deletions
diff --git a/bin/InstallPackage-RPM b/bin/InstallPackage-RPM
index 07f0793..989e607 100755
--- a/bin/InstallPackage-RPM
+++ b/bin/InstallPackage-RPM
@@ -219,9 +219,6 @@ function populate_dependencies() {
elif is_basic_symbol "$dependency"
then
Log_Verbose "Skipping basic symbol: $dependency"
- elif is_rpmlib_symbol "$dependency"
- then
- Log_Verbose "Skipping internal symbol: $dependency"
elif is_inputfile "$dependency"
then
Log_Verbose "Skipping dependency passed as input file: $dependency"
@@ -419,15 +416,6 @@ function is_basic_symbol() {
return 1
}
-function is_rpmlib_symbol() {
- local dependency="$1"
- echo "$dependency" | grep -q "^VersionedDependencies" && return 0
- echo "$dependency" | grep -q "^PayloadFilesHavePrefix" && return 0
- echo "$dependency" | grep -q "^CompressedFileNames" && return 0
- echo "$dependency" | grep -q "^PayloadIs" && return 0
- return 1
-}
-
function deduce_program_name() {
local rpmfile="$1"
local name=$(rpminfo --name "$rpmfile")
diff --git a/src/rpminfo.c b/src/rpminfo.c
index 591f284..cf39c08 100644
--- a/src/rpminfo.c
+++ b/src/rpminfo.c
@@ -12,6 +12,7 @@
#include <unistd.h>
#include <errno.h>
+#define _RPMEVR_INTERNAL
#include <rpm/rpmio.h>
#include <rpm/rpmcli.h>
#include <rpm/pkgio.h>
@@ -52,7 +53,10 @@ void print_dependencies(Header *hdr)
const char *name = rpmdsN(depinfo);
const char *version= rpmdsEVR(depinfo);
evrFlags flags = rpmdsFlags(depinfo);
-
+ if (flags & RPMSENSE_RPMLIB) {
+ /* ignore dependencies on rpmlib features */
+ continue;
+ }
printf("%s", name);
if (version && strlen(version)) {
if (flags)