From mboxrd@z Thu Jan 1 00:00:00 1970 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 Message-ID: <20200307152003.myj7jkjthokbmark@pelzflorian.localdomain> References: <20200307120052.ocwzphlvemvmb2ts@pelzflorian.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:60656) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAbGB-0006XV-Aj for bug-guix@gnu.org; Sat, 07 Mar 2020 10:21:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAbGA-00022H-BY for bug-guix@gnu.org; Sat, 07 Mar 2020 10:21:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:41416) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jAbG9-000228-VO for bug-guix@gnu.org; Sat, 07 Mar 2020 10:21:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jAbG9-0007fZ-RX for bug-guix@gnu.org; Sat, 07 Mar 2020 10:21:01 -0500 Sender: "Debbugs-submit" Resent-Message-ID: Content-Disposition: inline In-Reply-To: <20200307120052.ocwzphlvemvmb2ts@pelzflorian.localdomain> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane-mx.org@gnu.org Sender: "bug-Guix" To: 39970@debbugs.gnu.org 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 #include #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