Trying to determine why the new version of scribus crashes, I found, as I wrote recently, that it crashes when freetype2 is at versions less than or equal to 2.1.7 and it doesn't crash when freetype2 version 2.1.9 is installed.

Zooming in at the bug, I saw that the crash happens because at some point inside libfreetype.6.dylib, it jumps from the version in /sw/lib to the one in /usr/X11R6/lib. Both are loaded into memory at that time.

Don't tell me that it is bad to have both /sw/lib/libfreetype.6.dylib and /usr/X11R6/lib/libfreetype.6.dylib loaded into memory, it is, but it is also inevitable: scribus is not linked with both, it is only linked with the one from /sw/lib, but it uses libqt3-mt which in turn is linked with libfreetype from /usr/X11R6/lib, and there is nothing one can do about this.

This situation does not lead to a crash automatically. The crash only happens when libfreetype from /sw is a flat_namespace library. And here lies the difference between the different versions: freetype2 versions below 2.1.7 build flat_namespace libraries by default, and 2.1.9 builds twolevel_namespace libraries. It is a difference in libtool versions. I confirmed this by building freetype2-2.1.7 with a twolevel_namespace library, and scribus crashes no more.

Now here comes my questions for the experts: What is the recommended way to persuade freetype2 to build twolevel images? I did the following brute-force hack: The freetype2.info file has

CompileScript: <<
 make setup CFG="--prefix=%p"
 make
<<

I added two lines so that it reads

CompileScript: <<
 cp %p/share/libtool/ltmain.sh builds/unix/
 cd builds/unix; aclocal; autoconf
 make setup CFG="--prefix=%p"
 make
<<

This works and is short, but it is probably dependent on the version of libtool and of the autotools installed, it is incomprehensible, and ugly. Is there a more stable way short of putting all of configure and ltmain.sh into the patch file? There used to be the "UpdateLibtool" field that did things like this, but the /sw/lib/fink/update/ltmain.sh that is imported by this instruction is considerably older than the one I want to replace.

--
Martin





-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Fink-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to