freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Freetype] (Long) pango and freetype2 incompatibility resolved


From: John LeMay
Subject: [Freetype] (Long) pango and freetype2 incompatibility resolved
Date: Mon, 28 Apr 2003 23:51:35 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4a) Gecko/20030401

Note:

After dealing with this issue for a couple of months, I've finally found a resolution that works and doesn't require a lot of rpm building or downgrading of freetype packages. I am posting this message to the freetype, pan-users, and suse-linux-e mailing lists as I've discussed the issue on all three lists in the past. Hopefully it will save someone else a few hours of time.

Symptom:

When compiling software such as Pan, Bluefish, and gtk2 versions of GAIM (0.60 and later) you see this during the make process:

/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Seek_Stream'
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Get_Short'
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Forget_Frame'
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Access_Frame'
/usr/lib/libpangoxft-1.0.so: undefined reference to `FT_Get_Long'


Issue:

Your installed version of pango does not match the version of freetype2
installed on your system.


Resolution:

While some have resorted to reverting to freetype2-2.0.9, the more
"forward looking" method involves recompiling pango-1.0.5 from source
against the installed freetype2-2.1.3 and freetype2-devel-2.1.3
packages. Since removing the pango rpm breaks a few dependencies,
I've found that reinstalling the source over the top of the installed
rpm works just fine. Of course you could reroll your own rpm, but this
requires a bit less effort and technical knowlege of rpm.

After recompiling and installing pango as you normally would, you
should now have four pango*.pc files located in /usr/local/lib/pkgconfig.
The rpm version of pango has it's .pc files in /usr/lib/pkgconfig.
Therefore, you can "override" the old pango relative to pkgconfig
by adding /usr/local/lib/pkgconfig as the first entry in your
PKG_CONFIG_PATH:

address@hidden:~> export \ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

Note the above command should be one line. The above is most likely wrapped on your display.

You should now be able to compile Gaim, Pan, Bluefish, and other apps
that are experiencing this same issue.


Longer description:

I've seen this when pango-1.0.5 and freetype2-2.1.3 are installed from
distributions such as Mandrake 9.0 and SuSE 8.1. Turns out this config
is broken. This rpm of pango was compiled against an earlier version of
freetype2 - 2.0.9 most likely. Significant changes were made to
freetype2 after 2.0.9 that are most likely responsible for this issue.
Details of these changes are in the freetype-2.1.0 changelog. The entire
log can be found here:

http://sourceforge.net/project/shownotes.php?release_id=85078

The following excerpt seems to be the important part:

- Many internal functions have been renamed to follow the
          FT__ pattern.  For example:

            FT_Seek_Stream       => FT_Stream_Seek
            FT_Read_Stream_At    => FT_Stream_ReadAt
            FT_Done_Stream       => FT_Stream_Close
            FT_New_Stream        => FT_Stream_Open
            FT_New_Memory_Stream => FT_Stream_OpenMemory
            FT_Extract_Frame     => FT_Stream_ExtractFrame

          Note that method names do not contain "_".

<end excerpt>

--
John LeMay
KC2KTH
Senior Enterprise Consultant
NJMC | http://www.njmc.com | Phone 732-557-4848
Specializing in Microsoft and Unix based solutions




reply via email to

[Prev in Thread] Current Thread [Next in Thread]