On 2023-02-15 02:22, Corinna Vinschen wrote:
On Feb 15 00:11, Brian Inglis wrote:
Linux man pages 6.03 has been released.
I realized that some of the man pages are case sensitive e.g. _[Ee]xit.2,
{NAN,nan}.3, perhaps others.
I took care of my own system using commands like below, but would appreciate
advice on whether there is any better portable or Cygwin specific approach,
and what are the opinions on the best way to handle this in the cygport for
download and install?
Is this supported by Cygwin on Windows 10 versions >= [20]18-03 with the
directory attribute set, are there likely to be any problems with git, or in
general with POSIX<->Windows file names?
$ cd /usr/share/man/linux/
$ for s in man?; do fsutil file setCaseSensitiveInfo $s; done

You can do this in Cygwin with the chattr(1) tool, see chattr --help.

Thanks Corinna,

I thought I remembered something but git and ml searches got no useful hits.

The hint "WSL must be installed" appears to be outdated, at least on
Windows 11.  There are two approaches for case-sensitivity, see
   
https://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-casesensitive
   
https://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-casesensitivedirs
However, as part of the distro, the package must not rely on
case-sensitivity.  We have to assume that most users are using Windows
in default settings.  And we still support Windows versions prior to
Windows 10 1803.  But even then, I encountered serious trouble with
case-sensitive directories on remote shares, see
   https://github.com/microsoft/WSL/issues/3885
so you'd get into trouble if the Cygwin installation is on a share.

I noticed that and other issues, like needing to pre-create and fsutil/chattr the directories before extraction.

For colliding man pages, what you can do is to append a character to
the man page file, so you can install both.  For instance:
   exit.2
   Exit.2a
   nan.3
   NAN.3a
Kind of like that.

Thanks much for that great idea!
I will check if it will extract with:

TAR_OPTIONS="--transform=s,_Exit.2,_Exit.2u, --transform=s,NAN.3,NAN.3u, --show-transform-names"

as those 2 files are small .so to man2/_exit.2 and man3/INFINITY.3 respectively, and note suffix "u" to make Uppercase Unique and deal with case conflicts.

I have also noticed that man -m, --system=a,b priority is alphabetic, so -mman,linux displays Linux instead of Cygwin man pages, so will use man-pages-linux instead, and provide linux as a convenient interactive symlink for backward compatibility, and if anyone wants to see Linux over Cygwin.

--
Take care. Thanks, Brian Inglis                 Calgary, Alberta, Canada

La perfection est atteinte                      Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter     not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer        but when there is no more to cut
                        -- Antoine de Saint-Exupéry

Reply via email to