From 908724984ac0dd16b2d78a3a39948143463a44fb Mon Sep 17 00:00:00 2001 From: Vincent Danjean Date: Fri, 15 Aug 2008 20:29:55 +0200 Subject: [PATCH] Add support for DESTDIR Distributions (such as Debian) needs a staging area when building the package Signed-off-by: Galen Charlton --- Makefile.PL | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index bc915f26ee..02fd055dc4 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -608,8 +608,9 @@ WriteMakefile( PM => $file_map, # Man pages generated from POD - INSTALLMAN1DIR => File::Spec->catdir($target_directories->{'MAN_DIR'}, 'man1'), - INSTALLMAN3DIR => File::Spec->catdir($target_directories->{'MAN_DIR'}, 'man3'), + # ExtUtils::MakeMaker already manage $(DESTDIR) + INSTALLMAN1DIR => File::Spec->catdir(_strip_destdir($target_directories->{'MAN_DIR'}), 'man1'), + INSTALLMAN3DIR => File::Spec->catdir(_strip_destdir($target_directories->{'MAN_DIR'}), 'man3'), PL_FILES => $pl_files, ); @@ -1275,6 +1276,7 @@ sub get_target_directories { _get_env_overrides(\%dirmap); _get_argv_overrides(\%dirmap); + _add_destdir(\%dirmap); return \%dirmap, \%skipdirs; } @@ -1323,6 +1325,20 @@ sub _get_argv_overrides { @ARGV = @new_argv; } +sub _strip_destdir { + my $dir = shift; + $dir =~ s/^\$\(DESTDIR\)//; + return $dir; +} + +sub _add_destdir { + my $dirmap = shift; + + foreach my $key (keys %$dirmap) { + $dirmap->{$key} = '$(DESTDIR)'.$dirmap->{$key}; + } +} + sub display_configuration { my $config = shift; my $dirmap = shift; @@ -1420,9 +1436,10 @@ install :: all install_koha set_koha_ownership set_koha_permissions warn_koha_en $install .= "\n"; $install .= "set_koha_ownership ::\n"; +# Do not try to change ownership if DESTDIR is set if ($config{'INSTALL_MODE'} eq 'standard' and $config{'KOHA_USER'} ne "root") { foreach my $key (sort keys %$target_directories) { - $install .= "\t\$(NOECHO) chown -R $config{'KOHA_USER'}:$config{'KOHA_GROUP'} \$(KOHA_DEST_$key)\n" + $install .= "\t\$(NOECHO) if test -z \"\$(DESTDIR)\"; then chown -R $config{'KOHA_USER'}:$config{'KOHA_GROUP'} \$(KOHA_DEST_$key); fi\n" unless ($config{'INSTALL_ZEBRA'} ne "yes" and $key =~ /ZEBRA/) or exists $skip_directories->{$key}; } } else { -- 2.39.2