Re: [PATCH v5] grantpt.3: no-op on modern glibc and other UNIXes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

On Sun, Jul 16, 2023 at 03:46:10PM +0200, Alejandro Colomar wrote:
> On 2023-07-16 13:55, наб wrote:
> [...]
> > I read it but didn't really understand what you were saying, since
> > you're on record as a text‒text‒text liker.
> In this context, I'm not sure if to read that as that being just
> emphasis on me being a text liker, which is true-true-true, or if
> (more likely) "text" are placeholders for random text, and you claim
> that I'm on record liking no spaces between em dashes.  If it's the
> latter, I believe I am not, and you might have been confused by some
> of those records?  Could you point me to the records?
I think you've said it to me before but I can't strictly find the mail
(but I'd hopefully blame that on my mail searching).

> Maybe I had
> some brain-fart and defended that at some point, but I do not like
> that style personally.
Neither do I but I, as usual, consulted the corpus, and it said
  $ git grep -F '\[em]' | grep -Fe '\[em] ' -e '\[em] ' -c
to around 160/16 vs -cv.

Thus, I did what the corpus says.

> Basically, it is something similar to why we should write punctuation
> outside of quotes, unless they belong to them, so if I quote someone
> who said "Hello world!", I include '!' in the quote, as it belongs to
> the quote, but the ',' belongs to my text.
This is known (unfairly-)derisively as "programmer punctuation".

> The reason that I like spaces in (only) one side of em dashes --and I
> also like closing em dashes even right before other punctuation-- is
> to make parsing the text less complex.  I've seen cases where in a
> paragraph, several em-dash asides appear, and it's hard to understand
> what is the main text and what are the asides, especially when the
> closing em dash of one of them is omitted.
The corpus sayeth:
  $ git grep -F '\[em]' | grep -e '\\\[em\] ' -e ' \\\[em\]'  -e ':\\\[em\]' -e '\\\[em\]$' | grep -v @
  man2/futex.2:.IR "futex word" \[em]whose
  man2/get_mempolicy.2:.IR nodemask \[em]that
  man2/ioctl_iflags.2:.IR "inode flags" \[em]attributes
  man2/madvise.2:\[em]including tmpfs (see
  man2/madvise.2:.BR tmpfs (2))\[em]
  man2/mbind.2:.BR MAP_ANONYMOUS \[em]or
  man2/perf_event_open.2:\[em]added, divided (to get ratios), and so on\[em]
  man2/uname.2:\[em] this is the largest value likely to be encountered in the wild.
  man3/grantpt.3:\[em]with permissions configured on pty allotion, as is the case on Linux\[em]\c
  man3type/stat.3type:.RI fields\[em] st_atime ,
  man3type/stat.3type:.IR st_ctime \[em]typed
  man4/intro.4:/dev/* \[em] device files
  man4/st.4:.SS MTIOCTOP \[em] perform a tape operation
  man4/st.4:.SS MTIOCGET \[em] get status
  man4/st.4:.SS MTIOCPOS \[em] get tape position
  man7/man.7:.\" .IP \[em] 3m
  man7/man.7:.\" .IP \[em]
  man7/man.7:.\" .IP \[em]
  man7/man.7:.\" .IP \[em]
  man7/path_resolution.7:the process \[em] or in the case of
  man7/tcp.7:Use this option with care \[em] it makes TCP less tolerant to routing
  man7/unicode.7:Information technology \[em] Universal Multiple-Octet Coded Character
  man7/unicode.7:Set (UCS) \[em] Part 1: Architecture and Basic Multilingual Plane.
  man7/x25.7:Message boundaries are preserved \[em] a
of which these use ‒s as interjective commas:
  man2/futex.2:.IR "futex word" \[em]whose
  man2/madvise.2:\[em]including tmpfs (see
  man2/madvise.2:.BR tmpfs (2))\[em]
  man2/mbind.2:.BR MAP_ANONYMOUS \[em]or
  man2/perf_event_open.2:\[em]added, divided (to get ratios), and so on\[em]
  man3/grantpt.3:\[em]with permissions configured on pty allotion, as is the case on Linux\[em]\c
(whoops allotion, should be allocation)
  man3type/stat.3type:.RI fields\[em] st_atime ,
  man3type/stat.3type:.IR st_ctime \[em]typed
of which these have spacing around the outside:
  man2/madvise.2:\[em]including tmpfs (see
  man2/madvise.2:.BR tmpfs (2))\[em]
  man2/perf_event_open.2:\[em]added, divided (to get ratios), and so on\[em]

This is, I'm pretty sure, the first time I've encountered this style,
and it kinda looks like a formatting error to me.

v6 with
  op —with permissions configured on pty allocation, as is the case on Linux— or an ioctl(2).
scissored below.
-- >8 --
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).

Cc: Jakub Wilk <jwilk@xxxxxxxxx>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx>
---
 man3/grantpt.3 | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/man3/grantpt.3 b/man3/grantpt.3
index a19172a3e..3c753da03 100644
--- a/man3/grantpt.3
+++ b/man3/grantpt.3
@@ -84,17 +84,15 @@ .SH ATTRIBUTES
 .ad
 .sp 1
 .SH VERSIONS
-Many systems implement this function via a set-user-ID helper binary
+Historical systems implemented 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).
+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 STANDARDS
 POSIX.1-2008.
 .SH HISTORY
-- 
2.39.2

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux