Skip Menu |

This queue is for tickets about the Module-Build CPAN distribution.

Report information
The Basics
Id: 57279
Status: resolved
Priority: 0/
Queue: Module-Build

People
Owner: Nobody in particular
Requestors: marcoep [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.3607
Fixed in: (no value)



Subject: fakeinstall doesn't honour PERL_MM_OPT/INSTALL_BASE
Hi there, It looks like "fakeinstall" doesn't honour the PERL_MM_OPT/INSTALL_BASE environment variable. Indeed: <code> $ echo $PERL_MM_OPT INSTALL_BASE=/data/home/poleggim/myroot/usr/local/lib/perl5 and "install" does fine what it's meant to: $ perl Build.PL && build install --verbose Creating new 'MYMETA.yml' with configuration results ... Writing /data/home/poleggim/myroot/usr/local/lib/perl5/lib/perl5/sun4-solaris/auto/GE/Justice/Editique/.packlist </code> but "fakeinstall" still looks into the system directories: <code> $ perl Build.PL && build fakeinstall --verbose Creating new 'MYMETA.yml' with configuration results ... !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING: Can't create '/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/GE/Justice/Editique' Do not have write permissions on '/usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/GE/Justice/Editique' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Writing /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris/auto/GE/Justice/Editique/.packlist </code> N.B. I use local::lib to set up a perl sandbox, which results in PERL_MM_OPT/INSTALL_BASE, PERL5LIB=and PATH being adjusted accordingly. $ perl -v This is perl, v5.8.7 built for sun4-solaris Cheers, ^m'e
Subject: Re: [rt.cpan.org #57279] fakeinstall doesn't honour PERL_MM_OPT/INSTALL_BASE
Date: Fri, 07 May 2010 12:59:50 -0700
To: bug-Module-Build [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2010.5.7 6:02 AM, Marco Emilio Poleggi via RT wrote: Show quoted text
> It looks like "fakeinstall" doesn't honour the PERL_MM_OPT/INSTALL_BASE > environment variable. Indeed: > > <code> > $ echo $PERL_MM_OPT > INSTALL_BASE=/data/home/poleggim/myroot/usr/local/lib/perl5 > > and "install" does fine what it's meant to: > > $ perl Build.PL && build install --verbose > Creating new 'MYMETA.yml' with configuration results > ... > Writing > /data/home/poleggim/myroot/usr/local/lib/perl5/lib/perl5/sun4-solaris/auto/GE/Justice/Editique/.packlist > > </code>
There is a problem, but its not PERL_MM_OPT. PERL_MM_OPT is an environment variable honored by MakeMaker (ie. a Makefile.PL) not by Module::Build. local::lib is writing a ~/.modulebuildrc file to control Module::Build similar to how it sets PERL_MM_OPT. It has set --install_base for only the install target, not fakeinstall. Best way to fix it is to change the target from "install --install_base" to "Build_PL --install_base" (the equivalent of perl Build.PL --install_base) so it will affect all targets. I'll send the local::lib folks a note on how to fix it. -- I do have a cause though. It's obscenity. I'm for it. - Tom Lehrer
Subject: Re: [rt.cpan.org #57279] fakeinstall doesn't honour PERL_MM_OPT/INSTALL_BASE
Date: Fri, 7 May 2010 16:07:48 -0400
To: bug-Module-Build [...] rt.cpan.org
From: David Golden <dagolden [...] cpan.org>
On Fri, May 7, 2010 at 4:00 PM, Michael G Schwern via RT <bug-Module-Build@rt.cpan.org> wrote: Show quoted text
> local::lib is writing a ~/.modulebuildrc file to control Module::Build similar > to how it sets PERL_MM_OPT.  It has set --install_base for only the install > target, not fakeinstall.  Best way to fix it is to change the target from > "install --install_base" to "Build_PL --install_base" (the equivalent of perl > Build.PL --install_base) so it will affect all targets. > > I'll send the local::lib folks a note on how to fix it.
FWIW, now that M::B has PERL_MB_OPT, they should be requiring a newer M::B and using that instead of .modulebuildrc anyway. -- David
Subject: Re: [rt.cpan.org #57279] fakeinstall doesn't honour PERL_MM_OPT/INSTALL_BASE
Date: Fri, 07 May 2010 14:43:06 -0700
To: bug-Module-Build [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2010.5.7 1:08 PM, David Golden via RT wrote: Show quoted text
> On Fri, May 7, 2010 at 4:00 PM, Michael G Schwern via RT > <bug-Module-Build@rt.cpan.org> wrote:
>> local::lib is writing a ~/.modulebuildrc file to control Module::Build similar >> to how it sets PERL_MM_OPT. It has set --install_base for only the install >> target, not fakeinstall. Best way to fix it is to change the target from >> "install --install_base" to "Build_PL --install_base" (the equivalent of perl >> Build.PL --install_base) so it will affect all targets. >> >> I'll send the local::lib folks a note on how to fix it.
> > FWIW, now that M::B has PERL_MB_OPT, they should be requiring a newer > M::B and using that instead of .modulebuildrc anyway.
Since local::lib wants to make a permanent change to the way Perl modules install, its far easier to write a file in the user's home directory than to try and make an environment variable permanent, figuring out what shell they have and altering their shell configuration files. -- 39. Not allowed to ask for the day off due to religious purposes, on the basis that the world is going to end, more than once. -- The 213 Things Skippy Is No Longer Allowed To Do In The U.S. Army http://skippyslist.com/list/
Subject: Re: [rt.cpan.org #57279] fakeinstall doesn't honour PERL_MM_OPT/INSTALL_BASE
Date: Fri, 7 May 2010 23:09:29 -0400
To: bug-Module-Build [...] rt.cpan.org
From: David Golden <dagolden [...] cpan.org>
On Fri, May 7, 2010 at 5:43 PM, Michael G Schwern via RT <bug-Module-Build@rt.cpan.org> wrote: Show quoted text
>> FWIW, now that M::B has PERL_MB_OPT, they should be requiring a newer >> M::B and using that instead of .modulebuildrc anyway.
> > Since local::lib wants to make a permanent change to the way Perl modules > install, its far easier to write a file in the user's home directory than to > try and make an environment variable permanent, figuring out what shell they > have and altering their shell configuration files.
But they don't do what you describe. They write a .modulebuildrc into the local lib directory and give instructions to alter the shell to emit MODULEBULDRC to point to the config file. It's the worst of both worlds. -- David
Subject: Re: [rt.cpan.org #57279] fakeinstall doesn't honour PERL_MM_OPT/INSTALL_BASE
Date: Fri, 07 May 2010 23:09:38 -0700
To: bug-Module-Build [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2010.5.7 8:10 PM, David Golden via RT wrote: Show quoted text
> Queue: Module-Build > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=57279 > > > On Fri, May 7, 2010 at 5:43 PM, Michael G Schwern via RT > <bug-Module-Build@rt.cpan.org> wrote:
>>> FWIW, now that M::B has PERL_MB_OPT, they should be requiring a newer >>> M::B and using that instead of .modulebuildrc anyway.
>> >> Since local::lib wants to make a permanent change to the way Perl modules >> install, its far easier to write a file in the user's home directory than to >> try and make an environment variable permanent, figuring out what shell they >> have and altering their shell configuration files.
> > But they don't do what you describe. They write a .modulebuildrc into > the local lib directory and give instructions to alter the shell to > emit MODULEBULDRC to point to the config file. It's the worst of both > worlds.
Oh, eww. -- Defender of Lexical Encapsulation
"Fixed" by having fakeinstall use install defaults if no fakeinstall defaults are provided. Patched in repo.
Now that there has been a stable Module::Build release, I'm marking this "patched" issue as "resolved".