From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: syntax check before commit and patch: net-perl-psyc Date: Tue, 14 Jun 2016 14:59:58 +0200 Message-ID: References: <20160613140750.GA11984@khazad-dum> <877fdshyiq.fsf@gnu.org> <20160614123911.GC3999@khazad-dum> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53156) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bD4xx-0007P4-FU for guix-devel@gnu.org; Wed, 15 Jun 2016 03:10:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bD4xq-0006Pq-7B for guix-devel@gnu.org; Wed, 15 Jun 2016 03:10:20 -0400 Received: from thebe.bbbm.mdc-berlin.de ([141.80.25.41]:55062) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bD4xq-0006Pk-10 for guix-devel@gnu.org; Wed, 15 Jun 2016 03:10:14 -0400 In-Reply-To: <20160614123911.GC3999@khazad-dum> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: ng0 Cc: guix-devel@gnu.org ng0 writes: > On 2016-06-14(12:10:05+0200), Ludovic Court=C3=A8s wrote: >> This reminds me that we should eventually update =E2=80=98perl-build-s= ystem=E2=80=99 to >> have a =E2=80=98wrap=E2=80=99 phase similar to that of =E2=80=98python= -build-system=E2=80=99. >> >> Thanks, >> Ludo=E2=80=99. >> > > Thanks for taking the time to look into it. > Would you know if other than the source of perl-build-system, the secti= on 7.2.6.1 > "Locale Data Compatibility Considerations" and the section above (and b= elow?) 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 may= be you > have an explanation which wouldn't take so many turns as mine, or be to= o 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=E2=80=99s w= hat 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