summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rpm/files/fifofix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/rpm/files/fifofix.patch')
-rw-r--r--meta/recipes-devtools/rpm/files/fifofix.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rpm/files/fifofix.patch b/meta/recipes-devtools/rpm/files/fifofix.patch
new file mode 100644
index 0000000000..71703d7f0c
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/fifofix.patch
@@ -0,0 +1,22 @@
+Calling openat() on a fifo causes a pseudo hang for us (e.g. the fifo in psplash).
+Avoid calling openat for fifos.
+
+Introduced upstream with:
+
+https://github.com/rpm-software-management/rpm/commit/96ec957e281220f8e137a2d5eb23b83a6377d556
+
+Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/issues/2195]
+
+Index: git/lib/fsm.c
+===================================================================
+--- git.orig/lib/fsm.c
++++ git/lib/fsm.c
+@@ -1010,7 +1010,7 @@ int rpmPackageFilesInstall(rpmts ts, rpm
+ rc = RPMERR_UNKNOWN_FILETYPE;
+ }
+
+- if (!rc && fd == -1 && !S_ISLNK(fp->sb.st_mode)) {
++ if (!rc && fd == -1 && !S_ISLNK(fp->sb.st_mode) && !S_ISFIFO(fp->sb.st_mode)) {
+ /* Only follow safe symlinks, and never on temporary files */
+ fd = fsmOpenat(di.dirfd, fp->fpath,
+ fp->suffix ? AT_SYMLINK_NOFOLLOW : 0, 0);