media-sound/solfege-3.14.2 fails to build if locale environment variable (LANGUAGE, LANG, LC_*) is set to some "bad" language (for example: pl, ru) Reproducible: Always Steps to Reproduce: LANGUAGE=ru emerge =media-sound/solfege-3.14.2 Actual Results: error message: /usr/bin/python tools/generate_lessonfiles.py Traceback (most recent call last): File "tools/generate_lessonfiles.py", line 219, in <module> generate_csound_intonation() File "tools/generate_lessonfiles.py", line 217, in generate_csound_intonation tree.save("learningtrees/csound-tree.txt") File "./src/learningtree.py", line 166, in save print >> ofile, " 'title': '%s'," % self.m_title.replace("'", r"\'") UnicodeEncodeError: 'ascii' codec can't encode character u'\u0107' in position 27: ordinal not in range(128) make: *** [gen-lessonfiles] Error 1 Expected Results: emerge completes successfully Some "good" locales: en de lv C Workaround: LANGUAGE=C emerge =media-sound/solfege-3.14.2 Possible workarounds in ebuild: 1. filter out all locale environment variables or 2. set LANGUAGE=C (it looks LANGUAGE have higher precedence) P.S. bug don't depend on charset, for example ru_RU.KOI8-R & ru_RU.UTF-8 both have same problem
Created attachment 192687 [details] Full build.log
emerge --info and /mnt/portage/portage/portage/media-sound/solfege-3.14.2/temp/environment please.
How about this workaround, replace line econf \ with LC_ALL=C econf \
Created attachment 192842 [details] environment
Created attachment 192844 [details] emerge --info
(In reply to comment #3) > How about this workaround, replace line > > econf \ > > with > > LC_ALL=C econf \ > It does not work. This is a UnicodeDecodeError error, not locale. The following still fails; LC_ALL=C MAKEOPTS="-j1" emerge -v1 media-sound/solfege with the fail log: File "tools/generate_lessonfiles.py", line 219, in <module> generate_csound_intonation() File "tools/generate_lessonfiles.py", line 217, in generate_csound_intonation tree.save("learningtrees/csound-tree.txt") File "./src/learningtree.py", line 166, in save print >> ofile, " 'title': '%s'," % self.m_title.replace("'", r"\'") UnicodeEncodeError: 'ascii' codec can't encode characters in position 29-30: ordinal not in range(128) make: *** [gen-lessonfiles] Error 1 * * ERROR: media-sound/solfege-3.14.2 failed. emerge --info Portage 2.2_rc33 (default/linux/amd64/2008.0/desktop, gcc-4.3.3, glibc-2.10.1-r0, 2.6.30-rc5 x86_64) ================================================================= System uname: Linux-2.6.30-rc5-x86_64-Intel-R-_Core-TM-2_CPU_T7200_@_2.00GHz-with-gentoo-2.0.1 Timestamp of tree: Fri, 29 May 2009 22:30:17 +0000 ccache version 2.4 [enabled] app-shells/bash: 4.0_p24 dev-java/java-config: 2.1.8 dev-lang/python: 2.5.4-r2, 2.6.2-r1 dev-python/pycrypto: 2.0.1-r8 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.6.4 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.4.3-r2 sys-apps/sandbox: 1.9 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.19.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.29 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/media/disk-1/usr/portage/distfiles" FEATURES="ccache collision-protect distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://gentoo.osuosl.org/ http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ " LANG="tr_TR.UTF-8" LC_ALL="tr_TR.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="tr" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/layman/pok3d /usr/local/portage/layman/pd-overlay /usr/local/portage/layman/mpd /usr/local/portage/layman/gechi /usr/local/portage/layman/desktop-effects /usr/local/portage/layman/mozilla /usr/local/portage/layman/emacs /usr/local/portage/layman/pcsx2 /usr/local/portage/layman/java-overlay /usr/local/overlays/crossdev /usr/local/overlays/keenblade /usr/local/overlays/symix /usr/local/overlays/tmp/desktop-effects-live" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl acpi alsa amd64 apache2 berkdb bluetooth bzip2 cairo cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam ffmpeg firefox flac fortran gdbm gif glitz gnome gpm gstreamer gtk hal iconv ipv6 isdnlog jack java jpeg kde ladspa lash ldap libnotify lm_sensors mad midi mikmod mmx mng mp3 mpeg mudflap multilib mysql mysqli ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdf perl png ppds pppd python qt3support qt4 quicktime readline reflection sdl session spell spl sqlite3 sse sse2 ssl startup-notification svg sysfs tcpd tiff truetype unicode usb vorbis xcomposite xinerama xml xorg xulrunner xv xvid zlib" ALSA_CARDS="hda-intel mpu401 usb-audio" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev synaptics joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="tr" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
(In reply to comment #3) > How about this workaround, replace line > > econf \ > > with > > LC_ALL=C econf \ > Well, how about LANGUAGE=C instead of LC_ALL=C ?
(In reply to comment #7) > > Well, how about LANGUAGE=C instead of LC_ALL=C ? > Thanks. That worked fine. Emerge succeeded with this: LANGUAGE=C emerge -v1 media-sound/solfege
No, I meant does it work if you put it in the ebuild as before econf (or does it need to be before emake) but.. Added to ebuild, before econf, as temp. workaround. Reopen if it's still a problem, i'll mail this problem upstream.
Upstream replied by e-mail as following, Thanks. I'll fix this and get a new 3.14.x release out soon. I hope within a week. Tom Cato
(In reply to comment #9) > No, I meant does it work if you put it in the ebuild as before econf (or does > it need to be before emake) but.. > > Added to ebuild, before econf, as temp. workaround. Reopen if it's still a > problem, i'll mail this problem upstream. > Could you fix the workaround, because it doesn't work. Need to be like these: It need to be before emake. Like: LANGUAGE=C emake or put it, on its own line before econf. Like: LANGUAGE=C econf \ And thanks for reporting to upstream.
(In reply to comment #11) > LANGUAGE=C emake I did this.