pkg-create-dbgsym creates -dbgsym packages with the source version, not the binary version
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| pkg-create-dbgsym (Ubuntu) |
Critical
|
Unassigned | ||
| Lucid |
Critical
|
Unassigned | ||
| Precise |
Critical
|
Unassigned | ||
| Trusty |
Critical
|
Unassigned | ||
| Utopic |
Critical
|
Unassigned | ||
| Vivid |
Critical
|
Unassigned | ||
| Wily |
Critical
|
Martin Pitt |
Bug Description
[SRU Justification]
seen in
https:/
https:/
The gcc-5 (and gcc-4-x) source packages build some binary packages where the binary version doesn't match the source version, but the -dbgsym package is still built using the source version of the package.
These packages now all fail to upload, in every release ...
[Test case]
1. Turn on the ddeb flag in launchpad
2. Upload gcc to the ubuntu-toolchain-r ppa
3. Verify that the package does not fail to upload
[Regression Potential]
This can't break user systems, just building of future updates. Known-weird packages like gcc, binutils, systemd, linux and others have been tested against the new version and build correctly, giving a strong indication that everything is good.
There will probably be other failed to upload cases from enabling native ddebs, but they were always going to happen with or without this fix. In any failure case, we can unbreak the archive or push through an urgent update by building it in a PPA that doesn't have the ddebs flag enabled, or that has a reverted pkg-create-dbgsym.
Changed in pkg-create-dbgsym (Ubuntu Lucid): | |
importance: | Undecided → Critical |
status: | New → Confirmed |
Changed in pkg-create-dbgsym (Ubuntu Precise): | |
importance: | Undecided → Critical |
status: | New → Confirmed |
Changed in pkg-create-dbgsym (Ubuntu Trusty): | |
importance: | Undecided → Critical |
status: | New → Confirmed |
Changed in pkg-create-dbgsym (Ubuntu Utopic): | |
importance: | Undecided → Critical |
status: | New → Confirmed |
Colin Watson (cjwatson) wrote : | #1 |
Changed in pkg-create-dbgsym (Ubuntu Lucid): | |
milestone: | none → lucid-updates |
Changed in pkg-create-dbgsym (Ubuntu Precise): | |
milestone: | none → precise-updates |
Changed in pkg-create-dbgsym (Ubuntu Trusty): | |
milestone: | none → trusty-updates |
Changed in pkg-create-dbgsym (Ubuntu Utopic): | |
milestone: | none → utopic-updates |
Matthias Klose (doko) wrote : | #2 |
<wgrant> ddebs flag disabled everywhere, infinity rebuilding the only bad builds targeted to the primary archive (a security update for four releases)
Martin Pitt (pitti) wrote : | #3 |
I have this working in the packaging branch.
There already was a disabled test case "dhtest.
http://
I also added an additional test for a package that calls pkg_create_dbgsym directly and does not use debhelper, like e. g. binutils does:
http://
I rearchitectured the ddeb building, so that with debhelper dh_strip now only prepares the debian/
# adjust ddeb version from deb, for dpkg-gencontrol's -v option
debversion=
sed -i "s/^Version: .*\$/Version: $debversion/; /^Depends:/ s/(= .*)/(= $debversion)/" $ddebpkgdir/
which addresses this bug, i. e. adjusts the ddeb versions for dpkg-gencontrol -v.
The existing test cases still all succeed, and the test suite runs during package build, so if the SRUed package builds we can already be fairly confident that there is no regression. Nevertheless, verifying that gcc now builds in a PPA with ddebs enabled should be done to verify the fix, and this test rebuild should also include at least systemd (many binaries with associated ddebs, debhelper) and binutils (manual pkg_create_dbgsym, no debhelper) to ensure no regressions.
But for the record, and "SRU regression potential": Nevertheless there is always the potential to break a package which previously built, of course. Or that we suddenly stop producing ddebs for a package with a weird debian/rules (e. g. using dh_strip but not dh_gencontrol).
Martin Pitt (pitti) wrote : | #4 |
The new mangler is in https:/
systemd built fine, and e. g. https:/
binutils built fine (https:/
gcc-4.9 is still building.
Martin Pitt (pitti) wrote : | #5 |
gcc-4.9 finished building. The ddebs now seem to have correct versions:
Package: fixincludes-dbgsym
Source: gcc-4.9
Version: 1:4.9.2-10ubuntu13
(i. e. include the epoch) Nevertheless it still failed to upload with https:/
INFO Upload was rejected:
INFO Unable to find source publication gcc-4.9/
What does that mean?
Martin Pitt (pitti) wrote : | #6 |
Ah, it needs to look like that:
Source: gcc-4.9 (4.9.2-10ubuntu13)
This needs fixing in pkg-create-dbgsym.
Martin Pitt (pitti) wrote : | #7 |
Source: versioning fixed in http://
I also uploaded gcc-4.9 with disabling the tests (uncommented "with_check := disabled by hand" in debian/rules.defs), so that this builds a lot faster.
I uploaded the same version to utopic and trusty; utopic and vivid have the same version, and trusty is missing this one:
http://
IMHO this is a fix which we should have in trusty as well, for correct Architecture: fields.
Precise has a much older version, I'll backport the fixes there instead. As for lucid, as that will be EOL in about two days I figure it doesn't make much sense any more to backport there?
Changed in pkg-create-dbgsym (Ubuntu Vivid): | |
status: | Confirmed → In Progress |
Changed in pkg-create-dbgsym (Ubuntu Utopic): | |
status: | Confirmed → In Progress |
Changed in pkg-create-dbgsym (Ubuntu Trusty): | |
status: | Confirmed → In Progress |
Changed in pkg-create-dbgsym (Ubuntu Lucid): | |
status: | Confirmed → Won't Fix |
milestone: | lucid-updates → none |
Martin Pitt (pitti) wrote : | #8 |
I backported the fixes and tests for the Source:/Version: as well as Colin's Architecture: handling to precise. It is in the PPA now.
Changed in pkg-create-dbgsym (Ubuntu Precise): | |
status: | Confirmed → In Progress |
Martin Pitt (pitti) wrote : | #9 |
gcc built on all releases now, and spot-checking ddebs looks fine. E. g.
has
Package: fixincludes-dbgsym
Source: gcc-4.9 (4.9.1-
Version: 1:4.9.1-
Depends: libgcc1-dbg (= 1:4.9.1-
and uploading went alright. The package is supposed to be empty as the debug symbols are already in libgcc1-dbg, which it depends on.
The precise build https:/
Package: fixincludes-dbgsym
Source: gcc-4.6 (4.6.3-
Version: 1:4.6.3-
Depends: fixincludes (= 1:4.6.3-
which also is correct (epoch'ed, correct Source: version, upload went fine), and has debug symbols as in precise gcc-4.6 didn't yet build -dbg packages on its own.
binutils and systemd also built everywhere, e. g. systemd on trusty has an epoch'ed gudev lib: https:/
Package: libgudev-
Source: systemd (204-5ubuntu20)
Version: 1:204-5ubuntu20
Depends: libgudev-1.0-0 (= 1:204-5ubuntu20)
and contains debug symbols.
I am now reasonably confident with these fixes, and uploaded them to {precise,
description: | updated |
Hello Matthias, or anyone else affected,
Accepted pkg-create-dbgsym into trusty-proposed. The package will build now and be available at https:/
Please help us by testing this new package. See https:/
If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-
Further information regarding the verification process can be found at https:/
Changed in pkg-create-dbgsym (Ubuntu Trusty): | |
status: | In Progress → Fix Committed |
tags: | added: verification-needed |
Changed in pkg-create-dbgsym (Ubuntu Precise): | |
status: | In Progress → Fix Committed |
Steve Langasek (vorlon) wrote : | #11 |
Hello Matthias, or anyone else affected,
Accepted pkg-create-dbgsym into precise-proposed. The package will build now and be available at https:/
Please help us by testing this new package. See https:/
If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-
Further information regarding the verification process can be found at https:/
description: | updated |
Steve Langasek (vorlon) wrote : | #12 |
Hello Matthias, or anyone else affected,
Accepted pkg-create-dbgsym into utopic-proposed. The package will build now and be available at https:/
Please help us by testing this new package. See https:/
If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-
Further information regarding the verification process can be found at https:/
Changed in pkg-create-dbgsym (Ubuntu Utopic): | |
status: | In Progress → Fix Committed |
Changed in pkg-create-dbgsym (Ubuntu Vivid): | |
status: | In Progress → Fix Committed |
Steve Langasek (vorlon) wrote : | #13 |
Hello Matthias, or anyone else affected,
Accepted pkg-create-dbgsym into vivid-proposed. The package will build now and be available at https:/
Please help us by testing this new package. See https:/
If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-
Further information regarding the verification process can be found at https:/
Martin Pitt (pitti) wrote : | #14 |
I reconfigured https:/
William Grant (wgrant) wrote : | #15 |
I've built systemd, gcc and binutils for all architectures in https:/
tags: |
added: verification-done removed: verification-needed |
Launchpad Janitor (janitor) wrote : | #16 |
This bug was fixed in the package pkg-create-dbgsym - 0.50.1
---------------
pkg-create-dbgsym (0.50.1) precise-proposed; urgency=medium
[ Colin Watson ]
* Check each element of Architecture separately using dpkg-architecture,
rather than inaccurately checking the whole field for "any" or
"linux-any".
[ Martin Pitt ]
* testsuite: Enable dhtest.
same version as the corresponding deb. Reproduces LP #1448247.
* testsuite: Add "manualtest" which builds a package without debhelper or
any other abstractions, and calls pkg_create_dbgsym directly.
* pkg_create_dbgsym: Add -B option for only building the ddeb package dir in
debian/ but not building the .ddeb package yet. This keeps the default
behaviour for packages which call this manually, but allows us to modify
the ddeb package directory later during the package build process.
* Handle binary packages with different version than the source:
- Add our own dh_gencontrol wrapper which adjusts the ddeb's versions
after the original dh_gencontrol determined the final binary version of
the original debs, and then builds the .ddebs.
- dh_strip: Call pkg_create_dbgsym with -B, so that we move the actual
.ddeb generation into dh_gencontrol.
- preinst, postrm: Divert dh_gencontrol.
- LP: #1448247
-- Martin Pitt <email address hidden> Tue, 28 Apr 2015 16:08:28 +0200
Changed in pkg-create-dbgsym (Ubuntu Precise): | |
status: | Fix Committed → Fix Released |
The verification of the Stable Release Update for pkg-create-dbgsym has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.
Launchpad Janitor (janitor) wrote : | #18 |
This bug was fixed in the package pkg-create-dbgsym - 0.66~trusty
---------------
pkg-create-dbgsym (0.66~trusty) trusty-proposed; urgency=medium
* Backport to trusty.
pkg-create-dbgsym (0.66) vivid; urgency=medium
* testsuite: Enable dhtest.
same version as the corresponding deb. Reproduces LP #1448247.
* testsuite: Add "manualtest" which builds a package without debhelper or
any other abstractions, and calls pkg_create_dbgsym directly.
* pkg_create_dbgsym: Add -B option for only building the ddeb package dir in
debian/ but not building the .ddeb package yet. This keeps the default
behaviour for packages which call this manually, but allows us to modify
the ddeb package directory later during the package build process.
* Handle binary packages with different version than the source:
- Add our own dh_gencontrol wrapper which adjusts the ddeb's versions
after the original dh_gencontrol determined the final binary version of
the original debs, and then builds the .ddebs.
- dh_strip: Call pkg_create_dbgsym with -B, so that we move the actual
.ddeb generation into dh_gencontrol.
- preinst, postrm: Divert dh_gencontrol.
- LP: #1448247
* debian/control: Drop obsolete (pre-lucid) Build-Conflicts.
* Bump Standards-Version to 3.9.6 (no changes required).
pkg-create-dbgsym (0.65) utopic; urgency=medium
* Check each element of Architecture separately using dpkg-architecture,
rather than inaccurately checking the whole field for "any" or
"linux-any".
-- Martin Pitt <email address hidden> Tue, 28 Apr 2015 16:06:45 +0200
Changed in pkg-create-dbgsym (Ubuntu Trusty): | |
status: | Fix Committed → Fix Released |
Launchpad Janitor (janitor) wrote : | #19 |
This bug was fixed in the package pkg-create-dbgsym - 0.66~utopic
---------------
pkg-create-dbgsym (0.66~utopic) utopic-proposed; urgency=medium
* Backport to utopic.
pkg-create-dbgsym (0.66) vivid; urgency=medium
* testsuite: Enable dhtest.
same version as the corresponding deb. Reproduces LP #1448247.
* testsuite: Add "manualtest" which builds a package without debhelper or
any other abstractions, and calls pkg_create_dbgsym directly.
* pkg_create_dbgsym: Add -B option for only building the ddeb package dir in
debian/ but not building the .ddeb package yet. This keeps the default
behaviour for packages which call this manually, but allows us to modify
the ddeb package directory later during the package build process.
* Handle binary packages with different version than the source:
- Add our own dh_gencontrol wrapper which adjusts the ddeb's versions
after the original dh_gencontrol determined the final binary version of
the original debs, and then builds the .ddebs.
- dh_strip: Call pkg_create_dbgsym with -B, so that we move the actual
.ddeb generation into dh_gencontrol.
- preinst, postrm: Divert dh_gencontrol.
- LP: #1448247
* debian/control: Drop obsolete (pre-lucid) Build-Conflicts.
* Bump Standards-Version to 3.9.6 (no changes required).
-- Martin Pitt <email address hidden> Tue, 28 Apr 2015 16:06:45 +0200
Changed in pkg-create-dbgsym (Ubuntu Utopic): | |
status: | Fix Committed → Fix Released |
Launchpad Janitor (janitor) wrote : | #20 |
This bug was fixed in the package pkg-create-dbgsym - 0.66
---------------
pkg-create-dbgsym (0.66) vivid; urgency=medium
* testsuite: Enable dhtest.
same version as the corresponding deb. Reproduces LP #1448247.
* testsuite: Add "manualtest" which builds a package without debhelper or
any other abstractions, and calls pkg_create_dbgsym directly.
* pkg_create_dbgsym: Add -B option for only building the ddeb package dir in
debian/ but not building the .ddeb package yet. This keeps the default
behaviour for packages which call this manually, but allows us to modify
the ddeb package directory later during the package build process.
* Handle binary packages with different version than the source:
- Add our own dh_gencontrol wrapper which adjusts the ddeb's versions
after the original dh_gencontrol determined the final binary version of
the original debs, and then builds the .ddebs.
- dh_strip: Call pkg_create_dbgsym with -B, so that we move the actual
.ddeb generation into dh_gencontrol.
- preinst, postrm: Divert dh_gencontrol.
- LP: #1448247
* debian/control: Drop obsolete (pre-lucid) Build-Conflicts.
* Bump Standards-Version to 3.9.6 (no changes required).
-- Martin Pitt <email address hidden> Tue, 28 Apr 2015 16:05:41 +0200
Changed in pkg-create-dbgsym (Ubuntu Vivid): | |
status: | Fix Committed → Fix Released |
Martin Pitt (pitti) wrote : | #21 |
I copied all of them to *-security as well, for the record.
Launchpad Janitor (janitor) wrote : | #22 |
This bug was fixed in the package pkg-create-dbgsym - 0.67
---------------
pkg-create-dbgsym (0.67) vivid; urgency=medium
* testsuite: Add dhtest.customdbgsym for a package that produces its own
-dbgsym package, like our "linux" source package. Reproduces LP #1450464.
* pkg_create_dbgsym: When called with -B (i. e. from dh_strip), create a
marker for dh_gencontrol, so that the latter does not try to process
custom -dbgsym binaries. (LP: #1450464)
* dh_strip: Don't try to process *-dbgsym binaries.
-- Martin Pitt <email address hidden> Thu, 30 Apr 2015 16:12:05 +0200
Changed in pkg-create-dbgsym (Ubuntu Wily): | |
status: | Fix Committed → Fix Released |
Changed in pkg-create-dbgsym (Ubuntu): | |
milestone: | vivid-updates → none |
18:56 <cjwatson> if I were fixing this pkg-create-dbgsym thing, I believe I would split it into two pieces, and run the second half from dh_gencontrol
18:57 <cjwatson> that way it can have the -v argument handy