On Fri, Nov 16, 2018 at 12:04:36AM +0100, Bruno Haible wrote:
> Hi Richard,
> 
> > After upgrading to Fedora 29, the glibc-langpack-fr locale is no
> > longer installed by default.  This causes many tests to fail silently:
> > 
> > ./gnulib/tests/test-suite.log:FAIL: test-btowc1.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-btowc2.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-c-strcase.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc1.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc2.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc3.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbrtowc4.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs1.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs2.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs3.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-mbsrtowcs4.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-setlocale1.sh
> > ./gnulib/tests/test-suite.log:FAIL: test-wcrtomb.sh
> > 
> > The failures are completely silent.  It seems as if about
> > 6 months ago it used to print an error message:
> > 
> >   Skipping test: no traditional french locale is installed
> > 
> > But for some reason that is no longer printed:
> > 
> >   $ LC_ALL=fr_FR ./test-btowc 1
> >   $ echo $?
> >   1
> 
> I cannot reproduce this. Just installed a Fedora 29, configured and
> ran a gnulib testdir created through
> $ ./gnulib-tool --create-testdir --dir=../testdir-posix --with-tests 
> --single-configure `./posix-modules`
> and all tests pass, including these that you listed.
>
> Can you provide these infos?
> 
> $ yum list --installed | grep glibc-langpack-fr

$ yum list --installed | grep glibc-langpack
glibc-langpack-en.x86_64                         2.28-17.fc29                   
        @updates               
glibc-langpack-fr.x86_64                         2.28-17.fc29                   
        @updates               
glibc-langpack-ja.x86_64                         2.28-17.fc29                   
        @updates               
glibc-langpack-tr.x86_64                         2.28-17.fc29                   
        @updates               
glibc-langpack-zh.x86_64                         2.28-17.fc29                   
        @updates               

These were installed on the machine (to fix the tests).

I have uninstalled glibc-langpack-{fr,ja,tr,zh} and the tests are
silently failing again.  After uninstallation:

$ yum list --installed | grep glibc-langpack
glibc-langpack-en.x86_64                         2.28-17.fc29                   
        @updates        

> Expected: empty
> 
> $ locale -a | grep ^fr_FR
>
> Expected:
> fr_FR
> fr_FR@euro
> fr_FR.iso88591
> fr_FR.iso88591@euro
> fr_FR.utf8

There is _no_ output from the above command.
In fact the full locale -a output is:

C
C.utf8
en_AG
en_AU
en_AU.utf8
en_BW
en_BW.utf8
en_CA
en_CA.utf8
en_DK
en_DK.utf8
en_GB
en_GB.iso885915
en_GB.utf8
en_HK
en_HK.utf8
en_IE
en_IE@euro
en_IE.utf8
en_IL
en_IN
en_NG
en_NZ
en_NZ.utf8
en_PH
en_PH.utf8
en_SC.utf8
en_SG
en_SG.utf8
en_US
en_US.iso885915
en_US.utf8
en_ZA
en_ZA.utf8
en_ZM
en_ZW
en_ZW.utf8
POSIX

> $ grep LOCALE_FR config.status
> 
> S["LOCALE_FR_UTF8"]="fr_FR.UTF-8"
> S["LOCALE_FR"]="fr_FR"

Since I'm using gnulib from libguestfs, here's what's in the
libguestfs config.status:

$ grep LOCALE_FR config.status
S["LOCALE_FR"]="fr_FR"
S["LOCALE_FR_UTF8"]="fr_FR.UTF-8"

> $ ldd test-btowc
> 
> Expected:
>         linux-vdso.so.1
>         libc.so.6 => /lib64/libc.so.6
>         /lib64/ld-linux-x86-64.so.2

$ ldd test-btowc
  linux-vdso.so.1 (0x00007ffe6fdcf000)
  libc.so.6 => /lib64/libc.so.6 (0x00007f8d5402f000)
  /lib64/ld-linux-x86-64.so.2 (0x00007f8d54225000)

> $ LC_ALL=fr_FR strace ./test-btowc 1

Attached as ‘strace.log’.

> $ LC_ALL=fr_FR ltrace ./test-btowc 1

Just:

+++ exited (status 1) +++

Is my ltrace broken?

> And of course the GCC command line options and relevant environment
> variables that you used during the configure step.

export CFLAGS="$(rpm --eval '%{optflags}')"
export CXXFLAGS="$(rpm --eval '%{optflags}')"
export LDFLAGS="$(rpm --eval '%{__global_ldflags}')"
./autogen.sh \
  --prefix /usr \
  --libdir /usr/lib64 \
  --disable-static \
  --with-default-backend=libvirt \
  --with-extra="local,libvirt" \
  --enable-werror \
  --disable-golang \
  --with-gtk=2 \
  -C

The CFLAGS etc expand to:

CFLAGS="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 
-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong 
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic 
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection"
LDFLAGS="-Wl,-z,relro  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld"

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
execve("./test-btowc", ["./test-btowc", "1"], 0x7ffd2453c778 /* 62 vars */) = 0
brk(NULL)                               = 0x563f0be82000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffd6bada7d0) = -1 EINVAL (Invalid argument)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=165199, ...}) = 0
mmap(NULL, 165199, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f494c7b3000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 E\2\0\0\0\0\0"..., 832) 
= 832
lseek(3, 792, SEEK_SET)                 = 792
read(3, 
"\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\206UJ\207\352\2651YC\35_O\220\306K\215"..., 68) 
= 68
fstat(3, {st_mode=S_IFREG|0755, st_size=2786376, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f494c7b1000
lseek(3, 792, SEEK_SET)                 = 792
read(3, 
"\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\206UJ\207\352\2651YC\35_O\220\306K\215"..., 68) 
= 68
lseek(3, 864, SEEK_SET)                 = 864
read(3, "\4\0\0\0\20\0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0", 32) 
= 32
mmap(NULL, 1857568, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f494c5eb000
mprotect(0x7f494c60d000, 1679360, PROT_NONE) = 0
mmap(0x7f494c60d000, 1363968, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f494c60d000
mmap(0x7f494c75a000, 311296, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 
0x16f000) = 0x7f494c75a000
mmap(0x7f494c7a7000, 24576, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bb000) = 0x7f494c7a7000
mmap(0x7f494c7ad000, 14368, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f494c7ad000
close(3)                                = 0
arch_prctl(ARCH_SET_FS, 0x7f494c7b2500) = 0
mprotect(0x7f494c7a7000, 16384, PROT_READ) = 0
mprotect(0x563f0a9d0000, 4096, PROT_READ) = 0
mprotect(0x7f494c806000, 4096, PROT_READ) = 0
munmap(0x7f494c7b3000, 165199)          = 0
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 
ENOENT (No such file or directory)
brk(NULL)                               = 0x563f0be82000
brk(0x563f0bea3000)                     = 0x563f0bea3000
brk(NULL)                               = 0x563f0bea3000
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2997, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2997
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/locale/fr_FR/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) 
= -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/locale/fr/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = 
-1 ENOENT (No such file or directory)
exit_group(1)                           = ?
+++ exited with 1 +++

Reply via email to