Bug#768062: Does not take already-selected alternate dependencies into account
On Tue, 04 Nov 2014 07:58:59 -0800 Josh Triplett <email@example.com> wrote:
> Package: debootstrap
> Version: 1.0.64
> Severity: normal
> Please see the analysis in bug 746578.
> The essential package "init" has:
> Depends: systemd-sysv | sysvinit-core | upstart
> The test in bug 746578 involved a modified libpam-systemd that had:
> Depends: systemd-shim (>= 8-2) | systemd-sysv
> The test invoked debootstrap like this:
> debootstrap --print-debs --no-check-gpg --include=libpam-systemd jessie $DIR $MIRROR
> Given that set of constraints, debootstrap *should* install init,
> systemd-sysv, libpam-systemd, and *not* systemd-shim, since systemd-sysv
> already satisfies libpam-systemd's dependency.
> In addition to figuring that out automatically, debootstrap should at
> least have produced that result if given --exclude=systemd-shim, since
> no dependency requires debootstrap to add that back in.
Doing a full dependency resolver in debootstrap may be too difficut,
but excluding packages after resolution should be possible.
Maybe this is enough?
diff --git a/debootstrap b/debootstrap
index 084a541..a0a6000 100755
@@ -584,8 +584,6 @@ if am_doing_phase finddebs; then
- base=$(without "$base $ADDITIONAL" "$EXCLUDE")
if [ "$RESOLVE_DEPS" = true ]; then
requiredX=$(echo $(echo $required | tr ' ' '\n' | sort | uniq))
baseX=$(echo $(echo $base | tr ' ' '\n' | sort | uniq))
@@ -613,6 +611,8 @@ if am_doing_phase finddebs; then
+ base=$(without "$base $ADDITIONAL" "$EXCLUDE")
This currently prevents debootstrapping a system with dracut and a
linux image installed, as dracut conflicts with initramfs-tools (which
in turn is the first alternative on the linux image).