gh-107959: clarify Unix-availability of os.lchmod() (GH-107960)

POSIX specifies that implementations are not required to support changing the
file mode of symbolic links, but may do so.
Consequently, `lchmod()` is not part of POSIX (but mentioned for implementations
which do support the above).

The current wording of the availability of `os.lchmod()` is rather vague and
improved to clearly tell which POSIX/Unix/BSD-like support the function in
general (those that support changing the file mode of symbolic links).
Further, some examples of major implementations are added.

Data for the BSDs taken from their online manpages.

Signed-off-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.name>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
This commit is contained in:
Christoph Anton Mitterer 2023-12-13 20:55:31 +01:00 • committed by GitHub
parent 85923cb377
commit f14e3d59c9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2160,9 +2160,12 @@ features:
for possible values of *mode*. As of Python 3.3, this is equivalent to
``os.chmod(path, mode, follow_symlinks=False)``.
``lchmod()`` is not part of POSIX, but Unix implementations may have it if
changing the mode of symbolic links is supported.
.. audit-event:: os.chmod path,mode,dir_fd os.lchmod
.. availability:: Unix.
.. availability:: Unix, not Linux, FreeBSD >= 1.3, NetBSD >= 1.3, not OpenBSD
.. versionchanged:: 3.6
Accepts a :term:`path-like object`.