I'm using Thorsten's regression report in #983423 as my representative
sample of a package that regressed with schroot 1.6.13-4, because mksh
builds much more quickly than gcc-14, but I suspect that the same would
apply equally to Adrian's regression report in #856877: the important
factor is probably just "any package that wants to run script(1)
or expect(1)".
I was not able to reproduce the mksh build failure, so there must be
some relevant difference in setup (other than CPU architecture, which
shouldn't actually matter here) between the affected -ports buildds and
my attempt to set up a mockup of a buildd. Please could a buildd operator
provide more details of how something resembling the -ports buildd
environment can be replicated in a test VM?
Post by Simon McVittieOn three buildds, mksh FTBFS already because the whole
/dev/ptmx and /dev/pts stuff is malfunctioning again
Which buildds? Are you referring to -ports builds
https://buildd.debian.org/status/fetch.php?pkg=mksh&arch=powerpc&ver=59c-39&stamp=1724031073&raw=0,
https://buildd.debian.org/status/fetch.php?pkg=mksh&arch=ppc64&ver=59c-39&stamp=1724031078&raw=0,
https://buildd.debian.org/status/fetch.php?pkg=mksh&arch=sparc64&ver=59c-39&stamp=1724031447&raw=0
each of which reported
"script: failed to create pseudo-terminal: Permission denied"?
I was unable to reproduce this build failure in an amd64 unstable VM
(created with autopkgtest-build-qemu, if it matters), coincidentally
with a 6.9.12-1 kernel matching those buildds, by running these commands
as a user in the sudo and sbuild groups from a virtual console or from
an interactive ssh shell:
sudo sbuild-createchroot sid /srv/sid http://192.168.122.1:3142/debian
sbuild -dsid mksh
where http://192.168.122.1:3142 is an apt-cacher-ng instance
(replace that argument with http://deb.debian.org/debian or similar if
required).
I also tried running sbuild with no controlling tty, by doing this outside
the test VM:
ssh -T ***@testvm sbuild -n -dsid mksh
and that also seems to be working fine: mksh can run its test suite
involving script(1), and the test suite and build succeed.
sbuild-createchroot defaulted to creating this schroot configuration:
[sid-amd64-sbuild]
description=Debian sid/amd64 autobuilder
groups=root,sbuild
root-groups=root,sbuild
profile=sbuild
type=directory
directory=/srv/sid
union-type=overlay
There must presumably be something different about how sbuild-createchroot
and schroot are configured or invoked on the affected buildds, but I don't
know specifically what.
On my test VM, while I have one ssh session active (logged in as 'user'
on /dev/pts/0), some relevant parts of the VM's /dev look like this:
$ ls -l /dev/console /dev/ptmx /dev/pts/* /dev/tty
crw------- 1 root root 5, 1 Aug 19 22:06 /dev/console
crw-rw-rw- 1 root tty 5, 2 Aug 19 23:08 /dev/ptmx
crw--w---- 1 user tty 136, 0 Aug 19 23:08 /dev/pts/0
c--------- 1 root root 5, 2 Aug 19 22:06 /dev/pts/ptmx
crw-rw-rw- 1 root tty 5, 0 Aug 19 22:55 /dev/tty
(/dev/pts/ptmx having permissions 000 is strange, but seems to be expected,
and does not cause observable brokenness for the VM: in particular
script(1) still works fine there, because accessing /dev/ptmx is
successful.)
The /dev in /srv/sid/dev (the base chroot created by debootstrap) has:
crw-rw-rw- 1 root root 5, 1 Aug 19 22:47 console
lrwxrwxrwx 1 root root 13 Aug 19 22:47 fd -> /proc/self/fd
crw-rw-rw- 1 root root 1, 7 Aug 19 22:47 full
crw-rw-rw- 1 root root 1, 3 Aug 19 22:47 null
crw-rw-rw- 1 root root 5, 2 Aug 19 22:47 ptmx
drwxr-xr-x 2 root root 4096 Aug 19 22:47 pts # is empty
crw-rw-rw- 1 root root 1, 8 Aug 19 22:47 random
drwxr-xr-x 2 root root 4096 Aug 19 22:47 shm # is empty
lrwxrwxrwx 1 root root 15 Aug 19 22:47 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Aug 19 22:47 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Aug 19 22:47 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root root 5, 0 Aug 19 22:47 tty
crw-rw-rw- 1 root root 1, 9 Aug 19 22:47 urandom
crw-rw-rw- 1 root root 1, 5 Aug 19 22:47 zero
The /dev in the schroot environment while one of my mksh builds was
running (ls -l /run/schroot/mount/sid-*/dev) has:
crw--w---- 1 user tty 136, 0 Aug 19 22:51 console
lrwxrwxrwx 1 root root 13 Aug 19 22:47 fd -> /proc/self/fd
crw-rw-rw- 1 root root 1, 7 Aug 19 22:47 full
crw-rw-rw- 1 root root 1, 3 Aug 19 22:47 null
crw-rw-rw- 1 root root 5, 2 Aug 19 22:50 ptmx
drwxr-xr-x 2 root root 0 Aug 19 22:48 pts # devpts mounted
crw-rw-rw- 1 root root 1, 8 Aug 19 22:47 random
drwxrwxrwt 2 root root 40 Aug 19 22:48 shm # tmpfs mounted
lrwxrwxrwx 1 root root 15 Aug 19 22:47 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Aug 19 22:47 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Aug 19 22:47 stdout -> /proc/self/fd/1
crw-rw-rw- 1 root root 5, 0 Aug 19 22:47 tty
crw-rw-rw- 1 root root 1, 9 Aug 19 22:47 urandom
crw-rw-rw- 1 root root 1, 5 Aug 19 22:47 zero
and /run/schroot/mount/sid-*/dev/pts/ptmx is char device 5,2 with
permissions 0666 (because it's a new instance of devpts with ptmxmode=666).
If I ran sbuild from a terminal, the terminal is mounted over
the schroot's /dev/console (necessary to make processes inside an
interactive schroot detect the terminal as expected). If I didn't, the
schroot's /dev/console remains as char device 5,1.
If the regression in 1.6.13-4 had been reported as a bug, I would be
tagging it moreinfo at this point.
smcv