gnu: cross-libc: Add patch to allow 'gettyent' reading store file names.
authorJan (janneke) Nieuwenhuizen <janneke@gnu.org>
Sun, 5 Apr 2020 14:45:18 +0000 (16:45 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sat, 11 Apr 2020 17:22:27 +0000 (19:22 +0200)
* gnu/packages/patches/glibc-hurd-gettyent.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/cross-base.scm (cross-libc): Add it in 'patch-libc/hurd' phase
when 'hurd-target?' is true.

gnu/local.mk
gnu/packages/cross-base.scm
gnu/packages/patches/glibc-hurd-gettyent.patch [new file with mode: 0644]

index 02e9d80..8303fdc 100644 (file)
@@ -977,6 +977,7 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch  \
   %D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch        \
   %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch   \
+  %D%/packages/patches/glibc-hurd-gettyent.patch               \
   %D%/packages/patches/glibc-hurd-mach-print.patch             \
   %D%/packages/patches/glibc-hurd-magic-pid.patch              \
   %D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch      \
index c213907..9b4aa10 100644 (file)
@@ -522,11 +522,15 @@ and the cross tool chain."
                                 (string-append out "/lib/libc.so.0.3"
                                                " libmachuser.so libhurduser.so"))))
                            #t))
+                       ;; TODO: move to glibc in the next rebuild cycle
                        (add-after 'unpack 'patch-libc/hurd
                          (lambda* (#:key inputs #:allow-other-keys)
-                           (let ((patch (assoc-ref inputs
-                                                   "hurd-mach-print.patch")))
-                             (invoke "patch" "-p1" "--force" "-i" patch)))))
+                           (for-each
+                            (lambda (name)
+                              (let ((patch (assoc-ref inputs name)))
+                                (invoke "patch" "-p1" "--force" "-i" patch)))
+                            '("hurd-mach-print.patch"
+                              "hurd-gettyent.patch")))))
                      '())))))
 
         ;; Shadow the native "kernel-headers" because glibc's recipe expects the
@@ -543,8 +547,11 @@ and the cross tool chain."
                                `(("cross-mig"
                                   ,@(assoc-ref (package-native-inputs xheaders)
                                                "cross-mig"))
+                                 ;; TODO: move to glibc in the next rebuild cycle
                                  ("hurd-mach-print.patch"
-                                  ,@(search-patches "glibc-hurd-mach-print.patch")))
+                                  ,@(search-patches "glibc-hurd-mach-print.patch"))
+                                 ("hurd-gettyent.patch"
+                                  ,@(search-patches "glibc-hurd-gettyent.patch")))
                                '())
                          ,@(package-inputs libc)  ;FIXME: static-bash
                          ,@(package-native-inputs libc))))))
diff --git a/gnu/packages/patches/glibc-hurd-gettyent.patch b/gnu/packages/patches/glibc-hurd-gettyent.patch
new file mode 100644 (file)
index 0000000..721a8d4
--- /dev/null
@@ -0,0 +1,34 @@
+From d6d2caef3e44d0713bb6625f697a1ec615abae70 Mon Sep 17 00:00:00 2001
+From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
+Date: Sun, 5 Apr 2020 16:29:54 +0200
+Subject: [PATCH 4/4] misc: Choose a longer arbitrary line length.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This allows running specifying a `getty' in the GNU Guix store.
+
+* misc/getttyent.c (MAXLINELENGTH): Use 512 (instead of 100) as
+another "great" arbitrary limit.
+
+Co-Authored-By: Ludovic Courtès <ludo@gnu.org>
+---
+ misc/getttyent.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/misc/getttyent.c b/misc/getttyent.c
+index 92d92b026f..508d296291 100644
+--- a/misc/getttyent.c
++++ b/misc/getttyent.c
+@@ -66,7 +66,7 @@ __getttyent (void)
+       static struct ttyent tty;
+       int c;
+       char *p;
+-#define       MAXLINELENGTH   100
++#define       MAXLINELENGTH   512
+       static char line[MAXLINELENGTH];
+       if (!tf && !__setttyent())
+-- 
+2.26.0
+