--- 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 $_ } (, ); 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 -# -# -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 = < - 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 = < - 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);