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

Reply via email to