zp_man-db-update-index.dash creates C:\cygwin64\%SystemDrive%

Achim Gratz Stromeko@nexgo.de
Thu Nov 25 18:51:09 GMT 2021

Brian Inglis writes:
> On 2021-11-24 12:54, Achim Gratz wrote:
>> Brian Inglis writes:
>>> Problem mentioned by me some time ago, may be related to this, from
>>> undocumented mandb handling of Windows localization catalog folders:
>> It isn't, which could have easily been tested.
> Are you saying that the <CygwinRoot>/%SystemDrive% issue is unrelated
> to mandb execution, contrary to the information from the OP?

Yes, all the time, and now again.

> How can it be tested, as I would like to do so, as I get those symptoms.

mkdir -p /tmp/test/{s,p}d2 /tmp/test/{s,p}d3/sub
cd /tmp/test
env -i                          /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i SystemDrive=sd1          /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i ProgramData=pd1          /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i SystemDrive=sd2          /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i ProgramData=pd2          /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i SystemDrive=sd3/sub      /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i ProgramData=pd3/sub      /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i SystemDrive=sd3/nil      /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i ProgramData=pd3/nil      /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i SystemDrive=sd3/void/nil /usr/bin/cygstart --hide /usr/bin/dash -c echo
env -i ProgramData=pd3/void/nil /usr/bin/cygstart --hide /usr/bin/dash -c echo
ls -R
# cd ; rm -fr /tmp/test

The behaviour with absolute paths is left as an exercise for the reader.

> I found that when setup is executed, as the PATH sanitized for scripts
> includes cygpath -S, mandb appears to search directories in the
> Windows PATH, for cat... directories, may remove the contents, even
> when they are not manual pages, and may perform other poorly or
> undocumented operations.

Again, in no variant of trying to reproduce this was I ever successful
in seeing that happen.  So either this problem is no longer occuring or
there is some extra condition for it to trigger.

> It appears that mandb climbs the tree trying to find related bin and
> man dirs.

There's no code in mandb that obviously does this, so you'll have to
provide some evidence of when and where it happens.  And it should
already show up in the output of 'manpath -dc' I think, since I've only
ever seen mandb removing something that is in catdirs.  So for instance
if I drop bogus directories cat9 and de_AT into /var/cache/man (which
don't have a corresponding manpath obviously), I'll see:

--8<---------------cut here---------------start------------->8---
Removing obsolete cat directory /var/cache/man/cat9...
Seen mandir for /var/cache/man/ca; not deleting
Seen mandir for /var/cache/man/cs; not deleting
Seen mandir for /var/cache/man/da; not deleting
Seen mandir for /var/cache/man/da.ISO8859-1; not deleting
Seen mandir for /var/cache/man/da.UTF-8; not deleting
Seen mandir for /var/cache/man/de; not deleting
Seen mandir for /var/cache/man/de.ISO8859-1; not deleting
Seen mandir for /var/cache/man/de.UTF-8; not deleting
Removing obsolete cat directory /var/cache/man/de_AT...
--8<---------------cut here---------------end--------------->8---

Which is correct since /var/cache/man is the only catdir on my system.
If I drop these anywhere else in any of the directory in PATH mandb will
not touch them (in fact it never bothers to look there).

> It may be having shared man and "stray" cat dirs for other Windows
> package commands, cmd, Windows utilities, and systems (-m) under 
> /proc/cygdrive/c/usr/local/.
> I don't know any other way I could keep the system level shared
> contents accessible while isolating it.

Again, if that's the problem I have not been able to reproduce it.

+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Blofeld:

More information about the Cygwin mailing list