Hi,

Quoting Benjamin Drung (2022-01-05 18:02:13)
> mmdebstrap from Debian stable fails to run with --dry-run. Example:
> 
> ```
> $ mmdebstrap -v --dry-run --variant=minbase unstable root.tar
> [...]
> Inst sysvinit-utils (3.01-1 Debian:unstable [amd64])
> Conf sysvinit-utils (3.01-1 Debian:unstable [amd64])
> I: skip extracting packages because of --dry-run
> I: no essential packages -- skipping...
> E: cannot read /var/cache/apt/archives/
> W: listening on child socket failed: 
> I: removing tempdir /tmp/mmdebstrap.e7VYvXTJ31...
> ```
> 
> Running the same command on Debian unstable with mmdebstrap 0.8.2-1
> works, but backporting mmdebstrap >= 0.8 to Debian bullseye fails,
> because mmdebstrap >= 0.8 requires a APT version that is newer than the
> one shipped in bullseye.

yes, backporting is not an option. Luckily, the fix is trivial:

--- /usr/bin/mmdebstrap 2022-01-05 19:47:50.477129738 +0000
+++ /usr/bin/mmdebstrap.fixed   2022-01-05 19:47:43.277074092 +0000
@@ -2779,7 +2779,7 @@
                 # /var/cache/apt/archives/ might not be empty either because
                 # the user used hooks to populate it or because skip options
                 # like essential/unlink or check/empty were used.
-                {
+                if (-e "$options->{root}/var/cache/apt/archives/") {
                     my $apt_archives = "/var/cache/apt/archives/";
                     opendir my $dh, "$options->{root}/$apt_archives"
                       or error "cannot read $apt_archives";

I'll ask the release team to also accept that fix in addition to what I already
proposed in #1003188.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to