Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 203450 - media-libs/freetype:2 breaks nxclient by disabling FT_CONFIG_OPTION_OLD_INTERNALS
Summary: media-libs/freetype:2 breaks nxclient by disabling FT_CONFIG_OPTION_OLD_INTER...
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo NX Server project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-12-27 12:08 UTC by Martin Väth
Modified: 2009-10-01 22:55 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Väth 2007-12-27 12:08:04 UTC
All versions of nxclient (which is available binary only and thus cannot be changed) always immediately die with
  ./nxclient: symbol lookup error: ./nxclient: undefined symbol: FT_Realloc

After some research I found that the reason is that all freetype:2 ebuilds currently in the tree unconditionally disable FT_CONFIG_OPTION_OLD_INTERNALS and thus do not export the required symbol FT_Realloc.

Of course, the best solution would be to have a version of nxclient which does not rely on obsolete internals, but since AFAIK nxclient is closed source, I guess that this is not an available option. So I suggest to provide a corresponding USE flag for freetype to enable FT_CONFIG_OPTION_OLD_INTERNALS and let the nxclient ebuilds do a corresponding built_with_use check.
Comment 1 Bernard Cafarelli gentoo-dev 2008-01-02 10:33:38 UTC
Can you post emerge --info, nxclient version you tried, freetype version (if onx86), emul-linux-x86-xlibs version (if on amd64)?
Comment 2 Martin Väth 2008-01-02 12:45:21 UTC
Since apparently you could not reproduce the problem, I thought about it and found an answer: Try after
  export LD_BIND_NOW=1
(I have this in my system shells' profiles for security reasons), i.e. for me nxclient was dying immediately while without the above command it will die only when the function is actually used. Of course, after I know this, one might try to put "unset LD_BIND_NOW" in the wrapper script, but perhaps this will just eliminate one symptom, not the cause.

To answer your other questions: I had the same effect on x86 and amd64 with several versions of nxclient and freetype. On amd64, I had tried the combinations
  nxclient-3.0.0-r3 freetype-2.3.4-r2 emul-linux-x86-libs-10.1
  nxclient-3.0.0-r4 freetype-2.3.4-r2 emul-*-20071114 (and perhaps 20071128-r2)
  nxclient-3.0.0-r5 freetype-2.3.4-r2 emul-*-20071128-r2
  nxlcient-3.1.0    freetype-2.3.4-r2 and freetype-2.3.5-r2 emul-*-20071128-r2
(although I do not understand your question about emul-linux-x86-libs, since "file" shows that the amd64 version of nxclient is 64bit and "ldd" shows that it will link with the 64bit freetype library). On x86, I tried probably the same combinations (at least, genlop shows that I had installed the same nxclient and freetype versions).

env -i emerge --info:
Portage 2.1.4_rc14 (default-linux/x86/2007.0/desktop, gcc-4.2.2, glibc-2.6.1-r0, 2.6.23-hardened-r5 i686)
=================================================================
System uname: 2.6.23-hardened-r5 i686 AMD Athlon(TM) XP1700+
Timestamp of tree: Tue, 01 Jan 2008 19:46:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p17-r1
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r6
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 2.0.0_rc6-r1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-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
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.23-r3
ACCEPT_KEYWORDS="x86"
ALSA_CARDS="ali5451 bt87x cmipci mpu401 sb8 sb16 sbawe seqdummy serialmidi serial-u16550 trident via82xx via82xx-modem virmidi ymfpci"
ALSA_PCM_PLUGINS="*"
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"
ARCH="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CCACHE_SIZE="512M"
CFLAGS="-march=native -O2 -fno-ident -pipe"
CHOST="i686-pc-linux-gnu"
CLASSPATH="."
CLEAN_DELAY="5"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CVS_RSH="ssh"
CXXFLAGS="-march=native -O2 -fno-ident -pipe"
DISTDIR="/big/distdir.mv/distfiles"
ELIBC="glibc"
EMERGE_DEFAULT_OPTS="--verbose --nospinner --with-bdeps y"
EMERGE_WARNING_DELAY="10"
FEATURES="candy ccache distlocks sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"
FETCHCOMMAND="/home/gentoo/various/scripts/trickyfetch ${URI} ${DISTDIR} ${FILE}"
FLTK_DOCDIR="/usr/share/doc/fltk-1.1.7-r2/html"
FRACTDIR="/usr/share/xfractint"
GCC_SPECS=""
GDK_USE_XFT="1"
GENTOO_MIRRORS # manually removed
GUILE_LOAD_PATH="/usr/share/guile/1.8"
INFOPATH="/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/info:/usr/share/gcc-data/i686-pc-linux-gnu/4.2.2/info:/usr/share/info/emacs-22"
INPUT_DEVICES="keyboard mouse"
KDEDIRS="/usr:/usr/local:/usr/kde/3.5"
KDE_MALLOC="1"
KDE_NO_IPV6="1"
KERNEL="linux"
LADSPA_PATH="/usr/lib/ladspa"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"
LESS="-sFR -iMX --shift 5"
LINGUAS="en de"
MAKEOPTS="-j2"
MANPATH="/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.2.2/man:/etc/java-config/system-vm/man/:/usr/kde/3.5/share/man:/usr/qt/3/doc/man:/opt/flexlm/man:/opt/opera/share/man"
MY_RSYNC_EXCLUDEFROM="/home/gentoo/various/etc/portage/rsync_excludes"
NOCOLOR="true"
OPENGL_PROFILE="nvidia"
PATH="/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.2.2:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/flexlm/bin:/usr/games/bin"
PKGDIR="/big/i686"
PKG_CONFIG_PATH="/usr/qt/3/lib/pkgconfig"
PORTAGE_ARCHLIST="ppc s390 amd64 x86 ppc64 x86-fbsd m68k arm sparc sh mips ia64 alpha ppc-macos hppa sparc-fbsd"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_BIN_PATH="/usr/lib/portage/bin"
PORTAGE_CONFIGROOT="/"
PORTAGE_DEBUG="0"
PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
PORTAGE_ELOG_CLASSES="warn error log"
PORTAGE_ELOG_MAILFROM="portage@localhost"
PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"
PORTAGE_ELOG_MAILURI="root"
PORTAGE_ELOG_SYSTEM="echo save"
PORTAGE_GID="250"
PORTAGE_INST_GID="0"
PORTAGE_INST_UID="0"
PORTAGE_IUSE="^(alpha|alsa_cards_aoa|alsa_cards_aoa-fabric-layout|alsa_cards_aoa-onyx|alsa_cards_aoa-soundbus|alsa_cards_aoa-soundbus-i2s|alsa_cards_aoa-tas|alsa_cards_aoa-toonie|alsa_cards_armaaci|alsa_cards_at91-soc|alsa_cards_at91-soc-eti-b1-wm8731|alsa_cards_au1x00|alsa_cards_harmony|alsa_cards_powermac|alsa_cards_pxa2xx-i2sound|alsa_cards_pxa2xx-soc|alsa_cards_pxa2xx-soc-corgi|alsa_cards_pxa2xx-soc-poodle|alsa_cards_pxa2xx-soc-spitz|alsa_cards_pxa2xx-soc-tosa|alsa_cards_sa11xx-uda1341ts|alsa_cards_sun-amd7930|alsa_cards_sun-cs4231|alsa_cards_sun-dbri|altivec|amd64|aqua|arm|bmp|bmpx|bootstrap|build|coreaudio|crosscompile_opts_.*|elibc_.*|elibc_Darwin|elibc_DragonFly|elibc_FreeBSD|elibc_NetBSD|elibc_OpenBSD|elibc_glibc|elibc_uclibc|emul-linux-x86|hppa|ia64|ibm|infopipe|kernel_.*|kernel_Darwin|kernel_FreeBSD|kernel_linux|m68k|mips|mplayer-bin|multilib|n32|n64|networkmanager|pam_console|pbbuttonsd|ppc|ppc-macos|ppc64|ppcsha1|s390|selinux|sh|sparc|sparc-fbsd|uclibc|ultra1|userland_.*|userland_BSD|userland_Darwin|userland_GNU|video_cards_impact|video_cards_newport|video_cards_sunbw2|video_cards_suncg14|video_cards_suncg3|video_cards_suncg6|video_cards_sunffb|video_cards_sunleo|video_cards_suntcx|vis|x86|x86-fbsd|xmms)$"
PORTAGE_NICENESS="19"
PORTAGE_PYM_PATH="/usr/lib/portage/pym"
PORTAGE_RSYNC_EXTRA_OPTS="-P --exclude-from=/home/gentoo/various/etc/portage/rsync_excludes"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --del --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_RSYNC_RETRIES="3"
PORTAGE_TMPDIR="/var/tmp"
PORTAGE_USE="elibc_glibc kernel_linux userland_GNU x86"
PORTAGE_WORKDIR_MODE="0700"
PORTDIR="/gentoo32/usr/portage"
PORTDIR_OVERLAY="/home/gentoo/various/portage"
PORT_LOGDIR="/var/log/portage"
PYTHONDOCS="/usr/share/doc/python-docs-2.4.4/html/lib"
PYTHONPATH="/usr/lib/portage/pym"
QMAKESPEC="linux-g++"
QTDIR="/usr/qt/3"
RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp -O ${DISTDIR}/${FILE} ${URI}"
ROOT="/"
ROOTPATH="/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.2.2:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin:/opt/flexlm/bin"
RPMDIR="/usr/portage/rpm"
SANE_CONFIG_DIR="/etc/sane.d"
STAGE1_USE="nptl nptlonly unicode"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
TRICKYLOG="/tmp/trickyfetch.log"
USB_DEVFS_PATH="/dev/bus/usb"
USE="16bit 3dnow 3dnowext 64bit 7zip S3TC X a52 aac aalib ace acpi addbookmarks adplug adsl aften akode alsa amarok amr amrnb amrr amrwb aotuv arpack async athena auctex audiofile avfs avg bash-completion bcmath berkdb bgpas4 bigpatch binary-drivers binfilter bittorrent bl blas boost branding bzip2 caps capslib cardbus cblas ccache cdaudio cdda cdf cdparanoia cdr cdrom cdsound cg chasen checkpath chipcard clvm cmdsubmenu colordiff compress config_wizard connectionstatus cpio crypt css cube cups curl curlwrappers custom-cflags cvs d darcs dbus de_tvtoday demo device-mapper dga directfb discard-path divx dnd dnotify dolby-record-switch doomsday double-precision dri dtaus dts dv dvbplayer dvd dvdnav dvdr dvdread dynamic dynamicplugin ecc emacs emf emovix encode equalizer ermt escreen esd eurofile exif extra-algorithms extras fam fame fat fbcon fbsplash festival ffmpeg filter firefox fix-connected-rt flac flv fmod force-cgi-redirect force-reg fortran fortran95 ftp gd gdbm geldkarte gencertdaily gif gimp gimpprint ginac git gkrellm glade glgd glibc-omitfp glitz glsa glut gmail gmedia gmp gmtsuppl gmttria gnet gnus gnutella gpg gpm grammar gre gs gsm gtk gzip gzip-el hal hardened hbci hddtemp hdri hwmixer ibam iconv id3 id3tag idea ieee1394 ilbc image imagemagick imap int64 ipfilter ipsec iptv iris jack java java-external jbig jce jpeg jpeg2k jrtplib kde kdecards kdehiddenvisibility kmid kpathsea lame latex libgcrypt libsamplerate libssh2 libtommath lights live log4j login-watch logitech-mouse logrotate long-double lzo lzw mad math matroska maya-shaderlibrary mbox md5sum memlimit metric midi mikmod mime mimencode mixer mjpeg mmx mmxext mng mode-force mode-paranoid modplug mods motif mounts-check mozilla moznocompose moznoirc moznopango moznoxft mp2 mp3 mp3rtp mp4 mp4live mpeg mpeg2 mplayer mschap mtp mudflap mupad-noscilab musepack nas nat ncurses nemesi new-interface new-reg-alloc nforce2 nls no-suexec nocd nodpkg nolvm1 nolvmstatic nowin npp nptl nptlonly nsplugin nuv nvidia nvtv nxclient oci8-instant-client octave offensive office ogg ogre openal opendoc openexr opengl openmp openstreetmap opera oss otr pager parport patch pch pcmcia pcntl pcre pdf perl pic player plib plotutils pmount png pnm pop portage portaudio posix postproc postscript ppds preview-latex print projectx ps pygrub python qa qemu qmax qt3 quicktime radio rar rc5 readline real realmedia realms recode reiser4 reiserfs remix replaygain replytolist resid resolvconf restrict-javascript rle roe rogue rotor rtsp scanner scenarios screen sdl sdl-image sdlaudio seamonkey setup-plugin shout sid skins slang smime sndfile songs sou sox speex spell srt sse ssl stats stlport stream submenu subtitles subversion suidcheck svg svk sysfs szip tagwriting tcl tcpmd5 teletext tetex tex textures themes theora thesaurus threads threadsafe tiff timidity tivo tk tomsfastmath toolkit-scroll-bars transcode truetype tta tv tv_check tv_pick_cgi twolame ui underscores unicode unzip usb userfiles userlocales uudeview uuencode v4l v4l2 vamp vcd vcdx videos visual visualization vlm voice volctrl vorbis vorbis-psy wav wavpack weak-algorithms wideband win32codecs wma wmf wmp wordperfect wxwindows x264 x86 xanim xatrix xcomposite xext xgetdefault xine xiph xlockrc xorg xplanet xpm xrandr xscreensaver xterm xv xvid xvmc yaepg yv12 zip zlib zoran zrtp zsh-completion zvbi" ALSA_CARDS="ali5451 bt87x cmipci mpu401 sb8 sb16 sbawe seqdummy serialmidi serial-u16550 trident via82xx via82xx-modem virmidi ymfpci" ALSA_PCM_PLUGINS="*" 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" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en de" USERLAND="GNU" VIDEO_CARDS="fbdev nv nvidia v4l vesa"
USERLAND="GNU"
USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS USERLAND VIDEO_CARDS"
USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"
USE_ORDER="env:pkg:conf:defaults:pkginternal:env.d"
VIDEO_CARDS="fbdev nv nvidia v4l vesa"
XDG_DATA_DIRS="/usr/share:/usr/kde/3.5/share:/usr/local/share"

Comment 3 Bernard Cafarelli gentoo-dev 2008-01-02 13:03:26 UTC
Yes sorry, forget about the emul libs, this was for older nxclient binaries (all removed from portage now)

I can reproduce it with LD_BIND_NOW set, I'll look into that one

Comment 4 Peter Volkov (RETIRED) gentoo-dev 2009-01-21 14:05:07 UTC
We have disabled FT_CONFIG_OPTION_OLD_INTERNALS in freetype starting with 2.3.1, which was *removed* 21 months ago from the tree. Probably best solution is to bug upstream: they should not use internal functions.
Comment 5 Bernard Cafarelli gentoo-dev 2009-10-01 22:55:23 UTC
Never got an answer from upstream on this one (and just released 3.4.0 has the same behaviour, but someone already tried to convince them of this. However their answer was that they supplied their own libraries in the tarball, which did not disable FT_CONFIG_OPTION_OLD_INTERNALS and worked fine that way.

As this is a binary-only package, we can't fix this by ourselves sorry (until upstream changes its mind). Alternative is to use qtnx (open-source client)