← Back to team overview

launchpad-dev team mailing list archive

Re: ddeb for PPA and derived distributions

 

On 04/11/11 02:43, Francis J. Lacoste wrote:
> Hi,
> 
> Linaro is interested in having an archive available with ddeb for all of
> the packages.
> 
> We don't support ddeb in derived archives, and the way it's implemented
> for PPA doesn't really work for them either, as it requires
> modifications to the packaging of all packages for which they want ddeb.

That's false: I implemented the buildd side the same way as the primary
archive, with pkg-create-dbgsym automatically overriding dh_strip. This
is controlled by a flag on Archive:+admin.

However, there is some added complexity due to the history here. When
pkg-create-dbgsym detects that it's building a primary archive package,
ddebs are build regardless of the archive's configuration. But unless
the flag is set they're not included in the changes file, so they're not
uploaded to Launchpad.

So, PPAs work pretty much the same as primary archives. No changes are
required to the packages if they already get ddebs in the Ubuntu primary
archive.

> They could work-around this by uploading a modified debhelper to a PPA
> that automatically builds the ddeb. But that would mean they'd have to
> make sure that their customized debhelper is always ahead of the one in
> the distro and that they need to upload packages to both the ddeb PPA as
> well as their main one. Plus they want to move to derived distro.
> 
> So the question is how can we support enabling ddeb building
> automatically in PPA and derived distros.

As Julian says, primary archive ddebs aren't completely close.

When I picked the project up 2ish years ago, very little was already
done. But one crucial design decision had been implemented: there was a
separate archive type set up to hold primary archive ddebs. This meant
that binaries within one context, and even one source, were split
between the primary and debug archives, violating axioms that the
domination and deletion and copying and overriding and UI and API and
inheritance and most of the other bits of Soyuz rely on. I fixed some of
these, but many remain broken, and none of the fixes are exactly simple
or clean.

So, around a year ago I gave up on implementing it on top of what I had
inherited. But I didn't have a good way to fulfil the requirement that
ddebs not inflate archive.ubuntu.com's size, and so the project was
abandoned.

Recently I've given it some more thought, and devised what seems like a
simple, quick, and effective rework. We publish the ddebs into the
primary archive itself, but in a separate fake component, like we
already do with debian-installer udebs. All the existing code will work,
as the binaries will live together in a single archive. For derived
distros like Linaro that's probably the end of the story, as they aren't
widely mirrored and probably don't care about the archive bloat.

For Ubuntu it's a bit more complicated. It can't afford to have ddebs on
archive.ubuntu.com, so they have to be split out. Fortunately IS has a
magic mirror script that already does just this sort of thing:
unsupported architectures end up only on ports.ubuntu.com. So we just
need to extend this script to split ddebs out into their own archive,
and we're done.

Apart from the archive size/split issue, I believe I got most of the
ddeb support sorted out, and Julian has recently sorted the remaining
issues that I'd identified for PPAs. It will require a lot of QA, but I
don't think primary archive ddebs are that far off from a code standpoint.

librarian and archive disk space may be another matter, but that's less
of our problem :)

Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups

References