(Long) pango and freetype2 incompatibility resolved
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: kc2kth@laptop:~> 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
participants (1)
-
John LeMay