Subject: [bug#63641] [PATCH 0/8] Add libc specific to Hurd and update components

From: Ludovic Courtès <[email-masked]>
Date: Wed, 24 May 2023 10:57:22 +0200

Josselin Poiret <[email-masked]> skribis:

> From: Josselin Poiret <[email-masked]>
>
> * 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: <[email-masked]>
> +From: Josselin Poiret <[email-masked]>
> +Date: Sat, 13 May 2023 14:10:43 +0200
> +Subject: [PATCH] Add versioned locpath
> +
> +From: Josselin Poiret <[email-masked]>

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

Thanks,
Ludo’.