Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 134436 - x11-libs/vte fails to compile on nls free systems (patch included).
Summary: x11-libs/vte fails to compile on nls free systems (patch included).
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-26 10:33 UTC by Yuri Vasilevski (RETIRED)
Modified: 2006-06-07 23:01 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
vte-0.11.18-nonls.patch (vte-0.11.18-nonls.patch,971 bytes, patch)
2006-05-26 10:33 UTC, Yuri Vasilevski (RETIRED)
Details | Diff
vte-0.12.2-nonls.patch (vte-0.12.2-nonls.patch,1.24 KB, patch)
2006-06-06 13:18 UTC, Yuri Vasilevski (RETIRED)
Details | Diff
vte-0.12.2.ebuild.diff (vte-0.12.2.ebuild.diff,891 bytes, patch)
2006-06-06 13:19 UTC, Yuri Vasilevski (RETIRED)
Details | Diff
vte-0.12.2-nonls.patch (vte-0.12.2-nonls.patch,3.67 KB, patch)
2006-06-07 09:13 UTC, Yuri Vasilevski (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Vasilevski (RETIRED) gentoo-dev 2006-05-26 10:33:16 UTC
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
Comment 1 Yuri Vasilevski (RETIRED) gentoo-dev 2006-05-26 10:33:44 UTC
Created attachment 87573 [details, diff]
vte-0.11.18-nonls.patch
Comment 2 Leonardo Boshell (RETIRED) gentoo-dev 2006-06-05 23:07:35 UTC
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.
Comment 3 Yuri Vasilevski (RETIRED) gentoo-dev 2006-06-06 13:18:18 UTC
Created attachment 88556 [details, diff]
vte-0.12.2-nonls.patch

Patch updated to version 0.12.2
Comment 4 Yuri Vasilevski (RETIRED) gentoo-dev 2006-06-06 13:19:52 UTC
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.
Comment 5 Leonardo Boshell (RETIRED) gentoo-dev 2006-06-06 17:09:24 UTC
(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?
Comment 6 SpanKY gentoo-dev 2006-06-07 06:32:54 UTC
> vte-0.11.18-nonls.patch

patch looks good to me
Comment 7 Yuri Vasilevski (RETIRED) gentoo-dev 2006-06-07 09:13:04 UTC
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
Comment 8 Leonardo Boshell (RETIRED) gentoo-dev 2006-06-07 23:01:08 UTC
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 :)