freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] Regarding the 2.1.10 release


From: Lars Knoll
Subject: Re: [ft-devel] Regarding the 2.1.10 release
Date: Wed, 23 Mar 2005 17:27:18 +0100
User-agent: KMail/1.7.1

Hi,

On Tuesday 22 March 2005 23:40, David Turner wrote:
> Hello everyone,
>
> after much tinkering, I've determined that the next release
> could badly break a various number of installations, especially
> "old" ones. As suspected earlier, the problem comes from various
> releases of Pango, LibXft and FontConfig which happen to do
> weird things with FT2's internals. It also seems that
> undefining FT_OPTIMIZE_MEMORY doesn't always solve problems
> (at least on RedHat 7.3 where it was tested).
>
> My intention is to follow this plan:
>
> - make a preliminary release candidate with FT_OPTIMIZE_MEMORY
>    undefined, to minimize potential problems.
>
> - produce patches for Pango, LibXft and fontconfig to
>    definitively get rid of their rogue header inclusions,
>    and make them depend mandatorily on FT2 releases >= 2.1.10.
>
>    the patches will be posted to the FreeType web site and
>    sent to the respective library maintainers. Chances are
>    that these will require small modifications to FT2 itself
>    to support the "features" implemented.

Please remember that these are not the only projects around. At least Qt does 
also use the opentype code that unfortunately relies on internal freetype 
headers, but I'm sure there are some more projects out there. 

> - after completion of the patches, the real release will be
>    made with FT_OPTIMIZE_MEMORY defined. Its configure script
>    should try to detect unpatched versions of the offending
>    libraries and produce HUGE WARNINGS when compiling FT2.
>
> - moreover, this new release will not install the FreeType
>    internal header files in <prefix>/include/freetype2/internal
>
> - instead, it will install 'dummy' headers, which purpose
>    will be to produce #errors at compilation time, in order
>    to inform developers that they should upgrade the libraries
>    they're trying to link with FT2... (again, trying to be
>    descriptive)

Why install them at all then? If they are completely missing, you'll get a 
compile error as well. The error will not be quite as descriptive, but I 
don't think that matters.

The changes you're proposing are rather big, and break both the API and the 
behaviour of freetype. Have you considered changing the library version 
number for this release to 7, so old applications using freetype < 2.1.10 can 
continue to work?

> I'd like to have your comments on this important topic.

Currently the open type code used by both Qt and pango includes 4 internal 
headers from freetype:

#include <freetype/internal/tterrors.h>
#include <freetype/internal/ftstream.h>
#include <freetype/internal/ftmemory.h>
#include <freetype/internal/tttypes.h>

The main problem we will have is that we will have to support older 
installations of freetype for a while, so we need a way to make the open type 
code compile with both 2.1.x (<10) and 2.1.10, and we'd need some advice on 
how to replace the internal headers with public API. I'm happy to do all 
that's required to make Qt work with the new freetype version as long as I 
get some hints on how this should be done.

Another possibility I can see would be to move the open type code back into 
freetype. It would require some work on the public API of the open type 
module, but would finally unify the different versions of the open type code 
floating around in different projects again.

Best regards,
Lars




reply via email to

[Prev in Thread] Current Thread [Next in Thread]