GNOME Bugzilla – Bug 650342
[regression] build failure in git/master:
Last modified: 2011-06-17 10:17:11 UTC
I just tried to upgrade my git master g-c-c (I last sucessfully built it on May 8). The build dies with: make[4]: Entering directory `/home/ronis/Project/notar/GNOME/garnome/svn/gnome-control-center/work/main.d/gnome-control-center-git/panels/info' ./test-hostname > /dev/null info-cc-panel-ERROR **: Result for 'M�llers Computer' doesn't match 'mullers-computer' (got: 'm-ullers-computer') /bin/sh: line 1: 12981 Trace/breakpoint trap (core dumped) ./test-hostname > /dev/null
What's your locale?
locale gives: LANG=en_US LC_CTYPE="en_US" LC_NUMERIC="en_US" LC_TIME="en_US" LC_COLLATE="en_US" LC_MONETARY="en_US" LC_MESSAGES="en_US" LC_PAPER="en_US" LC_NAME="en_US" LC_ADDRESS="en_US" LC_TELEPHONE="en_US" LC_MEASUREMENT="en_US" LC_IDENTIFICATION="en_US" LC_ALL=en_US
Please test with this commit: commit 11571bf609659008a0093abaf71ded91b9c98c6a Author: Bastien Nocera <hadess@hadess.net> Date: Tue May 17 15:19:46 2011 +0100 info: Split test cases into separate file This fixes errors when run in non-UTF-8 locales. If it doesn't work, attach the full output of: ./test-hostname hostnames-test.txt
Updated the git/master and rebuilt from scratch. The compilation still fails, but with a slightly different form of the error message: CCLD libinfo.la ./test-hostname ./hostnames-test.txt > /dev/null info-cc-panel-ERROR **: Result for 'M\xfcllers Computer' doesn't match 'mullers-computer' (got: 'm-ullers-computer') /bin/sh: line 1: 26086 Trace/breakpoint trap (core dumped) ./test-hostname ./hostnames-test.txt > /dev/null make[4]: *** [check-local] Error 133 Running ./test-hostname hostnames-test.txt gives: ./test-hostname hostnames-test.txt (process:26827): info-cc-panel-DEBUG: Input: 'Lennart's PC' (process:26827): info-cc-panel-DEBUG: translit: 'Lennart's PC' (process:26827): info-cc-panel-DEBUG: apostrophes: 'Lennarts PC' (process:26827): info-cc-panel-DEBUG: canon: 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: leading: 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: trailing: 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: duplicate: 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: Result for 'Lennart's PC' matches 'lennarts-pc' (process:26827): info-cc-panel-DEBUG: Input: 'Lennart's PC' (process:26827): info-cc-panel-DEBUG: translit: 'Lennart's PC' (process:26827): info-cc-panel-DEBUG: apostrophes: 'Lennarts PC' (process:26827): info-cc-panel-DEBUG: canon: 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: leading: 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: trailing: 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: duplicate: 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: Result for 'Lennart's PC' matches 'Lennarts-PC' (process:26827): info-cc-panel-DEBUG: Input: 'M�llers Computer' (process:26827): info-cc-panel-DEBUG: translit: 'M"ullers Computer' (process:26827): info-cc-panel-DEBUG: apostrophes: 'M"ullers Computer' (process:26827): info-cc-panel-DEBUG: canon: 'M-ullers-Computer' (process:26827): info-cc-panel-DEBUG: leading: 'M-ullers-Computer' (process:26827): info-cc-panel-DEBUG: trailing: 'M-ullers-Computer' (process:26827): info-cc-panel-DEBUG: duplicate: 'M-ullers-Computer' info-cc-panel-ERROR **: Result for 'M\xfcllers Computer' doesn't match 'mullers-computer' (got: 'm-ullers-computer') Trace/breakpoint trap (core dumped)
I think your locale must be busted, or something. There's no way ü should be transliterated to "u. Is this running in the "C" locale instead of a useful one?
Not as far as I can figure out (see comment 2).
I ended up forcing en_US.UTF-8 as the locale in the tests, and it's the only one we know will work for certain. I'm pretty certain your compilation environment is running as the C locale, or you have incomplete glibc locale data, otherwise ü would not get transliterated to u" (and that was the only way I could reproduce your problem). commit d1a1a060cfbb4b97725cf87a6ef5e03043754b7a Author: Bastien Nocera <hadess@hadess.net> Date: Wed May 18 13:08:43 2011 +0100 info: Work-around test failing in some locales https://bugzilla.gnome.org/show_bug.cgi?id=650342
I updated g-c-c via git, rebuilt configure, and tried to rebuild. I get the same error: Merging translations into gnome-info-panel.desktop. CCLD libinfo.la ./test-hostname ./hostnames-test.txt > /dev/null info-cc-panel-ERROR **: Result for 'M��llers Computer' doesn't match 'mullers-computer' (got: 'm-ullers-computer') /bin/sh: line 1: 24431 Trace/breakpoint trap (core dumped) ./test-hostname ./hostnames-test.txt > /dev/null make[4]: *** [check-local] Error 133 I've got glib 2.29.4 installed. The only nonstandard options used in configuring glib were --enable-explicit-deps=yes --with-libiconv=gnu. Finally, I've set up locale as: locale LANG=C LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 I've reopened the bug.
(In reply to comment #8) <snip> > I've got glib 2.29.4 installed. The only nonstandard options used in > configuring glib were --enable-explicit-deps=yes --with-libiconv=gnu. I didn't say glib, but glibc. You'll need to check with your distribution that it's working properly. Seeing as the test can't even print out "Müllers" properly, I doubt that there's any sort of i18n support there.
As you've guesssed, I've got an older version of glibc (slackware 12.2). Is this test new? Things worked a few days ago.
(In reply to comment #10) > As you've guesssed, I've got an older version of glibc (slackware 12.2). Is > this test new? Things worked a few days ago. The test is new, the functionality it uses isn't. See: http://git.gnome.org/browse/gnome-control-center/tree/panels/info/hostname-helper.c#n114
I've upgraded this box to slackware-13.37.0 (the current release). The problem remains. Also, for what it's worth, there is an installed package called: var/log/packages/glibc-i18n-2.13-i486-4 which sounds like the i18n support is there. Finally, I just noticed that the build commands seem to be prefixed by LC_ALL=C, like: LC_ALL=C /opt/garnome-svn-3.1.1/bin/intltool-merge -d -u -c ../../po/.intltool-merge-cache ../../po gnome-region-panel.desktop.in gnome-region-panel.desktop Found cached translation database Merging translations into gnome-region-panel.desktop. CCLD libregion.la This is after a make distclean and reconfiguring etc., with LC_ALL=en_US.UTF-8
ping!
I manually changed all references to LC_ALL=C to LC_ALL=en_US.UTF8 in all makefiles. The problem remains.
You're still the only person to have reported that problem. I still think your system is inadequate, but I'm afraid that I won't be spending time checking whether the Slackware i18n support is correct or not...
I found the problem. I'm building in a heavily modified garnome environment, which sets nonstandard prefixes in configure (in particular, to /opt/garnome-xx-yy/). Somehow, g-c-c is using this information literally, and is trying to find /opt/garnome-xx-yy/lib/locale which doesn't exist. My locale support comes from slackware and the directory is in it's usual place /usr/lib/locale. Making a soft link fixes the problem; however, shouldn't there be some sort of local_path to list possible places where the locale information is stored?
Your glibc can't find the locale. There's no actual locale needs from the test application.