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.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Kei Kebreau <kkebreau <at> posteo.net>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#36495: closed ([PATCH] gnu: make-glibc-locales: Add patch to
 fix glibc-locales build for glibc 2.29.)
Date: Tue, 09 Jul 2019 16:27:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 09 Jul 2019 12:26:01 -0400
with message-id <871ryzmaxy.fsf <at> posteo.net>
and subject line Re: [PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales build for glibc 2.29.
has caused the debbugs.gnu.org bug report #36495,
regarding [PATCH] gnu: make-glibc-locales: Add patch to fix glibc-locales build for glibc 2.29.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
36495: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36495
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
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



[Message part 3 (message/rfc822, inline)]
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 4 (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)]

This bug report was last modified 5 years and 313 days ago.

Previous Next


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