Hi Gavin,

> > Can't locate Texinfo/ModulePath.pm in @INC (you may need to install the 
> > Texinfo::ModulePath module) (@INC contains: 
> > \cygdrive\d\a\ci-check\ci-check\texinfo-7.1.0.91-20240901\build\tp 
> > C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib 
> > C:/Strawberry/perl/lib) at ../../../tp/texi2any.pl line 86.
> > BEGIN failed--compilation aborted at ../../../tp/texi2any.pl line 115.
> > make[4]: *** [Makefile:1906: texi2any_internals.info] Error 2
> > make[4]: Leaving directory 
> > '/cygdrive/d/a/ci-check/ci-check/texinfo-7.1.0.91-20240901/build/doc/tp_api'
> 
> Could it be an issue with backslashes being used as directory separators
> in \cygdrive\d\a\ci-check\ci-check ... ?  It is strange that the
> path is passed with forward slashes on the command line in the environment
> variables top_builddir but is given with backslashes in the error.  Is
> there any automatic conversion of backslashes on this platform that
> could be responsible?

This looks like it is the problem, yes.

Texinfo/ModulePath.pm is meant to reside in build/tp/.

The line texi2any.pl:84 is meant to add this directory to @INC.
We can see that it the value that it adds is
  \cygdrive\d\a\ci-check\ci-check\texinfo-7.1.0.91-20240901\build\tp
but since this is a native Windows perl, it should really be
  D:\a\ci-check\ci-check\texinfo-7.1.0.91-20240901\build\tp
(with slashes or backslahes, doesn't matter).

This value comes from texi2any.pl:65..66:
  ($real_command_name, $command_directory, $command_suffix)
     = fileparse($0, '.pl');
But $0 should be "../../../tp/texi2any.pl", a relative file name.
And an experiment shows that in this case, $command_directory should
be "../../../tp/" (cf. the experiment that I did in
https://github.com/gnu-gnulib/ci-scratch/actions/runs/10671347822 ).

So, like you, I don't understand where this Cygwin-syntax filename
comes from.

Bruno




Reply via email to