Package: mmdebstrap Version: 1.4.0-1 Severity: normal Hi. I'm seeing a failure that I understand very well, but yet don't know how to debug or fix. Any suggestions would be appreciated.
I'm making an Ubuntu/focal image that has a bunch of stuff installed, and can serve as a base for development. This runs on arm64. There're a number of ugly external APT repos that have semi-broken packages, but it should all still work. I define the stuff I want to install into the image with a meta-package. tst-libopencv.equivs: Source: tst-libopencv Section: misc Priority: optional Standards-Version: 3.9.2 Package: tst-libopencv Version: 1 Maintainer: Dima Kogan <dko...@debian.org> Depends: ros-noetic-cv-bridge, libopencv-dev (<< 4.5) Architecture: arm64 Description: Test And I build the meta-package: equivs-build -aarm64 tst-libopencv.equivs And I can use mmdebstrap to create a base image with this package installed: mmdebstrap \ --verbose \ --architectures=arm64 \ --hook-dir=/usr/share/mmdebstrap/hooks/file-mirror-automount \ --include ./tst-libopencv_1_arm64.deb \ focal \ tst.tar.gz \ "deb [trusted=yes] http://ports.ubuntu.com/ubuntu-ports/ focal main restricted universe multiverse" \ "deb [trusted=yes] http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted universe multiverse" \ "deb [trusted=yes] http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted universe multiverse" \ "deb [trusted=yes] http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse" \ "deb [trusted=yes] http://packages.ros.org/ros/ubuntu focal main" This works great. ros-noetic-cv-bridge is an external-apt-repo package. It Depends: libopencv-dev. Ubuntu/focal ships 4.2, so the requirement libopencv-dev (<< 4.5) in the meta-package is satisfied. OK. But let's say I want to add another, also-heinous external repo into the mix, and I do this: mmdebstrap \ --verbose \ --architectures=arm64 \ --hook-dir=/usr/share/mmdebstrap/hooks/file-mirror-automount \ --include ./tst-libopencv_1_arm64.deb \ focal \ tst.tar.gz \ "deb [trusted=yes] http://ports.ubuntu.com/ubuntu-ports/ focal main restricted universe multiverse" \ "deb [trusted=yes] http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted universe multiverse" \ "deb [trusted=yes] http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted universe multiverse" \ "deb [trusted=yes] http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted universe multiverse" \ "deb [trusted=yes] https://repo.download.nvidia.com/jetson/common r35.4 main" \ "deb [trusted=yes] https://repo.download.nvidia.com/jetson/t234 r35.4 main" \ "deb [trusted=yes] http://packages.ros.org/ros/ubuntu focal main" This is the same command, but I also make some nvidia packages available. THAT repo ships its own copy of libopencv-dev: version 4.5.xxxxx. When building the image I explicitly do NOT want it to pick up that version, but to use the normal Ubuntu/focal ones: that restriction in the meta-package should do that for me. There's no reason this shouldn't work, and I can easily create this situation with some apt commands after I chroot into the image. But mmdebstrap cannot create this image: the above command fails: The following packages have unmet dependencies: tst-libopencv : Depends: libopencv-dev (< 4.5) but 4.5.4-8-g3e4c170df4 is to be installed E: Unable to correct problems, you have held broken packages. E: setup failed: E: apt-get -o Dir::Bin::dpkg=env -o DPkg::Options::=--unset=TMPDIR -o DPkg::Options::=dpkg -o DPkg::Chroot-Directory=/tmp/mmdebstrap.rIZdCWvgpA --yes install -oAPT::Status-Fd=<$fd> -oDpkg::Use-Pty=false /tmp/tst-libopencv_1_arm64.deb ?narrow(?or(?archive(^focal$),?codename(^focal$)),?architecture(arm64),?and(?or(?priority(required),?priority(important)),?not(?essential))) failed Suggestions? Thanks. -- System Information: Debian Release: trixie/sid APT prefers unstable APT policy: (800, 'unstable'), (500, 'unstable-debug'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: armhf, armel Kernel: Linux 6.4.0-3-amd64 (SMP w/4 CPU threads; PREEMPT) Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages mmdebstrap depends on: ii apt 2.7.3 ii perl 5.36.0-8 ii python3 3.11.4-5+b1 Versions of packages mmdebstrap recommends: pn arch-test <none> pn fakechroot <none> ii fakeroot 1.32.1-1 ii gpg 2.2.40-1.1 ii libdistro-info-perl 1.5 ii libdpkg-perl 1.21.22 ii mount 2.39.2-1 ii uidmap 1:4.13+dfsg1-1+b1 Versions of packages mmdebstrap suggests: pn apt-transport-tor <none> ii apt-utils 2.7.3 ii binfmt-support 2.2.2-2 ii ca-certificates 20230311 ii debootstrap 1.0.131 ii distro-info-data 0.58 ii dpkg-dev 1.21.22 pn genext2fs <none> ii perl-doc 5.36.0-8 pn qemu-user <none> ii qemu-user-static 1:8.0.4+dfsg-3+b1 pn squashfs-tools-ng <none> ii systemd 254.1-3 -- no debconf information