Package: mmdebstrap
Version: 0.1.0-2

Hello,

many thanks for creating mmdebstrap!  I'm using it for creating
chroots for Debian-Ports architectures, where we need to pull the
packages from two suites: unstable and unreleased.  While using
mmdebstrap, I've stumbled over two issues.  Everything works fine
when creating a sources.list, feeding it to mmdebstrap on stdin
and having mmdebstrap automatically generate a tarball, i.e. 
with something like

  echo -e "deb http://deb.debian.org/debian-ports/ sid main\ndeb 
http://deb.debian.org/debian-ports/ unreleased main" | mmdebstrap 
--architectures=riscv64 > /tmp/rv64-chroot.tar

The process fails when one tries to pass the mirrors on the
commandline, though.  Due to the fact that there is more than one
suite to use, the mirrors need to be passed in sources.list
style, i.e. as "deb http://<mirror>/debian-ports <suite> main".

Running mmdebstrap with

  mmdebstrap --architectures=riscv64 sid /tmp/rv64-chroot "deb 
http://deb.debian.org/debian-ports/ sid main" "deb 
http://deb.debian.org/debian-ports/ unreleased main"

results in

  E: Malformed entry 1 in list file /tmp/rv64-chroot/etc/apt/sources.list (URI 
parse)
  E: The list of sources could not be read.
  apt-get update failed at /usr/bin/mmdebstrap line 548.
  # cat /tmp/rv64-chroot/etc/apt/sources.list
  deb deb http://deb.debian.org/debian-ports/ sid main sid main
  deb deb http://deb.debian.org/debian-ports/ unreleased main sid main

The manpage states:

  If a MIRROR option starts with "deb " or "deb-src " then it is
  used as a one-line-style format entry for apt's sources.list
  inside the chroot.  If a MIRROR option contains a "://" then it
  is interpreted as a mirror URI and the apt line inside the chroot
  is assembled as "deb [arch=A] B C D" where A is the host's native
  architecture, B is the MIRROR, C is the given SUITE and D is the
  components given via --components (defaults to "main").

It looks like the second part is applied unconditionally on
all mirror parameters that contain a "://", although that should
not happen if the mirror parameter starts with a "deb " or
"deb-src " and thereby already constitutes a complete sources.list
entry.

Another thing that I have stumbled upon is that providing a
sources.list on stdin only works when no target directory is
provided on the commandline, i.e. when automatically creating a
tarball. While

  echo -e "deb http://deb.debian.org/debian-ports/ sid main\ndeb 
http://deb.debian.org/debian-ports/ unreleased main" | mmdebstrap 
--architectures=riscv64 > /tmp/rv64-chroot.tar

works, the following doesn't:

  echo -e "deb http://deb.debian.org/debian-ports/ sid main\ndeb 
http://deb.debian.org/debian-ports/ unreleased main" | mmdebstrap 
--architectures=riscv64 sid /tmp/rv64-chroot

It results in

  I: riscv64 cannot be executed, falling back to qemu-user
  I: automatically chosen mode: root
  I: running apt-get update...
  done
  apt-get update didn't download anything at /usr/bin/mmdebstrap line 721.

Regards,
Karsten
-- 
Gem. Par. 28 Abs. 4 Bundesdatenschutzgesetz widerspreche ich der Nutzung
sowie der Weitergabe meiner personenbezogenen Daten für Zwecke der
Werbung sowie der Markt- oder Meinungsforschung.

Reply via email to