From Fedora Project Wiki
Line 29: Line 29:
     /usr/share/perl5 -- Fedora      (arch lib)
     /usr/share/perl5 -- Fedora      (arch lib)
     .
     .
== Proposal ==
All Perl modules will be using priv/arch lib directory for installation of Perl modules, therefore %build part of specfile must be changed from:
{|
! ExtUtils::MakeMaker
! Module::Build
|-
| %{__perl} Makefile.PL INSTALLDIRS=vendor
| %{__perl} Build.PL installdirs=vendor
|-
| %{__perl} Makefile.PL INSTALLDIRS=perl
| %{__perl} Build.PL installdirs=core
|}

Revision as of 15:07, 31 January 2011

Essentials

As a distribution we don't need to install some modules into priv/arch lib and some into vendor. All Fedoras Perl modules can be installed in one directory. The vendor directories can be used for users, who package their own rpms and need installation paths for their modules or for specific version of some modules.

@INC F-{14,15}

Currently we have @INC in Fedora:

F-14

 @INC:
   /usr/local/lib64/perl5	-- for CPAN     (site lib)
   /usr/local/share/perl5	-- for CPAN     (site arch)
   /usr/lib64/perl5		-- 3rd party    (vendor lib)
   /usr/share/perl5		-- 3rd party    (vendor arch)
   /usr/lib64/perl5		-- Fedora       (priv lib)
   /usr/share/perl5		-- Fedora       (arch lib)
   /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi # compatibility directories
   /usr/local/lib/perl5/site_perl/5.10.0
   /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi
   /usr/lib/perl5/vendor_perl
   /usr/lib/perl5/site_perl
   .

F-15

@INC:
   /usr/local/lib/perl5			-- for CPAN     (site lib)
   /usr/local/share/perl5		-- for CPAN     (site arch)
   /usr/lib/perl5/vendor_perl		-- 3rd party    (vendor lib)
   /usr/share/perl5/vendor_perl		-- 3rd party    (vendor arch)
   /usr/lib/perl5			-- Fedora       (priv lib)
   /usr/share/perl5			-- Fedora       (arch lib)
   .

Proposal

All Perl modules will be using priv/arch lib directory for installation of Perl modules, therefore %build part of specfile must be changed from:

ExtUtils::MakeMaker Module::Build
%{__perl} Makefile.PL INSTALLDIRS=vendor %{__perl} Build.PL installdirs=vendor
%{__perl} Makefile.PL INSTALLDIRS=perl %{__perl} Build.PL installdirs=core