[PATCH 0/8] Add libc specific to Hurd and update components

  • Done
  • quality assurance status badge
Details
4 participants
  • Josselin Poiret
  • Janneke Nieuwenhuizen
  • Joshua Branson
  • Ludovic Courtès
Owner
unassigned
Submitted by
Josselin Poiret
Severity
normal
Merged with
J
J
Josselin Poiret wrote on 22 May 2023 11:00
(address . guix-patches@gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
cover.1684745752.git.dev@jpoiret.xyz
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
J
J
Josselin Poiret wrote on 22 May 2023 11:04
[PATCH 1/8] hurd-boot: Add urandom and default-pager translators.
(address . 63641@debbugs.gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
b3a157c648efc539edfb0c8c16e5166dec583620.1684745752.git.dev@jpoiret.xyz
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(+)

Toggle diff (23 lines)
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
J
J
Josselin Poiret wrote on 22 May 2023 11:04
[PATCH 2/8] gnu: glibc/hurd-headers: Properly cross-build.
(address . 63641@debbugs.gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
873b5a865c24b22b98332cc6f26e2ebef31ae68b.1684745752.git.dev@jpoiret.xyz
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(-)

Toggle diff (55 lines)
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
J
J
Josselin Poiret wrote on 22 May 2023 11:04
[PATCH 3/8] gnu: gnumach-headers: Cross-build without relying on x86.
(address . 63641@debbugs.gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
9ce52afdf9e69355ba0011bbaba3bbeefab3fb11.1684745752.git.dev@jpoiret.xyz
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(-)

Toggle diff (52 lines)
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
J
J
Josselin Poiret wrote on 22 May 2023 11:04
[PATCH 4/8] gnu: hurd: Update supported systems.
(address . 63641@debbugs.gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
8387fe7ff108e8d9593666a9b0c921c3854112bb.1684745752.git.dev@jpoiret.xyz
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(-)

Toggle diff (47 lines)
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
J
J
Josselin Poiret wrote on 22 May 2023 11:04
[PATCH 6/8] gnu: gnumach: Update to 1.8+git20221224.
(address . 63641@debbugs.gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
be3e74c59461e6f71a5d41c36190c696181b23af.1684745752.git.dev@jpoiret.xyz
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(-)

Toggle diff (25 lines)
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
J
J
Josselin Poiret wrote on 22 May 2023 11:04
[PATCH 7/8] gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3.
(address . 63641@debbugs.gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
84209beabc07d273034f85ce97841519188daa1c.1684745752.git.dev@jpoiret.xyz
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(-)

Toggle diff (92 lines)
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
J
J
Josselin Poiret wrote on 22 May 2023 11:04
[PATCH 8/8] gnu: hurd: Update to v0.9.git20230216.
(address . 63641@debbugs.gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
fcb36b13b0b5be42c07d477871ff604c1dc5178e.1684745752.git.dev@jpoiret.xyz
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(-)

Toggle diff (43 lines)
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
J
J
Josselin Poiret wrote on 22 May 2023 11:04
[PATCH 5/8] gnu: Add libc-for-target and glibc/hurd.
(address . 63641@debbugs.gnu.org)(name . Josselin Poiret)(address . dev@jpoiret.xyz)
6159809904a724d5db977063feb0bb6c260063d1.1684745752.git.dev@jpoiret.xyz
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(-)

Toggle diff (189 lines)
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
J
J
Josselin Poiret wrote on 22 May 2023 11:37
(address . 63641@debbugs.gnu.org)
87jzx07lmr.fsf@jpoiret.xyz
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:

Toggle quote (205 lines)
> 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
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEOSSM2EHGPMM23K8vUF5AuRYXGooFAmRrN70QHGRldkBqcG9p
cmV0Lnh5egAKCRBQXkC5FhcairVcDACMrwTvqtWqacF+ilDC/HzO7CQO1Zoohtal
3b7wsZ5dFBHuK2lERL7Plmo1PJPvzPSSxSO2v73KgXqdCqfdiZYAejB3DGnBbwAY
aq6JuccOve2TeihtdGbTi3jwM5KHKnOjKdVFccQ7tZMhA62AhUzCtV+R/uuArFbK
pQ0scFb1EMkELiyaQQye+cUxFoCPZRpT8fXBISpInohduDnIeZ+l2nd9gQexb8Cw
3/+d1vRJiWbzgrI+SW8OC8sDX6YVtB3uxEAK8QbnkapoV7KXoUF+E2J29RRvKReg
W+D4xOygyIaT8OOeIU8he87VZQ0fsmqqn604razoysIEOunosAu/BTzyqZ/7JehE
hRYWw0VMDrI9HRr9+ZrY1txkMnnSiQWu+7RrXHI91U1t08gQOZFz5mjsNbvySUz8
3IbVqq3KKewQUw3iJy/dxNKZMZwFqrJ4QLBLIJg/a2r1rlh3hYNXdK6XTqrQnOIe
uOt7k2T/D55vXTma0ok9M/74U4YTDxg=
=SuPU
-----END PGP SIGNATURE-----

J
J
Josselin Poiret wrote on 22 May 2023 11:42
[PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd.
37e9697f42aecfb83757989f8172beba8faf32ab.1684748476.git.dev@jpoiret.xyz
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

Toggle diff (457 lines)
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
This message was truncated. Download the full message here.
J
J
Janneke Nieuwenhuizen wrote on 23 May 2023 14:17
Re: [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
87ilcj44z7.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Hi Josselin!

Toggle quote (6 lines)
> 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

Toggle quote (3 lines)
> 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
J
J
Janneke Nieuwenhuizen wrote on 23 May 2023 14:17
Re: [bug#63641] [PATCH 7/8] gnu: mig: Update to 04bfe7a91223ba15d868f7165e49328b1c6e86c3.
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
87h6s344yv.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Hi,

Toggle quote (5 lines)
> 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
work fine (see attached).

Greetings,
Janneke
Toggle diff (86 lines)
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
--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 23 May 2023 18:11
Re: [bug#63641] [PATCH 2/8] gnu: glibc/hurd-headers: Properly cross-build.
(name . Josselin Poiret via Guix-patches via)(address . guix-patches@gnu.org)
871qj73u5c.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Hi!

Toggle quote (7 lines)
> 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.

[..]

Toggle quote (23 lines)
> ---
> 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

Toggle snippet (25 lines)
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)

(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
J
J
Janneke Nieuwenhuizen wrote on 23 May 2023 23:28
Re: [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators.
(name . Josselin Poiret via Guix-patches via)(address . guix-patches@gnu.org)
87353m3fgs.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Toggle quote (13 lines)
> 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
J
J
Janneke Nieuwenhuizen wrote on 23 May 2023 23:32
Re: [bug#63641] [PATCH 3/8] gnu: gnumach-headers: Cross-build without relying on x86.
(name . Josselin Poiret via Guix-patches via)(address . guix-patches@gnu.org)
87sfbm20pj.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Hi!

Toggle quote (8 lines)
> 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
J
J
Janneke Nieuwenhuizen wrote on 24 May 2023 10:11
Re: [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd.
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
875y8i1756.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Hi!

Toggle quote (15 lines)
> 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!

[..]

Toggle quote (14 lines)
> 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).

Toggle quote (9 lines)
> 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"?

Toggle quote (12 lines)
> 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
J
J
Janneke Nieuwenhuizen wrote on 24 May 2023 10:11
Re: [bug#63641] [PATCH 4/8] gnu: hurd: Update supported systems.
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
871qj6173s.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Toggle quote (5 lines)
> 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
J
J
Janneke Nieuwenhuizen wrote on 24 May 2023 10:12
Re: [bug#63641] [PATCH 6/8] gnu: gnumach: Update to 1.8+git20221224.
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
87wn0yywpf.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Toggle quote (7 lines)
> 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
L
L
Ludovic Courtès wrote on 24 May 2023 10:48
Re: bug#63641: [PATCH 0/8] Add libc specific to Hurd and update components
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
877csyru7o.fsf_-_@gnu.org
Hi,

Josselin Poiret <dev@jpoiret.xyz> skribis:

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

[...]

Toggle quote (8 lines)
> +++ 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’.
L
L
Ludovic Courtès wrote on 24 May 2023 10:57
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
87wn0yqf7x.fsf_-_@gnu.org
Josselin Poiret <dev@jpoiret.xyz> skribis:

Toggle quote (15 lines)
> 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.

[...]

Toggle quote (5 lines)
> +(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?

Toggle quote (9 lines)
> +(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.

Toggle quote (5 lines)
> +++ 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.

[...]

Toggle quote (10 lines)
> +++ 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 :-)).

Toggle quote (10 lines)
> +++ 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’.
L
L
Ludovic Courtès wrote on 24 May 2023 11:02
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
87jzwyqezp.fsf_-_@gnu.org
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’.
J
J
Joshua Branson wrote on 26 May 2023 16:26
control message for bug #51770
(address . control@debbugs.gnu.org)
858927381f2a6df60e0525a8dd8ea45c.jbranso@dismail.de
merge 51770 63641
quit
J
J
Janneke Nieuwenhuizen wrote on 28 May 2023 10:26
Re: [bug#63641] [PATCH 1/8] hurd-boot: Add urandom and default-pager translators.
(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
87mt1oeu99.fsf@gnu.org
Janneke Nieuwenhuizen writes:

Toggle quote (19 lines)
> 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
J
J
Janneke Nieuwenhuizen wrote on 2 Jun 2023 07:18
Re: [bug#63641] [PATCH v2 5/8] gnu: Add libc-for-target and glibc/hurd.
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 63641@debbugs.gnu.org)
87y1l2moh1.fsf@gnu.org
Josselin Poiret via Guix-patches via writes:

Hello again!

Toggle quote (2 lines)
> From: Josselin Poiret <dev@jpoiret.xyz>
>
[..]

Toggle quote (3 lines)
> * 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

[..]

Toggle quote (20 lines)
> 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,

Toggle quote (2 lines)
> (source (bootstrap-origin (package-source glibc)))

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

[..]

Toggle quote (5 lines)
> + (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
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(-)

Toggle diff (15 lines)
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
--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 8 Jun 2023 10:17
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
87a5xa1i7a.fsf@gnu.org
Janneke Nieuwenhuizen writes:

Hi!

Toggle quote (15 lines)
> 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
L
L
Ludovic Courtès wrote on 14 Jun 2023 11:29
Re: bug#63641: [PATCH 0/8] Add libc specific to Hurd and update components
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
87zg52s87i.fsf_-_@gnu.org
Hello Janneke & Josselin,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (2 lines)
> Janneke Nieuwenhuizen writes:

[...]

Toggle quote (18 lines)
>> 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’.
Attachment: file
J
J
Janneke Nieuwenhuizen wrote on 14 Jun 2023 12:33
(name . Ludovic Courtès)(address . ludo@gnu.org)
87a5x2z637.fsf@gnu.org
Ludovic Courtès writes:

Hello Ludo, Josselin,

Toggle quote (28 lines)
>>> 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


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


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
J
J
Josselin Poiret wrote on 13 Jul 2023 19:12
Re: [PATCH 0/8] Add libc specific to Hurd and update components
(address . 63641@debbugs.gnu.org)
87edlb91n4.fsf@jpoiret.xyz
Hi,

Josselin Poiret <dev@jpoiret.xyz> writes:

Toggle quote (17 lines)
> 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
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEOSSM2EHGPMM23K8vUF5AuRYXGooFAmSwMG8QHGRldkBqcG9p
cmV0Lnh5egAKCRBQXkC5FhcaiqtAC/49Ost9RrN2vKoekseZD4cppxRJKW9VGmNH
7hEz/AcxfYyd19NHtVj6LJe2Ast/6aGk9PrbLmLJIiHntCw2lXI6+8S3rWgD9PKQ
C9c9PeakUhdFHEFSYHj5FbZ7jVVyh+HLWYY7GgiaUF7jQqDi9FwnNTk+3h5ppwv6
rEllk/QZ7QgwrHt9ce4k2V76/U8m0cl1+9q7i9eMUjFYHrvvO6ZaAOWH0t+3mgxH
tGRb0dvIf+8hDHsXbhCRAjiJFYryYKOaLVIKuj2YraMVLKxBwNOK8tyiJw2XcEAY
YvclKiIvYhvIrdLMdxXuxOt0ahBHUpj4RhDN5MIMpQHAzDSMokLCeez5hNVokNCh
rW0oyBwBt3NJ8n2g1Hm91R+m/L2efngfToa+a3aEeoe//K53OpaVrpz0dZiQku3r
TuhUrMaPWqZB1jUiFwlLrlUAhznfJa0qZu2Ad0N3FkONV4ehvZrD7HB1TidTnjM5
Q+hzg4q44yp+5AToPYrMN7g/tGegI/c=
=yHHt
-----END PGP SIGNATURE-----

J
J
Josselin Poiret wrote on 13 Jul 2023 19:15
(address . control@debbugs.gnu.org)
875y6n91hk.fsf@jpoiret.xyz
close 63641
thankyou
--
Josselin Poiret
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEOSSM2EHGPMM23K8vUF5AuRYXGooFAmSwMTcQHGRldkBqcG9p
cmV0Lnh5egAKCRBQXkC5FhcaikhjC/9JmiT9IZCZ2lKcAD+V+Wvd6fC1EE88PlOQ
RamnsrzKAATomGpV55HEwUvKG3idSmuUF5JFbHbRfb/EQRw8ZfWM9eIXwxV/5kT6
iThCr4SVe71kgS47p9Mru8yvYSKcBOkJPDjEbeVoeH0vRYnRup5YxmHs+1FnQcsa
fXYa3A1rwiRdvXG+RXUuEhlCzOpSKCpHGbOxQFltH6fe6MpOJQG8Ta7nSyUMQyPf
m5AeGMH+zuxyLcneOJhm7brQ22GjNp7cMpM1L95sbFm2CECDIb/mIHLq8JXmAGwc
EMO2HGi6cQma/N4wCo4xb6ny5FfYTdbDFxNa7+D9FDlp23x5gZPGIZaG7ub4ZMb2
rfpZytMswOBUZorjoMCGKWUIUVKtnCwfUnePFjcDAGJpUclRPIK0fsB7TcvBqLJz
nHoljw+btKwu5cLvxJ/UjKapSSLULjPHTCbI6d/NW52flbHP4HMtGVehff5mp7yw
VvP6NJn2vmzx5/avB6ZZ98nUQIOJWc0=
=bS4P
-----END PGP SIGNATURE-----

?