[Piuparts-devel] [Git][debian/piuparts][develop] p: use mknod instead of touch to create missing /dev/ptmx mountpoint (Closes: #911334)
Holger Levsen
gitlab at salsa.debian.org
Mon Oct 29 16:25:31 GMT 2018
Holger Levsen pushed to branch develop at Debian / piuparts
Commits:
a99ecade by Mathieu Parent at 2018-10-28T20:28:36Z
p: use mknod instead of touch to create missing /dev/ptmx mountpoint (Closes: #911334)
Working around findutils bug #912180:
mkdir foo
mknod foo/null c 1 3
touch foo/bindmntoverfile
mount --bind foo/null foo/bindmntoverfile
find foo -type f -ls
3857271640 0 crw-r--r-- 1 root root 1, 3 Oct 24 07:50 foo/bindmntoverfile
When using piuparts on a chroot without /dev/ptmx [noptmx],
scripts/pre_remove_50_find_bad_permissions fails with:
ERROR: BAD PERMISSIONS
crw-rw-rw-. 1 root root 5, 2 Oct 16 03:49 /dev/ptmx
In this case, piuparts does something like this:
touch /dev/ptmx # if not exists
mount -o bind /dev/pts/ptmx /dev/ptmx # if dev/ptmx was not a symlink
The kernel doc [devpts.txt] recommends instead:
mknod /dev/ptmx c 5 2
And this is what debootstrap does [debootstrap].
After this change, piuparts will do:
mknod /dev/ptmx c 5 2 # if not exists
mount -o bind /dev/pts/ptmx /dev/ptmx # if dev/ptmx was not a symlink
The behavior of piuparts called after debootstrap will not change.
The only behavior changing is when dev/ptmx doesn't exist at all.
[noptmx]: This is the case when chroot comes from the debian:unstable Docker image
[devpts.txt]: https://www.kernel.org/doc/Documentation/filesystems/devpts.txt
[debootstrap] https://salsa.debian.org/installer-team/debootstrap/blob/6f3f6f8b76e2d1a24ddbf05f065439412c3b81a1/functions#L1263-1268, introduced by https://salsa.debian.org/installer-team/debootstrap/commit/c997b80c064c6c1d36ec69da1850722f795f43e4
- - - - -
2 changed files:
- debian/changelog
- piuparts.py
Changes:
=====================================
debian/changelog
=====================================
@@ -14,6 +14,10 @@ piuparts (0.94) UNRELEASED; urgency=medium
- Handle /etc/nsswitch.conf stretch -> buster upgrade if modifications
from libnss-myhostname and friends are present.
+ [ Mathieu Parent ]
+ * piuparts.py: Use mknod instead of touch to create missing /dev/ptmx
+ mountpoint, working around findutils bug #912180 (Closes: #911334)
+
-- Holger Levsen <holger at debian.org> Sun, 21 Oct 2018 14:03:22 +0200
piuparts (0.93) unstable; urgency=medium
=====================================
piuparts.py
=====================================
@@ -1755,8 +1755,7 @@ class Chroot:
dev_ptmx_rel_path = self.relative("dev/ptmx")
if not os.path.islink(dev_ptmx_rel_path):
if not os.path.exists(dev_ptmx_rel_path):
- with open(dev_ptmx_rel_path, 'w'):
- pass
+ os.mknod(dev_ptmx_rel_path, 0666 | stat.S_IFCHR, os.makedev(5, 2))
self.mount(self.relative("dev/pts/ptmx"), "/dev/ptmx", opts="bind", no_mkdir=True)
p = subprocess.Popen(["tty"], stdout=subprocess.PIPE)
stdout, _ = p.communicate()
View it on GitLab: https://salsa.debian.org/debian/piuparts/commit/a99ecade05aeb855c5e17528403956300ee280c7
--
View it on GitLab: https://salsa.debian.org/debian/piuparts/commit/a99ecade05aeb855c5e17528403956300ee280c7
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/piuparts-devel/attachments/20181029/9787c766/attachment-0001.html>
More information about the Piuparts-devel
mailing list