x11-libs/vte-0.11.18 fails to compile on my uclibc based nls free system because of two errors in the sources: 1) AC_CHECK_DECLS, used to check for bind_textdomain_codeset, unlike the other `AC_CHECK_*S' macros, when a symbol is not declared, HAVE_DECL_symbol is defined to `0' instead of leaving HAVE_DECL_symbol undeclared. So #ifdef HAVE_DECL_symbol will always be true. (this problem is still present in Gnome CVS' src/vte.c) 2) bindtextdomain() is defined in libintl.h and not in locale.h. (Gnome CVS' src/reaper.c has changed so I don't know if the problem is still there.) Yuri. # emerge --info Portage 2.1_rc2-r3 (uclibc/x86, gcc-3.4.6, uclibc-0.9.28-r0, 2.6.16-gentoo-r8 i686) ================================================================= System uname: 2.6.16-gentoo-r8 i686 Transmeta Efficeon(tm) Processor TM8000 Gentoo Base System version 1.12.0 dev-lang/python: 2.3.4-r1, 2.4.3-r1 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r2 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r5 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-gentoo-linux-uclibc" CFLAGS="-march=pentium3 -msse2 -O3 -mfpmath=sse -falign-functions=0 -falign-jumps=0 -falign-loops=0 -pipe" CHOST="i686-gentoo-linux-uclibc" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium3 -msse2 -O3 -mfpmath=sse -falign-functions=0 -falign-jumps=0 -falign-loops=0 -pipe" DISTDIR="/mnt/distfiles" FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://mirrors.tds.net/gentoo http://gentoo.osuosl.org/" LDFLAGS="-Wl,-O1" LINGUAS="en" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp/build" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/home/yvasilev/portage/overlay.gpe" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X aac acpi alsa bitmap-fonts bzip2 cli crypt dmi dri dts dv dvd dvdread encode exo gif gnutls gpm gtk ithreads jpeg live mad matroska mmx mmxext musepack ncurses nonfsv4 oss pam panel-plugin pcre png readline reflection rtc session speex spl sse sse2 ssl startup-notification tga theora thunar-vfs tiff truetype truetype-fonts type1-fonts uclibc unicode vorbis win32codecs xorg xprint xv xvid zlib elibc_uclibc input_devices_keyboard input_devices_mouse kernel_linux linguas_en userland_GNU video_cards_ati video_cards_radeon" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 87573 [details, diff] vte-0.11.18-nonls.patch
Thank you for the report and patch. However, it wouldn't be very useful if we followed this in vte-0.11.x now that 0.12.x releases are out, and, as you have noticed, some of the relevant code has changed. Could you try testing and creating a patch against vte-0.12.2? Note that gettext is now listed in DEPEND, so you may want to create a diff for the ebuild as well. Thanks.
Created attachment 88556 [details, diff] vte-0.12.2-nonls.patch Patch updated to version 0.12.2
Created attachment 88557 [details, diff] vte-0.12.2.ebuild.diff You can also "s/nls? (/elibc_uclibc? (/" in DEPEND, but I think nls more appropriate.
(In reply to comment #4) > You can also "s/nls? (/elibc_uclibc? (/" in DEPEND, but I think nls more > appropriate. The problem I see is that for users with gettext installed, vte would be installed with the i18n components, regardless of the value of the 'nls' flag. Unfortunately the --enable-nls option was removed from glib-gettext.m4 (used in vte's configure.in) a while ago, which would have been a nice way to force the meaning of IUSE=nls. However, if you have tested your patch in a gettext-free system, and it works (ENABLE_NLS remains undefined, the .mo files are not installed and so forth), it would be OK to just remove gettext from DEPEND. What do you think?
> vte-0.11.18-nonls.patch patch looks good to me
Created attachment 88609 [details, diff] vte-0.12.2-nonls.patch (In reply to comment #5) > However, if you have tested your patch in a gettext-free system, and it works > (ENABLE_NLS remains undefined, the .mo files are not installed and so forth), > it would be OK to just remove gettext from DEPEND. What do you think? I updated the 0.12.2 patch to wrap all instances of #include <glib/gi18n-lib.h> in #ifdef ENABLE_NLS, this allows it also to compile fine on glibc based gettext free systems as well as on uclibc ones. So it is now safe to drop sys-devel/gettext from DEPEND and vte will support i18n if and only if gettext is installed. (It is a shame they dropped the --enable-nls option) From my USE=-nls uclibc/glibc chroot's config.h: /* always defined to indicate that i18n is enabled */ /* #undef ENABLE_NLS */ While from my USE=nls glibc chroot's one: /* always defined to indicate that i18n is enabled */ #define ENABLE_NLS 1
Now part of vte-0.12.2 (not revbumped since it affects only a small portion of users and it's not a critical change). Thanks for the contribution :)