Subject: bug#29537: Core updates broken

From: Marius Bakke <[email-masked]>
Date: Sun, 03 Dec 2017 16:23:20 +0100

Marius Bakke <[email-masked]> writes:

> Marius Bakke <[email-masked]> writes:
>
>> Gábor Boskovits <[email-masked]> writes:
>>
>>> It seems, that we have a breakage in current core-updates. m4, gettext, and
>>> at least a few other packages fail to build.
>>
>> Hello!
>>
>> The problem is that the glibc version string is used a couple of places
>> to determine where locales are found.
>>
>> The attached patch fixes it, though I'm not sure if it's the best
>> approach.  Thoughts?
>
> Actually, the patch below is not a complete fix.  It worked for m4, but
> some other packages now fail like this:
>
> --8<---------------cut here---------------start------------->8---
>
> @ build-started /gnu/store/q0fadqzsg969jz8v11r9j2a07x3h2sl4-perl-5.26.1.tar.xz.drv - x86_64-linux /var/log/guix/drvs/q0//fadqzsg969jz8v11r9j2a07x3h2sl4-perl-5.26.1.tar.xz.drv.bz2
> Backtrace:
>            2 (primitive-load "/gnu/store/xjb3g9spv30arffi1296qwdaam4?")
> In ice-9/eval.scm:
>     619:8  1 (_ #f)
> In unknown file:
>            0 (setlocale 6 "en_US.utf8")
>
> ERROR: In procedure setlocale:
> ERROR: In procedure setlocale: Invalid argument
> builder for `/gnu/store/q0fadqzsg969jz8v11r9j2a07x3h2sl4-perl-5.26.1.tar.xz.drv' failed with exit code 1
> --8<---------------cut here---------------end--------------->8---
>
> Not sure where it's from yet.

This was from (guix packages) and fixed by adding this hunk:

--8<---------------cut here---------------start------------->8---
diff --git a/guix/packages.scm b/guix/packages.scm
index f619d9b37..35f9b685a 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -538,7 +538,8 @@ specifies modules in scope when evaluating SNIPPET."
               (setenv "LOCPATH"
                       (string-append #+locales "/lib/locale/"
                                      #+(and locales
-                                            (package-version locales))))
+                                            (version-major+minor
+                                             (package-version locales)))))
               (setlocale LC_ALL "en_US.utf8"))
 
             (setenv "PATH" (string-append #+xz "/bin" ":"
--8<---------------cut here---------------end--------------->8---