Your message dated Mon, 27 Nov 2023 00:11:00 -0800
with message-id <[email protected]>
and subject line Re: Bug#1056556: mmdebstrap: mmdebstrap error resolving 
installed packages
has caused the Debian Bug report #1056556,
regarding mmdebstrap: mmdebstrap error resolving installed packages
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1056556: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1056556
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
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 <[email protected]>

  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

--- End Message ---
--- Begin Message ---
Thanks for the lighning fast response. Wow!


> damn, my "moon robot stuff needs fixing" alarm clock just woke me up
> at 3:39 AM in the morning for yet another mmdebstrap bug. Lets go! ;)

This is Ubuntu with lots of weird repos. We don't send that stuff to the
moon :) The moon OS is made in a very similar way, though.


Thank you very much for the explanation. I guess I've always interacted
with apt (and aptitude) interactively, and thus didn't need to think
about these automatic failures very much.

I'll pin the packages tomorrow, and this should all work nicely.

Thanks. I'm closing the report.

--- End Message ---

Reply via email to