aboutsummaryrefslogblamecommitdiffstats
path: root/main/perl-mail-spamassassin/spamassassin-3.2.5-DESTDIR.patch
blob: a9765fc55db1928e06756be0e8694c23405d386f (plain) (tree)
















































































































































































































































































                                                                                                         
--- Mail-SpamAssassin-3.2.5/Makefile.PL.old	2009-10-21 23:25:18.000000000 +0200
+++ Mail-SpamAssassin-3.2.5/Makefile.PL	2009-10-21 23:31:28.000000000 +0200
@@ -12,12 +12,12 @@
 
 # avoid stupid 'Argument "6.30_01" isn't numeric in numeric ge (>=)' warnings;
 # strip off the beta subversion noise that causes the trouble.
 $mm_version =~ s/_\S+$//;      # "6.30_01" => "6.30"
 
-if ($mm_version+0 < 5.45) {
-  die "SpamAssassin Makefile.PL requires at least ExtUtils::MakeMaker v5.45";
+if ($mm_version < 6.17) {
+  die "SpamAssassin Makefile.PL requires at least ExtUtils::MakeMaker v6.17";
 }
 
 use constant RUNNING_ON_WINDOWS => ($^O =~ /^(mswin|dos|os2)/oi);
 use constant HAS_DBI => eval { require DBI; };
 
@@ -82,11 +82,10 @@
 );
 
 
 sub parse_arg {
   my($val, $name) = (@_);
-
   if ($val =~ /^($name)=["']?(.*?)["']?$/) {
     return $2;
   } else {
     return undef;
   }
@@ -107,53 +106,27 @@
   return 'yes' if bool($val, $def);
   return 'no';
 }
 
 
-
 my %opt = (
-  'build_spamc'        => undef,
+  'build_spamc'     => undef,
   'enable_ssl'      => undef,
   'contact_address' => undef,
   'destdir'         => undef,
 );
 ARGV: foreach (@ARGV) {
   foreach my $key (keys %opt) {
-    my $val;
-
-    $val = parse_arg($_, uc($key));
+    my $val = parse_arg($_, uc($key));
     if (defined $val) {
       $opt{$key} = $val;
       next ARGV;
     }
   }
 }
 
 
-# Gather some information about what EU::MM offers and/or needs
-my(
-  $mm_knows_destdir,
-  $mm_has_destdir,
-  $mm_has_good_destdir,
-  $mm_needs_destdir,
-);
-
-# MakeMaker prior to 6.11 doesn't support DESTDIR which is needed for
-# packaging with builddir!=destdir. See bug 2388.
-$mm_knows_destdir    = $ExtUtils::MakeMaker::Recognized_Att_Keys{DESTDIR};
-$mm_has_good_destdir = $mm_version >= 6.11;
-# Add DESTDIR hack only if it's requested (and necessary)
-$mm_needs_destdir    = $opt{'destdir'} && !$mm_has_good_destdir;
-$mm_has_destdir      = $mm_knows_destdir || $mm_needs_destdir;
-push(@ATT_KEYS, 'DESTDIR') if $mm_needs_destdir;
-
-# Now make EU::MM understand our extended vars
-foreach my $key (@ATT_KEYS) {
-  $ExtUtils::MakeMaker::Recognized_Att_Keys{$key} = 1;
-}
-
-
 # Gather the rules files in the range 00-69; we do this in perl because
 # it's more portable.  Also, plugin .pm files.
 my @datafiles = map { s,^rules/,,; $_ }
                 grep { -f $_ } (<rules/*.cf>, <rules/*.pm>);
 my $datafiles = join(' ', (grep 
@@ -270,75 +243,27 @@
 
     # We have only this Makefile.PL and this option keeps MakeMaker from
     # asking all questions twice after a 'make dist*'.
     'NORECURS' => 1,
 
-    # bug 5074: perl 5.6.1 (with ExtUtils::MakeMaker 5.45) attempts to
-    # recurse anyway unless this is explicitly specified
-    'DIR' => [ ],
-
     # Don't add META.yml to the MANIFEST for god's sake!
     'NO_META' => 1,
 );
 
 # rules/72_active.cf is built from "rulesrc", but *must* exist before
 # WriteMakefile() is called due to shortcomings in MakeMaker.
 my @FILES_THAT_MUST_EXIST = qw(
         rules/72_active.cf
     );
 
-# That META.yml stuff was introduced with Perl 6.06_03, see
-# <http://archive.develooper.com/makemaker@perl.org/msg00922.html>
-# <http://archive.develooper.com/makemaker@perl.org/msg00984.html>
-delete $makefile{'NO_META'} if $mm_version < 6.06_03;
-
 # make sure certain optional modules are up-to-date if they are installed
 # also see PREREQ_PM above
 my %CURRENT_PM = (
     'Net::DNS' => (RUNNING_ON_WINDOWS ? 0.46 : 0.34),
     'Razor2::Client::Agent' => 2.40,
 );
 
-if ($mm_needs_destdir) {
-  my $error = <<DESTDIR_HACK;
-
-    ***********************************************************************
-    ExtUtils::MakeMaker ${mm_version} doesn't include support for DESTDIR,
-    so if you want to be on the safe side, you might want to upgrade your
-    ExtUtils::MakeMaker to version 6.11 or later. It is available via CPAN.
-
-    You can use either the CPAN shell or go to
-      <http://search.cpan.org/search?module=ExtUtils::MakeMaker>
-    to get an up-to-date version.
-
-    This should only be necessary if you are creating binary packages.
-    ***********************************************************************
-
-DESTDIR_HACK
-  $error =~ s/^ {4}//gm;
-  warn $error;
-}
-elsif ($opt{'destdir'} and !$mm_has_good_destdir) {
-  my $error = <<DESTDIR_BUG;
-
-    ***********************************************************************
-    ExtUtils::MakeMaker ${mm_version} contains bugs that may cause problems
-    in the \"make\" process.  It is recommended that you upgrade
-    ExtUtils::MakeMaker to version 6.11 or later. It is available via CPAN.
-
-    You can use either the CPAN shell or go to
-      <http://search.cpan.org/search?module=ExtUtils::MakeMaker>
-    to get an up-to-date version.
-
-    This should only be necessary if you are creating binary packages.
-    ***********************************************************************
-
-DESTDIR_BUG
-  $error =~ s/^ {4}//gm;
-  warn $error;
-}
-
 
 # All the $(*MAN1*) stuff is empty/zero if Perl was Configured with -Dman1dir=none;
 # however, support site/vendor man1 dirs (bug 5338)
 unless($Config{installman1dir}
     || $Config{installsiteman1dir}
@@ -405,22 +330,19 @@
 
 # Now finish the meta hash and dump the Makefile
 $makefile{EXE_FILES} = [ values %{$makefile{EXE_FILES}} ];
 $makefile{AUTHOR} =~ s/(<.+) at (.+>)/$1\@$2/;
 WriteMakefile(%makefile);
-print "Makefile written by ExtUtils::MakeMaker ${mm_version}\n";
+print "Makefile written by ExtUtils::MakeMaker $mm_version\n";
 
 #######################################################################
 
 package MY;
 
-
 use vars qw(
   $MY_GLOBALS_ARE_SANE
-
   $RUNNING_ON_WINDOWS
-
   @REPOSITORIES
 
   $MACRO_RE
   $EQ_RE
   $EQ
@@ -906,19 +828,10 @@
   init_MY_globals($self);
 
   foreach (@code) {
     # Add our install targets as a dependency to all top-level install targets
     s/^(install(?:_[a-z]+)?\s*::?\s*.*)$/$1 conf__install data__install/;
-
-    # Now do the DESTDIR hack, if necessary.
-    next if !$mm_needs_destdir;
-    # Write the correct path to perllocal.pod
-    next if /installed into/;
-
-    # Replace all other $(INSTALL*) vars (except $(INSTALLDIRS) of course)
-    # with their $(DESTINSTALL*) counterparts
-    s/\Q$(\E(INSTALL(?!DIRS)${MACRO_RE})\Q)\E/\$(DEST$1)/g;
   }
 
   clean_MY_globals($self);
   return join("\n", @code);
 }
@@ -956,32 +869,10 @@
           set_macro($rprefix, macro_ref('PREFIX'));
           $line .= "\n" . macro_def($rprefix);
         }
       }
     }
-
-    if (line_has_macro_def($line, 'MM_VERSION')) {
-      # These macros are just for debugging purposes.
-      $line = join("\n", $line,
-         macro_def(MM_HAS_DESTDIR      => ::yesno($mm_has_destdir)),
-         macro_def(MM_HAS_GOOD_DESTDIR => ::yesno($mm_has_good_destdir)),
-         macro_def(MM_KNOWS_DESTDIR    => ::yesno($mm_knows_destdir)),
-         macro_def(MM_NEEDS_DESTDIR    => ::yesno($mm_needs_destdir)),
-       );
-    }
-
-    # Add DESTDIR support if necessary
-    if ($mm_needs_destdir) {
-      if (line_has_macro_def($line, 'INSTALLDIRS')) {
-        $line .= "\n" . macro_def('DESTDIR');
-      }
-      elsif (line_has_macro_def($line, qr/INSTALL${MACRO_RE}/)) {
-        my $macro = get_macro_name_from_line($line);
-        $line .= "\n" . macro_def('DEST' . $macro,
-                          macro_ref('DESTDIR') . macro_ref($macro));
-      }
-    }
   }
   push(@code, qq{});
 
   # Add some additional target dirs
   {
@@ -1015,13 +906,11 @@
       foreach my $r (@REPOSITORIES) {
         my $macro = 'INSTALL' . repository($r) . $m;
         # The INSTALL* macros.
         push(@code, macro_def($macro));
         # The DESTINSTALL* macros.
-        push(@code, macro_def('DEST' . $macro,
-                      macro_ref('DESTDIR') . macro_ref($macro)))
-          if $mm_has_destdir;
+        push(@code, macro_def('DEST' . $macro, macro_ref('DESTDIR') . macro_ref($macro)));
       }
     }
   }
 
   # Set the PERL_* stuff
@@ -1068,17 +957,12 @@
     # SCRIPT macro is the same for all repositories.
     foreach my $macro (qw(SCRIPT DATA CONF LIB)) {
       push(@code, macro_def('I_' . $macro . 'DIR',
                     macro_ref('INSTALL' . repository($repository, $macro eq 'SCRIPT') . $macro)));
 
-      if ($mm_has_destdir) {
-        push(@code, macro_def('B_' . $macro . 'DIR',
-                      macro_ref('DESTINSTALL' . repository($repository, $macro eq 'SCRIPT') . $macro)));
-      } else {
-        push(@code, macro_def('B_' . $macro . 'DIR',
-                      macro_ref('I_' . $macro . 'DIR')));
-      }
+      push(@code, macro_def('B_' . $macro . 'DIR',
+                    macro_ref('DESTINSTALL' . repository($repository, $macro eq 'SCRIPT') . $macro)));
     }
   }
 
   clean_MY_globals($self);
   return join("\n", @code);