[Xorg] CVS HEAD -- ftfuncs.c:931: error: structure has nomembernamed `find_sbit_image'

Egbert Eich eich at pdx.freedesktop.org
Tue Aug 3 01:27:07 PDT 2004

Owen Taylor writes:
 > It won't overwrite the distribution's version, no. It *will* cause the
 > person to submit a Pango bug report 6 months from now because configure
 > tests are running against one libfreetype and Pango is linking against
 > the other, or because Pango is linking against one libfreetype and
 > running against the other, or some other weirdness that the user has
 > no chance at all of being able to debug correctly.

Thinking about this issue some more:

In the past FreeType has broken binary compatibility more than once. 
We may be able to help educate them in for the future but we cannot 
change the past.
This however means that it is not possible to install a later version
of libfreetype without requiring that all applications that build on it
need rebuilding.

We agree that installing a different version of libfreetype (with the
same major version number) into another directory calls for trouble.

There seems to be a consense that linking against libfreetype statically
is a bad idea as security fixes would require to rebuild any application.
(Which may have to be done anyway if one chooses to supply fixes by 
providing a later version of the lib).

Effectively this means that it is impossible to build components of
X on a system with with freetype version x that have a dependency on
a version y with y > x.

This begs the question what we should do:

I can think of three solutions:

1. We add more ifdefs to support earlier versions of freetype.
   The code can be build against the installed version of the lib
   and nothing needs to be updated.

2. We ask the freetype folks to use ELF symbol versioning to provide
   ABI compatibility to earlier versions. This way FreeType has the 
   trouble and we can keep our code relatively clean.

3. FreeType bumps the major version number and assures that new versions
   of their lib will provide binary compatibility as long as this major
   version number is in use. This will not solve really solve the problems
   of the past but it allows the user to install a new version of freetype
   and build against it while still keeping the original one for all
   older applications.


More information about the xorg mailing list