aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-core/swupd-server/swupd-server-2.53/fullfiles.c-work-around-pseudo-bug.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/swupd-server/swupd-server-2.53/fullfiles.c-work-around-pseudo-bug.patch')
-rw-r--r--recipes-core/swupd-server/swupd-server-2.53/fullfiles.c-work-around-pseudo-bug.patch66
1 files changed, 0 insertions, 66 deletions
diff --git a/recipes-core/swupd-server/swupd-server-2.53/fullfiles.c-work-around-pseudo-bug.patch b/recipes-core/swupd-server/swupd-server-2.53/fullfiles.c-work-around-pseudo-bug.patch
deleted file mode 100644
index aa03054..0000000
--- a/recipes-core/swupd-server/swupd-server-2.53/fullfiles.c-work-around-pseudo-bug.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 939a50bf2fec9463fb721fa9188f98e991dfddc9 Mon Sep 17 00:00:00 2001
-From: Patrick Ohly <patrick.ohly@intel.com>
-Date: Wed, 30 Mar 2016 13:14:42 +0200
-Subject: [PATCH] fullfiles.c: work around pseudo bug
-
-Hard-linking the actual file looses the xattrs due to a pseudo bug.
-We work around that here by explicitly copying the xattrs.
-
-Upstream-Status: Inappropriate [workaround]
-
-Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
----
- src/fullfiles.c | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
-
-diff --git a/src/fullfiles.c b/src/fullfiles.c
-index fa78293..949d8f0 100644
---- a/src/fullfiles.c
-+++ b/src/fullfiles.c
-@@ -29,6 +29,7 @@
- #include <assert.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-+#include <sys/xattr.h>
- #include <stdint.h>
- #include <errno.h>
- #include <libgen.h>
-@@ -144,6 +145,35 @@ static void create_fullfile(struct file *file)
- }
- }
-
-+ /* step 1a: work around pseudo bug https://bugzilla.yoctoproject.org/show_bug.cgi?id=9317:
-+ pseudo fails to share xattrs between files sharing the same inode. We have to copy
-+ all xattrs explicitly. */
-+ {
-+ /* Intentionally simplistic code with static buffer sizes.
-+ Pseudo bug fix is scheduled for the near future. */
-+ char list[1024];
-+ char *name;
-+ ssize_t listsize;
-+ listsize = llistxattr(origin, list, sizeof(list));
-+ if (listsize < 0) {
-+ fprintf(stderr, "Copying xattrs: llistxattr(%s): %s\n", origin, strerror(errno));
-+ assert(0);
-+ }
-+ for (name = list; name < list + listsize; name += strlen(name) + 1) {
-+ char value[2048];
-+ ssize_t valuesize;
-+ valuesize = lgetxattr(origin, name, value, sizeof(value));
-+ if (valuesize < 0) {
-+ fprintf(stderr, "Copying xattrs: lgetxattr(%s): %s\n", origin, strerror(errno));
-+ assert(0);
-+ }
-+ if (lsetxattr(tempfile, name, value, valuesize, 0)) {
-+ fprintf(stderr, "Copying xattrs: lsetxattr(%s, %s): %s\n", tempfile, name, strerror(errno));
-+ assert(0);
-+ }
-+ }
-+ }
-+
- /* step 2a: tar it with each compression type */
- // lzma
- string_or_die(&tarcommand, "tar --directory=%s " TAR_PERM_ATTR_ARGS " -Jcf %s/%i/files/%s.tar.xz %s",
---
-2.1.4
-