Skip Menu |

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

Report information
The Basics
Id: 75936
Status: stalled
Priority: 0/
Queue: Module-Build

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

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



Subject: incompatible with EUMM with respect to PREFIX & INSTALLSITELIB
It seems that Module-Build's Compat mode and ExtUtils-MakeMaker handle the PREFIX & INSTALLSITELIB parameters differently. I'm trying to install Module-Build v0.40 using Makefile.PL (i.e. compatibility mode, since I don't have Module-Build itself yet). I'm running Makefile.PL as follows: Makefile.PL INSTALLDIRS=site INSTALLSITELIB=/some/path/lib PREFIX=/other/path ExtUtils-MakeMaker installs this as follows (when I use these options for a EUMM-driven distro): * lib goes to INSTALLSITELIB * everything else goes to PREFIX (e.g. libdoc goes to PREFIX/share/man/man3) However, Module-Build gives preference to PREFIX, completely ignoring INSTALLSITELIB: * everything goes under PREFIX * lib ends up in PREFIX/lib64/perl5/site_perl (INSTALLSITELIB is ignored) It seems that the workaround is to name all 8 INSTALLSITE* parameters and omit PREFIX: Makefile.PL INSTALLDIRS=site \ INSTALLSITELIB=/some/path/lib \ INSTALLSITEARCH=/other/path/... \ INSTALLSITEBIN=/other/path/... \ INSTALLSITEBIN=/other/path/... \ INSTALLSITEMAN1DIR=/other/path/... \ INSTALLSITEMAN3DIR=/other/path/... \ INSTALLSITEHTML1DIR=/other/path/... \ INSTALLSITEHTML3DIR=/other/path/... (Or is there a better way I am missing?) Sam
On Wed Mar 21 08:09:22 2012, https://www.google.com/accounts/o8/id?id=AItOawlVEP5IYeRHpH3ZT4ELVsJ3INWz0Lpegpo wrote: Show quoted text
> It seems that Module-Build's Compat mode and ExtUtils-MakeMaker handle > the PREFIX & INSTALLSITELIB parameters differently. > > I'm trying to install Module-Build v0.40 using Makefile.PL (i.e. > compatibility mode, since I don't have Module-Build itself yet). I'm > running Makefile.PL as follows: > > Makefile.PL INSTALLDIRS=site INSTALLSITELIB=/some/path/lib > PREFIX=/other/path > > ExtUtils-MakeMaker installs this as follows (when I use these options > for a EUMM-driven distro): > * lib goes to INSTALLSITELIB > * everything else goes to PREFIX (e.g. libdoc goes to > PREFIX/share/man/man3) > > However, Module-Build gives preference to PREFIX, completely ignoring > INSTALLSITELIB: > * everything goes under PREFIX > * lib ends up in PREFIX/lib64/perl5/site_perl (INSTALLSITELIB is > ignored) > > It seems that the workaround is to name all 8 INSTALLSITE* parameters > and omit PREFIX: > > Makefile.PL INSTALLDIRS=site \ > INSTALLSITELIB=/some/path/lib \ > INSTALLSITEARCH=/other/path/... \ > INSTALLSITEBIN=/other/path/... \ > INSTALLSITEBIN=/other/path/... \ > INSTALLSITEMAN1DIR=/other/path/... \ > INSTALLSITEMAN3DIR=/other/path/... \ > INSTALLSITEHTML1DIR=/other/path/... \ > INSTALLSITEHTML3DIR=/other/path/... > > (Or is there a better way I am missing?) > > Sam
In ExtUtils::MakeMaker, INSTALL* has a high precedence, while in Module::Build the closest equivalent (--config install*) has a low precedence. I don't think there's an easy way to fix that, the problem is that their internal model of how to decide where to install things is subtly different, you can do the same in either, but you'd have to use a different kind of incantation. When giving only one kind of options that's not an issue but when you mix them it can break. The easiest way out of this would be to simply not use Module::Build::Compat at all. Instead, you'd do something like this: Build.PL --install_path lib=/some/path/lib --prefix /other/path Leon
Subject: Re: [rt.cpan.org #75936] incompatible with EUMM with respect to PREFIX & INSTALLSITELIB
Date: Wed, 21 Mar 2012 08:57:55 -0700
To: bug-Module-Build [...] rt.cpan.org
From: Michael G Schwern <schwern [...] pobox.com>
On 2012.3.21 5:09 AM, https://www.google.com/accounts/o8/id?id=AItOawlVEP5IYeRHpH3ZT4ELVsJ3INWz0Lpegpo via RT wrote: Show quoted text
> I'm trying to install Module-Build v0.40 using Makefile.PL (i.e. > compatibility mode, since I don't have Module-Build itself yet).
There should be no need to do that. Module::Build should be able to install itself from its own Build.PL. The compatibility will never be 100%, and isn't worked on very much now that it's rarely needed. Avoid it when possible. Also avoid PREFIX, it's unnecessarily complex, and make use of INSTALL_BASE instead.
From: sam
Thanks to both of you, all that makes sense. I didn't think I could use Build.PL without having a Module-Build; that's neat! Sam