Re: [ft-devel] On the impact of installing the next FreeType release on a typical Unix distribution

2006-02-15 Thread Ilya Konstantinov




Hi David,
Any comments ?

I'm delighted to see such a mature attitude in the project, an attitude
which levels the project with those of giants like Microsoft and Sun,
who go through the same kind of hoops to maintain binary compatibility.


BTW, I'm not a FreeType developer so I cannot address your specific
comments and my feedback is just general thoughts.
 but there are still cases where a program
obtains a FT_Face object
  
 through libfreetype7, then call an internal function in
libfreetype6,

You're talking about libraries which accept/offer FreeType structures
in their public APIs, e.g. (just an example -- I never checked) Pango
exposes a PangoFont's underlying FT_Face via public API function such
as:
FT_Face* pango_font_get_freetype_face(PangoFont* font)
?
- first of
all, install the next release as libfreetype6. RIGHT !!
  

In case we aim for full compatibility and pose ourselves as an
incremental release, right -- the name has to stay.

Some libraries allow themselves the privilege of breaking binary
compatibility. For example, Qt does it routinely (i.e. Qt2 vs. Qt3 vs.
Qt4). I wonder what makes FreeType different. Distros also acknowledge
this right of libraries to break BC by issuing massive recompilations
and changes in the names of packages (e.g. when libstdc++.so changes
yet again in some binary-incompatible manner).

However, with FreeType being such a basic infrastructure library, we
should try to ensure we've exhausted all options for keeping binary
compatibility before we break it. An alternative is a Linux-style "no
stable API" approach, which positions the software's dynamic nature
(and developer's joy of being able to perform drastic revolutions
without caring for consequences) above binary/API stability.






___
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-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


Re: [ft-devel] No support for side-by-side installation of x86-64 andi386

2005-12-07 Thread Ilya Konstantinov
On Thu, 2005-12-08 at 02:01 +0900, [EMAIL PROTECTED] wrote:
 Hi,
 
 On Wed, 7 Dec 2005 11:30:03 +0100
 Antoine Leca [EMAIL PROTECTED] wrote:
 BTW, this is not really cross-compiling. Real cross-compiling IMHO usually
 involves having a cross-compiling target environment, different from the
 host environment (usually selected as higher priority flags overriding the
 normal ones).
 
 Yeah, as you pointed out, the standard cross-compiling...

Okay, so it's not cross-compiling in the normal sense of the word.
Still, x86_64-targeted gcc can emit i386 code very easily (by adding the
-m32 argument) so any x86-64 installation can easily double as an i386
build machine.

 ... but I don't know if it's for developer environment
 compatibility. I'm afraid that there are many softwares
 that we cannot share header files between i386 and x86-64
 architechtures.

(Frederic Crozat pretty much said it all... And whatever they do in
Mandriva, is also done in Red Hat and Fedora.)

Having installed, on Fedora, many development packages in both x86_64
and i386 versions concurrently, there are hardly any packages that
collide. Whenever headers are arch-specific, they're either:
1. Moved to lib (e.g. /usr/lib/glib-2.0/include/glibconfig.h)
2. Moved to a special directory (e.g. /usr/include/asm-x86_64/errno.h)

I prefer option (1), since option (2) is only used by the Linux kernel.



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


[ft-devel] No support for side-by-side installation of x86-64 and i386

2005-12-06 Thread Ilya Konstantinov
Hi,

Currently, freetype i386 and x86-64 collide in the following files:
/usr/bin/freetype-config
/usr/include/freetype2/freetype/config/ftconfig.h

This makes installation of two freetype development kits impossible.
Installing two development kits is desirable when the developer does
plenty of cross-compiling to x86-64/i386, which is often the case on
x86-64 machines.

It would be very much desired that:
1. freetype-config would be recoded to detect its environment and return
the appropriate directories, thus creating a single copy of
freetype-config on equal-prefix builds *or* freetype moved to pkgconfig
(freetype-config may remain a frontend)
2. ftconfig.h would be moved to the lib(64)/config directory, just as it
is for glib2 etc.

How do you guys feel about it?
(Please CC me, as I'm not subscribed to the mailing list.)



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