Bug 28 - Update fontconfig to use libtool
Summary: Update fontconfig to use libtool
Alias: None
Product: fontconfig
Classification: Unclassified
Component: library (show other bugs)
Version: 2.1
Hardware: Other Solaris
: high normal
Assignee: Keith Packard
QA Contact:
Depends on:
Reported: 2003-02-14 04:27 UTC by bugzilla-fontconfig
Modified: 2003-02-23 15:03 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

Update fontconfig to use libtool to build shared libraries (7.83 KB, patch)
2003-02-14 04:27 UTC, bugzilla-fontconfig
Details | Splinter Review

Description bugzilla-fontconfig 2003-02-14 04:27:13 UTC
Attaching patch to make fontconfig use libtool to build shared libraries.
Comment 1 bugzilla-fontconfig 2003-02-14 04:27:56 UTC
Created attachment 20 [details] [review]
Update fontconfig to use libtool to build shared libraries
Comment 2 Keith Packard 2003-02-17 09:42:49 UTC
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.
Comment 3 bugzilla-fontconfig 2003-02-17 10:09:26 UTC
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
  SONAME: libfontconfig.so.1

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?
Comment 4 Keith Packard 2003-02-17 10:33:50 UTC
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?
Comment 5 bugzilla-fontconfig 2003-02-17 10:36:53 UTC
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
Comment 6 Keith Packard 2003-02-17 10:52:12 UTC
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.
Comment 7 Keith Packard 2003-02-24 09:58:03 UTC
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
Comment 8 bugzilla-fontconfig 2003-02-24 09:59:13 UTC
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?
Comment 9 Keith Packard 2003-02-24 10:03:12 UTC
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.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.