On 11 Aug 2014 21:37, "Ludovic Courtès" <ludo@gnu.org> wrote:
>
> Tom Molesworth <tetra604@gmail.com> skribis:
>
> > Since Perl uses an include path, much like the $PATH environment variable
> > for finding executables, this seems to imply that you'd need every module
> > added to the Perl include path (via $PERL5LIB). This would quickly become
> > unwieldy as more modules are installed.
>
> Normally, ‘guix package --install’ and ‘guix package --search-paths’
> would suggest adding ~/.guix-profile/lib/perl/... to $PERL5LIB, which
> should solve the problem, no?
If that means there's just a single extra PERL5LIB entry rather than one per installed module, yes - that should be fine.
The output we'd seen looked like each module ended up in a separate path, but maybe we were misinterpreting, or a later step copies/symlinks to a common library path.
Note that this is a separate concern to the install path not matching the final location of the files; the provided installation path at build time is used in some modules (XML::SAX in this case). Passing an installation path at build time, then moving the files afterwards, is likely to cause errors at runtime. PERL5LIB is used for loading Perl modules, but if a module has extra data it won't necessarily read that from the same place. This is similar to the /usr/lib and /usr/share split on some systems.
> > A second issue is that, according to perl-build-system.scm, there does not
> > appear to be any support for CPAN distributions which use the Module::Build
> > toolchain:
>
> Indeed, thanks for the pointers and explanations.
>
> Currently, all the Perl packages provided in Guix use MakeMaker
> apparently, so I guess we’ll implement the Module::Build method as soon
> as we stumble upon a package that needs it. :-)
Sounds reasonable.
Thanks,
Tom