GNU bug report logs - #36495
[PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales build for glibc 2.29.

Previous Next

Package: guix-patches;

Reported by: Kei Kebreau <kkebreau <at> posteo.net>

Date: Thu, 4 Jul 2019 11:40:01 UTC

Severity: normal

Tags: patch

Done: Kei Kebreau <kkebreau <at> posteo.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 36495 in the body.
You can then email your comments to 36495 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#36495; Package guix-patches. (Thu, 04 Jul 2019 11:40:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kei Kebreau <kkebreau <at> posteo.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 04 Jul 2019 11:40:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kei Kebreau <kkebreau <at> posteo.net>
To: guix-patches <at> gnu.org
Cc: Kei Kebreau <kkebreau <at> posteo.net>, mbakke <at> fastmail.com
Subject: [PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales build
 for glibc 2.29.
Date: Thu,  4 Jul 2019 07:39:06 -0400
The patch for glibc 2.28 and earlier replaces the same content, but the context
in the patch is different enough to fail to merge.

* gnu/packages/base.scm (make-glibc-locales)[source]: Add patch.
* gnu/packages/patches/glibc-locales-2.29.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/base.scm                         | 10 +++++-
 gnu/packages/patches/glibc-locales-2.29.patch | 32 +++++++++++++++++++
 3 files changed, 42 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/glibc-locales-2.29.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index bac1a92741..84c6190bd1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -867,6 +867,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-hurd-magic-pid.patch		\
   %D%/packages/patches/glibc-ldd-x86_64.patch			\
   %D%/packages/patches/glibc-locales.patch			\
+  %D%/packages/patches/glibc-locales-2.29.patch			\
   %D%/packages/patches/glibc-o-largefile.patch			\
   %D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch	\
   %D%/packages/patches/glibc-vectorized-strcspn-guards.patch	\
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index f26145cb0b..d6df023f26 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -999,7 +999,15 @@ with the Linux kernel.")
     (inherit glibc)
     (name "glibc-locales")
     (source (origin (inherit (package-source glibc))
-                    (patches (cons (search-patch "glibc-locales.patch")
+                    ;; The patch for glibc 2.28 and earlier replaces the same
+                    ;; content, but the context in the patch is different
+                    ;; enough to fail to merge.
+                    (patches (cons (search-patch
+                                    (if (< 2.29
+                                           (string->number
+                                            (package-version glibc)))
+                                        "glibc-locales.patch"
+                                        "glibc-locales-2.29.patch"))
                                    (origin-patches (package-source glibc))))))
     (synopsis "All the locales supported by the GNU C Library")
     (description
diff --git a/gnu/packages/patches/glibc-locales-2.29.patch b/gnu/packages/patches/glibc-locales-2.29.patch
new file mode 100644
index 0000000000..9329a09063
--- /dev/null
+++ b/gnu/packages/patches/glibc-locales-2.29.patch
@@ -0,0 +1,32 @@
+This patch allows us to use glibc's build system to build locales
+in a package separate from glibc.
+
+  1. Use 'localedef' from $PATH since we are not rebuilding it.
+  2. Use '--no-archive' to avoid building the big locale archive, and
+     because the already-built 'localedef' would want to write it
+     to '/run/current-system/locale', which is not possible.
+  3. Pass $(inst_complocaledir)/$$locale to install files in the right
+     place, and because otherwise, 'localedef' fails with:
+     "cannot write output files to `(null)'".
+
+diff -ru glibc-2.29-old/localedata/Makefile glibc-2.29-new/localedata/Makefile
+--- glibc-2.29-old/localedata/Makefile	2019-01-31 11:45:36.000000000 -0500
++++ glibc-2.29-new/localedata/Makefile	2019-07-03 22:48:35.662015071 -0400
+@@ -385,7 +385,7 @@
+ 
+ # Sometimes the whole collection of locale files should be installed.
+ LOCALEDEF=I18NPATH=. GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
+-$(rtld-prefix) $(common-objpfx)locale/localedef
++  localedef --no-archive
+ install-locales: install-locale-archive
+ 
+ # Create and install the locale-archive file.
+@@ -414,7 +414,7 @@
+ 	input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
+ 	$(LOCALEDEF) $$flags --alias-file=../intl/locale.alias \
+ 		     -i locales/$$input -f charmaps/$$charset \
+-		     $(addprefix --prefix=,$(install_root)) $$locale \
++		     $(addprefix --prefix=,$(install_root)) $(inst_complocaledir)/$$locale \
+ 	&& echo ' done';
+ endef
+ 
-- 
2.22.0





Information forwarded to guix-patches <at> gnu.org:
bug#36495; Package guix-patches. (Fri, 05 Jul 2019 23:27:02 GMT) Full text and rfc822 format available.

Message #8 received at 36495 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Kei Kebreau <kkebreau <at> posteo.net>, 36495 <at> debbugs.gnu.org
Cc: Kei Kebreau <kkebreau <at> posteo.net>
Subject: Re: [PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales
 build for glibc 2.29.
Date: Sat, 06 Jul 2019 01:26:23 +0200
[Message part 1 (text/plain, inline)]
Kei Kebreau <kkebreau <at> posteo.net> writes:

> The patch for glibc 2.28 and earlier replaces the same content, but the context
> in the patch is different enough to fail to merge.

Whoops, thanks for addressing this!

> * gnu/packages/base.scm (make-glibc-locales)[source]: Add patch.
> * gnu/packages/patches/glibc-locales-2.29.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.

[...]

> diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
> index f26145cb0b..d6df023f26 100644
> --- a/gnu/packages/base.scm
> +++ b/gnu/packages/base.scm
> @@ -999,7 +999,15 @@ with the Linux kernel.")
>      (inherit glibc)
>      (name "glibc-locales")
>      (source (origin (inherit (package-source glibc))
> -                    (patches (cons (search-patch "glibc-locales.patch")
> +                    ;; The patch for glibc 2.28 and earlier replaces the same
> +                    ;; content, but the context in the patch is different
> +                    ;; enough to fail to merge.
> +                    (patches (cons (search-patch
> +                                    (if (< 2.29
> +                                           (string->number
> +                                            (package-version glibc)))
> +                                        "glibc-locales.patch"
> +                                        "glibc-locales-2.29.patch"))

Please use 'version>=?' here, as this will fail for e.g. glibc 2.3.

I have a slight preference for renaming the previous patch to
'glibc-locales-2.28.patch', so that 'glibc-locales.patch' refers to the
newest libc.  Less surprises for the end user when trying newer
versions.  :-)

Apart from that LGTM, thanks!
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#36495; Package guix-patches. (Sun, 07 Jul 2019 04:38:02 GMT) Full text and rfc822 format available.

Message #11 received at 36495 <at> debbugs.gnu.org (full text, mbox):

From: Kei Kebreau <kkebreau <at> posteo.net>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 36495 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales
 build for glibc 2.29.
Date: Sun, 07 Jul 2019 00:37:29 -0400
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Kei Kebreau <kkebreau <at> posteo.net> writes:
>
>> The patch for glibc 2.28 and earlier replaces the same content, but the context
>> in the patch is different enough to fail to merge.
>
> Whoops, thanks for addressing this!
>
>> * gnu/packages/base.scm (make-glibc-locales)[source]: Add patch.
>> * gnu/packages/patches/glibc-locales-2.29.patch: New file.
>> * gnu/local.mk (dist_patch_DATA): Add it.
>
> [...]
>
>> diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
>> index f26145cb0b..d6df023f26 100644
>> --- a/gnu/packages/base.scm
>> +++ b/gnu/packages/base.scm
>> @@ -999,7 +999,15 @@ with the Linux kernel.")
>>      (inherit glibc)
>>      (name "glibc-locales")
>>      (source (origin (inherit (package-source glibc))
>> -                    (patches (cons (search-patch "glibc-locales.patch")
>> +                    ;; The patch for glibc 2.28 and earlier replaces the same
>> +                    ;; content, but the context in the patch is different
>> +                    ;; enough to fail to merge.
>> +                    (patches (cons (search-patch
>> +                                    (if (< 2.29
>> +                                           (string->number
>> +                                            (package-version glibc)))
>> +                                        "glibc-locales.patch"
>> +                                        "glibc-locales-2.29.patch"))
>
> Please use 'version>=?' here, as this will fail for e.g. glibc 2.3.
>
> I have a slight preference for renaming the previous patch to
> 'glibc-locales-2.28.patch', so that 'glibc-locales.patch' refers to the
> newest libc.  Less surprises for the end user when trying newer
> versions.  :-)
>
> Apart from that LGTM, thanks!

I just finished building my system with this patch and the almost-finished
GNOME updates, and lots of weird stuff goes on. I'll investigate and push
this patch when it works properly.

Thanks for the review!
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#36495; Package guix-patches. (Mon, 08 Jul 2019 16:58:02 GMT) Full text and rfc822 format available.

Message #14 received at 36495 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Kei Kebreau <kkebreau <at> posteo.net>
Cc: 36495 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales
 build for glibc 2.29.
Date: Mon, 08 Jul 2019 18:56:52 +0200
[Message part 1 (text/plain, inline)]
Kei Kebreau <kkebreau <at> posteo.net> writes:

> Marius Bakke <mbakke <at> fastmail.com> writes:
>
>> Kei Kebreau <kkebreau <at> posteo.net> writes:
>>
>>> The patch for glibc 2.28 and earlier replaces the same content, but the context
>>> in the patch is different enough to fail to merge.
>>
>> Whoops, thanks for addressing this!
>>
>>> * gnu/packages/base.scm (make-glibc-locales)[source]: Add patch.
>>> * gnu/packages/patches/glibc-locales-2.29.patch: New file.
>>> * gnu/local.mk (dist_patch_DATA): Add it.
>>
>> [...]
>>
>>> diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
>>> index f26145cb0b..d6df023f26 100644
>>> --- a/gnu/packages/base.scm
>>> +++ b/gnu/packages/base.scm
>>> @@ -999,7 +999,15 @@ with the Linux kernel.")
>>>      (inherit glibc)
>>>      (name "glibc-locales")
>>>      (source (origin (inherit (package-source glibc))
>>> -                    (patches (cons (search-patch "glibc-locales.patch")
>>> +                    ;; The patch for glibc 2.28 and earlier replaces the same
>>> +                    ;; content, but the context in the patch is different
>>> +                    ;; enough to fail to merge.
>>> +                    (patches (cons (search-patch
>>> +                                    (if (< 2.29
>>> +                                           (string->number
>>> +                                            (package-version glibc)))
>>> +                                        "glibc-locales.patch"
>>> +                                        "glibc-locales-2.29.patch"))
>>
>> Please use 'version>=?' here, as this will fail for e.g. glibc 2.3.
>>
>> I have a slight preference for renaming the previous patch to
>> 'glibc-locales-2.28.patch', so that 'glibc-locales.patch' refers to the
>> newest libc.  Less surprises for the end user when trying newer
>> versions.  :-)
>>
>> Apart from that LGTM, thanks!
>
> I just finished building my system with this patch and the almost-finished
> GNOME updates, and lots of weird stuff goes on. I'll investigate and push
> this patch when it works properly.

The weird stuff is unrelated to this patch, no?  :-)

FWIW the current core-updates "works for me", but I haven't gotten
around to trying GNOME on it yet (there are some important packages
failing still -- help wanted!).
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#36495; Package guix-patches. (Mon, 08 Jul 2019 20:38:02 GMT) Full text and rfc822 format available.

Message #17 received at 36495 <at> debbugs.gnu.org (full text, mbox):

From: Kei Kebreau <kkebreau <at> posteo.net>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 36495 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales
 build for glibc 2.29.
Date: Mon, 08 Jul 2019 16:37:04 -0400
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Kei Kebreau <kkebreau <at> posteo.net> writes:
>
>> I just finished building my system with this patch and the almost-finished
>> GNOME updates, and lots of weird stuff goes on. I'll investigate and push
>> this patch when it works properly.
>
> The weird stuff is unrelated to this patch, no?  :-)
>
> FWIW the current core-updates "works for me", but I haven't gotten
> around to trying GNOME on it yet (there are some important packages
> failing still -- help wanted!).

I can get you the exact error messages as soon as my GNOME +
core-updates build finishes, but they seem to be similar to the messages
one gets when running Guix on a foriegn distro without installing
glibc-locales or glibc-utf8-locales.
[signature.asc (application/pgp-signature, inline)]

Reply sent to Kei Kebreau <kkebreau <at> posteo.net>:
You have taken responsibility. (Tue, 09 Jul 2019 16:27:02 GMT) Full text and rfc822 format available.

Notification sent to Kei Kebreau <kkebreau <at> posteo.net>:
bug acknowledged by developer. (Tue, 09 Jul 2019 16:27:02 GMT) Full text and rfc822 format available.

Message #22 received at 36495-done <at> debbugs.gnu.org (full text, mbox):

From: Kei Kebreau <kkebreau <at> posteo.net>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 36495-done <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales
 build for glibc 2.29.
Date: Tue, 09 Jul 2019 12:26:01 -0400
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Kei Kebreau <kkebreau <at> posteo.net> writes:
>
>> Marius Bakke <mbakke <at> fastmail.com> writes:
>>
>>> Kei Kebreau <kkebreau <at> posteo.net> writes:
>>>
>>>> The patch for glibc 2.28 and earlier replaces the same content,
>>>> but the context
>>>> in the patch is different enough to fail to merge.
>>>
>>> Whoops, thanks for addressing this!
>>>
>>>> * gnu/packages/base.scm (make-glibc-locales)[source]: Add patch.
>>>> * gnu/packages/patches/glibc-locales-2.29.patch: New file.
>>>> * gnu/local.mk (dist_patch_DATA): Add it.
>>>
>>> [...]
>>>
>>>> diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
>>>> index f26145cb0b..d6df023f26 100644
>>>> --- a/gnu/packages/base.scm
>>>> +++ b/gnu/packages/base.scm
>>>> @@ -999,7 +999,15 @@ with the Linux kernel.")
>>>>      (inherit glibc)
>>>>      (name "glibc-locales")
>>>>      (source (origin (inherit (package-source glibc))
>>>> -                    (patches (cons (search-patch "glibc-locales.patch")
>>>> + ;; The patch for glibc 2.28 and earlier replaces the same
>>>> +                    ;; content, but the context in the patch is different
>>>> +                    ;; enough to fail to merge.
>>>> +                    (patches (cons (search-patch
>>>> +                                    (if (< 2.29
>>>> +                                           (string->number
>>>> +                                            (package-version glibc)))
>>>> +                                        "glibc-locales.patch"
>>>> +                                        "glibc-locales-2.29.patch"))
>>>
>>> Please use 'version>=?' here, as this will fail for e.g. glibc 2.3.
>>>
>>> I have a slight preference for renaming the previous patch to
>>> 'glibc-locales-2.28.patch', so that 'glibc-locales.patch' refers to the
>>> newest libc.  Less surprises for the end user when trying newer
>>> versions.  :-)
>>>
>>> Apart from that LGTM, thanks!
>>
>> I just finished building my system with this patch and the almost-finished
>> GNOME updates, and lots of weird stuff goes on. I'll investigate and push
>> this patch when it works properly.
>
> The weird stuff is unrelated to this patch, no?  :-)
>
> FWIW the current core-updates "works for me", but I haven't gotten
> around to trying GNOME on it yet (there are some important packages
> failing still -- help wanted!).

Pushed to core-updates!
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 07 Aug 2019 11:24:11 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 264 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.