[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