aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-11-20 08:39:07 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-11-20 08:39:07 +0000
commit8120f86bb6b8147193d6adbe054b98c4b95be6f2 (patch)
tree27c24328e73ed41f3187bf159f72daaddb18665a
parent50c84065f0a827f2c6098c536f14eba0e004881e (diff)
downloadaports-8120f86bb6b8147193d6adbe054b98c4b95be6f2.tar.bz2
aports-8120f86bb6b8147193d6adbe054b98c4b95be6f2.tar.xz
main/spamassassin: build fix
used patch from gentoo to fix DESTDIR issue
-rw-r--r--main/spamassassin/APKBUILD21
-rw-r--r--main/spamassassin/spamassassin-3.2.5-DESTDIR.patch273
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);