From: Alejandro Colomar <alx.manpages@gmail.com>
To: "Stefan Puiu" <stefan.puiu@gmail.com>,
наб <nabijaczleweli@nabijaczleweli.xyz>
Cc: lnx-man <linux-man@vger.kernel.org>
Subject: Re: [PATCH v2] environ.7: align PWD with the standard
Date: Sun, 3 Jul 2022 20:08:34 +0200 [thread overview]
Message-ID: <f180eaf2-fa3b-27d2-3787-cb1c826430f1@gmail.com> (raw)
In-Reply-To: <CACKs7VBN8N4mUUFFxkL9jj1C+Uc1qvmwTp5xR+--OFb4LXo21w@mail.gmail.com>
Hi Stefan, and наб,
On 6/21/22 23:35, Stefan Puiu wrote:
> On Mon, Jun 20, 2022 at 6:23 PM наб <nabijaczleweli@nabijaczleweli.xyz> wrote:
>>
>> Hi!
>>
>> On Mon, Jun 20, 2022 at 11:55:18AM +0300, Stefan Puiu wrote:
>>> On Mon, Jun 20, 2022 at 2:40 AM наб <nabijaczleweli@nabijaczleweli.xyz> wrote:
>>>>
>>>> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
>>>> ---
>>>> man7/environ.7 | 8 ++++++--
>>>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/man7/environ.7 b/man7/environ.7
>>>> index 019c5a25a..24446c709 100644
>>>> --- a/man7/environ.7
>>>> +++ b/man7/environ.7
>>>> @@ -158,8 +158,12 @@ used by
>>>> to find manual pages, and so on.
>>>> .TP
>>>> .B PWD
>>>> -The current working directory.
>>>> -Set by some shells.
>>>> +Absolute path to the current working directory;
>>>> +required to be partially canonical (no
>>>> +.I .\&
>>>> +or
>>>> +.I ..\&
>>>> +components).
>>>
>>> If any shell decides to ignore that part of the spec, is there
>>> anything preventing them?
>> It no longer being a valid shell (if on startup) or providing an invalid
>> cd built-in (when cding), from the stand-point of conformance to both
>> the standard and historical shells.
>
> My expectation from the Linux manual pages is that they document
> behavior I'm likely to encounter in the real world on Linux, with
> various libcs etc. Specs can be misread, misunderstood, ignored, or
> can be wrong sometimes (see the discussion about fork being required
> to be async signal safe, for example, the RH page here:
> https://access.redhat.com/articles/2921161). So if I write software
> that, say, does getent("PWD"), it's useful to know if there are cases
> where that might not work. Even if POSIX requires PWD to be set,
> that's not reassuring when my program crashes. That's why I asked if
> you checked some shells to see what they do.
>
> Also, I see there's already environ.3p for the POSIX version.
>
>>
>>> I would make it clear in the text that this
>>> is a spec requirement, not a practical guarantee (e.g. "required by
>>> <spec> to be ...").
>> Those are one and the same, that's the point of SUS/POSIX
>> (and conformance to historical implementations).
>> Are you aware of one or are you just concern-trolling?
>
> I don't know of a shell that doesn't set PWD, but since you said the
> previous comment ("Some shells set it") was wrong, I assumed you had
> checked that. I did try bash and busybox sh and they seem to set it,
> but there are (quite) a few other shells out there.
Since no-one seems to know of a shell that deviates from this behavior,
and no-one replied in a couple of weeks, I'm going to assume that all
well-known shells follow POSIX, and that the wording was falling on the
safe side of things in the old times where following standards was not a
common thing to do (or maybe the page was written before there were any
standards).
So I applied the patch.
>
> I don't know why you think that my question is some kind of trolling.
> You can look up my contributions in the mailing list archive. It's
> been a while since my last patch to the project; nowadays I follow
> some of the mailing list discussions in my spare time and occasionally
> chime in on people's patches. I get things wrong sometimes, of course,
> but your reply is the first one that is defensive (and somewhat rude,
> I would say). Probably a good indication that I need to find other
> uses of my (spare) time.
Thanks for following the list, I appreciate your reviews!
>
>> Obviously, pretty much no part of this manual applies to csh
>> because csh is its own 2BSD brand of insanity (in this case
>> largely because it predates V7 (3BSD), and, hence, the environment).
>> csh users understand they use a non-shell,
>
> Well, this is the environ.7 man page, mostly useful to programmers
> AFAICT, who don't have much control over what people use as their
> shell. If they can set csh as their login shell, why should I assume
> they won't? People have many reasons to choose the shell they run -
> distro default, they like some features, speed, company policy, legacy
> systems... Not sure POSIX compliance is high on that list.
I checked csh(1) provides PWD, at least on my system (and in fact, it's
the only variable it sets):
$ env -i csh
% env
PWD=/home/alx
% csh -l
% env
PWD=/home/alx
%
I'm going to assume that the text is not true, unless someone reports
otherwise.
Thanks you both!
Alex
--
Alejandro Colomar
<http://www.alejandro-colomar.es/>
next prev parent reply other threads:[~2022-07-03 18:08 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-19 19:57 [PATCH] environ.7: align PWD with the standard наб
2022-06-19 23:06 ` Alejandro Colomar
2022-06-19 23:39 ` [PATCH v2] " наб
2022-06-20 7:12 ` Alejandro Colomar
2022-06-20 8:55 ` Stefan Puiu
2022-06-20 15:23 ` наб
2022-06-21 21:35 ` Stefan Puiu
2022-07-03 18:08 ` Alejandro Colomar [this message]
2022-06-20 15:25 ` [PATCH v3] " наб
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f180eaf2-fa3b-27d2-3787-cb1c826430f1@gmail.com \
--to=alx.manpages@gmail.com \
--cc=linux-man@vger.kernel.org \
--cc=nabijaczleweli@nabijaczleweli.xyz \
--cc=stefan.puiu@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox