Re: [PATCH] perl/Makefile: use 'installsitelib' even with NO_PERL_MAKEMAKER
- From
Jeff King <peff@peff.net>
- Date
- Feb 6, 2012, 20:26 UTC
- Message-ID
- <20120206202610.GC30776@sigill.intra.peff.net>
- In-Reply-To
- <7328033C-8A11-452D-A927-E81E2DC4ABD6@spotify.com>
On Mon, Feb 06, 2012 at 02:38:20PM -0500, Nicholas Harteau wrote:
Show 12 quoted lines
> > perl/Makefile installs Git.pm into $prefix/lib when ExtUtils::MakeMaker > > is not present. perl can't "use Git;" in that scenario, as $prefix/lib > > isn't in perl's include path. > > > > This patch installs Git.pm into perl's 'installsitelib', generally > > $prefix/lib/perl5/site_perl, so that even when ExtUtils::MakeMaker isn't > > present, Git.pm gets installed in a location where 'use Git;' just > > works. > [...] > > ifdef NO_PERL_MAKEMAKER > > -instdir_SQ = $(subst ','\'',$(prefix)/lib) > > +instdir_SQ = $(subst ','\'',$(subst installsitelib=,'',$(shell $(PERL_PATH_SQ) -V:installsitelib)))
Isn't this a regression if I am a non-root user installing into $HOME/local or similar? With MakeMaker, I end up with this in my perl.mak:
PREFIX = /home/peff/local ... SITEPREFIX = $(PREFIX) ... INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.14.2
which works great. Before your patch, without MakeMaker, git would install into /home/peff/local/lib, which is also OK. But with your patch, it will try:
$ perl -V:installsitelib installsitelib='/usr/local/share/perl/5.14.2';
which is not writable by me, and the install will fail.
I know it's more convenient for some uses, because we know that installsitelib will be in perl's @INC. But git has always installed out of the box for non-root users, and I don't think we want to change that.
-Peff