Re: Debian concordance
On 6/16/05, Daniel Stone <email@example.com> wrote:
> On Thu, Jun 16, 2005 at 12:54:08PM -0500, Ian Murdock wrote:
> > Daniel Stone wrote:
> > > libc6 added interfaces between 2.3.2 and 2.3.5 and made several other
> > > major changes, so all packages built with .5 depend on .5 or above,
> > > in case you use one of the new interfaces.
> > >
> > > A binary built with 2.3.2 can run with .5, but a binary built with .5
> > > can't necessarily run with .2.
> > Then why not build your packages against 2.3.2? That would ensure
> > maximum compatibility with Debian proper (which to most of the
> > world is sarge, *not* sid, so don't answer that you're almost the
> > same as sid).
> Hoary (like sarge) is built against 2.3.2.
> Breezy (like current sid) is built against 2.3.5.
Unfortunately, it's worse than this. A last-minute ABI change in
sarge (backporting some glibc 2.3.4 symbols to 2.3.2) has the effect
that any package whose autogenerated shlibdeps includes libc6, when
built on sarge, isn't installable on hoary. Any package that doesn't
use the affected APIs can be hacked to work around this (by lowering
the versioned dependency on libc6), but it's quite an inconvenience.
In general, it's not trivial to set up a build environment that
reliably produces binary packages that are installable on both sarge
and hoary. (I happen to have such an environment at work, based on a
part-careful-part-lucky snapshot of sid, but it's not something I
would care to support for more than a few packages.) It would be
awfully nice if Debian and Ubuntu could coordinate on a 90% solution;
I don't necessarily expect to be able easily to build python packages
that will run on both (given Ubuntu's early move to 2.4) but how about
basic C, C++, and perl ABI compatibility?
(Yes, I know this is what the LSB is for, but Debian and Ubuntu are so
closely related that the 90% solution probably isn't that hard. An
apt repository containing a few packages with
lowest-common-denominator ABIs, plus a debootstrap script for use with
pbuilder, would probably do it.)