Package: autopkgtest
Version: 5.44
Severity: normal

Hi,

I am trying to use the unshare backend of autopkgtest to test adduser.
The manual page autopkgtes-virt-unshare suggests that this should work
out of the box even if no tarball was created before, by automatically
invoking mmdebstrap.

This does not seem to be the case:

mh@ganchotestff:~/packages/adduser/adduser-3.138$ autopkgtest . -- 
unshareautopkgtest [14:14:29]: starting date and time: 2025-02-16 14:14:29+0100
autopkgtest [14:14:29]: version 5.44
autopkgtest [14:14:29]: host ganchotestff; command line: /usr/bin/autopkgtest . 
-- unshare
['mmdebstrap', '--variant=apt', '--skip=output/mknod,cleanup/apt/lists', 
'--customize-hook=sed "s/^deb /deb-src /" "$1/etc/apt/sources.list" > 
"$1/etc/apt/sources.list.d/src.list" && APT_CONFIG=$MMDEBSTRAP_APT_CONFIG 
apt-get update', '*', '/tmp/tmp772tvxkz/chroot.tar'] failed (exit status 25, 
stderr "sh: 1: printf: usage: printf format [arg ...]\nI: automatically chosen 
mode: unshare\nI: chroot architecture amd64 is equal to the host's 
architecture\nI: automatically chosen format: tar\nI: using 
/tmp/mmdebstrap.Uew3yfTcE1 as tempdir\nI: skipping output/mknod as requested 
for ./dev/console\nI: skipping output/mknod as requested for ./dev/full\nI: 
skipping output/mknod as requested for ./dev/null\nI: skipping output/mknod as 
requested for ./dev/ptmx\nI: skipping output/mknod as requested for 
./dev/random\nI: skipping output/mknod as requested for ./dev/tty\nI: skipping 
output/mknod as requested for ./dev/urandom\nI: skipping output/mknod as 
requested for ./dev/zero\nI: running apt-get update...\nIgn:1 
http://deb.debian.org/debian * InRelease\nErr:2 http://deb.debian.org/debian * 
Release\n  404  Not Found [IP: 2a04:4e42:8e::644 80]\nReading package 
lists...\nE: The repository 'http://deb.debian.org/debian * Release' does not 
have a Release file.\nE: apt-get update--error-on=any -oAPT::Status-Fd=<$fd> 
-oDpkg::Use-Pty=false failed\nW: hooklistener errored out: E: received eof on 
socket\n\nI: main() received signal PIPE: waiting for setup...\nI: removing 
tempdir /tmp/mmdebstrap.Uew3yfTcE1...\nE: mmdebstrap failed to run\n")
autopkgtest [14:14:30]: ERROR: testbed failure: unexpected eof from the testbed
Exception ignored in: <_io.TextIOWrapper name=6 encoding='UTF-8'>
BrokenPipeError: [Errno 32] Broken pipe
mh@ganchotestff:~/packages/adduser/adduser-3.138$

This error message is nearly unreadable.

I guess that the system is trying to execute

mmdebstrap --variant=apt --skip=output/mknod,cleanup/apt/lists 
--customize-hook='sed "s/^deb /deb-src /" "$1/etc/apt/sources.list" > 
"$1/etc/apt/sources.list.d/src.list" && APT_CONFIG=$MMDEBSTRAP_APT_CONFIG 
apt-get update' '*' '/tmp/tmp772tvxkz/chroot.tar'

I might have gotten the quoting wrong (maybe there are single quotes
missing around the paramters of --customize-hook, what does the single
asterisk mean here that seems to end up in the source.list file, and
since there are unexpanded environment variable this cannot work.
And it doesn't:

mh@ganchotestff:~/packages/adduser/adduser-3.138$ mmdebstrap --variant=apt 
--skip=output/mknod,cleanup/apt/lists --customize-hook='sed "s/^deb /deb-src /" 
"$1/etc/apt/sources.list" > "$1/etc/apt/sources.list.d/src.list" && 
APT_CONFIG=$MMDEBSTRAP_APT_CONFIG apt-get updat' '*' 
'/tmp/tmp772tvxkz/chroot.tar'
sh: 1: printf: usage: printf format [arg ...]
I: automatically chosen mode: unshare
I: chroot architecture amd64 is equal to the host's architecture
I: automatically chosen format: tar
I: using /tmp/mmdebstrap.kJOwsBd7zk as tempdir
I: skipping output/mknod as requested for ./dev/console
I: skipping output/mknod as requested for ./dev/full
I: skipping output/mknod as requested for ./dev/null
I: skipping output/mknod as requested for ./dev/ptmx
I: skipping output/mknod as requested for ./dev/random
I: skipping output/mknod as requested for ./dev/tty
I: skipping output/mknod as requested for ./dev/urandom
I: skipping output/mknod as requested for ./dev/zero
I: running apt-get update...
done
Ign:1 http://deb.debian.org/debian * InRelease
Err:2 http://deb.debian.org/debian * Release
404  Not Found [IP: 2a04:4e42:70::644 80]
Reading package lists...
E: The repository 'http://deb.debian.org/debian * Release' does not have a 
Release file.
E: apt-get update --error-on=any -oAPT::Status-Fd=<$fd> -oDpkg::Use-Pty=false 
failed
W: hooklistener errored out: E: received eof on socket

I: main() received signal PIPE: waiting for setup...
I: removing tempdir /tmp/mmdebstrap.kJOwsBd7zk...
E: mmdebstrap failed to run

I must be doing something totally stupid here.

Please also note the leading "sh: 1: printf: usage: printf format
[arg ...]" which seems to come from some shell script.

In some document that isn't mentioned in the man page, I learned how to
create an sbuild tarball with

TMPDIR=/var/tmp mmdebstrap --include=ca-certificates --skip=output/dev 
--variant=buildd unstable ~/.cache/sbuild/unstable-amd64.tar.zst 
http://debian.debian.zugschlus.de/debian

With this, autopkgtest fails differntly:

mh@ganchotestff:~/packages/adduser/adduser-3.138$ autopkgtest . -- 
unshareautopkgtest [14:25:39]: starting date and time: 2025-02-16 14:25:39+0100
autopkgtest [14:25:39]: version 5.44
autopkgtest [14:25:39]: host ganchotestff; command line: /usr/bin/autopkgtest . 
-- unshare
autopkgtest [14:25:41]: testbed dpkg architecture: amd64
autopkgtest [14:25:41]: testbed apt version: 2.9.29
autopkgtest [14:25:41]: @@@@@@@@@@@@@@@@@@@@ test bed setup
autopkgtest [14:25:41]: testbed release detected to be: None
autopkgtest [14:25:41]: testbed running kernel: Linux 6.12.13-amd64 #1 SMP 
PREEMPT_DYNAMIC Debian 6.12.13-1 (2025-02-09)
autopkgtest [14:25:41]: @@@@@@@@@@@@@@@@@@@@ unbuilt-tree .
autopkgtest [14:25:41]: testing package adduser version 3.138
autopkgtest [14:25:41]: build needed for binaries
autopkgtest [14:25:41]: ERROR: Failed to resolve build-deps for 
/tmp/autopkgtest.F3SxDS/build.sU5/real-tree; apt-get --simulate output:
autopkgtest [14:25:41]: ERROR: | Note, using directory 
'/tmp/autopkgtest.F3SxDS/build.sU5/real-tree' to get the build dependencies
autopkgtest [14:25:41]: ERROR: | Reading package lists...
autopkgtest [14:25:41]: ERROR: | Building dependency tree...
autopkgtest [14:25:41]: ERROR: | Reading state information...
autopkgtest [14:25:41]: ERROR: | Some packages could not be installed. This may 
mean that you have
autopkgtest [14:25:41]: ERROR: | requested an impossible situation or if you 
areusing the unstable
autopkgtest [14:25:41]: ERROR: | distribution that some required packages have 
not yet been created
autopkgtest [14:25:41]: ERROR: | or been moved out of Incoming.
autopkgtest [14:25:41]: ERROR: | The following information may help to resolve 
the situation:
autopkgtest [14:25:41]: ERROR: |
autopkgtest [14:25:41]: ERROR: | The following packages have unmet dependencies:
autopkgtest [14:25:41]: ERROR: |  
builddeps:/tmp/autopkgtest.F3SxDS/build.sU5/real-tree : Depends: 
debhelper-compat (= 13) but it is not installable
autopkgtest [14:25:41]: ERROR: |                                                
Depends: po4a but it is not installable
autopkgtest [14:25:41]: ERROR: |                                                
Depends: gettext but it is not installable
autopkgtest [14:25:41]: ERROR: | E: Unable to correct problems, you have held 
broken packages.
blame: .
badpkg: Can't resolve build dependencies on testbed
autopkgtest [14:25:41]: ERROR: erroneous package: Can't resolve build 
dependencies on testbed
mh@ganchotestff:~/packages/adduser/adduser-3.138$

This is either a bug in the package, or a server shortcoming in the
docs. I am willing to help finding out what is going wrong here.

Greetings
Marc

-- System Information:
Debian Release: trixie/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.13-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages autopkgtest depends on:
ii  apt-utils            2.9.29
ii  libdpkg-perl         1.22.15
ii  mawk                 1.3.4.20250131-1
ii  procps               2:4.0.4-7
ii  python3              3.13.1-2
ii  python3-debian       0.1.49
ii  python3-distro-info  1.13
ii  retry                1.0.5-3

Versions of packages autopkgtest recommends:
ii  autodep8  0.28+nmu1
ii  fakeroot  1.37-1

Versions of packages autopkgtest suggests:
pn  docker-cli | docker.io  <none>
pn  docker.io               <none>
pn  fakemachine             <none>
pn  genisoimage             <none>
pn  incus                   <none>
pn  lxc                     <none>
pn  lxd                     <none>
pn  ovmf                    <none>
pn  ovmf-ia32               <none>
pn  podman                  <none>
pn  qemu-efi-aarch64        <none>
pn  qemu-efi-arm            <none>
pn  qemu-efi-riscv64        <none>
pn  qemu-system             <none>
pn  qemu-utils              <none>
ii  schroot                 1.6.13-6
ii  util-linux              2.40.4-3
pn  vmdb2                   <none>
pn  zerofree                <none>

-- no debconf information

-- 
-----------------------------------------------------------------------------
Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
Leimen, Germany    |  lose things."    Winona Ryder | Fon: *49 6224 1600402
Nordisch by Nature |  How to make an American Quilt | Fax: *49 6224 1600421

Reply via email to