missing perl directories

Achim Gratz Stromeko@nexgo.de
Fri Jan 22 20:29:12 GMT 2021

Anthony Heading writes:
> On Fri, Jan 22, 2021, at 4:36 PM, Marco Atzeri via Cygwin wrote:
>>      2020-02-04 19:14       70081 usr/share/perl5/site_perl/5.30/Stow.pm

That's a known packaging error caused by the stow configury / Makefile
using its own special idea of installsitelib instead of installvendorlib
(or at least installsitelib) from the existing Perl.

--8<---------------cut here---------------start------------->8---
# Perl modules will be installed to ${prefix}/share/perl5/site_perl/5.30
# which will expand to
#   /usr/share/perl5/site_perl/5.30
# unless you override the value of prefix at make-time.

config.status: creating Makefile
make[1]: Entering directory '/cygdrive/c/Users/ASSI/CygwinHome/stow/stow.noarch/build'
make[1]: Leaving directory '/cygdrive/c/Users/ASSI/CygwinHome/stow/stow.noarch/build'
[ -d bin ] || mkdir bin # required in vpath mode

# Perl modules will be installed to /usr/share/perl5/site_perl/5.30
# This is not in /usr/bin/perl's built-in @INC, so the
# front-end scripts will have an appropriate "use lib"
# line inserted to compensate.
--8<---------------cut here---------------end--------------->8---

Andrew, should you read this, putting

--8<---------------cut here---------------start------------->8---
CYGCONF_ARGS="--with-pmdir=$(perl -MConfig -e 'print $Config{installvendorlib}')"
--8<---------------cut here---------------end--------------->8---

into stow.cygport should resolve that problem.

> Correct.   And of course that means this Stow package doesn't actually work:
> % perl -MStow -e ''
> Can't locate Stow.pm in @INC (you may need to install the Stow module) (@INC contains: /usr/local/lib/perl5/site_perl/5.30/x86_64-cygwin-threads /usr/local/share/perl5/site_perl/5.30 /usr/lib/perl5/vendor_perl/5.30/x86_64-cygwin-threads /usr/share/perl5/vendor_perl/5.30 /usr/lib/perl5/5.30/x86_64-cygwin-threads /usr/share/perl5/5.30).

It's a captive backend for the GNU stow application and stow sets up
@INC so that it does work correctly in that context.  There are no other
users of that module that I know of.

> At core, this is catch 22.
>   - The perl build reserves, creates, and expects to exist, an empty
>   directory for the sole use of the SA: "site_perl".

Again, it doesn't.  If you (the SA) put files there they will be used by
default, but it's not an error for that path or any leading components
to not exist.

>   -  Cygwin perl assigns that directory location into the tree
>   similarly intended for the SA:   "/usr/local"

Yes and it does that since several years (I think with the switch to
5.26).  I'd have to dig out who requested it and why, but it was changed
deliberately to separate the Cygwin and local installation, likely
following Fedora and some other Linux distributions.

>   - Your strict interpretation of the FHS disallows the empty
>   site_perl directory to be created for use by the SA because it's
>   positioned within a tree reserved for use by the SA

Yes, but since you don't need to create them there is no problem that
needs solving.

> I dunno, Marco, I'm not so dogmatic, and I can fix my own
> installation.  I just thought this would be a helpful bug report for
> others.  It sounds like we can find enough conflicting Cygwin policy
> documents to ensure that there is no solution, so that's delightful.

So what's your point here, then?

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

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:

More information about the Cygwin mailing list