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 [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]