Re: [ft-devel] web page for the forthcoming 2.2.0 release

2006-01-23 Thread david turner

Hi Werner and all,


Perhaps we shall *rename* the library to, say, `libft2', instead of
`libfreetype', together with a new API prefix `FT2_' instead of `FT_'.
This would avoid the whole mess.

  
Simply changing the library name is not going to change a lot of things 
due to the way dynamic
linking works with ELF, it's simply equivalent to changing the so 
version number.


Now, if we talk about a new API prefix, we're essentially asking that 
*all* clients that use FreeType
be rewritten to use it, or they'll be stuck with 2.1.10 which we don't 
want to maintain anymore.


However, the percentage of rogue clients (i.e. the one that are going 
to break due to the new install) is,
much smaller, and easier to spot if you have access to their sources 
(since simple grepping is sufficient)


Another option is to use a new API prefix internally, but provide 
backwards compatibility macros like:


#define  FT_New_Face FT2_New_Face

so that clients can be recompiled without modifications. The macros 
*should* be disabled when building
the library, to that the corresponding object files only contain FT2_ 
functions. This will avoid any bad

ELF magic to happen (though it may make debugging fun :-)

However, this will *not* prevent programs from being linked to both 
libfreetype.so.6 and, say, libft2.so.1 or
wathever. Even though the probabilities of crashes will be reduced, it 
might produce unexpected results.


And it will *still* break rogue clients that are compiled against the 
new version. Which is why I'm wondering
if it will solve anything at all ? Sure, you can use your package 
manager to refuse to install libfreetype.so.6 and
libfreetype.so.7 together, but you won't be able to install 
libfreetype.so.7 until all rogue clients are patched

anyway.

In other words, the big deal are the rogue clients, not all programs 
that use FreeType. We need to spot these,

and provide patches before making a public release.

Another option is to have ./configure refuse to install freetype 2.2.0 
if a previous release of the library is
detected on the system; that is, unless you use a super-duper parameter 
like --please-destroy-my-desktop

that only the cautious will care to use.

Any comments ?

- David Turner
- The FreeType Project  (www.freetype.org)


Werner


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel

  


***
Information contained in this email message is confidential and may be 
privileged, and is intended only for use of the individual or entity named 
above. If the reader of this message is not the intended recipient, or the 
employee or agent responsible to deliver it to the intended recipient, you are 
hereby notified that any dissemination, distribution or copying of this 
communication is strictly prohibited. If you have received this communication 
in error, please immediately notify the [EMAIL PROTECTED] and destroy the 
original message.
*** 




___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] web page for the forthcoming 2.2.0 release

2006-01-23 Thread Victor Luchits
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

 Perhaps we shall *rename* the library to, say, `libft2', instead of
 `libfreetype', together with a new API prefix `FT2_' instead of `FT_'.
 This would avoid the whole mess.

Yeah, that and to keep binary compatibility a stub library could be
written as a replacement for an old libfreetype.so, which would just
dlopen the new .so and call appropriate functions. This is an ugly
solution but *should* work until a better solution is found.

What do you think?

- --
Best regards,
 Victor Luchitsmailto:[EMAIL PROTECTED]
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFD1BENdRaO3lCd98MRAnQ+AKDP9x2HlKQAsj3xZc9JZKltJSZ9VwCeKDCF
seml/TMLEIKJFcbAPNP2yu0=
=7q35
-END PGP SIGNATURE-


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] web page for the forthcoming 2.2.0 release

2006-01-23 Thread George Williams
On Mon, 2006-01-23 at 01:53, david turner wrote:
  Perhaps we shall *rename* the library to, say, `libft2', instead of
  `libfreetype', 
Um this will break everybody's builds and will mean we can't have
something that builds with either 1.10 or 2.0 without fancy configure
scripting. I'm not sure what it gains you that changing the so number
doesn't...

 together with a new API prefix `FT2_' instead of `FT_'.
  This would avoid the whole mess.
Please don't change the API.
It makes some sense to change internal names, I suppose. I'd prefer you
didn't (since fontforge is a rogue), but don't change the external ones.

 Another option is to have ./configure refuse to install freetype 2.2.0 
 if a previous release of the library is
 detected on the system; that is, unless you use a super-duper parameter 
 like --please-destroy-my-desktop
 that only the cautious will care to use.
That seems like a good starting point to me.



___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] web page for the forthcoming 2.2.0 release

2006-01-22 Thread Werner LEMBERG

 Perhaps we shall *rename* the library to, say, `libft2', instead of
 `libfreetype', together with a new API prefix `FT2_' instead of `FT_'.
 This would avoid the whole mess.

Or even `libft3' and `FT3_' ...


Werner


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] web page for the forthcoming 2.2.0 release

2006-01-22 Thread Ilya Konstantinov

Werner LEMBERG wrote:


What kind of problems would the version bump cause?



Indirect dependencies.
  

That's exactly what's described in this section:
http://plan99.net/autopackage/Linux_Problems#elf
  

Are we not bumping versions simply to force all applications to fix
their code rather than sticking to their old-and-working FreeType
version?



The very problem is that this won't happen within a short time frame.
Let's assume that the new FreeType DLL version is version 7, and his
desktop uses version 6.  If a developer now links his application
against FreeType, there are high chances that his application is
linked against version 6 *and* version 7 at the same time because many
other libraries of his desktop depend on the old FreeType DLL.
  
I can't think of many programs which actively use FreeType functions on 
their own. Typically, it's just the low-level layer, such as Pango and 
fontconfig, which relies on FreeType, and low-level layers usually need 
to be built (by the distro) for the same set of libraries for more 
reasons, such as libpng.so.2 vs. libpng.so.3 incompatibilities.

Perhaps we shall *rename* the library to, say, `libft2', instead of
`libfreetype', together with a new API prefix `FT2_' instead of `FT_'.
This would avoid the whole mess.
  
Renaming the library is not required, as the version prefix makes the 
name different enough. As the above-linked document says, the only thing 
that makes any difference is the symbol name, since in ELF, all symbols 
are global.



___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] web page for the forthcoming 2.2.0 release

2006-01-22 Thread Werner LEMBERG
  Indirect dependencies.
 
 That's exactly what's described in this section:

 http://plan99.net/autopackage/Linux_Problems#elf

Yes.  Note that the world is still spinning inspite of the horror
scenario painted there :-)

 I can't think of many programs which actively use FreeType functions
 on their own.

Any program which needs more info than delivered by FontConfig needs
it, especially applications which create PS or PDF output by itself.
Examples are xpdf or lilypond (a music typesetter).

  Perhaps we shall *rename* the library to, say, `libft2', instead
  of `libfreetype', together with a new API prefix `FT2_' instead of
  `FT_'.  This would avoid the whole mess.

 Renaming the library is not required, as the version prefix makes
 the name different enough.

Mhmm, let's see what David says.


Werner


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] web page for the forthcoming 2.2.0 release

2006-01-21 Thread Werner LEMBERG

[discussion continued on freetype-devel only]

 A new version which makes such a radical change should bump up the 
 shared object version (.so.N).

Where's the `radical change'?

 That way we'll allow a transition period for applications to update.

This has been discussed recently on the FreeType list, and the
consensus seems to be that it is better to fix the applications than
to increase the DLL version to avoid even more problems.

David, what about adding some words to freetype-2.2.0.html?  Since you
apparently still don't have access to freetype.freedesktop.org please
send me a patch which I can apply.


Werner


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] web page for the forthcoming 2.2.0 release

2006-01-21 Thread Ilya Konstantinov

Werner LEMBERG wrote:


[discussion continued on freetype-devel only]
  

Sorry for that. I was to quick to press Send.
  
A new version which makes such a radical change should bump up the 
shared object version (.so.N).



Where's the `radical change'?
  
Symbols which were previously exported are no longer exported. This is 
exactly the kind of compatibility changes .so version numbers are 
intended for.
It's just like when you change a COM interface, no matter if the 
function you've changed was marked INTERNAL in screaming caps, you'd 
still change the interface UUID.
  

That way we'll allow a transition period for applications to update.



This has been discussed recently on the FreeType list, and the
consensus seems to be that it is better to fix the applications than
to increase the DLL version to avoid even more problems.
  
Sorry, I didn't notice this discussion :/ Although I'm not a FreeType 
developer, I'd express my opinion on this since I feel strongly about 
having the best level of binary compatibility on the free desktop and to 
avoid the problems described in the famous Linux Problems document[1].


What kind of problems would the version bump cause?
Are we not bumping versions simply to force all applications to fix 
their code rather than sticking to their old-and-working FreeType version?


[1] http://plan99.net/autopackage/Linux_Problems


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel