gnustep-dev
[Top][All Lists]
Advanced

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

Re: [PATCH] Framework shlib versioning


From: Nicola Pero
Subject: Re: [PATCH] Framework shlib versioning
Date: Sat, 17 Jan 2004 14:37:39 +0000 (GMT)

> The shared libraries are binary-compatible, but the shlib is not the  whole
> of the framework, and maybe not even the most important part of it (a
> framework needn't always have classes -- it may be only resources and/or
> headers). Framework resources (or for that matter, any bundle's) are not
> internal to its code, but part of the interface --

It depends.  Resource files, just like symbols in object code, can be
either public or private.  Making an assumption that all resource files
are public is as wrong as assuming they are all private.

Developers should be free to choose their own policies and to decide if a
change in the resources affects the interface version or not.

But the main point I think is just that when you install a new version, no
matter if API compatible or not, you must not overwrite the old version.

Compare libraries - if you install libxxx.1.6.5, that doesn't overwrite
libxxx.1.6.4.  It changes a symlink which means 1.6.5 will be used, but
you have both libxxx.1.6.4 and libxxx.1.6.5 on your hard disk, and you can
easily revert to 1.6.4 by just changing the symlink back.

I think exactly the same should happen with resources (and consistency is
good!).  If you install 1.6.5, that will be used instead of 1.6.4, but it
doesn't mean it's overwriting 1.6.4.  1.6.4 is still there, and you can
easily revert to it if you want; you have both 1.6.4 and 1.6.5 installed,
with their different resources.

Except for saving some disk space, I don't see any advantage in
overwriting 1.6.4 resources with 1.6.5 resources.  And if disk space is
the problem, the solution of course is to uninstall 1.6.4 when you install
1.6.5 (that will also remove libxxx.1.6.4 which could take quite a lot of
space); something which your package manager should do if you have one.

So I think you should be able to have 1.6.4 and 1.6.5 installed at the
same time, with different object files and different resources.  Only one
of the two will be used by default, but they are installed at the same
time.





reply via email to

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