Re: Experimental ddeb support in debhelper and lintian (Was: Re: -dbg packages; are they actually useful?)
On 2015-04-04 12:58, Esokrates wrote:
> On Saturday, April 04, 2015 10:54:09 AM Niels Thykier wrote:
>> - Trying to get the reproducible team to try it out to see if it
>> regresses anything (incl. reproducible builds)
> I guess the ddeb's are meant to be reproducible too?
Yes. The .ddebs are currently being built by the reproducibility team
on jenkins.debian.net and they are indeed reproducible themselves (after
we extended a patch the "reproducible" debhelper patch series to account
for them IRT mtimes).
>> - It *does* cause dpkg-genchanges to emit warnings about
>> uninitialized values (I think 3 per ddeb). Related to #781074
>> - DOES *NOT* PRODUCE DDEBS FOR PACKAGES COVERED BY AN EXISTING -dbg!
> Sounds like you plan to keep -dbg packages? Or just for migration? Ubuntu kept
> -dbg packages and tries to maintain -dbgsym along it (but they only cover
> packages that no -dbg package exists for, otherwise it will be an empty
> package, no idea if they situation is still like that there ...), however the
> situation was kind of messy, I often got file conflicts. Things were not
> consistent at all last time I needed debug packages for a lot of stuff there.
> Simply put: If you installed the debug package for every installed package,
> you get the hell of a mess, this was almost undoable. (That test maybe does
> not make a lot of sense, but it did show that things were not optimal.)
I have no particular interest in keeping existing manual -dbg packages.
However, there seemed to be little point in creating a .ddeb which is a
perfect clone of an existing -dbg with neither of them being co-installable.
Please also note that there are some existing manual debug packages that
we *cannot* migrate to ddeb currently (at least not as-is). E.g.
perl-debug provides debug symbols but also a "debugperl" binary etc.
So the prototype patch plays it safe and only generate .ddebs if the
debug symbols would otherwise have been discarded. This also means that
if the -dbg does not cover all binaries, debhelper will generate .ddebs
for the "uncovered" binaries (where applicable).
>> - DOES *NOT* ADD BREAKS/REPLACES FOR MIGRATING FROM -dbg TO .ddeb!
For reference, this limitation is due to time constraints - I intend to
have a solution for this problem (but it will probably have to be manual
- maybe an argument for dh_gencontrol).
> I know predictions are hard, but is there a plan to get things done for the
> next release (Stretch)?
At this point, there is no plan, sorry. However, we got a functional
prototype (for part of the problem) and some people poking a bit at it
from a "design view". I received conflicting remarks:
A) Use ".ddeb" (i.e. with an extra "d").
B) Use ".deb" (i.e. the regular extension) with a new "section".
Both have their own advantages and disadvantages. In particular:
A) means that almost every existing tool will handle the debug debs
like a regular deb (which it is) and will generally work perfectly
out of the box.
- There are a couple of exceptions, but we are limited to something
like lintian and dpkg-genchanges.
- There will be tools that might want to handle them differently.
Programs like dak and reprepro might want to (support) put(ting)
them in a different part of their repositories.
- This is *currently not working* since dpkg-genchanges errors out
on the auto-generated .deb files.
B) means that .ddebs can be special cased on filenames rather than on
section (like udebs). Furthermore, there might be a lot of things
that do not need to support .ddebs at all.
- Downside is that adding support is a manual extra step for many
tools, that (besides the filename) would otherwise be able to
handle .ddebs immediately.
- On the plus side: dpkg-genchanges in Jessie can support this
solution immediately with a minor warning.
>From my point of view, I am not strongly attached to one solution over
* I am slightly preferring A), but I am ready to implement either
solution in the tools, I maintain.
* The difference for debhelper is a single "d" and a section name.
* The change for lintian is larger, but B) is the "heavy" solution
and I already got a "mostly working" patch for that.
> Thanks for the very comprehensive status update and your awesome work!
You are welcome. :)