[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_T
From: |
pelzflorian (Florian Pelz) |
Subject: |
bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales |
Date: |
Sat, 7 Mar 2020 16:20:03 +0100 |
On Sat, Mar 07, 2020 at 01:00:52PM +0100, pelzflorian (Florian Pelz) wrote:
> Running guix via ./pre-inst-env gives a more useful backtrace. The
> reason is that in guix/store.scm
>
> (use-modules (ice-9 regex))
> (regexp-exec (make-regexp "^/gnu/store/([0-9a-df-np-sv-z]{32})-([^/]+)$")
>
> "/gnu/store/bv9py3f2dsa5iw0aijqjv9zxwprcy1nb-fontconfig-2.13.1.drv")
>
> evaluates to #f in Turkish, possibly because of the presence of
> dotless i (ı) in the range.
>
Actually it seems the issue is that i is missing from the range [a-z]
ı and ğ are missing as well, as are non-Turkish letters like ä that
are included when using the en_US.utf8 locale, even though they are no
English letters either.
(use-modules (ice-9 regex))
(regexp-exec (make-regexp "^([a-z]+)$")
"iyiyim")
fails.
But running a glibc C program
florian@florianmacbook ~$ cat iyiyim.c
#include <regex.h>
#include <stdio.h>
#define STR "iyiyim"
int main (int argc,
char** argv)
{
regex_t only_letters;
int r = regcomp (&only_letters, "[a-z]", 0);
if (r != 0)
printf ("This error does not happen.\n");
r = regexec (&only_letters, STR, 0, NULL, 0);
if (r == 0)
printf ("The string " STR " matched!\n");
else
printf ("No match for " STR ".\n");
}
florian@florianmacbook ~$ gcc -o iyiyim iyiyim.c
florian@florianmacbook ~$ LANG=tr_TR.utf8 ./iyiyim
The string iyiyim matched!
succeeds on tr_TR.utf8 and en_US.utf8 locales (and a native Turkish
speaker confirmed to me ıi should be in the alphabet right after h).
Maybe this is a bug in Guile, somehow?
> […]
> I wonder what else is affected; the installer maybe? I have not
> tested yet.
>
I checked; the graphical installer appears unaffected, but the issue
appears on the installed system.
Regards,
Florian
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, pelzflorian (Florian Pelz), 2020/03/07
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales,
pelzflorian (Florian Pelz) <=
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, pelzflorian (Florian Pelz), 2020/03/08
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, Ludovic Courtès, 2020/03/09
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, pelzflorian (Florian Pelz), 2020/03/12
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, Ludovic Courtès, 2020/03/12
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, pelzflorian (Florian Pelz), 2020/03/17
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, Ludovic Courtès, 2020/03/17
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, pelzflorian (Florian Pelz), 2020/03/18
- bug#39970: guix commands broken on Azerbaijani 'az_AZ' and Turkish 'tr_TR' locales, Ludovic Courtès, 2020/03/18