summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorJan (janneke) Nieuwenhuizen <janneke@gnu.org>2020-05-12 07:56:46 +0200
committerJan Nieuwenhuizen <janneke@gnu.org>2020-06-08 13:51:17 +0200
commit4c26229ccbbcac843567aa6c52a0287ff6eb1494 (patch)
treec5044c5752114a502c4bcc3c1b0099cfe921ccaa /gnu
parentbec45e6ddb0fd8b8feff3c0147936e4d8f41208d (diff)
downloadguix-4c26229ccbbcac843567aa6c52a0287ff6eb1494.tar.gz
gnu: hurd: Update to upstream Hurd-reserved xattr index.
This enables setting (and reading) passive translators when preparing a Hurd
file system from GNU/Linux.

* gnu/packages/patches/hurd-xattr.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/hurd.scm (hurd): Use it.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/hurd.scm3
-rw-r--r--gnu/packages/patches/hurd-xattr.patch53
3 files changed, 56 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index ae8a2275f7..6182306dd5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1084,6 +1084,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/http-parser-fix-assertion-on-armhf.patch	\
   %D%/packages/patches/hubbub-sort-entities.patch		\
   %D%/packages/patches/hurd-cross.patch				\
+  %D%/packages/patches/hurd-xattr.patch				\
   %D%/packages/patches/hplip-remove-imageprocessor.patch	\
   %D%/packages/patches/hydra-disable-darcs-test.patch		\
   %D%/packages/patches/icecat-makeicecat.patch			\
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 55c40710fa..278568b583 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -377,7 +377,8 @@ boot, since this cannot be done from GNU/Linux."
     (name "hurd")
     (version (package-version hurd-headers))
     (source (origin (inherit (package-source hurd-headers))
-                    (patches (search-patches "hurd-cross.patch"))))
+                    (patches (search-patches "hurd-cross.patch"
+                                             "hurd-xattr.patch"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/patches/hurd-xattr.patch b/gnu/packages/patches/hurd-xattr.patch
new file mode 100644
index 0000000000..0a922c91b5
--- /dev/null
+++ b/gnu/packages/patches/hurd-xattr.patch
@@ -0,0 +1,53 @@
+From 75cb948c575fca3962c4cce115d31dd178bc389f Mon Sep 17 00:00:00 2001
+From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
+Date: Tue, 12 May 2020 07:39:59 +0200
+Subject: [PATCH] ext2fs: Update to upstream Hurd-reserved xattr index for
+ "gnu.*".
+
+See
+    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3980bd3b406addb327d858aebd19e229ea340b9a
+
+This supports setting (and reading) of passive trasnlators from
+GNU/Linux, e.g.
+
+    dd if=/dev/zero of=file bs=1k count=1000
+    losetup /dev/loop0 file
+    mke2fs -t ext2 -o hurd -O ext_attr /dev/loop0
+    mount -t ext2 -o x-xattr-translator-records /dev/loop0 /mnt
+    mkdir -p /mnt/servers/socket
+    touch /mnt/servers/socket/1
+    setfattr --name=gnu.translator --value='/hurd/pflocal\0' /mnt/servers/socket/1
+    getfattr --name=gnu.translator /mnt/servers/socket/1
+    # file: 1
+    gnu.translator="/hurd/pflocal"
+
+* ext2fs/xattr.c (struct _xattr_prefix): For "gnu.*", use index for
+the Hurd (10).
+---
+ ext2fs/xattr.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ext2fs/xattr.c b/ext2fs/xattr.c
+index f6ea0f39..78458214 100644
+--- a/ext2fs/xattr.c
++++ b/ext2fs/xattr.c
+@@ -1,6 +1,6 @@
+  /* Ext2 support for extended attributes
+ 
+-   Copyright (C) 2006, 2016 Free Software Foundation, Inc.
++   Copyright (C) 2006, 2016, 2020 Free Software Foundation, Inc.
+ 
+    Written by Thadeu Lima de Souza Cascardo <cascardo@dcc.ufmg.br>
+    and Shengyu Zhang <lastavengers@outlook.com>
+@@ -39,7 +39,7 @@ xattr_prefixes[] =
+   {
+   1, "user.", sizeof "user." - 1},
+   {
+-  7, "gnu.", sizeof "gnu." - 1},
++  10, "gnu.", sizeof "gnu." - 1},
+   {
+   0, NULL, 0}
+ };
+-- 
+2.26.0
+