On Tue, Apr 06, 2010 at 10:35:58PM +0300, Yavor Doganov wrote:
> At Thu, 25 Mar 2010 23:07:11 +0100,
> Bill Allombert wrote:
> > On Mon, Mar 22, 2010 at 03:06:00PM +0200, Yavor Doganov wrote:
> > > libEOAccess (from libgnustep-dl2-0) needs at least one adaptor to
> > > be present/installed -- it might be either one from the
> > > gnustep-dl2 package (-postgresql or -sqlite), or it might be a
> > > proprietary one which I anticipate will never be packaged for
> > > Debian.  Anything using the library will fail miserably with
> > > SIGABRT if no adaptor is found -- the code dynamically discovers
> > > the available adaptors by searching the standard GNUstep Bundles
> > > path.
> > 
> > Well, assuming the adaptors cannot be used outside of
> > libgnustep-dl2-0,
> 
> That's certainly so.
> 
> > then they do not really need to depend on libgnustep-dl2-0, so their
> > shlibs dependency can be trimmed.
> 
> Yes, this is possible right now, but...
> 
> > However if the interface of libgnustep-dl2-0 change then there must
> > be a mechanism that prevent libgnustep-dl2-0 to load an adaptor for
> > the wrong interface.
> 
> The interface of all EO* libraries shipped in libgnustep-dl2-0 is
> likely to change at some point in the future (as is for all shared
> libraries in the distro).  In fact it changed several times in the
> past, but because no package in Debian uses these libraries, these
> changes remained unnoticed (perhaps even by upstream, as the SONAMEs
> didn't change).
> 
> I think that *provided* the adaptors are built from the same source
> package, it is OK to trim their dependency on libgnustep-dl2-0, as it

Being from the same source package does not make any difference for
binary packages when upgrade are concerned.

> is guaranteed that they will migrate together to testing and a prudent
> user (except those manually installing .debs) will be guaranteed to
> have compatible adapror + libEOAccess. 

This is not OK, because partial upgrades need to be supported and I am not
sure if the current situation (before trimming) is safe with regard to partial 
upgrades:
The only versionned dependency is 
gnustep-dl2-sqlite-adaptor (0.12.0-1) Depends: libgnustep-dl2-0 (>= 0.12.0)
So someone can upgrade libgnustep-dl2-0 to 0.13.0 and keep 
gnustep-dl2-sqlite-adaptor
to 0.12.0-1. Does that work ?

Of course trimming the dependency will make things worse in that regard.

> (As an additional safety, we
> can let the runtime library package depend on the exact
> ${binary:Version} of the ORed adaptor package.)  Installing an adaptor
> will not pull libgnustep-dl2-0, but that is a useless activity anyway
> if one does not use DBModeler.app (from gnustep-dl2) or some custom
> GDL2-based thingy.

Be careful to avoid this:
libgnustep-dl2-0: Depends: gnustep-dl2-postresql-adaptor (=0.12.0-1) | 
gnustep-dl2-sqlite-adaptor (=0.12.0-1)
because this allows a system to carry 
gnustep-dl2-postresql-adaptor 0.12.0-1 and gnustep-dl2-sqlite-adaptor 0.11.0-1
and libgnustep-dl2-0 will likely attempt to load gnustep-dl2-sqlite-adaptor 
0.11.0-1.

I would suggest to implement some simple mechanisms to define the interfaces and
have libgnustep-dl2-0 only look for adaptors for the correct interfaces.

Cheers,
Bill.



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to