unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
@ 2023-05-22  9:00 Josselin Poiret via Guix-patches via
  2023-05-22  9:04 ` [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators Josselin Poiret via Guix-patches via
                   ` (9 more replies)
  0 siblings, 10 replies; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:00 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

Hi everyone,

Since Janneke is working on the rumpkernel and needed some additional patches to
our libc, I thought that we could bring back the libc specific to the Hurd, also
because the newer versions of Hurd only work with glibc 2.37.  This will let us
experiment with newer Hurds without impacting the rest of Guix.  There are also a couple of additions and clean-ups.

I'm still trying to fix native compilation, but it's not going as fast as I would like.

Best,

Josselin Poiret (8):
  hurd-boot: Add urandom and default-pager translators.
  gnu: glibc/hurd-headers: Properly cross-build.
  gnu: gnumach-headers: Cross-build without relying on x86.
  gnu: hurd: Update supported systems.
  gnu: Add libc-for-target and glibc/hurd.
  gnu: gnumach: Update to 1.8+git20221224.
  gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3.
  gnu: hurd: Update to v0.9.git20230216.

 gnu/build/hurd-boot.scm       |   3 +
 gnu/packages/base.scm         |  51 ++++++++++++----
 gnu/packages/commencement.scm |  66 ++++++++++----------
 gnu/packages/cross-base.scm   |  28 ++++++++-
 gnu/packages/hurd.scm         | 109 +++++++++++++++-------------------
 5 files changed, 151 insertions(+), 106 deletions(-)


base-commit: 849286ba66c96534bddc04df1a47d5692cbc977e
-- 
2.40.1





^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators.
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
@ 2023-05-22  9:04 ` Josselin Poiret via Guix-patches via
  2023-05-23 21:28   ` Janneke Nieuwenhuizen
  2023-05-22  9:04 ` [bug#63641] [PATCH 2/8] gnu: glibc/hurd-headers: Properly cross-build Josselin Poiret via Guix-patches via
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:04 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/build/hurd-boot.scm (set-hurd-device-translators): Set up urandom and
default-pager on boot.
---
 gnu/build/hurd-boot.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index 95c15907dd..14bfc5e809 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -188,6 +188,7 @@ (define* (set-hurd-device-translators #:optional (root "/"))
       ("servers/crash-suspend"   ("/hurd/crash" "--suspend"))
       ("servers/password"        ("/hurd/password"))
       ("servers/socket/1"        ("/hurd/pflocal"))
+      ("servers/default-pager"   ("/hurd/proxy-defpager"))
       ;; /servers/socket/2 and /26 are created by 'static-networking-service'.
       ;; XXX: Spawn pfinet without arguments on these nodes so that a DHCP
       ;; client has someone to talk to?
@@ -198,6 +199,8 @@ (define* (set-hurd-device-translators #:optional (root "/"))
       ("dev/null"    ("/hurd/null")                         #o666)
       ("dev/random"  ("/hurd/random"   "--seed-file" "/var/lib/random-seed")
                                                             #o644)
+      ("dev/urandom" ("/hurd/random"   "--seed-file" "/var/lib/random-seed"
+                      "--fast")                             #o644)
       ("dev/zero"    ("/hurd/storeio"  "--store-type=zero") #o666)
 
       ("dev/console" ("/hurd/term"     "/dev/console" "device" "console"))
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 2/8] gnu: glibc/hurd-headers: Properly cross-build.
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
  2023-05-22  9:04 ` [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators Josselin Poiret via Guix-patches via
@ 2023-05-22  9:04 ` Josselin Poiret via Guix-patches via
  2023-05-23 16:11   ` Janneke Nieuwenhuizen
  2023-05-22  9:04 ` [bug#63641] [PATCH 3/8] gnu: gnumach-headers: Cross-build without relying on x86 Josselin Poiret via Guix-patches via
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:04 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/base.scm (glibc/hurd-headers): Rely on cross-mig, and remove
hardcoded configure flag `--host=i586-pc-gnu`.
* gnu/packages/cross-base.scm (cross-kernel-headers*): Add `--host` and
`--build` configure flags.
---
 gnu/packages/base.scm       | 13 ++++++-------
 gnu/packages/cross-base.scm |  6 +++++-
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index d2f276c447..f944ab5d47 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1423,17 +1423,15 @@ (define-public glibc/hurd-headers
     (native-inputs
      (modify-inputs (package-native-inputs glibc)
        (prepend (if (%current-target-system)
-                    ;; XXX: When targeting i586-pc-gnu, we need a 32-bit MiG,
-                    ;; hence this hack.
-                    (package (inherit mig)
-                             (arguments `(#:system "i686-linux")))
-                    mig))))
+                   (let* ((cross-base (resolve-interface '(gnu packages cross-base)))
+                          (cross-mig (module-ref cross-base 'cross-mig)))
+                     (cross-mig (%current-target-system)))
+                   mig))))
     (arguments
      (substitute-keyword-arguments (package-arguments glibc)
        ;; We just pass the flags really needed to build the headers.
        ((#:configure-flags flags)
         `(list "--enable-add-ons"
-               "--host=i586-pc-gnu"
                ,@%glibc/hurd-configure-flags))
        ((#:phases _)
         '(modify-phases %standard-phases
@@ -1448,7 +1446,8 @@ (define-public glibc/hurd-headers
                  (close-port
                   (open-output-file
                    (string-append out "/include/gnu/stubs.h"))))))
-           (delete 'build)))))))                  ; nothing to build
+           (delete 'build)))))                  ; nothing to build
+    (supported-systems %hurd-systems)))
 
 (define-public tzdata
   (package
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 8d0b41180b..50e86083c3 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -492,7 +492,11 @@ (define* (cross-kernel-headers* target
                                               hurd "/include")))
                    (for-each (cut setenv <> cpath)
                              ',%gcc-cross-include-paths)
-                   #t)))))))
+                   #t)))))
+         ((#:configure-flags flags)
+          `(cons* ,(string-append "--build=" (%current-system))
+                  ,(string-append "--host=" target)
+                  ,flags))))
 
       (propagated-inputs `(("gnumach-headers" ,xgnumach-headers)
                            ("hurd-headers" ,xhurd-headers)))
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 3/8] gnu: gnumach-headers: Cross-build without relying on x86.
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
  2023-05-22  9:04 ` [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators Josselin Poiret via Guix-patches via
  2023-05-22  9:04 ` [bug#63641] [PATCH 2/8] gnu: glibc/hurd-headers: Properly cross-build Josselin Poiret via Guix-patches via
@ 2023-05-22  9:04 ` Josselin Poiret via Guix-patches via
  2023-05-23 21:32   ` Janneke Nieuwenhuizen
  2023-05-22  9:04 ` [bug#63641] [PATCH 4/8] gnu: hurd: Update supported systems Josselin Poiret via Guix-patches via
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:04 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/hurd.scm (gnumach-headers): Remove configure flags where we
say the builder is running x86.
* gnu/packages/cross-base.scm (cross-gnumach-headers): Work around limitation
of build system, by manually changing the target host_cpu without relying on
--host, because we don't have a working cross-compiler yet.
---
 gnu/packages/cross-base.scm | 18 ++++++++++++++++++
 gnu/packages/hurd.scm       | 10 ----------
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 50e86083c3..01c2295853 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -374,6 +374,24 @@ (define* (cross-gnumach-headers target
     (inherit gnumach-headers)
     (name (string-append (package-name gnumach-headers)
                          "-cross-" target))
+    (arguments
+     (substitute-keyword-arguments (package-arguments gnumach-headers)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            ;; Cheat by setting the host_cpu variable manually, since using
+            ;; --host= would require a working cross-compiler, which we don't
+            ;; have yet.
+            (add-after 'unpack 'substitute-host-cpu
+              (lambda _
+                (substitute* "configure.ac"
+                  (("AC_CANONICAL_HOST")
+                   #$(string-append
+                      "host_cpu="
+                      (match target
+                        ((? target-x86-32?)
+                         "i386")
+                        ((? target-x86-64?)
+                         "x86_64")))))))))))
     (native-inputs
      (modify-inputs (package-native-inputs gnumach-headers)
        (prepend xgcc xbinutils)))))
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 34c7c00f2d..a6f0f76009 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -88,16 +88,6 @@ (define-public gnumach-headers
            (lambda _
              (invoke "make" "install-data")))
          (delete 'build))
-
-       ;; GNU Mach supports only IA32 currently, so cheat so that we can at
-       ;; least install its headers.
-       ,@(if (%current-target-system)
-             '()
-             ;; See <http://lists.gnu.org/archive/html/bug-hurd/2015-06/msg00042.html>
-             ;; <http://lists.gnu.org/archive/html/guix-devel/2015-06/msg00716.html>
-             '(#:configure-flags '("--build=i586-pc-gnu"
-                                   "--host=i686-linux-gnu")))
-
        #:tests? #f))
     (native-inputs
      (list autoconf automake texinfo-4))
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 4/8] gnu: hurd: Update supported systems.
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
                   ` (2 preceding siblings ...)
  2023-05-22  9:04 ` [bug#63641] [PATCH 3/8] gnu: gnumach-headers: Cross-build without relying on x86 Josselin Poiret via Guix-patches via
@ 2023-05-22  9:04 ` Josselin Poiret via Guix-patches via
  2023-05-24  8:11   ` Janneke Nieuwenhuizen
  2023-05-22  9:04 ` [bug#63641] [PATCH 5/8] gnu: Add libc-for-target and glibc/hurd Josselin Poiret via Guix-patches via
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:04 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/hurd.scm (gnumach-headers, hurd-headers, hurd-minimal,
hurd-core-headers, gnumach): Update supported systems to %hurd-systems.
---
 gnu/packages/hurd.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index a6f0f76009..314e2b5a3c 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -91,6 +91,7 @@ (define-public gnumach-headers
        #:tests? #f))
     (native-inputs
      (list autoconf automake texinfo-4))
+    (supported-systems %hurd-systems)
     (home-page "https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html")
     (synopsis "GNU Mach kernel headers")
     (description
@@ -201,6 +202,7 @@ (define-public hurd-headers
                              "ac_cv_func_file_futimens=no")
 
          #:tests? #f))
+      (supported-systems %hurd-systems)
       (home-page "https://www.gnu.org/software/hurd/hurd.html")
       (synopsis "GNU Hurd headers")
       (description
@@ -236,6 +238,7 @@ (define-public hurd-minimal
 
                ;; Build libihash.
                (invoke "make" "-Clibihash" "libihash.a")))))))
+    (supported-systems %hurd-systems)
     (home-page "https://www.gnu.org/software/hurd/hurd.html")
     (synopsis "GNU Hurd libraries")
     (description
@@ -268,6 +271,7 @@ (define-public hurd-core-headers
                                      directories)
                         #t))))))
     (inputs (list gnumach-headers hurd-headers hurd-minimal))
+    (supported-systems %hurd-systems)
     (synopsis "Union of the Hurd headers and libraries")
     (description
      "This package contains the union of the Mach and Hurd headers and the
@@ -303,7 +307,7 @@ (define-public gnumach
                    mig)
            perl
            texinfo-4))
-    (supported-systems (cons "i686-linux" %hurd-systems))
+    (supported-systems %hurd-systems)
     (synopsis "Microkernel of the GNU system")
     (description
      "GNU Mach is the microkernel upon which a GNU Hurd system is based.")))
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 5/8] gnu: Add libc-for-target and glibc/hurd.
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
                   ` (3 preceding siblings ...)
  2023-05-22  9:04 ` [bug#63641] [PATCH 4/8] gnu: hurd: Update supported systems Josselin Poiret via Guix-patches via
@ 2023-05-22  9:04 ` Josselin Poiret via Guix-patches via
  2023-05-22  9:37   ` Josselin Poiret via Guix-patches via
  2023-05-22  9:04 ` [bug#63641] [PATCH 6/8] gnu: gnumach: Update to 1.8+git20221224 Josselin Poiret via Guix-patches via
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:04 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/base.scm (glibc/hurd, libc-for-target): New variables.
(glibc/hurd-headers): Use glibc/hurd.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
glibc-final): Use libc-for-target.
* gnu/packages/cross-base.scm (cross-libc/deprecated, cross-libc*): Use
libc-for-target.
---
 gnu/packages/base.scm         | 38 ++++++++++++++++++--
 gnu/packages/commencement.scm | 66 +++++++++++++++++------------------
 gnu/packages/cross-base.scm   |  4 +--
 3 files changed, 70 insertions(+), 38 deletions(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index f944ab5d47..59c9632551 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -75,6 +75,7 @@ (define-module (gnu packages base)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (glibc
+            libc-for-target
             make-ld-wrapper
             libiconv-if-needed))
 
@@ -1415,20 +1416,42 @@ (define-public which
 command.")
     (license gpl3+))) ; some files are under GPLv2+
 
+(define-public glibc/hurd
+  (package/inherit glibc
+    (name "glibc-hurd")
+    (version "2.37")
+    (source (origin
+            (method url-fetch)
+            (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
+            (sha256
+             (base32
+              "0hqsp4dzrjx0iga6jv0magjw26dh82pxlmk8yis5v0d127qyymr2"))
+            (patches (search-patches "glibc-ldd-powerpc.patch"
+                                     "glibc-2.37-ldd-x86_64.patch"
+                                     "glibc-dl-cache.patch"
+                                     "glibc-2.37-versioned-locpath.patch"
+                                     "glibc-reinstate-prlimit64-fallback.patch"
+                                     "glibc-supported-locales.patch"
+                                     "glibc-2.37-hurd-clock_t_centiseconds.patch"
+                                     "glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch"
+                                     "glibc-hurd-mach-print.patch"
+                                     "glibc-hurd-gettyent.patch"))))
+    (supported-systems %hurd-systems)))
+
 (define-public glibc/hurd-headers
-  (package (inherit glibc)
+  (package/inherit glibc/hurd
     (name "glibc-hurd-headers")
     (outputs '("out"))
     (propagated-inputs (list gnumach-headers hurd-headers))
     (native-inputs
-     (modify-inputs (package-native-inputs glibc)
+     (modify-inputs (package-native-inputs glibc/hurd)
        (prepend (if (%current-target-system)
                    (let* ((cross-base (resolve-interface '(gnu packages cross-base)))
                           (cross-mig (module-ref cross-base 'cross-mig)))
                      (cross-mig (%current-target-system)))
                    mig))))
     (arguments
-     (substitute-keyword-arguments (package-arguments glibc)
+     (substitute-keyword-arguments (package-arguments glibc/hurd)
        ;; We just pass the flags really needed to build the headers.
        ((#:configure-flags flags)
         `(list "--enable-add-ons"
@@ -1449,6 +1472,15 @@ (define-public glibc/hurd-headers
            (delete 'build)))))                  ; nothing to build
     (supported-systems %hurd-systems)))
 
+(define* (libc-for-target #:optional
+                          (target (or (%current-target-system)
+                                      (%current-system))))
+  (match target
+    ((? target-hurd?)
+     glibc/hurd)
+    (_
+     glibc)))
+
 (define-public tzdata
   (package
     (name "tzdata")
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index ab07fb37ab..a24c60ebf8 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2816,13 +2816,13 @@ (define (%boot1-inputs)
     ("binutils-cross" ,binutils-boot0)
     ,@(alist-delete "binutils" (%boot0-inputs))))
 
-(define glibc-final-with-bootstrap-bash
+(define/system-dependent glibc-final-with-bootstrap-bash
   ;; The final libc, "cross-built".  If everything went well, the resulting
   ;; store path has no dependencies.  Actually, the really-final libc is
   ;; built just below; the only difference is that this one uses the
   ;; bootstrap Bash.
   (package
-    (inherit glibc)
+    (inherit (libc-for-target))
     (name "glibc-intermediate")
     (outputs (delete "debug" (package-outputs glibc)))
     (source (bootstrap-origin (package-source glibc)))
@@ -2991,39 +2991,39 @@ (define gettext-boot0
                         (("^PROGRAMS =.*$")
                          "PROGRAMS =\n")))))))))
 
-(define glibc-final
+(define/system-dependent glibc-final
   ;; The final glibc, which embeds the statically-linked Bash built above.
   ;; Use 'package/inherit' so we get the 'replacement' of 'glibc', if any.
-  (package/inherit
-   glibc
-   (name "glibc")
-   (source (bootstrap-origin (package-source glibc)))
-   (inputs `(("static-bash" ,static-bash-for-glibc)
-             ,@(alist-delete
-                "static-bash"
-                (package-inputs glibc-final-with-bootstrap-bash))))
-
-   ;; This time we need 'msgfmt' to install all the libc.mo files.
-   (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
-                    ("gettext" ,gettext-boot0)))
-
-   (propagated-inputs
-    (package-propagated-inputs glibc-final-with-bootstrap-bash))
-
-   ;; The final libc only refers to itself, but the 'debug' output contains
-   ;; references to GCC-BOOT0 and to the Linux headers.  XXX: Would be great
-   ;; if 'allowed-references' were per-output.
-   (arguments
-    `(#:allowed-references
-      (,(gexp-input gcc-boot0 "lib")
-       ,(kernel-headers-boot0)
-       ,static-bash-for-glibc
-       ,@(if (hurd-system?)
-             `(,gnumach-headers-boot0
-               ,hurd-headers-boot0)
-             '())
-       ,@(package-outputs glibc-final-with-bootstrap-bash))
-      ,@(package-arguments glibc-final-with-bootstrap-bash)))))
+  (let ((libc (libc-for-target)))
+    (package/inherit libc
+      (name "glibc")
+      (source (bootstrap-origin (package-source glibc)))
+      (inputs `(("static-bash" ,static-bash-for-glibc)
+                ,@(alist-delete
+                   "static-bash"
+                   (package-inputs glibc-final-with-bootstrap-bash))))
+
+      ;; This time we need 'msgfmt' to install all the libc.mo files.
+      (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
+                       ("gettext" ,gettext-boot0)))
+
+      (propagated-inputs
+       (package-propagated-inputs glibc-final-with-bootstrap-bash))
+
+      ;; The final libc only refers to itself, but the 'debug' output contains
+      ;; references to GCC-BOOT0 and to the Linux headers.  XXX: Would be great
+      ;; if 'allowed-references' were per-output.
+      (arguments
+       `(#:allowed-references
+         (,(gexp-input gcc-boot0 "lib")
+          ,(kernel-headers-boot0)
+          ,static-bash-for-glibc
+          ,@(if (hurd-system?)
+                `(,gnumach-headers-boot0
+                  ,hurd-headers-boot0)
+                '())
+          ,@(package-outputs glibc-final-with-bootstrap-bash))
+         ,@(package-arguments glibc-final-with-bootstrap-bash))))))
 
 (define/system-dependent gcc-boot0-wrapped
   ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 01c2295853..b2823c73c5 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -577,7 +577,7 @@ (define* (cross-libc . args)
 
 (define* (cross-libc/deprecated target
                                 #:optional
-                                (libc glibc)
+                                (libc (libc-for-target target))
                                 (xgcc (cross-gcc target))
                                 (xbinutils (cross-binutils target))
                                 (xheaders (cross-kernel-headers target)))
@@ -590,7 +590,7 @@ (define* (cross-libc/deprecated target
 
 (define* (cross-libc* target
                       #:key
-                      (libc glibc)
+                      (libc (libc-for-target target))
                       (xgcc (cross-gcc target))
                       (xbinutils (cross-binutils target))
                       (xheaders (cross-kernel-headers target)))
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 6/8] gnu: gnumach: Update to 1.8+git20221224.
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
                   ` (4 preceding siblings ...)
  2023-05-22  9:04 ` [bug#63641] [PATCH 5/8] gnu: Add libc-for-target and glibc/hurd Josselin Poiret via Guix-patches via
@ 2023-05-22  9:04 ` Josselin Poiret via Guix-patches via
  2023-05-24  8:12   ` Janneke Nieuwenhuizen
  2023-05-22  9:04 ` [bug#63641] [PATCH 7/8] gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3 Josselin Poiret via Guix-patches via
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:04 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/hurd.scm (gnumach-headers): Update to 1.8+git20221224.
---
 gnu/packages/hurd.scm | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 314e2b5a3c..d44962ae55 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -68,7 +68,7 @@ (define (hurd-source-url version)
 (define-public gnumach-headers
   (package
     (name "gnumach-headers")
-    (version "1.8+git20220827") ;; This is an upstream tag
+    (version "1.8+git20221224") ;; This is an upstream tag
     (source
      (origin
        (method git-fetch)
@@ -78,8 +78,7 @@ (define-public gnumach-headers
        (file-name (git-file-name "gnumach" version))
        (sha256
         (base32
-         "07qlaf8vw029y7xdnhjyiiyn788zjzwmyzj79inz7idpswqsnyhf"))
-       (patches (search-patches "gnumach-add-missing-const_mach_port_name_array_t-type.patch"))))
+         "0f49zqxf64ds75rmskizpybl2mw7sxs05k59gjp3pgspvr87w7gs"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 7/8] gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3.
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
                   ` (5 preceding siblings ...)
  2023-05-22  9:04 ` [bug#63641] [PATCH 6/8] gnu: gnumach: Update to 1.8+git20221224 Josselin Poiret via Guix-patches via
@ 2023-05-22  9:04 ` Josselin Poiret via Guix-patches via
  2023-05-23 12:17   ` Janneke Nieuwenhuizen
  2023-05-22  9:04 ` [bug#63641] [PATCH 8/8] gnu: hurd: Update to v0.9.git20230216 Josselin Poiret via Guix-patches via
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:04 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/hurd.scm (mig): Update to
04bfe7a91223ba15d868f7165e49328b1c6e86c3.
---
 gnu/packages/hurd.scm | 74 +++++++++++++++++++++----------------------
 1 file changed, 36 insertions(+), 38 deletions(-)

diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index d44962ae55..61d8774075 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -98,49 +98,47 @@ (define-public gnumach-headers
     (license gpl2+)))
 
 (define-public mig
-  (package
-    (name "mig")
-    (version "1.8+git20220827")
-    (source (origin
-              (method url-fetch)
-              ;; XXX: Version 2.35 of glibc can only be built with an
-              ;; unreleased version of MiG:
-              ;; <https://lists.gnu.org/archive/html/bug-hurd/2023-03/msg00025.html>.
-              ;; It cannot be fetched from Git though, as the extra dependency
-              ;; on Autoconf/Automake would complicate bootstrapping.
-              (uri (string-append "mirror://gnu/guix/mirror/mig-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "163d37s9lscd6zxyfng421m9nl857464mgjj90xsrcl5ykbng5p2"))
-              (patches (search-patches "mig-cpu.h-generation.patch"))))
-    (build-system gnu-build-system)
-    ;; Flex is needed both at build and run time.
-    (inputs (list gnumach-headers flex))
-    (native-inputs (list flex bison))
-    (arguments
-     (list #:tests? #f
-           #:phases
-           #~(modify-phases %standard-phases
-               (add-after 'install 'avoid-perl-dependency
-                 (lambda* (#:key build inputs outputs #:allow-other-keys)
-                   (let* ((out (assoc-ref outputs "out"))
-                          (bin (string-append out "/bin")))
-                     ;; By default 'mig' (or 'TARGET-mig') uses Perl to
-                     ;; compute 'libexecdir_rel'.  Avoid it.
-                     (substitute* (find-files bin "mig$")
-                       (("^libexecdir_rel=.*")
-                        "libexecdir_rel=../libexec\n"))))))))
-    (home-page "https://www.gnu.org/software/hurd/microkernel/mach/mig/gnu_mig.html")
-    (synopsis "Mach 3.0 interface generator for the Hurd")
-    (description
-     "GNU MIG is the GNU distribution of the Mach 3.0 interface generator
+  (let ((revision "1")
+        (commit "04bfe7a91223ba15d868f7165e49328b1c6e86c3"))
+    (package
+      (name "mig")
+      (version (git-version "1.8" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.savannah.gnu.org/git/hurd/mig.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0zw2w3hnz76f9602znshciqabylmvavx0h04y01qjlmhd9wh8iw5"))))
+      (build-system gnu-build-system)
+      ;; Flex is needed both at build and run time.
+      (inputs (list gnumach-headers flex))
+      (native-inputs (list autoconf automake flex bison))
+      (arguments
+       (list #:tests? #f
+             #:phases
+             #~(modify-phases %standard-phases
+                 (add-after 'install 'avoid-perl-dependency
+                   (lambda* (#:key build inputs outputs #:allow-other-keys)
+                     (let* ((out (assoc-ref outputs "out"))
+                            (bin (string-append out "/bin")))
+                       ;; By default 'mig' (or 'TARGET-mig') uses Perl to
+                       ;; compute 'libexecdir_rel'.  Avoid it.
+                       (substitute* (find-files bin "mig$")
+                         (("^libexecdir_rel=.*")
+                          "libexecdir_rel=../libexec\n"))))))))
+      (home-page "https://www.gnu.org/software/hurd/microkernel/mach/mig/gnu_mig.html")
+      (synopsis "Mach 3.0 interface generator for the Hurd")
+      (description
+       "GNU MIG is the GNU distribution of the Mach 3.0 interface generator
 MIG, as maintained by the GNU Hurd developers for the GNU project.
 You need this tool to compile the GNU Mach and GNU Hurd distributions,
 and to compile the GNU C library for the Hurd.  Also, you will need it
 for other software in the GNU system that uses Mach-based inter-process
 communication.")
-    (license gpl2+)))
+      (license gpl2+))))
 
 (define-public hurd-headers
   ;; This commit is now slightly behind 0.9.git20220818 as this one needs a
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 8/8] gnu: hurd: Update to v0.9.git20230216.
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
                   ` (6 preceding siblings ...)
  2023-05-22  9:04 ` [bug#63641] [PATCH 7/8] gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3 Josselin Poiret via Guix-patches via
@ 2023-05-22  9:04 ` Josselin Poiret via Guix-patches via
  2023-05-24  8:48   ` [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Ludovic Courtès
  2023-05-23 12:17 ` Janneke Nieuwenhuizen
  2023-07-13 17:12 ` Josselin Poiret via Guix-patches via
  9 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:04 UTC (permalink / raw)
  To: 63641; +Cc: Josselin Poiret

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/hurd.scm (hurd-headers): Update to v0.9.git20230216.
---
 gnu/packages/hurd.scm | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 61d8774075..a0133482b7 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -144,10 +144,10 @@ (define-public hurd-headers
   ;; This commit is now slightly behind 0.9.git20220818 as this one needs a
   ;; newer glibc
   (let ((revision "2")
-        (commit "3ff70531ee672f431dbb0c11f286bfe85dce98fc"))
+        (commit "v0.9.git20230216"))
     (package
       (name "hurd-headers")
-      (version (git-version "0.9" revision commit))
+      (version commit)
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -155,11 +155,8 @@ (define-public hurd-headers
                       (commit commit)))
                 (sha256
                  (base32
-                  "1jb9f2h2v4lf6acsji1c12aqg3pixkvjdyb4q6axkd8jp22fdgc0"))
-                (file-name (git-file-name name version))
-                (patches (search-patches "hurd-add-without-rump-configure-option.patch"
-                                         "hurd-fix-types-of-read-write-and-readables-methods.patch"
-                                         "hurd-fix-types-of-read-write-and-readables-methods-2.patch"))))
+                  "0jm1dnqkx4kdwmby0z5w0yqp9m5qp4hbxd4jxlyhiqm8nkw9mkvv"))
+                (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (native-inputs
        (list autoconf
@@ -196,7 +193,8 @@ (define-public hurd-headers
                              "ac_cv_func_exec_exec_paths=no"
                              "ac_cv_func__hurd_exec_paths=no"
                              "ac_cv_func__hurd_libc_proc_init=no"
-                             "ac_cv_func_file_futimens=no")
+                             "ac_cv_func_file_futimens=no"
+                             "ac_cv_lib_acpica_acpi_init=no")
 
          #:tests? #f))
       (supported-systems %hurd-systems)
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 5/8] gnu: Add libc-for-target and glibc/hurd.
  2023-05-22  9:04 ` [bug#63641] [PATCH 5/8] gnu: Add libc-for-target and glibc/hurd Josselin Poiret via Guix-patches via
@ 2023-05-22  9:37   ` Josselin Poiret via Guix-patches via
  2023-05-22  9:42     ` [bug#63641] [PATCH v2 " Josselin Poiret via Guix-patches via
  0 siblings, 1 reply; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:37 UTC (permalink / raw)
  To: 63641

[-- Attachment #1: Type: text/plain, Size: 9182 bytes --]

Hum, seems I forgot to add the corresponding patches.  Will send a
partial v2 of this one, my bad.

Josselin Poiret <dev@jpoiret.xyz> writes:

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/base.scm (glibc/hurd, libc-for-target): New variables.
> (glibc/hurd-headers): Use glibc/hurd.
> * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
> glibc-final): Use libc-for-target.
> * gnu/packages/cross-base.scm (cross-libc/deprecated, cross-libc*): Use
> libc-for-target.
> ---
>  gnu/packages/base.scm         | 38 ++++++++++++++++++--
>  gnu/packages/commencement.scm | 66 +++++++++++++++++------------------
>  gnu/packages/cross-base.scm   |  4 +--
>  3 files changed, 70 insertions(+), 38 deletions(-)
>
> diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
> index f944ab5d47..59c9632551 100644
> --- a/gnu/packages/base.scm
> +++ b/gnu/packages/base.scm
> @@ -75,6 +75,7 @@ (define-module (gnu packages base)
>    #:use-module (srfi srfi-1)
>    #:use-module (srfi srfi-26)
>    #:export (glibc
> +            libc-for-target
>              make-ld-wrapper
>              libiconv-if-needed))
>  
> @@ -1415,20 +1416,42 @@ (define-public which
>  command.")
>      (license gpl3+))) ; some files are under GPLv2+
>  
> +(define-public glibc/hurd
> +  (package/inherit glibc
> +    (name "glibc-hurd")
> +    (version "2.37")
> +    (source (origin
> +            (method url-fetch)
> +            (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
> +            (sha256
> +             (base32
> +              "0hqsp4dzrjx0iga6jv0magjw26dh82pxlmk8yis5v0d127qyymr2"))
> +            (patches (search-patches "glibc-ldd-powerpc.patch"
> +                                     "glibc-2.37-ldd-x86_64.patch"
> +                                     "glibc-dl-cache.patch"
> +                                     "glibc-2.37-versioned-locpath.patch"
> +                                     "glibc-reinstate-prlimit64-fallback.patch"
> +                                     "glibc-supported-locales.patch"
> +                                     "glibc-2.37-hurd-clock_t_centiseconds.patch"
> +                                     "glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch"
> +                                     "glibc-hurd-mach-print.patch"
> +                                     "glibc-hurd-gettyent.patch"))))
> +    (supported-systems %hurd-systems)))
> +
>  (define-public glibc/hurd-headers
> -  (package (inherit glibc)
> +  (package/inherit glibc/hurd
>      (name "glibc-hurd-headers")
>      (outputs '("out"))
>      (propagated-inputs (list gnumach-headers hurd-headers))
>      (native-inputs
> -     (modify-inputs (package-native-inputs glibc)
> +     (modify-inputs (package-native-inputs glibc/hurd)
>         (prepend (if (%current-target-system)
>                     (let* ((cross-base (resolve-interface '(gnu packages cross-base)))
>                            (cross-mig (module-ref cross-base 'cross-mig)))
>                       (cross-mig (%current-target-system)))
>                     mig))))
>      (arguments
> -     (substitute-keyword-arguments (package-arguments glibc)
> +     (substitute-keyword-arguments (package-arguments glibc/hurd)
>         ;; We just pass the flags really needed to build the headers.
>         ((#:configure-flags flags)
>          `(list "--enable-add-ons"
> @@ -1449,6 +1472,15 @@ (define-public glibc/hurd-headers
>             (delete 'build)))))                  ; nothing to build
>      (supported-systems %hurd-systems)))
>  
> +(define* (libc-for-target #:optional
> +                          (target (or (%current-target-system)
> +                                      (%current-system))))
> +  (match target
> +    ((? target-hurd?)
> +     glibc/hurd)
> +    (_
> +     glibc)))
> +
>  (define-public tzdata
>    (package
>      (name "tzdata")
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index ab07fb37ab..a24c60ebf8 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -2816,13 +2816,13 @@ (define (%boot1-inputs)
>      ("binutils-cross" ,binutils-boot0)
>      ,@(alist-delete "binutils" (%boot0-inputs))))
>  
> -(define glibc-final-with-bootstrap-bash
> +(define/system-dependent glibc-final-with-bootstrap-bash
>    ;; The final libc, "cross-built".  If everything went well, the resulting
>    ;; store path has no dependencies.  Actually, the really-final libc is
>    ;; built just below; the only difference is that this one uses the
>    ;; bootstrap Bash.
>    (package
> -    (inherit glibc)
> +    (inherit (libc-for-target))
>      (name "glibc-intermediate")
>      (outputs (delete "debug" (package-outputs glibc)))
>      (source (bootstrap-origin (package-source glibc)))
> @@ -2991,39 +2991,39 @@ (define gettext-boot0
>                          (("^PROGRAMS =.*$")
>                           "PROGRAMS =\n")))))))))
>  
> -(define glibc-final
> +(define/system-dependent glibc-final
>    ;; The final glibc, which embeds the statically-linked Bash built above.
>    ;; Use 'package/inherit' so we get the 'replacement' of 'glibc', if any.
> -  (package/inherit
> -   glibc
> -   (name "glibc")
> -   (source (bootstrap-origin (package-source glibc)))
> -   (inputs `(("static-bash" ,static-bash-for-glibc)
> -             ,@(alist-delete
> -                "static-bash"
> -                (package-inputs glibc-final-with-bootstrap-bash))))
> -
> -   ;; This time we need 'msgfmt' to install all the libc.mo files.
> -   (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
> -                    ("gettext" ,gettext-boot0)))
> -
> -   (propagated-inputs
> -    (package-propagated-inputs glibc-final-with-bootstrap-bash))
> -
> -   ;; The final libc only refers to itself, but the 'debug' output contains
> -   ;; references to GCC-BOOT0 and to the Linux headers.  XXX: Would be great
> -   ;; if 'allowed-references' were per-output.
> -   (arguments
> -    `(#:allowed-references
> -      (,(gexp-input gcc-boot0 "lib")
> -       ,(kernel-headers-boot0)
> -       ,static-bash-for-glibc
> -       ,@(if (hurd-system?)
> -             `(,gnumach-headers-boot0
> -               ,hurd-headers-boot0)
> -             '())
> -       ,@(package-outputs glibc-final-with-bootstrap-bash))
> -      ,@(package-arguments glibc-final-with-bootstrap-bash)))))
> +  (let ((libc (libc-for-target)))
> +    (package/inherit libc
> +      (name "glibc")
> +      (source (bootstrap-origin (package-source glibc)))
> +      (inputs `(("static-bash" ,static-bash-for-glibc)
> +                ,@(alist-delete
> +                   "static-bash"
> +                   (package-inputs glibc-final-with-bootstrap-bash))))
> +
> +      ;; This time we need 'msgfmt' to install all the libc.mo files.
> +      (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
> +                       ("gettext" ,gettext-boot0)))
> +
> +      (propagated-inputs
> +       (package-propagated-inputs glibc-final-with-bootstrap-bash))
> +
> +      ;; The final libc only refers to itself, but the 'debug' output contains
> +      ;; references to GCC-BOOT0 and to the Linux headers.  XXX: Would be great
> +      ;; if 'allowed-references' were per-output.
> +      (arguments
> +       `(#:allowed-references
> +         (,(gexp-input gcc-boot0 "lib")
> +          ,(kernel-headers-boot0)
> +          ,static-bash-for-glibc
> +          ,@(if (hurd-system?)
> +                `(,gnumach-headers-boot0
> +                  ,hurd-headers-boot0)
> +                '())
> +          ,@(package-outputs glibc-final-with-bootstrap-bash))
> +         ,@(package-arguments glibc-final-with-bootstrap-bash))))))
>  
>  (define/system-dependent gcc-boot0-wrapped
>    ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
> diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
> index 01c2295853..b2823c73c5 100644
> --- a/gnu/packages/cross-base.scm
> +++ b/gnu/packages/cross-base.scm
> @@ -577,7 +577,7 @@ (define* (cross-libc . args)
>  
>  (define* (cross-libc/deprecated target
>                                  #:optional
> -                                (libc glibc)
> +                                (libc (libc-for-target target))
>                                  (xgcc (cross-gcc target))
>                                  (xbinutils (cross-binutils target))
>                                  (xheaders (cross-kernel-headers target)))
> @@ -590,7 +590,7 @@ (define* (cross-libc/deprecated target
>  
>  (define* (cross-libc* target
>                        #:key
> -                      (libc glibc)
> +                      (libc (libc-for-target target))
>                        (xgcc (cross-gcc target))
>                        (xbinutils (cross-binutils target))
>                        (xheaders (cross-kernel-headers target)))
> -- 
> 2.40.1
>

-- 
Josselin Poiret

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 682 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd.
  2023-05-22  9:37   ` Josselin Poiret via Guix-patches via
@ 2023-05-22  9:42     ` Josselin Poiret via Guix-patches via
  2023-05-24  8:11       ` Janneke Nieuwenhuizen
                         ` (2 more replies)
  0 siblings, 3 replies; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-05-22  9:42 UTC (permalink / raw)
  To: Josselin Poiret, 63641

From: Josselin Poiret <dev@jpoiret.xyz>

* gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch
* gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
* gnu/packages/patches/glibc-2.37-ldd-x86_64.patch
* gnu/packages/patches/glibc-2.37-versioned-locpath.patch: New patches.
* gnu/local.mk (dist_patch_DATA): Register them.

* gnu/packages/base.scm (glibc/hurd, libc-for-target): New variables.
(glibc/hurd-headers): Use glibc/hurd.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
glibc-final): Use libc-for-target.
* gnu/packages/cross-base.scm (cross-libc/deprecated, cross-libc*): Use
libc-for-target.
---
 gnu/local.mk                                  |   4 +
 gnu/packages/base.scm                         |  38 ++-
 gnu/packages/commencement.scm                 |  66 ++---
 gnu/packages/cross-base.scm                   |   4 +-
 ...glibc-2.37-hurd-clock_t_centiseconds.patch |  59 +++++
 ...7-hurd-local-clock_gettime_MONOTONIC.patch | 133 ++++++++++
 .../patches/glibc-2.37-ldd-x86_64.patch       |   8 +
 .../glibc-2.37-versioned-locpath.patch        | 247 ++++++++++++++++++
 8 files changed, 521 insertions(+), 38 deletions(-)
 create mode 100644 gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch
 create mode 100644 gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
 create mode 100644 gnu/packages/patches/glibc-2.37-ldd-x86_64.patch
 create mode 100644 gnu/packages/patches/glibc-2.37-versioned-locpath.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 17b07a1102..2a09d44506 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1248,6 +1248,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch	\
   %D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch	\
   %D%/packages/patches/glibc-2.31-hurd-clock_gettime_monotonic.patch	\
+  %D%/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch	\
+  %D%/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch	\
+  %D%/packages/patches/glibc-2.37-ldd-x86_64.patch	\
+  %D%/packages/patches/glibc-2.37-versioned-locpath.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		\
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index f944ab5d47..59c9632551 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -75,6 +75,7 @@ (define-module (gnu packages base)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (glibc
+            libc-for-target
             make-ld-wrapper
             libiconv-if-needed))
 
@@ -1415,20 +1416,42 @@ (define-public which
 command.")
     (license gpl3+))) ; some files are under GPLv2+
 
+(define-public glibc/hurd
+  (package/inherit glibc
+    (name "glibc-hurd")
+    (version "2.37")
+    (source (origin
+            (method url-fetch)
+            (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
+            (sha256
+             (base32
+              "0hqsp4dzrjx0iga6jv0magjw26dh82pxlmk8yis5v0d127qyymr2"))
+            (patches (search-patches "glibc-ldd-powerpc.patch"
+                                     "glibc-2.37-ldd-x86_64.patch"
+                                     "glibc-dl-cache.patch"
+                                     "glibc-2.37-versioned-locpath.patch"
+                                     "glibc-reinstate-prlimit64-fallback.patch"
+                                     "glibc-supported-locales.patch"
+                                     "glibc-2.37-hurd-clock_t_centiseconds.patch"
+                                     "glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch"
+                                     "glibc-hurd-mach-print.patch"
+                                     "glibc-hurd-gettyent.patch"))))
+    (supported-systems %hurd-systems)))
+
 (define-public glibc/hurd-headers
-  (package (inherit glibc)
+  (package/inherit glibc/hurd
     (name "glibc-hurd-headers")
     (outputs '("out"))
     (propagated-inputs (list gnumach-headers hurd-headers))
     (native-inputs
-     (modify-inputs (package-native-inputs glibc)
+     (modify-inputs (package-native-inputs glibc/hurd)
        (prepend (if (%current-target-system)
                    (let* ((cross-base (resolve-interface '(gnu packages cross-base)))
                           (cross-mig (module-ref cross-base 'cross-mig)))
                      (cross-mig (%current-target-system)))
                    mig))))
     (arguments
-     (substitute-keyword-arguments (package-arguments glibc)
+     (substitute-keyword-arguments (package-arguments glibc/hurd)
        ;; We just pass the flags really needed to build the headers.
        ((#:configure-flags flags)
         `(list "--enable-add-ons"
@@ -1449,6 +1472,15 @@ (define-public glibc/hurd-headers
            (delete 'build)))))                  ; nothing to build
     (supported-systems %hurd-systems)))
 
+(define* (libc-for-target #:optional
+                          (target (or (%current-target-system)
+                                      (%current-system))))
+  (match target
+    ((? target-hurd?)
+     glibc/hurd)
+    (_
+     glibc)))
+
 (define-public tzdata
   (package
     (name "tzdata")
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index ab07fb37ab..a24c60ebf8 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2816,13 +2816,13 @@ (define (%boot1-inputs)
     ("binutils-cross" ,binutils-boot0)
     ,@(alist-delete "binutils" (%boot0-inputs))))
 
-(define glibc-final-with-bootstrap-bash
+(define/system-dependent glibc-final-with-bootstrap-bash
   ;; The final libc, "cross-built".  If everything went well, the resulting
   ;; store path has no dependencies.  Actually, the really-final libc is
   ;; built just below; the only difference is that this one uses the
   ;; bootstrap Bash.
   (package
-    (inherit glibc)
+    (inherit (libc-for-target))
     (name "glibc-intermediate")
     (outputs (delete "debug" (package-outputs glibc)))
     (source (bootstrap-origin (package-source glibc)))
@@ -2991,39 +2991,39 @@ (define gettext-boot0
                         (("^PROGRAMS =.*$")
                          "PROGRAMS =\n")))))))))
 
-(define glibc-final
+(define/system-dependent glibc-final
   ;; The final glibc, which embeds the statically-linked Bash built above.
   ;; Use 'package/inherit' so we get the 'replacement' of 'glibc', if any.
-  (package/inherit
-   glibc
-   (name "glibc")
-   (source (bootstrap-origin (package-source glibc)))
-   (inputs `(("static-bash" ,static-bash-for-glibc)
-             ,@(alist-delete
-                "static-bash"
-                (package-inputs glibc-final-with-bootstrap-bash))))
-
-   ;; This time we need 'msgfmt' to install all the libc.mo files.
-   (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
-                    ("gettext" ,gettext-boot0)))
-
-   (propagated-inputs
-    (package-propagated-inputs glibc-final-with-bootstrap-bash))
-
-   ;; The final libc only refers to itself, but the 'debug' output contains
-   ;; references to GCC-BOOT0 and to the Linux headers.  XXX: Would be great
-   ;; if 'allowed-references' were per-output.
-   (arguments
-    `(#:allowed-references
-      (,(gexp-input gcc-boot0 "lib")
-       ,(kernel-headers-boot0)
-       ,static-bash-for-glibc
-       ,@(if (hurd-system?)
-             `(,gnumach-headers-boot0
-               ,hurd-headers-boot0)
-             '())
-       ,@(package-outputs glibc-final-with-bootstrap-bash))
-      ,@(package-arguments glibc-final-with-bootstrap-bash)))))
+  (let ((libc (libc-for-target)))
+    (package/inherit libc
+      (name "glibc")
+      (source (bootstrap-origin (package-source glibc)))
+      (inputs `(("static-bash" ,static-bash-for-glibc)
+                ,@(alist-delete
+                   "static-bash"
+                   (package-inputs glibc-final-with-bootstrap-bash))))
+
+      ;; This time we need 'msgfmt' to install all the libc.mo files.
+      (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
+                       ("gettext" ,gettext-boot0)))
+
+      (propagated-inputs
+       (package-propagated-inputs glibc-final-with-bootstrap-bash))
+
+      ;; The final libc only refers to itself, but the 'debug' output contains
+      ;; references to GCC-BOOT0 and to the Linux headers.  XXX: Would be great
+      ;; if 'allowed-references' were per-output.
+      (arguments
+       `(#:allowed-references
+         (,(gexp-input gcc-boot0 "lib")
+          ,(kernel-headers-boot0)
+          ,static-bash-for-glibc
+          ,@(if (hurd-system?)
+                `(,gnumach-headers-boot0
+                  ,hurd-headers-boot0)
+                '())
+          ,@(package-outputs glibc-final-with-bootstrap-bash))
+         ,@(package-arguments glibc-final-with-bootstrap-bash))))))
 
 (define/system-dependent gcc-boot0-wrapped
   ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 01c2295853..b2823c73c5 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -577,7 +577,7 @@ (define* (cross-libc . args)
 
 (define* (cross-libc/deprecated target
                                 #:optional
-                                (libc glibc)
+                                (libc (libc-for-target target))
                                 (xgcc (cross-gcc target))
                                 (xbinutils (cross-binutils target))
                                 (xheaders (cross-kernel-headers target)))
@@ -590,7 +590,7 @@ (define* (cross-libc/deprecated target
 
 (define* (cross-libc* target
                       #:key
-                      (libc glibc)
+                      (libc (libc-for-target target))
                       (xgcc (cross-gcc target))
                       (xbinutils (cross-binutils target))
                       (xheaders (cross-kernel-headers target)))
diff --git a/gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch b/gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch
new file mode 100644
index 0000000000..27db59ec40
--- /dev/null
+++ b/gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch
@@ -0,0 +1,59 @@
+Some applications assume centisecond precision, or at most millisecond precision
+(e.g. guile).  This is a work-around for them.
+
+---
+ getclktck.c |    5 ++---
+ setitimer.c |    2 +-
+ times.c     |    2 +-
+ 4 files changed, 8 insertions(+), 9 deletions(-)
+commit d57f2f9b4bd007846af2fb4217486ea572579010
+Author: Richard Braun <rbraun@sceen.net>
+Date:   Tue Aug 27 11:35:31 2013 +0200
+
+    Express CPU time (clock_t of times(2)) in centiseconds
+
+diff --git a/sysdeps/mach/hurd/getclktck.c b/sysdeps/mach/hurd/getclktck.c
+index 69be2cc..5f7d946 100644
+--- a/sysdeps/mach/hurd/getclktck.c
++++ b/sysdeps/mach/hurd/getclktck.c
+@@ -18,12 +18,11 @@
+ 
+ #include <time.h>
+ 
+-/* Return frequency of `times'.
+-   Since Mach reports CPU times in microseconds, we always use 1 million.  */
++/* Return frequency of `times'.  */
+ int
+ __getclktck (void)
+ {
+-  return 1000000;
++  return 100;
+ }
+ 
+ /* Before glibc 2.2, the Hurd actually did this differently, so we
+diff --git a/sysdeps/mach/hurd/setitimer.c b/sysdeps/mach/hurd/setitimer.c
+index 39b6b16..4992c89 100644
+--- a/sysdeps/mach/hurd/setitimer.c
++++ b/sysdeps/mach/hurd/setitimer.c
+@@ -42,7 +42,7 @@ quantize_timeval (struct timeval *tv)
+   static time_t quantum = -1;
+ 
+   if (quantum == -1)
+-    quantum = 1000000 / __getclktck ();
++    quantum = 100 / __getclktck ();
+ 
+   tv->tv_usec = ((tv->tv_usec + (quantum - 1)) / quantum) * quantum;
+   if (tv->tv_usec >= 1000000)
+diff --git a/sysdeps/mach/hurd/times.c b/sysdeps/mach/hurd/times.c
+index 9e13a75..593c33a 100644
+--- a/sysdeps/mach/hurd/times.c
++++ b/sysdeps/mach/hurd/times.c
+@@ -29,7 +29,7 @@
+ static inline clock_t
+ clock_from_time_value (const time_value_t *t)
+ {
+-  return t->seconds * 1000000 + t->microseconds;
++  return t->seconds * 100 + t->microseconds / 10000;
+ }
+ 
+ /* Store the CPU time used by this process and all its
diff --git a/gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch b/gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
new file mode 100644
index 0000000000..3207a94550
--- /dev/null
+++ b/gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
@@ -0,0 +1,133 @@
+Use the realtime clock for the monotonic clock. This is of course not a proper
+implementation (which is being done in Mach), but will permit to fix at least
+the iceweasel stack.
+
+vlc however doesn't build when _POSIX_CLOCK_SELECTION is enabled but
+_POSIX_TIMERS is not, and they refuse to fix that (see #765578), so disable the
+former.
+
+---
+ sysdeps/mach/hurd/bits/posix_opt.h |    2 +-
+ sysdeps/unix/clock_gettime.c       |    1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+Index: glibc-2.27/sysdeps/mach/clock_gettime.c
+===================================================================
+--- glibc-2.27.orig/sysdeps/mach/clock_gettime.c
++++ glibc-2.27/sysdeps/mach/clock_gettime.c
+@@ -31,6 +31,10 @@ __clock_gettime (clockid_t clock_id, str
+   switch (clock_id) {
+ 
+     case CLOCK_REALTIME:
++    case CLOCK_MONOTONIC:
++    case CLOCK_MONOTONIC_RAW:
++    case CLOCK_REALTIME_COARSE:
++    case CLOCK_MONOTONIC_COARSE:
+       {
+ 	/* __host_get_time can only fail if passed an invalid host_t.
+ 	   __mach_host_self could theoretically fail (producing an
+Index: glibc-2.27/rt/timer_create.c
+===================================================================
+--- glibc-2.27.orig/rt/timer_create.c
++++ glibc-2.27/rt/timer_create.c
+@@ -48,7 +48,7 @@ timer_create (clockid_t clock_id, struct
+       return -1;
+     }
+ 
+-  if (clock_id != CLOCK_REALTIME)
++  if (clock_id != CLOCK_REALTIME && clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_MONOTONIC_RAW && clock_id != CLOCK_REALTIME_COARSE && clock_id != CLOCK_MONOTONIC_COARSE)
+     {
+       __set_errno (EINVAL);
+       return -1;
+Index: glibc-2.27/sysdeps/mach/hurd/bits/posix_opt.h
+===================================================================
+--- glibc-2.27.orig/sysdeps/mach/hurd/bits/posix_opt.h
++++ glibc-2.27/sysdeps/mach/hurd/bits/posix_opt.h
+@@ -163,10 +163,10 @@
+ #define _POSIX_THREAD_PROCESS_SHARED	-1
+ 
+ /* The monotonic clock might be available.  */
+-#define _POSIX_MONOTONIC_CLOCK	0
++#define _POSIX_MONOTONIC_CLOCK	200809L
+ 
+-/* The clock selection interfaces are available.  */
+-#define _POSIX_CLOCK_SELECTION	200809L
++/* The clock selection interfaces are not really available yet.  */
++#define _POSIX_CLOCK_SELECTION	-1
+ 
+ /* Advisory information interfaces could be available in future.  */
+ #define _POSIX_ADVISORY_INFO	0
+Index: glibc-upstream/sysdeps/posix/clock_getres.c
+===================================================================
+--- glibc-upstream.orig/sysdeps/posix/clock_getres.c
++++ glibc-upstream/sysdeps/posix/clock_getres.c
+@@ -52,6 +52,10 @@ __clock_getres (clockid_t clock_id, stru
+   switch (clock_id)
+     {
+     case CLOCK_REALTIME:
++    case CLOCK_MONOTONIC:
++    case CLOCK_MONOTONIC_RAW:
++    case CLOCK_REALTIME_COARSE:
++    case CLOCK_MONOTONIC_COARSE:
+       retval = realtime_getres (res);
+       break;
+ 
+--- ./sysdeps/mach/clock_nanosleep.c.original	2020-07-21 00:31:35.226113142 +0200
++++ ./sysdeps/mach/clock_nanosleep.c	2020-07-21 00:31:49.026185761 +0200
+@@ -62,7 +62,7 @@
+ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
+ 		   struct timespec *rem)
+ {
+-  if (clock_id != CLOCK_REALTIME
++  if ((clock_id != CLOCK_REALTIME && clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_MONOTONIC_RAW && clock_id != CLOCK_REALTIME_COARSE && clock_id != CLOCK_MONOTONIC_COARSE)
+       || !valid_nanoseconds (req->tv_nsec)
+       || (flags != 0 && flags != TIMER_ABSTIME))
+     return EINVAL;
+Index: glibc-2.32/hurd/hurdlock.c
+===================================================================
+--- glibc-2.32.orig/hurd/hurdlock.c
++++ glibc-2.32/hurd/hurdlock.c
+@@ -47,7 +47,7 @@ int
+ __lll_abstimed_wait (void *ptr, int val,
+   const struct timespec *tsp, int flags, int clk)
+ {
+-  if (clk != CLOCK_REALTIME)
++  if (clk != CLOCK_REALTIME && clk != CLOCK_MONOTONIC)
+     return EINVAL;
+ 
+   int mlsec = compute_reltime (tsp, clk);
+@@ -59,7 +59,7 @@ int
+ __lll_abstimed_wait_intr (void *ptr, int val,
+   const struct timespec *tsp, int flags, int clk)
+ {
+-  if (clk != CLOCK_REALTIME)
++  if (clk != CLOCK_REALTIME && clk != CLOCK_MONOTONIC)
+     return EINVAL;
+ 
+   int mlsec = compute_reltime (tsp, clk);
+@@ -79,7 +79,7 @@ int
+ __lll_abstimed_xwait (void *ptr, int lo, int hi,
+   const struct timespec *tsp, int flags, int clk)
+ {
+-  if (clk != CLOCK_REALTIME)
++  if (clk != CLOCK_REALTIME && clk != CLOCK_MONOTONIC)
+     return EINVAL;
+ 
+   int mlsec = compute_reltime (tsp, clk);
+@@ -91,7 +91,7 @@ int
+ __lll_abstimed_lock (void *ptr,
+   const struct timespec *tsp, int flags, int clk)
+ {
+-  if (clk != CLOCK_REALTIME)
++  if (clk != CLOCK_REALTIME && clk != CLOCK_MONOTONIC)
+     return EINVAL;
+ 
+   if (__lll_trylock (ptr) == 0)
+@@ -177,7 +177,7 @@ __lll_robust_abstimed_lock (void *ptr,
+   int wait_time = 25;
+   unsigned int val;
+ 
+-  if (clk != CLOCK_REALTIME)
++  if (clk != CLOCK_REALTIME && clk != CLOCK_MONOTONIC)
+     return EINVAL;
+ 
+   while (1)
diff --git a/gnu/packages/patches/glibc-2.37-ldd-x86_64.patch b/gnu/packages/patches/glibc-2.37-ldd-x86_64.patch
new file mode 100644
index 0000000000..078cb38bd0
--- /dev/null
+++ b/gnu/packages/patches/glibc-2.37-ldd-x86_64.patch
@@ -0,0 +1,8 @@
+By default, 'RTDLLIST' in 'ldd' refers to 'lib64/ld-linux-x86-64.so', whereas
+it's in 'lib/' for us.  This patch fixes that.
+
+--- glibc-2.17/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed	2012-12-25 04:02:13.000000000 +0100
++++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed	2013-09-15 23:08:03.000000000 +0200
+@@ -1,1 +1,1 @@
+-s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ 	]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_
++s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ 	]*$_\1"\2\4\6 \2\4-x86-64\6 \2x32\4-x32\6"_
diff --git a/gnu/packages/patches/glibc-2.37-versioned-locpath.patch b/gnu/packages/patches/glibc-2.37-versioned-locpath.patch
new file mode 100644
index 0000000000..1964be4b4b
--- /dev/null
+++ b/gnu/packages/patches/glibc-2.37-versioned-locpath.patch
@@ -0,0 +1,247 @@
+From d73ba2caa10b8e9f51ff4239cc32eeb4e0de4279 Mon Sep 17 00:00:00 2001
+Message-Id: <d73ba2caa10b8e9f51ff4239cc32eeb4e0de4279.1683980025.git.dev@jpoiret.xyz>
+From: Josselin Poiret <dev@jpoiret.xyz>
+Date: Sat, 13 May 2023 14:10:43 +0200
+Subject: [PATCH] Add versioned locpath
+
+From: Josselin Poiret <dev@jpoiret.xyz>
+
+---
+ locale/newlocale.c   | 15 ++--------
+ locale/setlocale.c   | 68 +++++++++++++++++++++++++++++++++++++-------
+ string/Makefile      |  1 +
+ string/argz-suffix.c | 56 ++++++++++++++++++++++++++++++++++++
+ string/argz.h        | 10 +++++++
+ 5 files changed, 127 insertions(+), 23 deletions(-)
+ create mode 100644 string/argz-suffix.c
+
+diff --git a/locale/newlocale.c b/locale/newlocale.c
+index 108d2428bf..6218e0fa77 100644
+--- a/locale/newlocale.c
++++ b/locale/newlocale.c
+@@ -29,6 +29,7 @@
+ /* Lock for protecting global data.  */
+ __libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden)
+ 
++extern error_t compute_locale_search_path (char **, size_t *);
+ 
+ /* Use this when we come along an error.  */
+ #define ERROR_RETURN							      \
+@@ -47,7 +48,6 @@ __newlocale (int category_mask, const char *locale, locale_t base)
+   locale_t result_ptr;
+   char *locale_path;
+   size_t locale_path_len;
+-  const char *locpath_var;
+   int cnt;
+   size_t names_len;
+ 
+@@ -101,17 +101,8 @@ __newlocale (int category_mask, const char *locale, locale_t base)
+   locale_path = NULL;
+   locale_path_len = 0;
+ 
+-  locpath_var = getenv ("LOCPATH");
+-  if (locpath_var != NULL && locpath_var[0] != '\0')
+-    {
+-      if (__argz_create_sep (locpath_var, ':',
+-			     &locale_path, &locale_path_len) != 0)
+-	return NULL;
+-
+-      if (__argz_add_sep (&locale_path, &locale_path_len,
+-			  _nl_default_locale_path, ':') != 0)
+-	return NULL;
+-    }
++  if (compute_locale_search_path (&locale_path, &locale_path_len) != 0)
++    return NULL;
+ 
+   /* Get the names for the locales we are interested in.  We either
+      allow a composite name or a single name.  */
+diff --git a/locale/setlocale.c b/locale/setlocale.c
+index dd73fa4248..d8eb799384 100644
+--- a/locale/setlocale.c
++++ b/locale/setlocale.c
+@@ -213,12 +213,65 @@ setdata (int category, struct __locale_data *data)
+     }
+ }
+ 
++/* Return in *LOCALE_PATH and *LOCALE_PATH_LEN the locale data search path as
++   a colon-separated list.  Return ENOMEN on error, zero otherwise.  */
++error_t
++compute_locale_search_path (char **locale_path, size_t *locale_path_len)
++{
++  char* guix_locpath_var = getenv ("GUIX_LOCPATH");
++  char *locpath_var = getenv ("LOCPATH");
++
++  if (guix_locpath_var != NULL && guix_locpath_var[0] != '\0')
++    {
++      /* Entries in 'GUIX_LOCPATH' take precedence over 'LOCPATH'.  These
++	 entries are systematically prefixed with "/X.Y" where "X.Y" is the
++	 libc version.  */
++      if (__argz_create_sep (guix_locpath_var, ':',
++			     locale_path, locale_path_len) != 0
++	  || __argz_suffix_entries (locale_path, locale_path_len,
++				    "/" VERSION) != 0)
++	goto bail_out;
++    }
++
++  if (locpath_var != NULL && locpath_var[0] != '\0')
++    {
++      char *reg_locale_path = NULL;
++      size_t reg_locale_path_len = 0;
++
++      if (__argz_create_sep (locpath_var, ':',
++			     &reg_locale_path, &reg_locale_path_len) != 0)
++	goto bail_out;
++
++      if (__argz_append (locale_path, locale_path_len,
++			 reg_locale_path, reg_locale_path_len) != 0)
++	goto bail_out;
++
++      free (reg_locale_path);
++    }
++
++  if (*locale_path != NULL)
++    {
++      /* Append the system default locale directory.  */
++      if (__argz_add_sep (locale_path, locale_path_len,
++			  _nl_default_locale_path, ':') != 0)
++	goto bail_out;
++    }
++
++  return 0;
++
++ bail_out:
++  free (*locale_path);
++  *locale_path = NULL;
++  *locale_path_len = 0;
++
++  return ENOMEM;
++}
++
+ char *
+ setlocale (int category, const char *locale)
+ {
+   char *locale_path;
+   size_t locale_path_len;
+-  const char *locpath_var;
+   char *composite;
+ 
+   /* Sanity check for CATEGORY argument.  */
+@@ -249,17 +302,10 @@ setlocale (int category, const char *locale)
+   locale_path = NULL;
+   locale_path_len = 0;
+ 
+-  locpath_var = getenv ("LOCPATH");
+-  if (locpath_var != NULL && locpath_var[0] != '\0')
++  if (compute_locale_search_path (&locale_path, &locale_path_len) != 0)
+     {
+-      if (__argz_create_sep (locpath_var, ':',
+-			     &locale_path, &locale_path_len) != 0
+-	  || __argz_add_sep (&locale_path, &locale_path_len,
+-			     _nl_default_locale_path, ':') != 0)
+-	{
+-	  __libc_rwlock_unlock (__libc_setlocale_lock);
+-	  return NULL;
+-	}
++      __libc_rwlock_unlock (__libc_setlocale_lock);
++      return NULL;
+     }
+ 
+   if (category == LC_ALL)
+diff --git a/string/Makefile b/string/Makefile
+index 3eced0d027..a7e68729ad 100644
+--- a/string/Makefile
++++ b/string/Makefile
+@@ -51,6 +51,7 @@ routines := \
+   argz-next \
+   argz-replace \
+   argz-stringify \
++  argz-suffix \
+   basename \
+   bcopy \
+   bzero \
+diff --git a/string/argz-suffix.c b/string/argz-suffix.c
+new file mode 100644
+index 0000000000..505b0f248c
+--- /dev/null
++++ b/string/argz-suffix.c
+@@ -0,0 +1,56 @@
++/* Copyright (C) 2015 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Ludovic Courtès <ludo@gnu.org>.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <argz.h>
++#include <errno.h>
++#include <stdlib.h>
++#include <string.h>
++
++
++error_t
++__argz_suffix_entries (char **argz, size_t *argz_len, const char *suffix)
++
++{
++  size_t suffix_len = strlen (suffix);
++  size_t count = __argz_count (*argz, *argz_len);
++  size_t new_argz_len = *argz_len + count * suffix_len;
++  char *new_argz = malloc (new_argz_len);
++
++  if (new_argz)
++    {
++      char *p = new_argz, *entry;
++
++      for (entry = *argz;
++	   entry != NULL;
++	   entry = argz_next (*argz, *argz_len, entry))
++	{
++	  p = stpcpy (p, entry);
++	  p = stpcpy (p, suffix);
++	  p++;
++	}
++
++      free (*argz);
++      *argz = new_argz;
++      *argz_len = new_argz_len;
++
++      return 0;
++    }
++  else
++    return ENOMEM;
++}
++weak_alias (__argz_suffix_entries, argz_suffix_entries)
+diff --git a/string/argz.h b/string/argz.h
+index cbc588a8e6..bc6e484c9d 100644
+--- a/string/argz.h
++++ b/string/argz.h
+@@ -108,6 +108,16 @@ extern error_t argz_replace (char **__restrict __argz,
+ 			     const char *__restrict __str,
+ 			     const char *__restrict __with,
+ 			     unsigned int *__restrict __replace_count);
++
++/* Suffix each entry of ARGZ & ARGZ_LEN with SUFFIX.  Return 0 on success,
++   and ENOMEN if memory cannot be allocated.  */
++extern error_t __argz_suffix_entries (char **__restrict __argz,
++				      size_t *__restrict __argz_len,
++				      const char *__restrict __suffix);
++extern error_t argz_suffix_entries (char **__restrict __argz,
++				    size_t *__restrict __argz_len,
++				    const char *__restrict __suffix);
++
+ \f
+ /* Returns the next entry in ARGZ & ARGZ_LEN after ENTRY, or NULL if there
+    are no more.  If entry is NULL, then the first entry is returned.  This
+-- 
+2.40.1
+

base-commit: 849286ba66c96534bddc04df1a47d5692cbc977e
prerequisite-patch-id: bf9f6c2efa2216af0f1787dc1582e2cec821f19e
prerequisite-patch-id: 69acf79d4013ebdc3e7dfb4882bbe19498c820a5
prerequisite-patch-id: 900de3149fa074c39e463d859ccdf208ce120a76
prerequisite-patch-id: 196fd00997b26669da59cf6495fa390f42be05f4
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
                   ` (7 preceding siblings ...)
  2023-05-22  9:04 ` [bug#63641] [PATCH 8/8] gnu: hurd: Update to v0.9.git20230216 Josselin Poiret via Guix-patches via
@ 2023-05-23 12:17 ` Janneke Nieuwenhuizen
  2023-05-24  9:02   ` Ludovic Courtès
  2023-07-13 17:12 ` Josselin Poiret via Guix-patches via
  9 siblings, 1 reply; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-23 12:17 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 63641

Josselin Poiret via Guix-patches via writes:

Hi Josselin!

> Since Janneke is working on the rumpkernel and needed some additional patches to
> our libc, I thought that we could bring back the libc specific to the Hurd, also
> because the newer versions of Hurd only work with glibc 2.37.  This will let us
> experiment with newer Hurds without impacting the rest of Guix.  There are also
> a couple of additions and clean-ups.

Awesome patch series, thank you!  Works for me, and it also brings the
rumpdisk patch series a big step further, WD0 is now being detected by
rumpdisk.  Still no success actually using it though (see
https://lists.gnu.org/archive/html/bug-hurd/2023-05//msg00404.html).

> I'm still trying to fix native compilation, but it's not going as fast
> as I would like.

Good luck with that, let me know if I can do something to help.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 7/8] gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3.
  2023-05-22  9:04 ` [bug#63641] [PATCH 7/8] gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3 Josselin Poiret via Guix-patches via
@ 2023-05-23 12:17   ` Janneke Nieuwenhuizen
  0 siblings, 0 replies; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-23 12:17 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 63641

[-- Attachment #1: Type: text/plain, Size: 445 bytes --]

Josselin Poiret via Guix-patches via writes:

Hi,

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/hurd.scm (mig): Update to
> 04bfe7a91223ba15d868f7165e49328b1c6e86c3.

Did you have a specific reason not to use v1.8+git20230520, or was that
tagged after you created the patch set?  I've tested with that version
(see https://gitlab.com/janneke/guix/-/tree/wip-hurd22) and it seems to
work fine (see attached).

Greetings,
Janneke


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: mig-v1.8+git20230520.patch --]
[-- Type: text/x-patch, Size: 3978 bytes --]

diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index ae8aff3760..5479940326 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -100,47 +100,45 @@ (define-public gnumach-headers
     (license gpl2+)))
 
 (define-public mig
-  (let ((revision "1")
-        (commit "04bfe7a91223ba15d868f7165e49328b1c6e86c3"))
-    (package
-      (name "mig")
-      (version (git-version "1.8" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.savannah.gnu.org/git/hurd/mig.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0zw2w3hnz76f9602znshciqabylmvavx0h04y01qjlmhd9wh8iw5"))))
-      (build-system gnu-build-system)
-      ;; Flex is needed both at build and run time.
-      (inputs (list gnumach-headers flex))
-      (native-inputs (list autoconf automake flex bison))
-      (arguments
-       (list #:tests? #f
-             #:phases
-             #~(modify-phases %standard-phases
-                 (add-after 'install 'avoid-perl-dependency
-                   (lambda* (#:key build inputs outputs #:allow-other-keys)
-                     (let* ((out (assoc-ref outputs "out"))
-                            (bin (string-append out "/bin")))
-                       ;; By default 'mig' (or 'TARGET-mig') uses Perl to
-                       ;; compute 'libexecdir_rel'.  Avoid it.
-                       (substitute* (find-files bin "mig$")
-                         (("^libexecdir_rel=.*")
-                          "libexecdir_rel=../libexec\n"))))))))
-      (home-page "https://www.gnu.org/software/hurd/microkernel/mach/mig/gnu_mig.html")
-      (synopsis "Mach 3.0 interface generator for the Hurd")
-      (description
-       "GNU MIG is the GNU distribution of the Mach 3.0 interface generator
+  (package
+    (name "mig")
+    (version "1.8+git20230520")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.savannah.gnu.org/git/hurd/mig.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "10r0fdjqjzqsy6ajb21rifvhw0wpjvrw6a1zdyliqlzqny5k0qlz"))))
+    (build-system gnu-build-system)
+    ;; Flex is needed both at build and run time.
+    (inputs (list gnumach-headers flex))
+    (native-inputs (list autoconf automake flex bison))
+    (arguments
+     (list #:tests? #f
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'avoid-perl-dependency
+                 (lambda* (#:key build inputs outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (bin (string-append out "/bin")))
+                     ;; By default 'mig' (or 'TARGET-mig') uses Perl to
+                     ;; compute 'libexecdir_rel'.  Avoid it.
+                     (substitute* (find-files bin "mig$")
+                       (("^libexecdir_rel=.*")
+                        "libexecdir_rel=../libexec\n"))))))))
+    (home-page "https://www.gnu.org/software/hurd/microkernel/mach/mig/gnu_mig.html")
+    (synopsis "Mach 3.0 interface generator for the Hurd")
+    (description
+     "GNU MIG is the GNU distribution of the Mach 3.0 interface generator
 MIG, as maintained by the GNU Hurd developers for the GNU project.
 You need this tool to compile the GNU Mach and GNU Hurd distributions,
 and to compile the GNU C library for the Hurd.  Also, you will need it
 for other software in the GNU system that uses Mach-based inter-process
 communication.")
-      (license gpl2+))))
+    (license gpl2+)))
 
 (define-public hurd-headers
   ;; This commit is now slightly behind 0.9.git20220818 as this one needs a

[-- Attachment #3: Type: text/plain, Size: 164 bytes --]


-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 2/8] gnu: glibc/hurd-headers: Properly cross-build.
  2023-05-22  9:04 ` [bug#63641] [PATCH 2/8] gnu: glibc/hurd-headers: Properly cross-build Josselin Poiret via Guix-patches via
@ 2023-05-23 16:11   ` Janneke Nieuwenhuizen
  0 siblings, 0 replies; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-23 16:11 UTC (permalink / raw)
  To: 63641; +Cc: dev

Josselin Poiret via Guix-patches via writes:

Hi!

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/base.scm (glibc/hurd-headers): Rely on cross-mig, and remove
> hardcoded configure flag `--host=i586-pc-gnu`.
> * gnu/packages/cross-base.scm (cross-kernel-headers*): Add `--host` and
> `--build` configure flags.

[..]

> ---
>  gnu/packages/base.scm       | 13 ++++++-------
>  gnu/packages/cross-base.scm |  6 +++++-
>  2 files changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
> index d2f276c447..f944ab5d47 100644
> --- a/gnu/packages/base.scm
> +++ b/gnu/packages/base.scm
> @@ -1423,17 +1423,15 @@ (define-public glibc/hurd-headers
>      (native-inputs
>       (modify-inputs (package-native-inputs glibc)
>         (prepend (if (%current-target-system)
> -                    ;; XXX: When targeting i586-pc-gnu, we need a 32-bit MiG,
> -                    ;; hence this hack.
> -                    (package (inherit mig)
> -                             (arguments `(#:system "i686-linux")))
> -                    mig))))
> +                   (let* ((cross-base (resolve-interface '(gnu packages cross-base)))
> +                          (cross-mig (module-ref cross-base 'cross-mig)))
> +                     (cross-mig (%current-target-system)))
> +                   mig))))

I believe you can just do

--8<---------------cut here---------------start------------->8---
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 59c9632551..cdeb3f0a4e 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -53,6 +53,7 @@ (define-module (gnu packages base)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cross-base)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pcre)
@@ -1446,9 +1447,7 @@ (define-public glibc/hurd-headers
     (native-inputs
      (modify-inputs (package-native-inputs glibc/hurd)
        (prepend (if (%current-target-system)
-                   (let* ((cross-base (resolve-interface '(gnu packages cross-base)))
-                          (cross-mig (module-ref cross-base 'cross-mig)))
-                     (cross-mig (%current-target-system)))
+                    (cross-mig (%current-target-system))
                    mig))))
     (arguments
      (substitute-keyword-arguments (package-arguments glibc/hurd)
--8<---------------cut here---------------end--------------->8---

(Learnt that from "someone" https://issues.guix.gnu.org/63527#27 ;)

Otherwise, LGTM!

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators.
  2023-05-22  9:04 ` [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators Josselin Poiret via Guix-patches via
@ 2023-05-23 21:28   ` Janneke Nieuwenhuizen
  2023-05-28  8:26     ` Janneke Nieuwenhuizen
  0 siblings, 1 reply; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-23 21:28 UTC (permalink / raw)
  To: 63641; +Cc: dev

Josselin Poiret via Guix-patches via writes:

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/build/hurd-boot.scm (set-hurd-device-translators): Set up urandom and
> default-pager on boot.
> ---
>  gnu/build/hurd-boot.scm | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
> index 95c15907dd..14bfc5e809 100644
> --- a/gnu/build/hurd-boot.scm
> +++ b/gnu/build/hurd-boot.scm

Please add your copyright line at the top of the file.

Otherwise, LGTM!

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 3/8] gnu: gnumach-headers: Cross-build without relying on x86.
  2023-05-22  9:04 ` [bug#63641] [PATCH 3/8] gnu: gnumach-headers: Cross-build without relying on x86 Josselin Poiret via Guix-patches via
@ 2023-05-23 21:32   ` Janneke Nieuwenhuizen
  0 siblings, 0 replies; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-23 21:32 UTC (permalink / raw)
  To: 63641; +Cc: dev

Josselin Poiret via Guix-patches via writes:

Hi!

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/hurd.scm (gnumach-headers): Remove configure flags where we
> say the builder is running x86.
> * gnu/packages/cross-base.scm (cross-gnumach-headers): Work around limitation
> of build system, by manually changing the target host_cpu without relying on
> --host, because we don't have a working cross-compiler yet.

[..]

Please add your copyright to both files, otherwise LGTM!

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd.
  2023-05-22  9:42     ` [bug#63641] [PATCH v2 " Josselin Poiret via Guix-patches via
@ 2023-05-24  8:11       ` Janneke Nieuwenhuizen
  2023-05-24  8:57       ` [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Ludovic Courtès
  2023-06-02  5:18       ` [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd Janneke Nieuwenhuizen
  2 siblings, 0 replies; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-24  8:11 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 63641

Josselin Poiret via Guix-patches via writes:

Hi!

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch
> * gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
> * gnu/packages/patches/glibc-2.37-ldd-x86_64.patch
> * gnu/packages/patches/glibc-2.37-versioned-locpath.patch: New patches.
> * gnu/local.mk (dist_patch_DATA): Register them.
>
> * gnu/packages/base.scm (glibc/hurd, libc-for-target): New variables.
> (glibc/hurd-headers): Use glibc/hurd.
> * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
> glibc-final): Use libc-for-target.
> * gnu/packages/cross-base.scm (cross-libc/deprecated, cross-libc*): Use
> libc-for-target.

Very nice!

[..]

> diff --git a/gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch b/gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
> new file mode 100644
> index 0000000000..3207a94550
> --- /dev/null
> +++ b/gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
> @@ -0,0 +1,133 @@
> +Use the realtime clock for the monotonic clock. This is of course not a proper
> +implementation (which is being done in Mach), but will permit to fix at least
> +the iceweasel stack.
> +
> +vlc however doesn't build when _POSIX_CLOCK_SELECTION is enabled but
> +_POSIX_TIMERS is not, and they refuse to fix that (see #765578), so disable the
> +former.

Maybe add a note about upstream status/url for this patch (taken from
upstream, I guess).

> diff --git a/gnu/packages/patches/glibc-2.37-ldd-x86_64.patch b/gnu/packages/patches/glibc-2.37-ldd-x86_64.patch
> new file mode 100644
> index 0000000000..078cb38bd0
> --- /dev/null
> +++ b/gnu/packages/patches/glibc-2.37-ldd-x86_64.patch
> @@ -0,0 +1,8 @@
> +By default, 'RTDLLIST' in 'ldd' refers to 'lib64/ld-linux-x86-64.so', whereas
> +it's in 'lib/' for us.  This patch fixes that.

Maybe add something like: "Upstream status: Not presented upstream"?

> diff --git a/gnu/packages/patches/glibc-2.37-versioned-locpath.patch b/gnu/packages/patches/glibc-2.37-versioned-locpath.patch
> new file mode 100644
> index 0000000000..1964be4b4b
> --- /dev/null
> +++ b/gnu/packages/patches/glibc-2.37-versioned-locpath.patch
> @@ -0,0 +1,247 @@
> +From d73ba2caa10b8e9f51ff4239cc32eeb4e0de4279 Mon Sep 17 00:00:00 2001
> +Message-Id: <d73ba2caa10b8e9f51ff4239cc32eeb4e0de4279.1683980025.git.dev@jpoiret.xyz>
> +From: Josselin Poiret <dev@jpoiret.xyz>
> +Date: Sat, 13 May 2023 14:10:43 +0200
> +Subject: [PATCH] Add versioned locpath

Likewise, please add a note about upstream status of this patch.

Otherwise, L--more-than--GTM, awesome!  Plus, this most probably fixed
my rumpdisk!

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 4/8] gnu: hurd: Update supported systems.
  2023-05-22  9:04 ` [bug#63641] [PATCH 4/8] gnu: hurd: Update supported systems Josselin Poiret via Guix-patches via
@ 2023-05-24  8:11   ` Janneke Nieuwenhuizen
  0 siblings, 0 replies; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-24  8:11 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 63641

Josselin Poiret via Guix-patches via writes:

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/hurd.scm (gnumach-headers, hurd-headers, hurd-minimal,
> hurd-core-headers, gnumach): Update supported systems to %hurd-systems.

LGTM!

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 6/8] gnu: gnumach: Update to 1.8+git20221224.
  2023-05-22  9:04 ` [bug#63641] [PATCH 6/8] gnu: gnumach: Update to 1.8+git20221224 Josselin Poiret via Guix-patches via
@ 2023-05-24  8:12   ` Janneke Nieuwenhuizen
  0 siblings, 0 replies; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-24  8:12 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 63641

Josselin Poiret via Guix-patches via writes:

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/hurd.scm (gnumach-headers): Update to 1.8+git20221224.
> ---
>  gnu/packages/hurd.scm | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)

LGTM!

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
  2023-05-22  9:04 ` [bug#63641] [PATCH 8/8] gnu: hurd: Update to v0.9.git20230216 Josselin Poiret via Guix-patches via
@ 2023-05-24  8:48   ` Ludovic Courtès
  0 siblings, 0 replies; 28+ messages in thread
From: Ludovic Courtès @ 2023-05-24  8:48 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 63641

Hi,

Josselin Poiret <dev@jpoiret.xyz> skribis:

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/hurd.scm (hurd-headers): Update to v0.9.git20230216.

[...]

> +++ b/gnu/packages/hurd.scm
> @@ -144,10 +144,10 @@ (define-public hurd-headers
>    ;; This commit is now slightly behind 0.9.git20220818 as this one needs a
>    ;; newer glibc
>    (let ((revision "2")
> -        (commit "3ff70531ee672f431dbb0c11f286bfe85dce98fc"))
> +        (commit "v0.9.git20230216"))

Could you update or remove the comment above?

Also I wonder if we should use the actual commit ID rather than this
tag, since the tag doesn’t even denote a release.

Ludo’.




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
  2023-05-22  9:42     ` [bug#63641] [PATCH v2 " Josselin Poiret via Guix-patches via
  2023-05-24  8:11       ` Janneke Nieuwenhuizen
@ 2023-05-24  8:57       ` Ludovic Courtès
  2023-06-02  5:18       ` [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd Janneke Nieuwenhuizen
  2 siblings, 0 replies; 28+ messages in thread
From: Ludovic Courtès @ 2023-05-24  8:57 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 63641

Josselin Poiret <dev@jpoiret.xyz> skribis:

> From: Josselin Poiret <dev@jpoiret.xyz>
>
> * gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch
> * gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
> * gnu/packages/patches/glibc-2.37-ldd-x86_64.patch
> * gnu/packages/patches/glibc-2.37-versioned-locpath.patch: New patches.
> * gnu/local.mk (dist_patch_DATA): Register them.
>
> * gnu/packages/base.scm (glibc/hurd, libc-for-target): New variables.
> (glibc/hurd-headers): Use glibc/hurd.
> * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
> glibc-final): Use libc-for-target.
> * gnu/packages/cross-base.scm (cross-libc/deprecated, cross-libc*): Use
> libc-for-target.

[...]

> +(define-public glibc/hurd
> +  (package/inherit glibc
> +    (name "glibc-hurd")
> +    (version "2.37")

Could you add a comment stating why we’re using this version so we know
when to unify the two libcs again?

> +(define* (libc-for-target #:optional
> +                          (target (or (%current-target-system)
> +                                      (%current-system))))
> +  (match target
> +    ((? target-hurd?)
> +     glibc/hurd)
> +    (_
> +     glibc)))

Removed in 2d546858b139e5fcf2cbdf9958a17fd98803ac4c (when we unified the
two glibc packages) was also this macro:

  (define-syntax glibc
    (identifier-syntax (glibc-for-target)))

Maybe we can live without it though.

> +++ b/gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch
> @@ -0,0 +1,59 @@
> +Some applications assume centisecond precision, or at most millisecond precision
> +(e.g. guile).  This is a work-around for them.

[...]

> +++ b/gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
> @@ -0,0 +1,133 @@
> +Use the realtime clock for the monotonic clock. This is of course not a proper
> +implementation (which is being done in Mach), but will permit to fix at least
> +the iceweasel stack.
> +
> +vlc however doesn't build when _POSIX_CLOCK_SELECTION is enabled but
> +_POSIX_TIMERS is not, and they refuse to fix that (see #765578), so disable the
> +former.

These are from Debian, right?  Are they submitted upstream?

Would be nice to have it mentioned in the comment (the build farms will
soon rebuild for you :-)).

> +++ b/gnu/packages/patches/glibc-2.37-versioned-locpath.patch
> @@ -0,0 +1,247 @@
> +From d73ba2caa10b8e9f51ff4239cc32eeb4e0de4279 Mon Sep 17 00:00:00 2001
> +Message-Id: <d73ba2caa10b8e9f51ff4239cc32eeb4e0de4279.1683980025.git.dev@jpoiret.xyz>
> +From: Josselin Poiret <dev@jpoiret.xyz>
> +Date: Sat, 13 May 2023 14:10:43 +0200
> +Subject: [PATCH] Add versioned locpath
> +
> +From: Josselin Poiret <dev@jpoiret.xyz>

Could you preserve the header that’s at the top of
‘glibc-versioned-locpath.patch’?

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
  2023-05-23 12:17 ` Janneke Nieuwenhuizen
@ 2023-05-24  9:02   ` Ludovic Courtès
  0 siblings, 0 replies; 28+ messages in thread
From: Ludovic Courtès @ 2023-05-24  9:02 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: Janneke Nieuwenhuizen, 63641

Hi!

This looks great to me as well!  The suggestions I made in this thread
are purely cosmetic, mostly so our future selves know why things are
done this way.  I agree with the suggestions Janneke made, too.

So OK for me with changes along the lines of those suggestions!

Thank you!

Ludo’.




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators.
  2023-05-23 21:28   ` Janneke Nieuwenhuizen
@ 2023-05-28  8:26     ` Janneke Nieuwenhuizen
  0 siblings, 0 replies; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-05-28  8:26 UTC (permalink / raw)
  To: dev; +Cc: 63641

Janneke Nieuwenhuizen writes:

> Josselin Poiret via Guix-patches via writes:
>
>> From: Josselin Poiret <dev@jpoiret.xyz>
>>
>> * gnu/build/hurd-boot.scm (set-hurd-device-translators): Set up urandom and
>> default-pager on boot.
>> ---
>>  gnu/build/hurd-boot.scm | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
>> index 95c15907dd..14bfc5e809 100644
>> --- a/gnu/build/hurd-boot.scm
>> +++ b/gnu/build/hurd-boot.scm
>
> Please add your copyright line at the top of the file.
>
> Otherwise, LGTM!

...other than /dev/urandom gets created as a symlink too, so I guess
this should be included too:

modified   gnu/build/hurd-boot.scm
@@ -282,7 +282,6 @@ (define* (set-hurd-device-translators #:optional (root "/"))
     (rename-file (scope "dev/console") (scope "dev/console-")))
   (for-each scope-set-translator devices)
 
-  (false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom")))
   (false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin")))
   (false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout")))
   (false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr")))


(I'm trying to support multiple boots, well a second boot, from the same
device and got hit by this.  Still testing if the removal fixes it for me.)

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd.
  2023-05-22  9:42     ` [bug#63641] [PATCH v2 " Josselin Poiret via Guix-patches via
  2023-05-24  8:11       ` Janneke Nieuwenhuizen
  2023-05-24  8:57       ` [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Ludovic Courtès
@ 2023-06-02  5:18       ` Janneke Nieuwenhuizen
  2023-06-08  8:17         ` Janneke Nieuwenhuizen
  2 siblings, 1 reply; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-06-02  5:18 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: 63641

[-- Attachment #1: Type: text/plain, Size: 1803 bytes --]

Josselin Poiret via Guix-patches via writes:

Hello again!

> From: Josselin Poiret <dev@jpoiret.xyz>
>
[..]

> * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
> glibc-final): Use libc-for-target.

As discussed on IRC, I found that we're still building glibc-2.35 during
commencement.  I overlooked that this recent patch of yours made these
changes in commencement, so I already made patches for this (attached).

So, apart from my earlier comments

[..]

> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index ab07fb37ab..a24c60ebf8 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -2816,13 +2816,13 @@ (define (%boot1-inputs)
>      ("binutils-cross" ,binutils-boot0)
>      ,@(alist-delete "binutils" (%boot0-inputs))))
>  
> -(define glibc-final-with-bootstrap-bash
> +(define/system-dependent glibc-final-with-bootstrap-bash
>    ;; The final libc, "cross-built".  If everything went well, the resulting
>    ;; store path has no dependencies.  Actually, the really-final libc is
>    ;; built just below; the only difference is that this one uses the
>    ;; bootstrap Bash.
>    (package
> -    (inherit glibc)
> +    (inherit (libc-for-target))
>      (name "glibc-intermediate")
>      (outputs (delete "debug" (package-outputs glibc)))

We probably want this to be (libc-for-target), even though they're
bound to be similar, and more importantly,

>      (source (bootstrap-origin (package-source glibc)))

I believe this needs to be (libc-for-target) to actually use glibc-2.37.

[..]

> +  (let ((libc (libc-for-target)))
> +    (package/inherit libc
> +      (name "glibc")
> +      (source (bootstrap-origin (package-source glibc)))

Likewise, I think we need to use "libc" here.

Greetings,
Janneke


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-commencement-glibc-final-with-bootstrap-bash-Use.patch --]
[-- Type: text/x-patch, Size: 33422 bytes --]

From ee989048c46b4123232aeb49c4b1bfe14cb10037 Mon Sep 17 00:00:00 2001
Message-Id: <ee989048c46b4123232aeb49c4b1bfe14cb10037.1685682827.git.janneke@gnu.org>
From: Janneke Nieuwenhuizen <janneke@gnu.org>
Date: Thu, 1 Jun 2023 23:39:50 +0200
Subject: [PATCH 1/2] gnu: commencement: glibc-final-with-bootstrap-bash: Use
 libc-for-target.

* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[outputs,
source, arguments]: Use (libc-for-target) instead of glibc.
---
 gnu/packages/commencement.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 81b6d68979..7df5c9b5c9 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2899,13 +2899,13 @@ (define/system-dependent glibc-final-with-bootstrap-bash
   (package
     (inherit (libc-for-target))
     (name "glibc-intermediate")
-    (outputs (delete "debug" (package-outputs glibc)))
-    (source (bootstrap-origin (package-source glibc)))
+    (outputs (delete "debug" (package-outputs (libc-for-target))))
+    (source (bootstrap-origin (package-source (libc-for-target))))
     (arguments
      `(#:guile ,%bootstrap-guile
        #:implicit-inputs? #f
 
-       ,@(substitute-keyword-arguments (package-arguments glibc)
+       ,@(substitute-keyword-arguments (package-arguments (libc-for-target))
            ((#:configure-flags flags)
             `(append (list ,(string-append "--host=" (boot-triplet))
                            ,(string-append "--build="

base-commit: 7b00b155d8f474d493a22ff7cccbeec311b9bbc8
prerequisite-patch-id: b96b7fc07560b67bb954891c08b07874050bd815
prerequisite-patch-id: 661334c882030b404c16aa87af52696275d57f66
prerequisite-patch-id: 48af5fd9f6821f907331afb9657df63c8b14ec4b
prerequisite-patch-id: 27ee469438c657694caf0908fffb2dd04004b338
prerequisite-patch-id: faf77d8c8f5b334c592be0de177500c5ed48253d
prerequisite-patch-id: 4cf543b05e46babd5744f11a034b06a69a8f586d
prerequisite-patch-id: 3203da98fdcebf54be372d646376ac0c1ed3561d
prerequisite-patch-id: b302b87c50035242fa5842449a8502aa26650e46
prerequisite-patch-id: 8b731aee2f3632e6a6c154991a049ceba6471191
prerequisite-patch-id: a1ab14d78cd7ebeb490c31f627b9ae1fa61c2c80
prerequisite-patch-id: 49e32295a422d95c22a8ca4c8b5a3888a1f1c3d1
prerequisite-patch-id: fa0634162bbb2a3c681573cfa54ed14da3040140
prerequisite-patch-id: eff2e90da0ddb61cdc94d6eb083d79623a8f3b06
prerequisite-patch-id: 2501018d2afba9cc91e8f1f9725940e8f1c4ee83
prerequisite-patch-id: 280fe3f9c895825f4b0762ac60a52b358b605cf6
prerequisite-patch-id: eea541992403b758a104b5af27c8badae3baf2f4
prerequisite-patch-id: a6c0a342e46e36b906eee63d257fc0af6427b15a
prerequisite-patch-id: 1a2fe0f10be9134fb07bb38554117e0f19fe1707
prerequisite-patch-id: 7d5103573db8f4d608bd95b892a18fc6b24b4757
prerequisite-patch-id: 2c9b8e3516c69d9930890a365274be74d7dec6c3
prerequisite-patch-id: d8861b9abda988879d67b2541870a453dc7be77e
prerequisite-patch-id: ae35edf508ae2e7469ff949ebc8854df4e1ffbc1
prerequisite-patch-id: a1be1fe7e65cf971934ad3c67701c3b14ca519d7
prerequisite-patch-id: c50b89c0c9e5cd5bbcc0105923d9bd5526f472ca
prerequisite-patch-id: dcf223c4462a67f98274e2b378afbdb640299d40
prerequisite-patch-id: 7193aab88f198d8cbc6760702bdd4faaa0b5a106
prerequisite-patch-id: b2bbb543bfa2ad8ca8b75cb988b78ef15788aaab
prerequisite-patch-id: 47715253b05bbeb2296d837565d789d4f4cece1f
prerequisite-patch-id: fe888c22279f21ed573d97cb3c32fd750e64bc7f
prerequisite-patch-id: c083d6e7b08eec3f0954d5596505128a782109d6
prerequisite-patch-id: a77cce5da6fe87ee3e61d45bfe3195315ac1a3bc
prerequisite-patch-id: 3b252fe9479e356c6cfb871eea9ad460a915416b
prerequisite-patch-id: 7464ce27b2f36ce538f2dfd1560a0c4e6f073601
prerequisite-patch-id: 90b006b2c5ea686a9ce9a8a4121428e0305899a7
prerequisite-patch-id: 55705deea1dbe21c08590341520d791e0a834f3a
prerequisite-patch-id: 2ec7651ffafe201aee13039f1ee897aeef38620a
prerequisite-patch-id: 8cd269bb138d5dc79f41612cc18a2a4228e496d0
prerequisite-patch-id: 2e6bc6077534d8954f2ab9068749dc4108a85ff7
prerequisite-patch-id: be84acc08610f5733e484a725a208b89c7466602
prerequisite-patch-id: d1e78442c660bb1450164105310c2473c52e7c52
prerequisite-patch-id: 96a39877f8e21fd8a85dbd59f82f2e5697147bc0
prerequisite-patch-id: 068a494d14fe8f7a32c9572a94cf31459e3fb037
prerequisite-patch-id: 85b1f68a51008deca677e811fde9b29b6c15032e
prerequisite-patch-id: 9c4357ee94237511a6abeafaa7b9775e042b8de5
prerequisite-patch-id: 88118d60e5c823f06d66dd2f0533f1164b27acbf
prerequisite-patch-id: 384bc8886bffe4ccbbec8a0d1ab28d6b6084b21c
prerequisite-patch-id: cece1d586bbe314abab4bbe3f15b8299d9bcc0cd
prerequisite-patch-id: af099a015eb8ac396ea8d937f178c3bbf25083da
prerequisite-patch-id: 3aacc3d6b5c739573b2f9dd78c10f939f439167f
prerequisite-patch-id: d2fb05b6b2d56db8336f139b6306db6bb76ded2f
prerequisite-patch-id: 31695aaf8968f8204007acf156763e1b2ecf917a
prerequisite-patch-id: 49d979efa4b1a41929484f14d4b5c0dd8f21f5ba
prerequisite-patch-id: c6c977b826e398a9ebd1348d96acf560a450612f
prerequisite-patch-id: 491d9ffbeb3f43882128465c37ff5488e4c632e7
prerequisite-patch-id: 23a9f3aa13e30e8a6721f596b16bd85ee70ec2c3
prerequisite-patch-id: d3241549d78da53af38729a85b7929808845d6c7
prerequisite-patch-id: 78c1a029ca7c53a1fcb416d122493f84af07b304
prerequisite-patch-id: 02d981d60649b804752f7b80919d58edb741e262
prerequisite-patch-id: e6131a0105e714b43a362a715b621e9020614308
prerequisite-patch-id: 0faf15c9db3aabfc6a621cd1f69d83037a295f88
prerequisite-patch-id: 0ea4eec5324d23be536909870972a0adc0568762
prerequisite-patch-id: afa4f727e5f1d95e4bcbe7cda323038b0a20adf1
prerequisite-patch-id: eb15c6fe043ba091ff09421b800a5c64c6fadbc4
prerequisite-patch-id: 3e926d814690c5d141dfdd4b4e73610ab40bc705
prerequisite-patch-id: f40fbc063f8b0dcfe7ab163a2f88024e0c227c18
prerequisite-patch-id: a6331e2375e48f7b33e5188d45bc36aafccc91fa
prerequisite-patch-id: a66e65fb61a233ef27d193aa431de94562b8cd57
prerequisite-patch-id: a45b7540996ac9a1e12de02e1d5278b193acd8aa
prerequisite-patch-id: 336252fc9dfc52aa24e8505fc502928d10ce3181
prerequisite-patch-id: 27200425d13134cd13d50909ae8c0051464e8f54
prerequisite-patch-id: 255d49a4185a7b66db8c69b8b18e133e7b659d67
prerequisite-patch-id: a2e0e8c621eda0421bf4149982a2b3e08bac7033
prerequisite-patch-id: dbb134d66fc76750199688ba1bd32b24ccc4b2b1
prerequisite-patch-id: 19bcb1efc1e67fbdafc3ecee0298721a096816d3
prerequisite-patch-id: 630518c61c5de8a41481a6f617b8167999b7501c
prerequisite-patch-id: 3b1362b01bb2bb4893600ce0d6f5ae27456f13fe
prerequisite-patch-id: 1f163827836c5cf29da978c91bf574670a67adb8
prerequisite-patch-id: c1bbe29954e1655e045e7eae1e6548a0a918173c
prerequisite-patch-id: c333d68199f3d244b2b4b6db0a818564bf6093a5
prerequisite-patch-id: bdd15e0c8560fd1746cd2438010da548b348b0a9
prerequisite-patch-id: 5758218e08bfc71a81b208ea9b66081ee5d82de0
prerequisite-patch-id: b1ad8b53894b531291240c763a584ef75946c6bc
prerequisite-patch-id: ff64b29fbf19c172e651dd60b19977e94b687571
prerequisite-patch-id: 63f2bb2fee730b2d2877c3d9425b7dd3154dbadb
prerequisite-patch-id: d73808aeccb4802cd2d742e9b905a1060be435e1
prerequisite-patch-id: 3bb2c68f61077b84496c0a8809a48ac769e0fe7f
prerequisite-patch-id: 36cfcb34718d61b4193e24a4edb838b37907f0cb
prerequisite-patch-id: d30f224ccc74c419df33c960987c8951113a1670
prerequisite-patch-id: affa3cbfb5d6879ff11f4a7d030dc8796abcdd87
prerequisite-patch-id: 8e99169701284be360d303b8b24fa7d9a5754292
prerequisite-patch-id: 7a66fe96b5a30efabd331ccc038451ca2516a427
prerequisite-patch-id: 441c7a24e456631522572991244c49b48738d118
prerequisite-patch-id: 2ed5a5b07853d30d9575a144eecba2f4a86d0907
prerequisite-patch-id: b047430c30ba9ea274aea33a467cdb49d769884e
prerequisite-patch-id: 8a03c5e8bcd4c526b93c558d550725887f932e41
prerequisite-patch-id: 89400c29b4c30dfbe8492aff1751ca583397b4f0
prerequisite-patch-id: c068d5c98389992badbc1ab7714de4ee0921c09e
prerequisite-patch-id: 6de41cdca3442bf7ed5ec9b9b637cd708544b7d7
prerequisite-patch-id: 7eeadb75f4d144f35d7efcdc8378b27fe3c5e081
prerequisite-patch-id: 80aca78175e59e6de1a312a79337e9e841f41261
prerequisite-patch-id: 0e46f6ae7eb7a87dbe704fd2d7934bf9811b615d
prerequisite-patch-id: 611636fc38fe413039a494c4b900f60cf5dffa03
prerequisite-patch-id: 81152a28167c5753792b6ac435f46dd43dadcb13
prerequisite-patch-id: 99a98f6d0a97f74d541080a789602715964e162e
prerequisite-patch-id: 17991be339a2f7fdd69b8674cd193a592cbf3dc4
prerequisite-patch-id: 0513586ef61aef7195532855404afe1d3466242c
prerequisite-patch-id: c6070b7f04fe8616d12d62da921c9894b5c71a76
prerequisite-patch-id: f8c455a58ca730f66c0b589591fe9ee8e6733ec9
prerequisite-patch-id: 693421f009c957365346d143184d4a6d2b6cc727
prerequisite-patch-id: 1cdf7c68bd7c74ad9ec5bc9f4c129bfea1c11be3
prerequisite-patch-id: 099217b842eb48e79a59d2f2fa5c490602a056b8
prerequisite-patch-id: f23965b234cadbcc690f54e92180a0ac52d5db7e
prerequisite-patch-id: e5857f0a4bd5112443f90bb70188f62d23cb4183
prerequisite-patch-id: aaa2d82b279cebf88098a96f5d3271ec690dceb4
prerequisite-patch-id: 63e912653dfdadee75143008ce1c9f2a639b44c6
prerequisite-patch-id: 095f03f24e4dfe3692bca7feceedc05310f1bc97
prerequisite-patch-id: e14aa692ef4e2e069be249a88aaee7db4afeb8aa
prerequisite-patch-id: c3e6caa73c9acab3a688c0f9772f3e41c3fee683
prerequisite-patch-id: fbcf6a8e3550e9b8a7c18f67f02e1b82bae8e9e1
prerequisite-patch-id: 9d5499d6bc33d541bb0b4519b2cb9f404fee27cb
prerequisite-patch-id: 91e3ceed5e0502e3d92e343c191b52561f983bfa
prerequisite-patch-id: 41d1a36f721b9947542a6786f07ccf70968e9a2f
prerequisite-patch-id: 86f2d1a38f0e37569f7f8137ba1e613198c91c43
prerequisite-patch-id: 95f948376d7e747d7dd3e4ba23cddb587b17dada
prerequisite-patch-id: 8f871fea11a893f46200c5ce913f186f644676ba
prerequisite-patch-id: 4e9276dd27f5a0fbea1f87b3f8e2c5b1b413b468
prerequisite-patch-id: 5383b123921e5e09014c20e8c24172723ae93c03
prerequisite-patch-id: 71e04113564cf21297df3db17f79903eeeb8c3d1
prerequisite-patch-id: a8c48526e20f77ce6099b40e5cc78c420623090e
prerequisite-patch-id: 0d6d9d90956133e15e88e0841207cdd9f2da4260
prerequisite-patch-id: 1f6e628dc3861c33ffbe17f8581e1178b729b954
prerequisite-patch-id: 24c7014f95af29b20d61e41699442100f9f9cdda
prerequisite-patch-id: db308b1c39fb9b7ea77a2595a32fd8ec2f09df85
prerequisite-patch-id: d100c00aebbd8471a9886ae813ff3cea244b5139
prerequisite-patch-id: 87648b45656f8555cc6a633c88355d4fc24251cd
prerequisite-patch-id: 34fdbf06c49e0e12643cee018592bcde448b03fb
prerequisite-patch-id: 71492d07a460d2127f0ca3e79074b96ec0600dae
prerequisite-patch-id: 365c01108dbc214e0da77f7e86b28cadcde47c2c
prerequisite-patch-id: e864903614cd799d4efa78b2bf5949d969cc8b83
prerequisite-patch-id: 6b900621f04d1f16ab06c0bb69a7ddea70b3c1e0
prerequisite-patch-id: e8cc85ba90f929d1667f4b332b334a7a1d85ead6
prerequisite-patch-id: b92f1221d04fa5e8b0c67e9b2ebde85671673a19
prerequisite-patch-id: 8036b97f29f4e181c836a277bcf8f9d0a6b69d90
prerequisite-patch-id: 0d31991f2aeaab68c609fc8ca4286055cd86988c
prerequisite-patch-id: 804da8732d2c9b07f0b35f683226b731ee55e25f
prerequisite-patch-id: fe51d6314b54cfaa32cfaa9bf95b3f943c759465
prerequisite-patch-id: 5e3f9795cba8d97ab37b55fcb63a350c39f8c730
prerequisite-patch-id: e3c21cb3fd26347a317a8696625a9e74bc4a1fa2
prerequisite-patch-id: 8d3044ba8b424e3bd68a1c7e1e197cf882b50be5
prerequisite-patch-id: 5807b64f53658b123f3aad1d921e41822d833922
prerequisite-patch-id: b30fcb0acf847d05dc50fa0d9c172831137f0fd3
prerequisite-patch-id: 8e67e3ed93ee982f83f9f0c3a9d0ae2aa8b107dd
prerequisite-patch-id: 39ef6cc42688d806514087bb51fa4f3ad2346c0b
prerequisite-patch-id: 350ada556e8bf5c3f353de2d706cc65b2aad6ec3
prerequisite-patch-id: 0b8976feabc9ae7553e6806c79dc048b20f5afa3
prerequisite-patch-id: 1d892c6b36737f4fa6c98a376a5bd240d4f20921
prerequisite-patch-id: fcf1e96ff1e4b219d72910ac62e7fa7c15aa4edc
prerequisite-patch-id: 12c01806b669b53f92f9e5048d0678796b972e0c
prerequisite-patch-id: 686779fa483606cf0cc369a6bce56c067ac6492e
prerequisite-patch-id: 457030a85cb1ebff3a133cb822673803411528e3
prerequisite-patch-id: ac3cf405eac2afe984a5c4bc6c31f46734b0d16e
prerequisite-patch-id: 4b967cb66bf08b0a64a78d25237297b41aa76f03
prerequisite-patch-id: 3543b86b56555c8c9982506e5bbd77ba57579653
prerequisite-patch-id: 79e28d84f2b98c4147b14668d971b4dc9e1b3c5e
prerequisite-patch-id: 2056b44efb40f2f85b0320570a4e709257dd103a
prerequisite-patch-id: 93e43e1a1a4b5fb3e2af4432c292803ed7ce30a7
prerequisite-patch-id: 6995e4b4ae05a71a83adc1025b030c7e845e7a3f
prerequisite-patch-id: 346cc64c11d594a6be6e8a8eed4e45125f6b659b
prerequisite-patch-id: 8aa8ef133dbc09276705af46fc35962b357321b9
prerequisite-patch-id: 9a0ff6c2fd7f0803d8203d478d035b75c715a727
prerequisite-patch-id: 8103299e688c6cabce45fc1e58af6647c6a1acc9
prerequisite-patch-id: cf949768a1a14ff4ba29e1e3eb4281e862d952d3
prerequisite-patch-id: c3267351583e1001b6079928e5c0f854b84d1cf4
prerequisite-patch-id: 021cb16f9504e43e8f4576bd6fb7f2f35fb2ced9
prerequisite-patch-id: 3d62e88a6a43e92ca64b7acc2cade97d6ec330be
prerequisite-patch-id: 7db0a6d2acfea4ce571de0a5491ff62df047bdf7
prerequisite-patch-id: 8c0512a3f14776ca7e2fdede7fe537b081686374
prerequisite-patch-id: 62adf61c5849d37628b3bf53d32cd5dd1b8cc0ab
prerequisite-patch-id: 322a87d7e1f8b5022e7723a8247d4c9ed34890d6
prerequisite-patch-id: dc07cf5970a3f50574ad54054a47a8b3ec6fe736
prerequisite-patch-id: fb48d87a7faf36d010010f7684fe82b461d14565
prerequisite-patch-id: 27944c7fb41b4f18a23a77c3193bf0cd8d56341e
prerequisite-patch-id: 5be926043cb8750446368564ca3817483e1cbba4
prerequisite-patch-id: 3947f849fc90103e1ae4f66891349047e688fbc1
prerequisite-patch-id: ea791ee66138c17800811ece3b3dc045e9b78582
prerequisite-patch-id: bc8cff73bb93328e7ebad03ae19e0ff500eab5c1
prerequisite-patch-id: 11467c89e974cdaba5430690b96b8212d98c8bf2
prerequisite-patch-id: 5ac600592361488a364f29625cdc2f4b1825fefe
prerequisite-patch-id: 83aa016abad79c609c26360d75fed03c8c6a62ce
prerequisite-patch-id: cd4f80e21434f00b7121bc47b31ed2497a96738a
prerequisite-patch-id: bde021d358061ddf7418cf9007728e29b0a484e7
prerequisite-patch-id: d036219d9808390a95ce79eab308394a35fb11f4
prerequisite-patch-id: b5a5ddc30aa4c6eab627e90bfea924b549e72f65
prerequisite-patch-id: d60f368cd1bc31306ecd174a426dadd7d8c99c30
prerequisite-patch-id: dc5475a7173f78da07abee9e12f678be9c130324
prerequisite-patch-id: 32c40bb389b4fe60717a74f0e1d4f85027b6c536
prerequisite-patch-id: 1399adfffe1dc58ddfd8c576de8a35dc0cba686c
prerequisite-patch-id: a98d8fd12f3f0e29cacff0e635627bef17e7b340
prerequisite-patch-id: 51a5ae56b1f2adfb2c32863fae668575eabd0459
prerequisite-patch-id: 33981018a5333b547be6e792f8254d53e60c6528
prerequisite-patch-id: 21b2102fe7004d64c33c560042d806c65b54c85d
prerequisite-patch-id: 3b4fb2c60fe043b041d76aee56c3979439fbdc3e
prerequisite-patch-id: c12d40b1babc901b613d731a2f1769ed1fd44fb4
prerequisite-patch-id: 17bb1afa675ba8929ae6b35138432aa176bec594
prerequisite-patch-id: 7181cbce5bb938f93e539a54f1b062cb40a84e50
prerequisite-patch-id: 5ddd2c15a8b6972d71bf23868fdb7e403b02f1a1
prerequisite-patch-id: a1557107aaaa0ea314daced5dddac5432573fb8e
prerequisite-patch-id: 1bb4ff40995d453529bcf08bf04e96a2251e0e67
prerequisite-patch-id: a58b350e2933ca918441512081bd86f07c0e7689
prerequisite-patch-id: e5e4b5078457272c40136083ada87084b7cf789c
prerequisite-patch-id: 04959264b838474b05ccfe8459daa74ea0b60345
prerequisite-patch-id: 48fad5111c84540939ce092d05894c2a7b7043d9
prerequisite-patch-id: 913efa97fcf5f87a8ea36987321fb2a4789f8456
prerequisite-patch-id: 8c7d814de0854f22e3b492f7eef9e59a586485a0
prerequisite-patch-id: 126e8575449ac1e62ec7ce8c229939caa7a8b9c4
prerequisite-patch-id: f3b43fe639f8d4bff9d019244592f9ffb48b07ff
prerequisite-patch-id: 70f1a13fc509ab6b2af92c8deef537154b8f430c
prerequisite-patch-id: 5544eab70ffc2eb4521bec1d9ee6b74c71f3844c
prerequisite-patch-id: de4c46d605075aa3223b6aaed403ece4d66fba8e
prerequisite-patch-id: 592de527a3e0f924732b7727c4b853cadce3cd9e
prerequisite-patch-id: 5b6e0e030c6b1c973d747f1ca27368d1537392de
prerequisite-patch-id: 33950bd38744331ed6fee227923ae2a096e6464b
prerequisite-patch-id: 053f0b22e7bcaf2b55a2dfd7a77aab1fb217d083
prerequisite-patch-id: 2357c7b9b15fa3d96be0045f5f52451027fc6252
prerequisite-patch-id: 14a012c5d972452eef7a5645239b386c7d5e8c31
prerequisite-patch-id: 48b4936aca8407e6777ae731017bbec2935cc1a9
prerequisite-patch-id: aca9740b2ee2c511494b07683934a1de89e7d86f
prerequisite-patch-id: 099c86a514fe01cb2a2032e7dad8f320399b8601
prerequisite-patch-id: 8479b436aa6c9da9001f7c3811d6a4a00e2aada0
prerequisite-patch-id: 1e77d57e073ac4d793b762f65f42ca76b2b57dbf
prerequisite-patch-id: 656ce95c6c468774ed867c47f2d50aea8015931b
prerequisite-patch-id: 90cfe32c9ca296bd41c88b6e4976789be8eab475
prerequisite-patch-id: 7e3b1cf15def469e96500b6240d03ff5e9b8c05a
prerequisite-patch-id: a5ccf23a54a847cfd2d6173db9d06358d5b9c90f
prerequisite-patch-id: 336ff855889a73b0153ed01b8b4a24b32b064642
prerequisite-patch-id: c4946d3e866c5ea5e29e9f260aec92d34da2582f
prerequisite-patch-id: 7ea48a611e423c41d07d4023cc8a5e0933c507dc
prerequisite-patch-id: ed3d2760b946edce50ea1ffacbb8f2f4e1715ab1
prerequisite-patch-id: d621c9fdf9204a7ff2a4c9a8f1107195736823a1
prerequisite-patch-id: e0aa95f44a76443f74f651fc4dd03accff527a90
prerequisite-patch-id: 279414ae4ffc8337c99cdd9fa8ab73eb68e6dc99
prerequisite-patch-id: c721eceedb3dfbba481fdcd7b3160a92f4290f5a
prerequisite-patch-id: 3301643ef15b68b5476c66bff2bc431eab29fce6
prerequisite-patch-id: 2a092dc3672bd23fed9024ba86ade0197cce3204
prerequisite-patch-id: 146e8f8f3ee111997f7c92faca4985a111ecf216
prerequisite-patch-id: 0a2a5a919432f16893190a4a33246f55c1047ec2
prerequisite-patch-id: e0a2465a60391a44e688d29d00a30d72799c273e
prerequisite-patch-id: f7ab2df40b9bef7967ed7ad5d9ae2264b3f2d9e2
prerequisite-patch-id: d882b8889ccc46a19b86ccedb6badafa60c555c3
prerequisite-patch-id: db26e7f4b5b15c3d4a6d7055accf4976f535ba5f
prerequisite-patch-id: 3635ae4888836aaaae3f0fb64346ed51b3f12685
prerequisite-patch-id: b8bb72e2b04cec36b0238cb01938c715b4db6ad7
prerequisite-patch-id: f1130d8fb5cacda4f646e2106b087fc6d7d9d76a
prerequisite-patch-id: 872802ad9bccc0f994af014558cae8deea7682a2
prerequisite-patch-id: c1dd599c33b6399b2a763e0a519413da9e2dc3fa
prerequisite-patch-id: a8b65cdf7c2ce523c025090729321757bdf6f2c8
prerequisite-patch-id: 515b23018f9bf84a22ef96781de2bc0c7eae5450
prerequisite-patch-id: fe8b8168cee6cbf0aaca377f2c8e30592e6be024
prerequisite-patch-id: 608aee50b30e72d47ec152d9da2ddc38898ed2d6
prerequisite-patch-id: 63ae21dd4c9b0f033a990dc6ac681403abd0c10a
prerequisite-patch-id: 1d825c30fcd43304b588297c5a0a3af7ee3a4ded
prerequisite-patch-id: 5fdc7f299f5a9bff1d348e37131b72d0dcbf0957
prerequisite-patch-id: b29bd90a570449472d7820bfc503c36aede4aedc
prerequisite-patch-id: 6aa35c82798141c6c1db5f0c853f0c6969fcc60a
prerequisite-patch-id: 869474c4a668654613ef4e10abe9e58bbdb94bfb
prerequisite-patch-id: ba103a5868dcaa23914c010a5732c9634dea51b9
prerequisite-patch-id: b3ff6608987e76a168f042a7df2deeda3b39f043
prerequisite-patch-id: 18952c1609610a5a65785b1fd35d3914b21bf3fc
prerequisite-patch-id: 21173fdcb9424eda751e321fc02038f0bca17885
prerequisite-patch-id: afcde87ee923b020a729465ec6e887e3671b6602
prerequisite-patch-id: 07a0f8b4d0c7da1ec8f4bea46f70d698b19962a8
prerequisite-patch-id: 410426d26c4fe66e763214911ef1e36166761990
prerequisite-patch-id: c109d7214c9323f488fbf9b27b9c6ba598e441a3
prerequisite-patch-id: 6c30f7d0e92fe2a2ce985742aabb582ad626354a
prerequisite-patch-id: a4081ca27e79b384fda669f2cb10efb7756d74b5
prerequisite-patch-id: 209103619494cbafce398646f176a1ea1e311acf
prerequisite-patch-id: 04f8bde6e526c9c523fb6cd7aa3d40c3082d26f7
prerequisite-patch-id: dd5ee982f2aab771f5554a7cf193ece7324230d3
prerequisite-patch-id: 34f4213ce12ec83d772af370013251ed4f76531b
prerequisite-patch-id: 0a1eadb906bbe1f5b244615bf09e90e6699d37d8
prerequisite-patch-id: 1971b249d7461d5517d086fa7339367dc5a86a00
prerequisite-patch-id: 2bbe0e9f93bef45c3e4324e1f19af6bd7aeb22ae
prerequisite-patch-id: 2909f8a9d601765156261d9112a04ecf0061a68b
prerequisite-patch-id: 2ef7bbb1368c47c60c0d98e83015f1ba33248e33
prerequisite-patch-id: 9058aef72f371151cef4340fdcc3e24295ebf5e5
prerequisite-patch-id: e88baf6ed04ce63125bedf1fa5228ce1ddd51f22
prerequisite-patch-id: 213a34855b0bd766b4c15f8ec48ae9c58007bcc0
prerequisite-patch-id: bf7635176955568c1d14efbc8a1c3b50eb47f83d
prerequisite-patch-id: ea5d0190c1ec371565717f921892c8a2b81b42e5
prerequisite-patch-id: da1587732aed31173c82bfa3cee5b0bb1a8f9b0f
prerequisite-patch-id: 54c22426e31d7e3c83bf66d73f7175d46ee60611
prerequisite-patch-id: 42ee868752b874fd1c1bb7731569fdd18029d25b
prerequisite-patch-id: 33294ea8607f6b838c7dfb5abce4d92dd0563a95
prerequisite-patch-id: 9a7304ec616c171eb47832910754876cfa582fe6
prerequisite-patch-id: b20461e1d9754f34dbfe2fa33f6b3d4c68aa2151
prerequisite-patch-id: 791731294d342a2202403eed7b14c39daaaf308d
prerequisite-patch-id: 7cf71b237ef4bc950f021babc045d8612cd4df82
prerequisite-patch-id: b4ca9d68148cbea4cacae600f236e88626f88d11
prerequisite-patch-id: a6e78d05393dc688b3cc7fcd6a031a8a22c9e26e
prerequisite-patch-id: c031c498adb588fddf066c04075814f103f6938f
prerequisite-patch-id: 05aec8a29d0829334f4154fb0b5e8b3a4616220f
prerequisite-patch-id: 6cd4e6464ae30439a0aa16fb9e52e37800a13592
prerequisite-patch-id: e9e926b1779a3d8efa098fe42f480323a65d6dfc
prerequisite-patch-id: c49d7353122586ca994b9b25409e6c09290fea72
prerequisite-patch-id: 8bf104d25fd46844d61b492af108b6ba8e14b5d4
prerequisite-patch-id: 1efbaca60b47b64d23565b155cbcf1d9c5486a96
prerequisite-patch-id: 41b748922287424d13077855af188c655cc147be
prerequisite-patch-id: fa6049e749c5ad049b7105ffae7ac8dfbbb6f3c9
prerequisite-patch-id: 52bdd5289b12ea261922d452df37db0580e4d96e
prerequisite-patch-id: 0a18c2762b105f6633c760025a867e02596565c9
prerequisite-patch-id: 3505577abcb8932ea71f535ac8884bc5dfd96329
prerequisite-patch-id: bbb6b3b2aef4d2bd6fe2665d3178d740a14573e0
prerequisite-patch-id: f68b5fa49c82b67d74a70c0ec3f2f4927ec5f829
prerequisite-patch-id: ed81d5b1e56d04df68267feb6ae30b3a48cadd88
prerequisite-patch-id: 4faca8c3b8f065d0248963e5fbbd3f013b6254d8
prerequisite-patch-id: 0614f3cfc31f6f525dcfd88e5ebe0373dec0b751
prerequisite-patch-id: 07c75a0097bb74cef8937af62ff8426f154b2eea
prerequisite-patch-id: 9e22a37caa302aa414f96db471257a8256c460c6
prerequisite-patch-id: e609f3c850c07096e94ff4b6765c5d835341f85c
prerequisite-patch-id: 6c114d1e8c940bb1efb7be6f4789a9ce2482e9b0
prerequisite-patch-id: d4dcbbbffb59ec82ad750c6c2fafd242b820029a
prerequisite-patch-id: 3686f018ca4987d5ba8e3e715edfe6bb60f2986a
prerequisite-patch-id: 25665d4233ea2eae4652f8601862dee016ce01a3
prerequisite-patch-id: 3293dfa5766a90fde8d833ec6fae3bdedbd2b743
prerequisite-patch-id: 07bf0800af901b2c198baef2508a1e46e29b0548
prerequisite-patch-id: 976625eb80128d2b7be4f80e5e90049101d1795a
prerequisite-patch-id: 528cf98a1b9b6535bc57f6421abb907bc84c3adc
prerequisite-patch-id: 441d09e8f03f6aac841a84298f096514dcce4a14
prerequisite-patch-id: 029dab5e89ccd9f4032c6f72b9539dcdfefdd516
prerequisite-patch-id: 49512b60feb1fafdd4d26327def1952c5152a837
prerequisite-patch-id: 70a4090bae40170ac75a93a608967b978c40803e
prerequisite-patch-id: f766ed31d9efb069a1efd0d583564df531881760
prerequisite-patch-id: c21da95463701ee1d3d77cc81ac056660644b663
prerequisite-patch-id: 4b98c2dfd33a7c7a162ab38a5d154659bf0f99c4
prerequisite-patch-id: be06360abd25d921904cf9636e2d7e5a8c10d202
prerequisite-patch-id: 935ac21bed09286b34e7e2432841c1456e95c076
prerequisite-patch-id: 89cd2f96db2d13130f9e4301389eae707bc66ea1
prerequisite-patch-id: 3576be703371d049aa43170dc47ec8285b8f739e
prerequisite-patch-id: cf17133079bca2eab28dde7c3515db1cf845b923
prerequisite-patch-id: 6e4fda9fcb8a50eb38e92856b8cb8c8f563c0cc4
prerequisite-patch-id: 6bc98c1ce019151b894c168e69bb7ee4d8b2a219
prerequisite-patch-id: 2e7075a9c694f760b0619caba8cda13696713cb2
prerequisite-patch-id: c46b69d250cbd9d7465f60a4ddd4f5ed01aee954
prerequisite-patch-id: 168fd29a48d93126fa9b012b8039f2e1a85d9e16
prerequisite-patch-id: d81aff46fd115579f95452bf7196aaee39a7f2fc
prerequisite-patch-id: 114e7e961146ad2334544bd0898c20f78b77ad92
prerequisite-patch-id: 03cf1b9527a95cf52ea0cd0321e72cbdf0d4b30b
prerequisite-patch-id: 9f5e697fcedecec18d761f70fef2efe6ed9c40d7
prerequisite-patch-id: 796351eab813d571b37151a2f26a30473f63c072
prerequisite-patch-id: 0ce1d63034dc5f93d386dde5553ce336b5a50fb8
prerequisite-patch-id: 5a1ba48be7dc0df38dcf34a8c199ef06caea1741
prerequisite-patch-id: 69678a77e1b849c4213d81fee3726117a746387f
prerequisite-patch-id: abbf0c45f36b0ef5e62781155781376a49d9651a
prerequisite-patch-id: 1d98ac5489f94e0255e4a94afd79ca45b378375c
prerequisite-patch-id: cbbf3755e2b5d960ad5a85485f3100e38d10d2f9
prerequisite-patch-id: 5bac7e79f93043039569159ff9dd3a711a3cf30b
prerequisite-patch-id: 973ee09300f370a69b2f5c19351dd39029dec0e1
prerequisite-patch-id: c244af405961146f4b8cb6887a055f43bfcd157b
prerequisite-patch-id: 71cea16d858d66b2a6efe625bb9ed354dc5acd6a
prerequisite-patch-id: 4022d1b2e13b49b7f5faeffdd77eda7de04c81b6
prerequisite-patch-id: ca15cbd1f60158faa8f6a14f087b8c6b78360a7a
prerequisite-patch-id: 014f3899b539232d7360f5d737893ff96dd3c73f
prerequisite-patch-id: b8283c0823abf7d450a52c5de8f48199e6f3dcf7
prerequisite-patch-id: ccad167002f058af95a49f414d0734b95a24acbc
prerequisite-patch-id: 54f759daef66caf36be9d74d3135b0433c5c94c6
prerequisite-patch-id: 9af5b7587b09645c73a960b170c1e6aeac719d51
prerequisite-patch-id: dd641bd41e17a63b9803dbc429bd29c26a2dbbf5
prerequisite-patch-id: 231797d786c127f14cac709f202b683733d22f16
prerequisite-patch-id: d82f7c639abad96af28cfa929180505f2c2cd940
prerequisite-patch-id: 55af926f8d1b0e2457698431b409b9e092be82a7
prerequisite-patch-id: 87fd4fb8ae7fc19942d98efd072f4eec03c31541
prerequisite-patch-id: e8f9a6ee99d7d49e9c35150319f3c69f64d4a007
prerequisite-patch-id: 14a4835027453d93e94c3e17ce5371fbe81bd511
prerequisite-patch-id: 281804b2eaa91b74a2ee6a9f45a9c5e9c62c827d
prerequisite-patch-id: ad46227428bed01e38f7d69ccb1fbaac36b2bf05
prerequisite-patch-id: 8daa8baf98b530196316b883d6a3c80b579c9f94
prerequisite-patch-id: f26424fcd7bebb346689764b4c101cf9094264ae
prerequisite-patch-id: e9f0d76d26a2990463d8684deb333c58056fed78
prerequisite-patch-id: c9ec8361cb05ee702067635af97203a7bbbeb028
prerequisite-patch-id: 320f2bdb2a1781541bf1cdc002683549ccb684af
prerequisite-patch-id: f9821fbdcc0e3e1c2ba9f866fb195b23a5c9c35c
prerequisite-patch-id: a6f251ecb9f42674b3a24f09150a5887c3c35bea
prerequisite-patch-id: b59957c9fc79336288816e1ac2118f5cdab6920c
prerequisite-patch-id: 2c7a475818b37028fe54565ea812627afe8ac85e
prerequisite-patch-id: 0db1b943d147a077174296c049482482a488f459
prerequisite-patch-id: 0d7309668668bf3266c258aa0cd2842b94dd5489
prerequisite-patch-id: 5169abeb79281614711d6c3715e9c49877d73f4f
prerequisite-patch-id: af6e888a3a4375bd32ffc8edc687b258282a42ea
prerequisite-patch-id: e4397b5e364d100b2c9b04fe1aebfe32175fe2b7
prerequisite-patch-id: be777c2072c3b225c64c5ed6d895d8ce11a120b6
prerequisite-patch-id: b4ccca6e576dd459217958b62c5c393261bea75b
prerequisite-patch-id: e8a0cc043b8f7d5c05f13cf794f0e93b3fb12a55
prerequisite-patch-id: eea7a05f17854a8d5be8e53878b7840eaf02eb6c
prerequisite-patch-id: b722ded9432b3b07ec630348442ec3e3cb6c50c8
prerequisite-patch-id: 7b644d85bfbf8c04d7aee2b92a6c46fe81a93ad5
prerequisite-patch-id: cfd8b8565e899462281b67e2581cce3aa9b332d5
prerequisite-patch-id: 1e696f94cbb6f93ae93783065ba9c93dacda0722
prerequisite-patch-id: 43b559ed2bab572ee55d81e99aa81b0834bb732c
prerequisite-patch-id: be04ad663d83ebcc5ba1602f0782f35f4e066f9e
prerequisite-patch-id: 402f5894d37f014365a91d32ee28b3f8f3928549
prerequisite-patch-id: e5e5d9b49560ed554393e216d4d1147b8c4378eb
prerequisite-patch-id: b8ae60b05e1c5186e96bb1377c921acca86b576a
prerequisite-patch-id: 8da60c42419cd5c53d5a585553c3268e7db6d26d
prerequisite-patch-id: d1ede4f2ec20039b36f834021d5efa86639a7ea3
prerequisite-patch-id: c9f5d4fd8c87ac067c27f37dd8284a2fa1b15199
prerequisite-patch-id: 499b2ee76da91480d91fc75eb698323cb1bd313d
prerequisite-patch-id: c8972689a39e49ba123b346cfcc924511530a15f
prerequisite-patch-id: 70e1bc7731a09423f427b80a04dfbd6c3c48f5a0
prerequisite-patch-id: 601cadeeb22e344ab56d4b9f2be8695f3765ab4e
prerequisite-patch-id: 98ec373cfee948eb7ad7ffbb4eccbe67cfcec51c
prerequisite-patch-id: dcdacd4ac1d22f1aa4e2bbb98fe2111e63074d73
prerequisite-patch-id: 956dc0c212ef6b83a3ac9c630d619604950d586f
prerequisite-patch-id: 9021232e0741e282cff0609feecde4c33f65219f
prerequisite-patch-id: ffc7db8709aef629fd09c4806c4ffa482efd2df6
prerequisite-patch-id: 56c4f39138f16a9c0aee966eaee9d473476d318e
prerequisite-patch-id: 24884a6be2069b416cb40e0ae043311cf8ccc30a
prerequisite-patch-id: 380f69b6e753edc999c6563ec497361871281990
prerequisite-patch-id: e28fef63466afe1858ad3ce78da29f151c2816db
prerequisite-patch-id: e18cad4d63e0a2b095f194bd9ba8fbcb77f53089
prerequisite-patch-id: 49644ea418292af8fce2deba2b8a6983b65ac9cd
prerequisite-patch-id: f22eaa8313393749b6e6cced30f453663838a3a2
prerequisite-patch-id: fec92df6c855506a7f63cf43734790c6ce4dfacf
prerequisite-patch-id: bc372c8ea2b9237e543a485ea1887a077b2d8071
prerequisite-patch-id: 15ec70795e4ff5aea575ff250d89d80b030671f1
prerequisite-patch-id: f9d9836657af636c14e875755423357c58830026
prerequisite-patch-id: e96ad68560b4551e0ad1bfb9f7e9474a35ac5bdf
prerequisite-patch-id: b50b946c2912ed91dd6d7858ee8138b02fad552e
prerequisite-patch-id: 3497e5bf3146adb95bafbb8f494619ef54284e9f
prerequisite-patch-id: 42b6d6088d8b0cd19965cb0d70247d787f8720bf
prerequisite-patch-id: d8bffd0020c35f610988b6ca985c84b84d859f55
prerequisite-patch-id: 61d9dfa91c3a0ed58f16d84dc411aa4bbbcda647
prerequisite-patch-id: 6f14f4c6db9d14c8c04ca76bcc4f304dd1f0b2d4
prerequisite-patch-id: 4d6047a747eb362061ea8c06511c8ce2d6f3e35b
prerequisite-patch-id: d657fb62bb289f69dc4e862847ebf669a7aa17e9
prerequisite-patch-id: a8f5f6d5d334b9ac87eead6720a0a95e3b3926cc
prerequisite-patch-id: 99ddc8c1addecb4878a5953e049f60f81869efc0
prerequisite-patch-id: e638366c69485e91a9a041d316062382fe309f7e
prerequisite-patch-id: 3f812a81c190fda806e0b5928d31a4b48170ca2a
prerequisite-patch-id: 1b8be8654ba06d1983dde80fe8ecf5b56966ea70
prerequisite-patch-id: 7a36f3a7e25bd07528e36a120245c9087d5fa474
prerequisite-patch-id: 61b79c8526f84173aa2457a0340af1854a9fdf29
prerequisite-patch-id: bf942c5ada8278ac0a4e6cc54fab9b0125da8bd7
prerequisite-patch-id: a7a6b9166ead25edf3522a3795e547e1209b6208
prerequisite-patch-id: 7c569bbec258ce9163c2b3e8a29247235a0e9fef
prerequisite-patch-id: cdc5330f6ed28b3e6945f940f8bb29095a261de8
prerequisite-patch-id: 39c1d970ce8100d15b69f28d67d9b5ed2e760b0b
prerequisite-patch-id: 032758962b70516d8cd96c3bd8e9f8d00ae3c4e8
prerequisite-patch-id: 3ed44f3489f102b25c235dae077ff179c03ff58c
prerequisite-patch-id: af5035a0fb9b05deaf36e26e0e7be17744a91a6d
prerequisite-patch-id: a0b75560254c4c566e9e42205f49f75ce8418dfc
prerequisite-patch-id: b0c905d0b580fa6cab405b90d3374c822f516da6
prerequisite-patch-id: 0c326c89151085faf9834f0a2bbf7f8232c250a5
prerequisite-patch-id: 3205d8fd807091417244c64dde37a8400cd62452
prerequisite-patch-id: e4e41d97224762638671e64677edcde404157e85
prerequisite-patch-id: 225ede112091f9218b7e9bcc56eabf38b618391c
prerequisite-patch-id: 1fc27c5ced2534e10ddc25dc82dfb71bcfaaa909
prerequisite-patch-id: bf9f6c2efa2216af0f1787dc1582e2cec821f19e
prerequisite-patch-id: 69acf79d4013ebdc3e7dfb4882bbe19498c820a5
prerequisite-patch-id: 900de3149fa074c39e463d859ccdf208ce120a76
prerequisite-patch-id: 196fd00997b26669da59cf6495fa390f42be05f4
prerequisite-patch-id: 8abd87da6210c054402d24e15d1b97d586f40815
prerequisite-patch-id: 5c561982f22f68875142001ea5ff12e4d205297e
prerequisite-patch-id: d8b8d605ae1bdff6a21466d03630142b976ba66b
prerequisite-patch-id: 8e48f249db6a690de197dc8374579b3794de3c88
prerequisite-patch-id: f642d0473e901d52cc03cf4865b99adc992d45bd
prerequisite-patch-id: 594b94ded0193cbdb95472ecfa5c2475d8b555c8
prerequisite-patch-id: 1122b34d719074190f7b33d0d67ff5d1d3e7f5db
prerequisite-patch-id: 1ce897362b190842dcd9a7877c705171fdd8ade4
prerequisite-patch-id: 20f0d87857211e3951ddbc86eea58150c0d8dcaf
prerequisite-patch-id: 22baa06d890ddd086562432ce444abd789eec2d0
prerequisite-patch-id: effedb461bf07207195201682fb9813fc17d6a85
prerequisite-patch-id: ab70003679195a1dd4a64c5c1213c6739d1acdea
prerequisite-patch-id: ec7d2e38795d4c81640b33dff7b3c26ac3042735
prerequisite-patch-id: d57c87225c6807cd6b5a49440d966ff82be2153d
prerequisite-patch-id: 22b233d97093f5e14419893ed434a9b12bec252c
prerequisite-patch-id: adc1a53f933b395000482937c3aea200e17868e4
prerequisite-patch-id: 315d800dc49e65f6a814116b442f06c66d9e8cf8
prerequisite-patch-id: 25a2ac89a85ef047f409348d57ebe7abeb9fe9fd
prerequisite-patch-id: db75dca32b49336a1eecf6e23f88d300cecb4921
prerequisite-patch-id: c9a72ac043afbc123fd8f88d48882cfc23113fe1
prerequisite-patch-id: e51c974df61f6e45a0b6e378935a1e9d96e78b70
prerequisite-patch-id: 75fea1aad424875aa83d08decd7157d906089d17
prerequisite-patch-id: a2409b936bff7968ec1dd058e9a3820adbe347d1
prerequisite-patch-id: 0260f7cb7484c8f81ebf82472b8cf183d50b2d42
prerequisite-patch-id: 5f8b7850e95530fe96a6c5cdd32fd5b21beb5515
prerequisite-patch-id: 868b7feb1c99883f3237752e4809a364ce156683
prerequisite-patch-id: 6f6d4d9f2af20032c8701c58817e7b6936b2ab71
prerequisite-patch-id: 4a9174d8f8621df93d33a3dbf27c162375de2b73
prerequisite-patch-id: 8d293bfeee3dfde2791076595ff41afe587cbc7b
prerequisite-patch-id: 2477df553856797d1c83032d459a8969a3aa7ed3
prerequisite-patch-id: e88a50fafd7a64f2b6b6f4c18f23e435df1ee70e
prerequisite-patch-id: 6a41833a45886c45cc8b2558214c9d7e66f9df9a
prerequisite-patch-id: a04b426a01b37a850241890c608f7ef786542812
prerequisite-patch-id: ff2e6388d3b57a45324d0f6092ac925aaee2768f
prerequisite-patch-id: 9174bbe91735dc9c6a808b029ed16a494753ff79
prerequisite-patch-id: 949fec4f42bcbdbd953996ca3d003cc42ae72e42
prerequisite-patch-id: 338c112c7fd7d029a7aa2ee9a71983fd99aeafa1
-- 
2.40.1


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-commencement-glibc-final-Use-libc-for-target-for.patch --]
[-- Type: text/x-patch, Size: 1271 bytes --]

From 380aaa334c89af68f1183e5120dc238b18f0cd6e Mon Sep 17 00:00:00 2001
Message-Id: <380aaa334c89af68f1183e5120dc238b18f0cd6e.1685682827.git.janneke@gnu.org>
In-Reply-To: <ee989048c46b4123232aeb49c4b1bfe14cb10037.1685682827.git.janneke@gnu.org>
References: <ee989048c46b4123232aeb49c4b1bfe14cb10037.1685682827.git.janneke@gnu.org>
From: Janneke Nieuwenhuizen <janneke@gnu.org>
Date: Thu, 1 Jun 2023 23:40:49 +0200
Subject: [PATCH 2/2] gnu: commencement: glibc-final: Use libc-for-target for
 source too.

* gnu/packages/commencement.scm (glibc-final)[source]: Use
libc (libc-for-target), instead of glibc.
---
 gnu/packages/commencement.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 7df5c9b5c9..2477114ed7 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3072,7 +3072,7 @@ (define/system-dependent glibc-final
   (let ((libc (libc-for-target)))
     (package/inherit libc
       (name "glibc")
-      (source (bootstrap-origin (package-source glibc)))
+      (source (bootstrap-origin (package-source libc)))
       (inputs `(("static-bash" ,static-bash-for-glibc)
                 ,@(alist-delete
                    "static-bash"
-- 
2.40.1


[-- Attachment #4: Type: text/plain, Size: 164 bytes --]


-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd.
  2023-06-02  5:18       ` [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd Janneke Nieuwenhuizen
@ 2023-06-08  8:17         ` Janneke Nieuwenhuizen
  2023-06-14  9:29           ` [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Ludovic Courtès
  0 siblings, 1 reply; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-06-08  8:17 UTC (permalink / raw)
  To: Josselin Poiret; +Cc: Ludovic Courtès, 63641

Janneke Nieuwenhuizen writes:

Hi!

> Josselin Poiret via Guix-patches via writes:
>
> Hello again!
>
>> From: Josselin Poiret <dev@jpoiret.xyz>
>>
> [..]
>
>> * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
>> glibc-final): Use libc-for-target.
>
> As discussed on IRC, I found that we're still building glibc-2.35 during
> commencement.  I overlooked that this recent patch of yours made these
> changes in commencement, so I already made patches for this (attached).

Even with these patches (on wip-hurd now), gcc-toolchain still depends
on glibc-2.35 for offload builds, as you can see when doing

    ./pre-inst-env guix build --system=i568-gnu -d gcc-toolchain

from GNU/Linux.  When running this same build in a childhurd, the
glibc-2.35 dependency is gone.  Note that gcc-final, i.e.

    ./pre-inst-env guix build --system=i568-gnu -d \
       -e '(@@ (gnu packages commencement) gcc-final)'

does not depend ond glibc-2.35, but both glibc-final and
glibc-final-with-bootstrap-bash build 2.35 when using --system.

I've tried some things and don't know how to fix this.

Greetings,
Janneke

PS: I have patches for glibc-locales/hurd and glibc-utf8-locales/hurd
that seem to work OK, but I'm not sure if we even want/need those?

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
  2023-06-08  8:17         ` Janneke Nieuwenhuizen
@ 2023-06-14  9:29           ` Ludovic Courtès
  2023-06-14 10:33             ` Janneke Nieuwenhuizen
  0 siblings, 1 reply; 28+ messages in thread
From: Ludovic Courtès @ 2023-06-14  9:29 UTC (permalink / raw)
  To: Janneke Nieuwenhuizen; +Cc: Josselin Poiret, 63641

[-- Attachment #1: Type: text/plain, Size: 1340 bytes --]

Hello Janneke & Josselin,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

> Janneke Nieuwenhuizen writes:

[...]

>> As discussed on IRC, I found that we're still building glibc-2.35 during
>> commencement.  I overlooked that this recent patch of yours made these
>> changes in commencement, so I already made patches for this (attached).
>
> Even with these patches (on wip-hurd now), gcc-toolchain still depends
> on glibc-2.35 for offload builds, as you can see when doing
>
>     ./pre-inst-env guix build --system=i568-gnu -d gcc-toolchain
>
> from GNU/Linux.  When running this same build in a childhurd, the
> glibc-2.35 dependency is gone.  Note that gcc-final, i.e.
>
>     ./pre-inst-env guix build --system=i568-gnu -d \
>        -e '(@@ (gnu packages commencement) gcc-final)'
>
> does not depend ond glibc-2.35, but both glibc-final and
> glibc-final-with-bootstrap-bash build 2.35 when using --system.

Turns out that this was because ‘%final-inputs’ now also needs to be
parameterized by system type so it returns the right ‘glibc-final’
package.  Patch below.

Josselin, Janneke: could you squash this with the original
‘libc-for-target’ patch?

(Eventually we should update callers of ‘standard-packages’ so they pass
the ‘system’ argument.)

Thanks,
Ludo’.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 7555 bytes --]

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 9435161969..7fb02cb3e8 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1677,6 +1677,6 @@ (define-public (%final-inputs)
   "Return the list of \"final inputs\"."
   ;; Avoid circular dependency by lazily resolving 'commencement'.
   (let ((iface (resolve-interface '(gnu packages commencement))))
-    (module-ref iface '%final-inputs)))
+    ((module-ref iface '%final-inputs) (%current-system))))
 
 ;;; base.scm ends here
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 055e14ba68..fb67b272a1 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3406,45 +3406,49 @@ (define sed-final
     (package/inherit sed (native-inputs `(("perl" ,perl-boot0))))))
 
 (define-public %final-inputs
-  ;; Final derivations used as implicit inputs by 'gnu-build-system'.  We
-  ;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are
-  ;; used for origins that have patches, thereby avoiding circular
-  ;; dependencies.
-  (let ((finalize (compose with-boot6
-                           package-with-bootstrap-guile)))
-    `(,@(map (match-lambda
-               ((name package)
-                (list name (finalize package))))
-             `(("tar" ,tar)
-               ("gzip" ,gzip)
-               ("bzip2" ,bzip2)
-               ("file" ,file)
-               ("diffutils" ,diffutils)
-               ("patch" ,patch)
-               ("findutils" ,findutils)
-               ("gawk" ,gawk)))
-      ("sed" ,sed-final)
-      ("grep" ,grep-final)
-      ("xz" ,xz-final)
-      ("coreutils" ,coreutils-final)
-      ("make" ,gnu-make-final)
-      ("bash" ,bash-final)
-      ("ld-wrapper" ,ld-wrapper)
-      ("binutils" ,binutils-final)
-      ("gcc" ,gcc-final)
-      ("libc" ,glibc-final)
-      ("libc:static" ,glibc-final "static")
-      ("locales" ,glibc-utf8-locales-final))))
+  ;; The 'glibc-final' package is not the same depending on what system is
+  ;; targeted, so this whole list must be parameterized.
+  (mlambda (system)
+    ;; Final derivations used as implicit inputs by 'gnu-build-system'.  We
+    ;; still use 'package-with-bootstrap-guile' so that the bootstrap tools are
+    ;; used for origins that have patches, thereby avoiding circular
+    ;; dependencies.
+    (let ((finalize (compose with-boot6
+                             package-with-bootstrap-guile)))
+      `(,@(map (match-lambda
+                 ((name package)
+                  (list name (finalize package))))
+               `(("tar" ,tar)
+                 ("gzip" ,gzip)
+                 ("bzip2" ,bzip2)
+                 ("file" ,file)
+                 ("diffutils" ,diffutils)
+                 ("patch" ,patch)
+                 ("findutils" ,findutils)
+                 ("gawk" ,gawk)))
+        ("sed" ,sed-final)
+        ("grep" ,grep-final)
+        ("xz" ,xz-final)
+        ("coreutils" ,coreutils-final)
+        ("make" ,gnu-make-final)
+        ("bash" ,bash-final)
+        ("ld-wrapper" ,ld-wrapper)
+        ("binutils" ,binutils-final)
+        ("gcc" ,gcc-final)
+        ("libc" ,glibc-final)
+        ("libc:static" ,glibc-final "static")
+        ("locales" ,glibc-utf8-locales-final)))))
 
 (define-public canonical-package
-  (let ((name->package (fold (lambda (input result)
-                               (match input
-                                 ((_ package . outputs)
-                                  (vhash-cons (package-full-name package)
-                                              package result))))
-                             vlist-null
-                             `(("guile" ,guile-final)
-                               ,@%final-inputs))))
+  (let ((name->package (mlambda (system)
+                         (fold (lambda (input result)
+                                 (match input
+                                   ((_ package . outputs)
+                                    (vhash-cons (package-full-name package)
+                                                package result))))
+                               vlist-null
+                               `(("guile" ,guile-final)
+                                 ,@(%final-inputs system))))))
     (lambda (package)
       "Return the 'canonical' variant of PACKAGE---i.e., if PACKAGE is one of
 the implicit inputs of 'gnu-build-system', return that one, otherwise return
@@ -3454,7 +3458,8 @@ (define-public canonical-package
 COREUTILS-FINAL vs. COREUTILS, etc."
       ;; XXX: This doesn't handle dependencies of the final inputs, such as
       ;; libunistring, GMP, etc.
-      (match (vhash-assoc (package-full-name package) name->package)
+      (match (vhash-assoc (package-full-name package)
+                          (name->package (%current-system)))
         ((_ . canon)
          ;; In general we want CANON, except if we're cross-compiling: CANON
          ;; uses explicit inputs, so it is "anchored" in the bootstrapped
@@ -3536,7 +3541,8 @@ (define* (make-gcc-toolchain gcc
       ;; install everything that we need, and (2) to make sure ld-wrapper comes
       ;; before Binutils' ld in the user's profile.
       (inputs `(("gcc" ,gcc)
-                ("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")))
+                ("ld-wrapper" ,(car (assoc-ref (%final-inputs (%current-system))
+                                               "ld-wrapper")))
                 ("binutils" ,binutils-final)
                 ("libc" ,libc)
                 ("libc-debug" ,libc "debug")
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 3308302472..c1aa187c42 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -266,13 +266,13 @@ (define (package-with-restricted-references p refs)
       p))
 
 \f
-(define (standard-packages)
+(define* (standard-packages #:optional (system (%current-system)))
   "Return the list of (NAME PACKAGE OUTPUT) or (NAME PACKAGE) tuples of
 standard packages used as implicit inputs of the GNU build system."
 
   ;; Resolve (gnu packages commencement) lazily to hide circular dependency.
   (let ((distro (resolve-module '(gnu packages commencement))))
-    (module-ref distro '%final-inputs)))
+    ((module-ref distro '%final-inputs) system)))
 
 (define* (lower name
                 #:key source inputs native-inputs outputs target
@@ -303,7 +303,7 @@ (define* (lower name
                           (standard-cross-packages target 'host)
                           '())
                     ,@(if implicit-inputs?
-                          (standard-packages)
+                          (standard-packages system)
                           '())))
     (host-inputs (if target inputs '()))
 
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index 9676271542..02716abc12 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -228,7 +228,8 @@ (define (options->update-specs opts)
     (let* ((input->package (match-lambda
                              ((name (? package? package) _ ...) package)
                              (_ #f)))
-           (final-inputs   (map input->package %final-inputs))
+           (final-inputs   (map input->package
+                                (%final-inputs (%current-system))))
            (core           (append final-inputs
                                    (append-map (compose (cut filter-map input->package <>)
                                                         package-transitive-inputs)

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
  2023-06-14  9:29           ` [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Ludovic Courtès
@ 2023-06-14 10:33             ` Janneke Nieuwenhuizen
  0 siblings, 0 replies; 28+ messages in thread
From: Janneke Nieuwenhuizen @ 2023-06-14 10:33 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Josselin Poiret, 63641

Ludovic Courtès writes:

Hello Ludo, Josselin,

>>> As discussed on IRC, I found that we're still building glibc-2.35 during
>>> commencement.  I overlooked that this recent patch of yours made these
>>> changes in commencement, so I already made patches for this (attached).
>>
>> Even with these patches (on wip-hurd now), gcc-toolchain still depends
>> on glibc-2.35 for offload builds, as you can see when doing
>>
>>     ./pre-inst-env guix build --system=i568-gnu -d gcc-toolchain
>>
>> from GNU/Linux.  When running this same build in a childhurd, the
>> glibc-2.35 dependency is gone.  Note that gcc-final, i.e.
>>
>>     ./pre-inst-env guix build --system=i568-gnu -d \
>>        -e '(@@ (gnu packages commencement) gcc-final)'
>>
>> does not depend ond glibc-2.35, but both glibc-final and
>> glibc-final-with-bootstrap-bash build 2.35 when using --system.
>
> Turns out that this was because ‘%final-inputs’ now also needs to be
> parameterized by system type so it returns the right ‘glibc-final’
> package.  Patch below.
>
> Josselin, Janneke: could you squash this with the original
> ‘libc-for-target’ patch?
>
> (Eventually we should update callers of ‘standard-packages’ so they pass
> the ‘system’ argument.)

Beautiful, thanks!  As libc-for-target is Josselin's patch, I kept it as
a separate "squash! ..." commit right now, adding a changelog message

    https://git.savannah.gnu.org/cgit/guix.git/commit/?h=wip-hurd&id=1d3b66230f7d5730ce50b654f4b3a83cc28859e7

and put it on top of of my earlier "squash! ..." commit for the
libc-for-target patch

    https://git.savannah.gnu.org/cgit/guix.git/commit/?h=wip-hurd&id=81455d49bac2c8cf3f0f1663773a95b22e6ebc7d

for easier reading/revieving by Josselin, and squashing should be
trivial.

I have reset the "wip-hurd" branch, and as discussed on IRC plan to
would like to rename it to "hurd-team", possibly later today.

In other news, I have built all dependencies needed for `guix' natively
using (the previous) "wip-hurd" branch.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
  2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
                   ` (8 preceding siblings ...)
  2023-05-23 12:17 ` Janneke Nieuwenhuizen
@ 2023-07-13 17:12 ` Josselin Poiret via Guix-patches via
  9 siblings, 0 replies; 28+ messages in thread
From: Josselin Poiret via Guix-patches via @ 2023-07-13 17:12 UTC (permalink / raw)
  To: 63641

[-- Attachment #1: Type: text/plain, Size: 942 bytes --]

Hi,

Josselin Poiret <dev@jpoiret.xyz> writes:

> Josselin Poiret (8):
>   hurd-boot: Add urandom and default-pager translators.
>   gnu: glibc/hurd-headers: Properly cross-build.
>   gnu: gnumach-headers: Cross-build without relying on x86.
>   gnu: hurd: Update supported systems.
>   gnu: Add libc-for-target and glibc/hurd.
>   gnu: gnumach: Update to 1.8+git20221224.
>   gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3.
>   gnu: hurd: Update to v0.9.git20230216.
>
>  gnu/build/hurd-boot.scm       |   3 +
>  gnu/packages/base.scm         |  51 ++++++++++++----
>  gnu/packages/commencement.scm |  66 ++++++++++----------
>  gnu/packages/cross-base.scm   |  28 ++++++++-
>  gnu/packages/hurd.scm         | 109 +++++++++++++++-------------------
>  5 files changed, 151 insertions(+), 106 deletions(-)

Pushed modified series as 1f19387ca7500ecef114e4c41802633658358313.

Best,
-- 
Josselin Poiret

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 682 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2023-07-13 17:13 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-22  9:00 [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Josselin Poiret via Guix-patches via
2023-05-22  9:04 ` [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators Josselin Poiret via Guix-patches via
2023-05-23 21:28   ` Janneke Nieuwenhuizen
2023-05-28  8:26     ` Janneke Nieuwenhuizen
2023-05-22  9:04 ` [bug#63641] [PATCH 2/8] gnu: glibc/hurd-headers: Properly cross-build Josselin Poiret via Guix-patches via
2023-05-23 16:11   ` Janneke Nieuwenhuizen
2023-05-22  9:04 ` [bug#63641] [PATCH 3/8] gnu: gnumach-headers: Cross-build without relying on x86 Josselin Poiret via Guix-patches via
2023-05-23 21:32   ` Janneke Nieuwenhuizen
2023-05-22  9:04 ` [bug#63641] [PATCH 4/8] gnu: hurd: Update supported systems Josselin Poiret via Guix-patches via
2023-05-24  8:11   ` Janneke Nieuwenhuizen
2023-05-22  9:04 ` [bug#63641] [PATCH 5/8] gnu: Add libc-for-target and glibc/hurd Josselin Poiret via Guix-patches via
2023-05-22  9:37   ` Josselin Poiret via Guix-patches via
2023-05-22  9:42     ` [bug#63641] [PATCH v2 " Josselin Poiret via Guix-patches via
2023-05-24  8:11       ` Janneke Nieuwenhuizen
2023-05-24  8:57       ` [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Ludovic Courtès
2023-06-02  5:18       ` [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd Janneke Nieuwenhuizen
2023-06-08  8:17         ` Janneke Nieuwenhuizen
2023-06-14  9:29           ` [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Ludovic Courtès
2023-06-14 10:33             ` Janneke Nieuwenhuizen
2023-05-22  9:04 ` [bug#63641] [PATCH 6/8] gnu: gnumach: Update to 1.8+git20221224 Josselin Poiret via Guix-patches via
2023-05-24  8:12   ` Janneke Nieuwenhuizen
2023-05-22  9:04 ` [bug#63641] [PATCH 7/8] gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3 Josselin Poiret via Guix-patches via
2023-05-23 12:17   ` Janneke Nieuwenhuizen
2023-05-22  9:04 ` [bug#63641] [PATCH 8/8] gnu: hurd: Update to v0.9.git20230216 Josselin Poiret via Guix-patches via
2023-05-24  8:48   ` [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components Ludovic Courtès
2023-05-23 12:17 ` Janneke Nieuwenhuizen
2023-05-24  9:02   ` Ludovic Courtès
2023-07-13 17:12 ` Josselin Poiret via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).