- don't treat symlinks as executables when classyfying files for dependency extraction
authorJan Rękorajski <baggins@pld-linux.org>
Fri, 19 Feb 2021 08:17:44 +0000 (09:17 +0100)
committerJan Rękorajski <baggins@pld-linux.org>
Fri, 19 Feb 2021 08:17:44 +0000 (09:17 +0100)
If a symlink points to an executable, it would be added as duplicate, if
not, then it should not be added. And in case of a symlink pointing to
non-existing file (ex. absolute path) the build would break.

rpm.spec
skip-symlinks.patch [new file with mode: 0644]

index 929675659db656a24f5f674d4994fd09269bd7a9..98edca3d8d7d0ae2d0b15e8b5049d6d799e42e2e 100644 (file)
--- a/rpm.spec
+++ b/rpm.spec
@@ -81,6 +81,7 @@ Patch30:      missing-ghost-terminate-build.patch
 Patch31:       missing-doc-terminate-build.patch
 Patch32:       noexpand.patch
 Patch33:       sqlite-db-backend.patch
+Patch34:       skip-symlinks.patch
 URL:           https://rpm.org/
 BuildRequires: acl-devel
 BuildRequires: db-devel >= %{db_ver}
@@ -579,6 +580,7 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
 %patch31 -p1
 %patch32 -p1
 %patch33 -p1
+%patch34 -p1
 
 install %{SOURCE15} scripts/perl.prov.in
 
diff --git a/skip-symlinks.patch b/skip-symlinks.patch
new file mode 100644 (file)
index 0000000..1f3eea5
--- /dev/null
@@ -0,0 +1,11 @@
+--- rpm-4.16.1.2/build/rpmfc.c~        2021-01-24 09:43:15.000000000 +0100
++++ rpm-4.16.1.2/build/rpmfc.c 2021-02-19 09:14:46.031544586 +0100
+@@ -1231,7 +1231,7 @@
+       size_t slen = strlen(s);
+       int fcolor = RPMFC_BLACK;
+       rpm_mode_t mode = (fmode ? fmode[ix] : 0);
+-      int is_executable = (mode & (S_IXUSR|S_IXGRP|S_IXOTH));
++      int is_executable = ((mode & S_IFREG) && (mode & (S_IXUSR|S_IXGRP|S_IXOTH)));
+       switch (mode & S_IFMT) {
+       case S_IFCHR:   ftype = "character special";    break;
This page took 1.980327 seconds and 4 git commands to generate.