threads / patch / 11219

patchDon't cache DESTDIR in perl/perl.mak.

Subject: [PATCH] Don't cache DESTDIR in perl/perl.mak.

## tl;dr

5 messages between Dec 10, 2007 and Dec 18, 2007. Diffs are folded; open one to read it.

replies: 4people: 4as markdown or json

Gerrit Pape· Dec 10, 2007, 09:31 UTC · lore

DESTDIR is supposed to be overridden on 'make install' after doing 'make'. Have the automatically generated perl/perl.mak not cache the value of DESTDIR to support that for the perl/ subdirectory also.

Signed-off-by: Gerrit Pape <pape@smarden.org>
---
 Makefile         |    2 +-
 perl/Makefile.PL |    6 +-----
 2 files changed, 2 insertions(+), 6 deletions(-)
Show changes to 2 files +2 −6

Makefile, perl/Makefile.PL

diff --git a/Makefile b/Makefile
index 4cdb84b..3615be0 100644
--- a/Makefile
+++ b/Makefile
@@ -1025,7 +1025,7 @@ install: all
 	$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
 	$(INSTALL) git$X '$(DESTDIR_SQ)$(bindir_SQ)'
 	$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
-	$(MAKE) -C perl prefix='$(prefix_SQ)' install
+	$(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
 ifndef NO_TCLTK
 	$(MAKE) -C gitk-git install
 	$(MAKE) -C git-gui install
diff --git a/perl/Makefile.PL b/perl/Makefile.PL
index 6aecd89..320253e 100644
--- a/perl/Makefile.PL
+++ b/perl/Makefile.PL
@@ -17,9 +17,6 @@ if ($@ || $Error::VERSION < 0.15009) {
 	$pm{'private-Error.pm'} = '$(INST_LIBDIR)/Error.pm';
 }
 
-my %extra;
-$extra{DESTDIR} = $ENV{DESTDIR} if $ENV{DESTDIR};
-
 # redirect stdout, otherwise the message "Writing perl.mak for Git"
 # disrupts the output for the target 'instlibdir'
 open STDOUT, ">&STDERR";
@@ -29,6 +26,5 @@ WriteMakefile(
 	VERSION_FROM    => 'Git.pm',
 	PM		=> \%pm,
 	MAKEFILE	=> 'perl.mak',
-	INSTALLSITEMAN3DIR => '$(SITEPREFIX)/share/man/man3',
-	%extra
+	INSTALLSITEMAN3DIR => '$(SITEPREFIX)/share/man/man3'
 );
-- 
1.5.3.4
Junio C Hamano· Dec 10, 2007, 19:24 UTC · re: Gerrit Pape · lore

Re: [PATCH] Don't cache DESTDIR in perl/perl.mak.

Hmph.  That's reverting this:
commit 4c5cf8c44ce06a79da5bafd4a92e6d6f598cea2e
Author: Eric Wong <normalperson@yhbt.net>
Date:   Sun Aug 13 04:13:25 2006 -0700
    pass DESTDIR to the generated perl/Makefile
    
    Makes life for binary packagers easier, as the Perl modules will
    be installed inside DESTDIR.
    
    Signed-off-by: Eric Wong <normalperson@yhbt.net>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Eric, care to comment?
Eric Wong· Dec 12, 2007, 18:01 UTC · re: Junio C Hamano · lore

Re: [PATCH] Don't cache DESTDIR in perl/perl.mak.

Junio C Hamano <gitster@pobox.com> wrote:
Show 15 quoted lines
> Hmph.  That's reverting this:
> 
> commit 4c5cf8c44ce06a79da5bafd4a92e6d6f598cea2e
> Author: Eric Wong <normalperson@yhbt.net>
> Date:   Sun Aug 13 04:13:25 2006 -0700
> 
>     pass DESTDIR to the generated perl/Makefile
>     
>     Makes life for binary packagers easier, as the Perl modules will
>     be installed inside DESTDIR.
>     
>     Signed-off-by: Eric Wong <normalperson@yhbt.net>
>     Signed-off-by: Junio C Hamano <junkio@cox.net>
> 
> Eric, care to comment?

I used to make a statically linked binary package for working on an ancient box that didn't have a lot of libraries I wanted, and I probably just called `make install' into DESTDIR as a single step without calling `make' alone without DESTDIR argument, or I had DESTDIR set in config.mak

-- 
Eric Wong
Pierre Habouzit· Dec 12, 2007, 20:02 UTC · re: Eric Wong · lore

Re: [PATCH] Don't cache DESTDIR in perl/perl.mak.

On Wed, Dec 12, 2007 at 06:01:48PM +0000, Eric Wong wrote:
Show 22 quoted lines
> Junio C Hamano <gitster@pobox.com> wrote:
> > Hmph.  That's reverting this:
> > 
> > commit 4c5cf8c44ce06a79da5bafd4a92e6d6f598cea2e
> > Author: Eric Wong <normalperson@yhbt.net>
> > Date:   Sun Aug 13 04:13:25 2006 -0700
> > 
> >     pass DESTDIR to the generated perl/Makefile
> >     
> >     Makes life for binary packagers easier, as the Perl modules will
> >     be installed inside DESTDIR.
> >     
> >     Signed-off-by: Eric Wong <normalperson@yhbt.net>
> >     Signed-off-by: Junio C Hamano <junkio@cox.net>
> > 
> > Eric, care to comment?
> 
> I used to make a statically linked binary package for working on an
> ancient box that didn't have a lot of libraries I wanted, and I probably
> just called `make install' into DESTDIR as a single step without calling
> `make' alone without DESTDIR argument, or I had DESTDIR set in
> config.mak
  Actually this fact generated a bug in debian packaging because git is
built then installed twice in different DESTDIRS, then parts of the
install is pruned (the two installs are arch-dependant and
arch-independant files install so it's a very good reason in term of
packaging).
  The fact that perl.mak caches the DESTDIR make it install things in
the wrong place because it doesn't honour make DESTDIR=foo install and
always use the cached value instead, which is wrong.
  I think Gerrit won't care if it's cached or not, he just cares that it
still honours environment if present.
-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org
Gerrit Pape· Dec 18, 2007, 14:25 UTC · re: Pierre Habouzit · lore

Re: [PATCH] Don't cache DESTDIR in perl/perl.mak.

On Wed, Dec 12, 2007 at 09:02:11PM +0100, Pierre Habouzit wrote:
Show 5 quoted lines
> On Wed, Dec 12, 2007 at 06:01:48PM +0000, Eric Wong wrote:
> > Junio C Hamano <gitster@pobox.com> wrote:
> > > Hmph.  That's reverting this:
> > > 
> > > commit 4c5cf8c44ce06a79da5bafd4a92e6d6f598cea2e
Show 20 quoted lines
> > > Eric, care to comment?
> > 
> > I used to make a statically linked binary package for working on an
> > ancient box that didn't have a lot of libraries I wanted, and I probably
> > just called `make install' into DESTDIR as a single step without calling
> > `make' alone without DESTDIR argument, or I had DESTDIR set in
> > config.mak
> 
>   Actually this fact generated a bug in debian packaging because git is
> built then installed twice in different DESTDIRS, then parts of the
> install is pruned (the two installs are arch-dependant and
> arch-independant files install so it's a very good reason in term of
> packaging).
> 
>   The fact that perl.mak caches the DESTDIR make it install things in
> the wrong place because it doesn't honour make DESTDIR=foo install and
> always use the cached value instead, which is wrong.
> 
>   I think Gerrit won't care if it's cached or not, he just cares that it
> still honours environment if present.
Yes, precisely.  Thanks, Gerrit.

← back to recent threads