Bruce Dubbs wrote: > Bruce Dubbs wrote: >> script: race conditions ...script: openpty >> failed: Operation not permitted >> <...> >> >> It looks like this is due to the change in glibc because this passed >> before I update to glibc-2.18. > > OK, I've confirmed that the test identified by > > script: race conditions > > fails with a non-root user and passes with a root user. We can change > this test to be ignored with: > > sed -i -e "/^ts_init/a\ > ts_skip_nonroot" tests/ts/script/race
This seems odd; it used to be that pt_chown was only necessary when /dev/pts was not mounted as a devpts filesystem, and if it was, then the kernel would do the right thing automatically (that is, the grantpt() call, while still a good idea, is not strictly necessary, and if called would do nothing). It's been way too long since I've done a chapter-6 build, but aren't we using the host's devpts setup? ... Yeah, looking at chapter06/kernfs.html from svn, we are. So I'd be surprised if pt_chown was actually needed inside the chroot. But maybe something else changed. What happens if you: cat <<'EOF' >testpt.c #define _XOPEN_SOURCE 600 #include <stdlib.h> #include <fcntl.h> #include <stdio.h> int main() { int masterfd; char buf[1024]; masterfd = posix_openpt(O_RDWR | O_NOCTTY); if (masterfd < 0) { perror("posix_openpt"); return 1; } printf("posix_openpt succeeded\n"); if (grantpt(masterfd) < 0) { perror("grantpt"); return 1; } printf("grantpt succeeded; stat the new file and hit enter\n"); fgets(buf, sizeof(buf), stdin); return 0; } EOF make testpts ls /dev/pts <note the files present> ./testpts ^Z ls /dev/pts stat /dev/pts/<new file> fg <enter> rm testpts testpts.c What are the permissions and ownership of the new slave pty file? On my system, with /dev/pts mounted and pt_chown missing, I get: File: `/dev/pts/6' Size: 0 Blocks: 0 IO Block: 1024 character special file Device: ah/10d Inode: 9 Links: 1 Device type: 88,6 Access: (0620/crw--w----) Uid: ( 501/ <me>) Gid: ( 4/ tty) Access: 2013-08-13 22:27:12.226312570 -0700 Modify: 2013-08-13 22:27:12.226312570 -0700 Change: 2013-08-13 22:27:12.226312570 -0700 But then, this is what I'd expect, as my user has permission to chgrp the file to tty, but even without that, it starts out owned by <me>/tty and 0620 before the grantpt() call happens. (Verified by comparing "ls -l /dev/pts/" and "(ls -l /dev/pts/) </dev/ptmx". With the extra handle open, the new file is definitely owned by me/tty, and 0620.) This is also glibc 2.10.1 (I said it'd been too long... :-) ).
signature.asc
Description: OpenPGP digital signature
-- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page