Kyle Moffett <[EMAIL PROTECTED]> wrote:

> On Monday, February 25, 2002, at 11:20 , David R. Morrison wrote:
> > Packages containing both binary files and libraries
> >
[snip]
> 
> I would recommend that the foo package not be foo3.  I think that since 
> we can only have one foo headers package installed at a time, it would 
> be a lot easier for conflicts and replaces to have just foo.
> 

This doesn't work.  Let's say that foo3 has just been released, and you
have 10 installed packages which depend on the foo2 library.  We have
to wait for the maintainers of those packages to update from foo2 to
foo3, because the incompatible API might cause breakage which the
maintainer has to deal with.  In the meanwhile, the maintainer might
still update the old package to a new version, still depending on foo2.

So you have to have the ability to load foo2 or foo3 depending on which
package you are compiling at the moment.  When you load foo2, a symlink
is created:  libfoo.dylib -> libfoo.2.dylib so that all compiles link
to version 2.  Later if you load foo3, you get libfoo.dylib ->
libfoo3.dylib and the links are made with version 3.  Even later you
might need to reload foo2 again to compile a different package.

[snip]

> > Upgrading presents a problem in this situation, however, since users 
> > won't
> > be prompted to install <code>foo-bin</code>.  To work around this, until
> > all other package maintainers have revised their packages as above,
> > your <code>foo</code> package can say
> > <codeblock>
> >               Depends: foo-shlibs (= exact.version), foo-bin
> 
> Here I disagree, since foo3-shlibs and foo4-shlibs represent an 
> incompatable api change, any programs should be the same version as the 
> libraries, therefore foo-bin should: Depends: foo-shlibs (== %v).  Also, 
> just like plain old foo header packages, foo-bin should not have the 
> version in the packagename (Many of them will probably have the same 
> files in them).
> 

Absolutely, the long-term goal is that foo-bin depends on foo-shlibs.
The recommendation here is for the transition period, and it solves the
problem which Martin Costabel noticed: when you upgrade, foo-bin might
not be loaded on your system, even if it is needed by other packages.
Until the other package-maintainers fix this, you can let foo depend
on foo-bin (temporarily).

As far as the naming goes, I disagree again.  Of course foo2-bin and
foo3-bin will conflict and people will have to decide which one they
want at runtime.  Ultimately (once the long-term goal is achieved)
this won't affect your ability to switch back and forth between foo2
and foo3 (the header packages) whenever you need to.

  -- Dave


_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to