Attaching patch to make fontconfig use libtool to build shared libraries.
Created attachment 20 [details] [review]
Update fontconfig to use libtool to build shared libraries
I'd like to try and make the major/minor library versions the same with libtool
as they are without it at first; is that true for all of the operating systems
supported by fontconfig? I'm not really happy with libtool's '-version-info'
mangling of version numbers.
I just build fontconfig without the libtool patches on Redhat Linux and see that
the following is created:
libfontconfig.so -> libfontconfig.so.1
libfontconfig.so.1 -> libfontconfig.so.1.0
If you use the -release mode for libtool, -release 1.0, then you get:
libfontconfig.so -> libfontconfig-1.0.so
Obviously this is not what you want. What's worse about the -release switch is
that it sets SONAME to libfontconfig-1.0.so. So, with every versions bump, you
produce an incompatible release. This is noted in the libtool documentation.
I'll ask on the libtool mailing list but I don't think libtool will create
backward-compatible version numbers.
Note that with -version-info 1:0:0, then you get:
libfontconfig.so -> libfontconfig.so.1.0.0
libfontconfig.so.1 -> libfontconfig.so.1.0.0
If -version-info 1:0:0 forces an SONAME of libfontconfig.so.1 on all platforms,
are you ok with using the libtool -version-info command for future versions?
I think we may be in luck transitioning to libtool at version 1.0. I'd like to
start moving other libraries that aren't at version 1.0 and I'm wondering how we
can make those work. It seems that libtool refuses to cooperate with more
traditional library versioning schemes; is there no option to force it to behave?
I posted a message to the libtool mailing list. However, I don't think we can
force libtool to do what you want. The library versions that are not at 1.0,
what library version are they at? I'll do a build on the machines we have here
with -version-info 1:0:0 and see how libtool creates the versioned fontconfig
My goal is to also transition the X libraries to automake. As automake
essentially requires libtool, this goal can only be realized if I can force
libtool to generate version numbers that match the existing X library version
I'm much less concerned about fontconfig which (at version 1.0) seems easy
enough to match now and in the future.
I've switched fontconfig to automake and libtool; libtool has a new
-version-number flag that allows explicit specification of libary version
numbers which makes it possible to transition the other libraries to automake
Any plans to do this for Xrender and Xft? Maybe a top-level makefile to build
everything and a top-level configure to optionally select which to build?
Yes, I'll be migrating Xft and Xrender to automake soon; I'd like to see how
fontconfig works in a variety of environments before doing that so I can fix
bugs in one place instead of three.