Subject: grantpt.3: no-op on modern glibc and other UNIXes, HISTORYise Hi! Please use Uppercase after the ':'. Rationale: it should (usually) be an English sentence, following conventional rules (except for the trailing period, which we remove). On 2023-07-18 01:31, наб wrote: > FreeBSD, OpenBSD, and Linux (/dev/ptmx) do all intialisation in open(2), > and grantpt(3) is a no-op (that checks whether the fd is a pty, except on > musl). > > The illumos gate and NetBSD do a ioctl (and, indeed, illumos-gate commit > facf4a8d7b59fde89a8662b4f4c73a758e6c402c ("PSARC/2003/246 Filesystem > Driven Device Naming"), which kills pt_chmod, notes that it's been > "6464196 bfu should remove pt_chmod, obsoleted by /dev filesystem"). > > glibc 2.33 completely kills BSD PTY support on Linux > (Debian hasn't configured with them on any architecture since 2007: > https://bugs.debian.org/338404 > and even earlier on some arches; they're really just trivia under > Linux ‒ this may be better served stuffed into HISTORY as an explainer > for the SIGCHLD thing, since regardless of the "version", the behaviour > is well-defined and consistent). > > There really aren't many cohesive "versions" of this ‒ indeed, so long > as grantpt(3) exists it behaves precisely as described here ‒ > inasmuch as different systems, historically, had different ptys, > and thus different implementations. These are all but trivia. Please use two spaces after period. ;) > > Cc: Jakub Wilk <jwilk@xxxxxxxxx> > Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx> > --- > I originally thought to do so, but decided against it because I'm not > substantially changing this paragraph and it's already in VERSIONS... > Moved with rationale added. Thanks. Patch applied. > > Also, administriva-wise, git pull tells me > [PATCH 1/2] statfs.2: unshade as deprecated, but direct to statvfs(3) > with msgid > <b4b871ffdf8f764ffd6c25039f3944b08748bd3e.1687553930.git.nabijaczleweli@xxxxxxxxxxxxxxxxxx> > is the last outstanding patch I have rn, sans this one. I was waiting for you to send an v2 with the fs and inode corrections suggested by Tom Schwindl. Is that correct? It's a bit weird, because IIRC, I had written to confirm what Tom said, with pointers to man-pages(7), but now I can't find it. I'll write (again?) now. Cheers, Alex > > man3/grantpt.3 | 22 ++++++++++------------ > 1 file changed, 10 insertions(+), 12 deletions(-) > > diff --git a/man3/grantpt.3 b/man3/grantpt.3 > index a19172a3e..949f70de9 100644 > --- a/man3/grantpt.3 > +++ b/man3/grantpt.3 > @@ -83,18 +83,6 @@ .SH ATTRIBUTES > .hy > .ad > .sp 1 > -.SH VERSIONS > -Many systems implement this function via a set-user-ID helper binary > -called "pt_chown". > -On Linux systems with a devpts filesystem (present since Linux 2.2), > -the kernel normally sets the correct ownership and permissions > -for the pseudoterminal slave when the master is opened > -.RB ( posix_openpt (3)), > -so that nothing must be done by > -.BR grantpt (). > -Thus, no such helper binary is required > -(and indeed it is configured to be absent during the > -glibc build that is typical on many systems). > .SH STANDARDS > POSIX.1-2008. > .SH HISTORY > @@ -103,6 +91,16 @@ .SH HISTORY > .PP > This is part of the UNIX 98 pseudoterminal support, see > .BR pts (4). > +.PP > +Historical systems implemented this function via a set-user-ID helper binary > +called "pt_chown". > +glibc on Linux before glibc 2.33 could do so as well, > +in order to support configurations with only BSD pseudoterminals; > +this support has been removed. > +On modern systems this is either a no-op > +\[em]with permissions configured on pty allocation, as is the case on Linux\[em] > +or an > +.BR ioctl (2). > .SH SEE ALSO > .BR open (2), > .BR posix_openpt (3), -- <http://www.alejandro-colomar.es/> GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature