guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: syntax check before commit and patch: net-perl-psyc


From: Ricardo Wurmus
Subject: Re: syntax check before commit and patch: net-perl-psyc
Date: Tue, 14 Jun 2016 14:59:58 +0200
User-agent: mu4e 0.9.16; emacs 24.5.1

ng0 <address@hidden> writes:

> On 2016-06-14(12:10:05+0200), Ludovic Courtès wrote:
>> This reminds me that we should eventually update ‘perl-build-system’ to
>> have a ‘wrap’ phase similar to that of ‘python-build-system’.
>>
>> Thanks,
>> Ludo’.
>>
>
> Thanks for taking the time to look into it.
> Would you know if other than the source of perl-build-system, the section 
> 7.2.6.1
> "Locale Data Compatibility Considerations" and the section above (and below?) 
> in
> the manual could serve as an explanation to the authors question of
> "Why do you wrap such a simple language as perl?" ?
>
> I know it becomes more obvious once you look more into details, but maybe you
> have an explanation which wouldn't take so many turns as mine, or be too 
> simple
> ("look at the source").

The wrapping is a necessity that stems from two causes:

- we install all packages (including Perl modules) to their very own
  prefixes under /gnu/store

- Perl (like Python, Guile, R, and other languages, but unlike C) looks
  up modules by name in a list of directories.

To ensure that a Perl script can find all modules it depends on we
create a wrapper that sets an environment variable such that it contains
the location of all Perl modules that are needed at runtime.  In a
traditional system that adheres to the FHS this is not required because
modules are installed into *one* location which happens to be among the
standard directories that Perl natively searches.

Without a wrapper users would need to do one of these two things:

- install Perl and all dependent modules into a profile (that’s what
  happens when we propagate packages); then set the module path
  environment variable to the shared directory for Perl modules in the
  profile.

- manually assemble a list of directories in /gnu/store and set the
  environment variable to it.  We do this with a wrapper instead.

~~ Ricardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]