Bug#768062: Does not take already-selected alternate dependencies into account
On Tue, 04 Nov 2014 07:58:59 -0800 Josh Triplett <josh@joshtriplett.org> 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
--- a/debootstrap
+++ b/debootstrap
@@ -584,8 +584,6 @@ if am_doing_phase finddebs; then
work_out_debs
- 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
fi
fi
+ base=$(without "$base $ADDITIONAL" "$EXCLUDE")
+
all_debs="$required $base"
fi
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).
Saludos,
Reply to: