diff options
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.patch | 66 |
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 - |