diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2009-11-20 08:39:07 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2009-11-20 08:39:07 +0000 |
commit | 8120f86bb6b8147193d6adbe054b98c4b95be6f2 (patch) | |
tree | 27c24328e73ed41f3187bf159f72daaddb18665a | |
parent | 50c84065f0a827f2c6098c536f14eba0e004881e (diff) | |
download | aports-8120f86bb6b8147193d6adbe054b98c4b95be6f2.tar.bz2 aports-8120f86bb6b8147193d6adbe054b98c4b95be6f2.tar.xz |
main/spamassassin: build fix
used patch from gentoo to fix DESTDIR issue
-rw-r--r-- | main/spamassassin/APKBUILD | 21 | ||||
-rw-r--r-- | main/spamassassin/spamassassin-3.2.5-DESTDIR.patch | 273 |
2 files changed, 289 insertions, 5 deletions
diff --git a/main/spamassassin/APKBUILD b/main/spamassassin/APKBUILD index e22803fa43..c82a4a2f8c 100644 --- a/main/spamassassin/APKBUILD +++ b/main/spamassassin/APKBUILD @@ -3,21 +3,31 @@ pkgname=spamassassin _realname=Mail-SpamAssassin pkgver=3.2.5 -pkgrel=0 +pkgrel=1 pkgdesc="The Powerful #1 Open-Source Spam Filter" url="http://spamassassin.apache.org" license="Apache" -depends="perl perl-digest-sha1 perl-html-parser perl-net-dns perl-db_file zlib" +depends="perl perl-digest-sha1 perl-html-parser perl-net-dns perl-db_file" makedepends="perl-dev zlib-dev" install= subpackages="$pkgname-doc" -source="http://www.apache.org/dist/spamassassin/source/$_realname-3.2.5.tar.gz" +source="http://www.apache.org/dist/spamassassin/source/$_realname-3.2.5.tar.gz + spamassassin-3.2.5-DESTDIR.patch" + +prepare() { + cd "$srcdir/$_realname-$pkgver" + patch -p1 -i ../spamassassin-3.2.5-DESTDIR.patch || return 1 +} build() { cd "$srcdir/$_realname-$pkgver" PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1 - make || return 1 + make +} + +package() { + cd "$srcdir/$_realname-$pkgver" make DESTDIR="$pkgdir" install install -m755 -D ../../spamd.init $pkgdir/etc/init.d/spamd install -m644 -D ../../spamd.conf $pkgdir/etc/conf.d/spamd.conf @@ -27,4 +37,5 @@ build() { find "$pkgdir" -name perllocal.pod -delete } -md5sums="7fdc1651d0371c4a7f95ac9ae6f828a6 Mail-SpamAssassin-3.2.5.tar.gz" +md5sums="7fdc1651d0371c4a7f95ac9ae6f828a6 Mail-SpamAssassin-3.2.5.tar.gz +45885134199c9427add4d9bcb46311cf spamassassin-3.2.5-DESTDIR.patch" diff --git a/main/spamassassin/spamassassin-3.2.5-DESTDIR.patch b/main/spamassassin/spamassassin-3.2.5-DESTDIR.patch new file mode 100644 index 0000000000..a9765fc55d --- /dev/null +++ b/main/spamassassin/spamassassin-3.2.5-DESTDIR.patch @@ -0,0 +1,273 @@ +--- 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); |