Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 12823 - Mplayer failes to build due to unresolved dependencies in libpangoxft-1.0.so
Summary: Mplayer failes to build due to unresolved dependencies in libpangoxft-1.0.so
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Martin Schlemmer (RETIRED)
URL:
Whiteboard:
Keywords:
: 13256 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-12-27 23:43 UTC by Hezekiah
Modified: 2003-02-04 19:42 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 Hezekiah 2002-12-27 23:43:43 UTC
While merging either media-video/mplayer-0.90_rc1 or _rc1-r1 or _rc2, the build
fails when trying to link the mplayer executable. GCC (I use gcc version 3.2.1)
complains of undefined references to several functions in libpangoxft-1.0.so.
These functions appear to be defined in libfreetype.so.6.3.2. I have enclosed
the error report from the link below:

gcc -O4 -march=k6-2 -mcpu=k6-2 -pipe -ffast-math -fomit-frame-pointer
-D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Ilibmpdemux -Iloader
-Ilibvo -I/usr/include/freetype2 -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0
-I/usr/include/freetype2 -I/usr/X11R6/include -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include    -I/usr/include/SDL -D_REENTRANT  -o mplayer
mplayer.o mp_msg.o cpudetect.o codec-cfg.o cfgparser.o my_profile.o spudec.o
playtree.o playtreeparser.o asxparser.o vobsub.o subreader.o sub_cc.o find_sub.o
m_config.o m_option.o parser-cfg.o m_struct.o unrarlib.o mixer.o parser-mpcmd.o
libvo/libvo.a libao2/libao2.a  vidix/libvidix.a Gui/libgui.a
libmpcodecs/libmpcodecs.a mp3lib/libMP3.a liba52/liba52.a libmpeg2/libmpeg2.a
loader/libloader.a loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a
libaf/libaf.a libmpdemux/libmpdemux.a input/libinput.a postproc/libpostproc.a
postproc/libswscale.a linux/libosdep.a  libavcodec/libavcodec.a   -lvorbis -logg
-ldv    -ldivxdecore -lpng -lz -lz -ljpeg   -lfreetype  -lcdda_interface
-lcdda_paranoia -lnsl   -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0
-latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0
-lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   -lglib-2.0    -lGL -lXxf86dga -lXv
-lXxf86vm -lXinerama -L/usr/X11R6/lib -lXext -lX11 -lnsl  -lnsl -L/usr/lib
-Wl,-rpath,/usr/lib -lSDL -lpthread    -lvgagl -lvga  -lgif -L/usr/X11R6/lib
-lXext -lX11 -lnsl  -L/usr/kde/3.1/lib -ldl -lartsc -lpthread      -lpthread
-ldl -rdynamic  -lm
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Stream_GetShort'
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Stream_ExitFrame'
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Stream_GetLong'
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Stream_Seek'
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Stream_EnterFrame'
collect2: ld returned 1 exit status
make: *** [mplayer] Error 1

!!! ERROR: media-video/mplayer-0.90_rc2 failed.
!!! Function src_compile, Line 197, Exitcode 2

Since pango is a dependency of gkt+-2*, mplayer can be built without this error
if "-gtk2" is in the USE flags. I have successfully built mplayer without gtk2
support in this manner.

If it helps any, here are the versions of several of the packages I have
installed that mplayer uses: dev-libs/glib-2.2.0, x11-libs/gtk+-2.0.6-r1,
media-list/freetype-2.1.3-r2, x11-libs/pango-1.2.0.
Comment 1 Martin Schlemmer (RETIRED) gentoo-dev 2002-12-31 15:14:25 UTC
I have the same libs, except for gtk+, which is 2.2.0 here.  Try to remerge
pango ?
Comment 2 Hezekiah 2002-12-31 18:11:53 UTC
Yes. I had tried remerging pango before I submitted this bug. I had also tried
remerging some of pango's dependencies: glib, freetype, fontconfig, and I think
I remerged xft as well. I'm going to try compiling mplayer with gtk+-2.2.0 now.
I'll tell you how that works.

P.S. If it helps any, the version of X11 I have merged is x11-base/xfree-4.2.0-r12.
Comment 3 Hezekiah 2002-12-31 21:09:25 UTC
Well, I now how more information but no answers. I tried recompiling mplayer
with gtk+-2.2.0. No luck. I still got the same error message. :(

I tried a whole bunch of things after that and came up with some more
interesting data. Here it is:

I discovered that there is a libfreetype.so in /usr/X11R6/lib. It is a symbolic
link that points to libfreetype.6.2.so in the same directory. On a hunch, I
decided to temporarily change it to point to /usr/lib/libfreetype.6.3.2.so
instead. Then I compiled mplayer. It compiled!!
	
Now I needed to know why it did. I searched around and discovered that
libpangoxft.so is linked with options that have it use the libfreetype.so in
/usr/X11R6/lib instead of the one in /usr/lib. This confused me so I read the
configure script sources (configure.in and aclocal.m4) to find out why it did
that. The results were even MORE confusing! The linker flags for libpangoxft.so
are taken from pkg-config (dev-utils/pkgconfig). The confusing thing is that
"pkg-config --libs xft" returns a different result than "xft-config --libs". The
results are below:

    pkg-config: -L/usr/X11R6/lib -lXft -lfreetype -lXrender -lfontconfig
	xft-config: -lXft -lfreetype -lfontconfig -L/usr/X11R6/lib -lXrender
	
I don't know if this caused it to link to /usr/X11R6/lib/libfreetype.so instead
of /usr/lib/libfreetype.so.

Next, I tried compiling mplayer with "-lfreetype" changed to
"/usr/bin/libfreetype.so" to make sure mplayer links to the right
libfreetype.so. This works. Thus, I think mplayer might be trying to link to
/usr/X11R6/lib/libfreetype.so instead of /usr/lib/libfreetype.so.

As I said before, I am using x11-base/xfree-4.2.0-r12. If mplayer and pango are
_supposed_ to be linking to /usr/X11R6/lib/libfreetype.so then, xfree might need
a newer built-in version of freetype. Would updating to xfree-4.2.99.3-r1 fix this?

Anyway, I'm stumpped for the moment. That's all the raw data I came up with.
Maybe you can figure it out. :)
Comment 4 Hezekiah 2003-01-01 14:36:34 UTC
Well, I updated x11-base/xfree last night. Now I am running
x11-base/xfree-4.2.1-r2. This fixed the problem. Aparently, xfree-4.2.0-r11 (and
-r12) came with a customized version of freetype. That's how a libfreetype.so
ended up in /usr/X11R6/lib. I merged in xfree-4.2.1-r2 (which uses the global
freetype) and removed xfree-4.2.0-r12. This got rid of
/usr/X11R6/lib/libfreetype.so. Then I recompiled pango and mplayer. Everything
works fine now.

So now we know how to fix the problem. However, I think someplace a dependency
should be added that requires xfree-4.2.1 so that this problem doesn't happen to
someone else. That's my 2 cents. Thanks for the help. :)
Comment 5 Martin Schlemmer (RETIRED) gentoo-dev 2003-01-02 15:50:28 UTC
Bug is here, so that should help people, and I know the problem, thanks for debuging it !
Comment 6 Martin Schlemmer (RETIRED) gentoo-dev 2003-01-05 09:50:55 UTC
*** Bug 13256 has been marked as a duplicate of this bug. ***
Comment 7 Thomas R. (TRauMa) 2003-01-06 22:52:17 UTC
While risking to be redundant, i already have xfree-4.2.1-r2 installed, and
compile didn't work for me. Export USE="-gtk2" did.
Comment 8 Hezekiah 2003-01-07 10:39:59 UTC
Did you remeber to emerge -c xfree? The key is that
/usr/X11R6/lib/libfreetype.so must be removed. That's the point behind upgrading
xfree. (The old version of xfree had a built in version of freetype, but the new
one uses the global version.)