FTBFS: apt can't resolve `dh-systemd | debhelper (>= 13.3)`
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-advantage-tools (Ubuntu) |
Fix Released
|
Low
|
Grant Orndorff | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Groovy |
Fix Released
|
Undecided
|
Unassigned | ||
Hirsute |
Fix Released
|
Undecided
|
Unassigned | ||
Impish |
Fix Released
|
Low
|
Grant Orndorff |
Bug Description
[Impact]
For sbuild users attempting to build this package locally results in pkg build failures due to inability of sbuild to handle the build deps alternatives when running:
sbuild -s --source-
[Test Plan]
cat > sru-sbuild-test.sh <<EOF
#!/bin/bash
[ -d ./ubuntu-
cd ubuntu-
for release in bionic focal groovy hirsute; do
case "\${release}" in
hirsute)
resolve_
xenial|
resolve_
esac
git checkout pkg/ubuntu/
sbuild -s --source-
done
EOF
bash sru-build-test.sh # expect no sbuild failures
Also uploaded binary equavalent 27.0.2 bits to ppa:ua-
[Where problems could occur]
* Due to using the same d/control on all Ubuntu releases, simpler sbuild commandline will require use of `--resolve-
* This should be low risk as PPAs ppa:ua-
* [racb] Mutating the Build-Depends line could cause alternatives to be resolved differently on the buildds, resulting in toolchain changes that might result in different sets of build failures or different build output causing functional issues.
[Other Info]
...
[Original Description]
Hello,
[Problem]
=========
It looks like apt isn't able to resolve `dh-systemd | debhelper (>= 13.3)`. Whilst the line in logical and makes sense, that is, use dh-systemd for Groovy and older releases (since it's not present in Hirsute and thereafter) and use debhelper (...) for newer releases, et al.
However, apt is failing to resolve that for some reasons and it's thus results in FTBFS.
[Logs]
======
Install main build dependencies (apt-based resolver)
-------
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
sbuild-
E: Unable to correct problems, you have held broken packages.
apt-get failed.
E: Package installation failed
Not removing build depends: cloned chroot in use
[Reproducer]
============
$ git ubuntu clone ubuntu-
$ cd ubuntu-
$ sbuild -s --source-
and that should yield a failed build.
Related branches
- Bryce Harrington (community): Approve
- Christian Ehrhardt (community): Needs Fixing
- Canonical Server: Pending requested
-
Diff: 349 lines (+106/-76)10 files modified.gitignore (+5/-0)
Jenkinsfile (+4/-4)
apt-hook/Makefile (+21/-3)
apt-hook/json-hook-src/go.mod (+1/-1)
apt-hook/json-hook-src/json-hook.go (+23/-33)
apt-hook/json-hook-src/json-hook_test.go (+28/-28)
debian/changelog (+15/-0)
debian/control (+2/-2)
debian/rules (+1/-0)
uaclient/tests/test_util.py (+6/-5)
- Bryce Harrington (community): Approve
-
Diff: 398 lines (+200/-5) (has conflicts)10 files modified.gitignore (+8/-0)
Jenkinsfile (+16/-0)
apt-hook/Makefile (+30/-0)
apt-hook/json-hook-src/go.mod (+4/-0)
apt-hook/json-hook-src/json-hook.go (+42/-0)
apt-hook/json-hook-src/json-hook_test.go (+34/-0)
debian/changelog (+20/-0)
debian/control (+7/-0)
debian/rules (+1/-0)
uaclient/tests/test_util.py (+38/-5)
- Bryce Harrington (community): Approve
- Grant Orndorff: Pending requested
- Lucas Albuquerque Medeiros de Moura: Pending requested
-
Diff: 393 lines (+202/-5) (has conflicts)10 files modified.gitignore (+8/-0)
Jenkinsfile (+16/-0)
apt-hook/Makefile (+30/-0)
apt-hook/json-hook-src/go.mod (+4/-0)
apt-hook/json-hook-src/json-hook.go (+42/-0)
apt-hook/json-hook-src/json-hook_test.go (+34/-0)
debian/changelog (+22/-0)
debian/control (+7/-0)
debian/rules (+1/-0)
uaclient/tests/test_util.py (+38/-5)
- Bryce Harrington (community): Approve
- Grant Orndorff: Pending requested
- Lucas Albuquerque Medeiros de Moura: Pending requested
-
Diff: 356 lines (+179/-0) (has conflicts)10 files modified.gitignore (+8/-0)
Jenkinsfile (+16/-0)
apt-hook/Makefile (+33/-0)
apt-hook/json-hook-src/go.mod (+4/-0)
apt-hook/json-hook-src/json-hook.go (+42/-0)
apt-hook/json-hook-src/json-hook_test.go (+34/-0)
debian/changelog (+22/-0)
debian/control (+7/-0)
debian/rules (+4/-0)
uaclient/tests/test_util.py (+9/-0)
- Bryce Harrington (community): Approve
- Grant Orndorff: Pending requested
- Lucas Albuquerque Medeiros de Moura: Pending requested
-
Diff: 398 lines (+200/-5) (has conflicts)10 files modified.gitignore (+8/-0)
Jenkinsfile (+16/-0)
apt-hook/Makefile (+30/-0)
apt-hook/json-hook-src/go.mod (+4/-0)
apt-hook/json-hook-src/json-hook.go (+42/-0)
apt-hook/json-hook-src/json-hook_test.go (+34/-0)
debian/changelog (+20/-0)
debian/control (+7/-0)
debian/rules (+1/-0)
uaclient/tests/test_util.py (+38/-5)
Changed in ubuntu-advantage-tools (Ubuntu): | |
importance: | Undecided → Low |
status: | New → Triaged |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Thanks Utkarsh. TIL that by default the apt resolver ignores the alternative build-dependencies, considering only the first one. The package builds with the apt resolver specifying --resolve- alternatives.