Subject: Re: bug#17943: parted-3.1.90 alpha make check fails t0251-gpt-unicode on Debian 7

From: Mark H Weaver <[email-masked]>
Date: Sun, 03 Aug 2014 18:53:36 -0400

Phillip Susi <[email-masked]> writes:

> On 7/21/2014 12:32 PM, Curtis Gedak wrote:
>> This error is likely not a great concern, though I should mention
>> that this is a stock install of Debian 7 from the 
>> debian-7.0.0-i386-xfce-CD-1.iso where I selected "Canada" as the 
>> country.  I suspect that not all locales are installed by default
>> (e.g., en_US.UTF-8).  Hence the test might fail on any default
>> non-US installation.
>
> I had assumed you were using en_US.UTF-8 and so something was broken
> with your install, but since you said you were using Canada, I looked
> at the script again and realized that I did explicitly select
> en_US.UTF-8.  I'm not sure why I did that now and will need to take
> another look at it; perhaps I should have used C.UTF-8...

parted-3.2 fails the same test when built on GNU Guix because the
"C.UTF-8" locale is not available (see below).  Changing
t0251-gpt-unicode.sh to use "en_US.UTF-8" fixes the problem.

--8<---------------cut here---------------start------------->8---
mhw:~$ cat test.c
#include <locale.h>
#include <stdio.h>

int
main (int argc, char *argv[])
{
  char *desired_locale = argv[1];
  char *result = setlocale (LC_ALL, desired_locale);

  printf ("setlocale (LC_ALL, \"%s\") => ", desired_locale);
  if (result)
    printf ("\"%s\"\n", result);
  else
    printf ("NULL\n");
  return 0;
}

mhw:~$ gcc -o test test.c
mhw:~$ ./test C.UTF-8
setlocale (LC_ALL, "C.UTF-8") => NULL
mhw:~$ ./test en_US.UTF-8
setlocale (LC_ALL, "en_US.UTF-8") => "en_US.UTF-8"
--8<---------------cut here---------------end--------------->8---

GNU Guix uses glibc-2.19 with almost no modifications, and includes the
default set of locales installed by "make localedata/install-locales".
See <http://hydra.gnu.org/job/gnu/master/glibc-2.19.x86_64-linux> for
build logs of our glibc.

    Regards,
      Mark