diff --git a/main/bacula/APKBUILD b/main/bacula/APKBUILD
index 9b9f38b827773ff9e2fc319124254223f52e4799..cf2f7f545d25cb17fd492dcc212dbfcf00715e94 100644
--- a/main/bacula/APKBUILD
+++ b/main/bacula/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Leonardo Arena <rnalrd@gmail.com>
 pkgname="bacula"
 pkgver=5.0.3
-pkgrel=1
+pkgrel=2
 pkgdesc="Enterprise ready, network based backup program"
 url="http://www.bacula.org"
 license="GPL2"
diff --git a/main/bacula/bacula.post-install b/main/bacula/bacula.post-install
index e64a59915d0523e5031fb7c97f2066081957f4d1..c134e8e4fa78ad89a4851ed092cc2d6cf0400a53 100644
--- a/main/bacula/bacula.post-install
+++ b/main/bacula/bacula.post-install
@@ -1,5 +1,5 @@
 #!/bin/sh
-mkdir /var/lib/bacula /var/log/bacula
+mkdir /var/lib/bacula /var/log/bacula &>/dev/null
 for dir in /var/bacula /var/log/bacula /var/run/bacula /var/lib/bacula /etc/bacula/scripts/make_catalog_backup*
 do
 	chown bacula.bacula $dir
diff --git a/main/perl-db_file/APKBUILD b/main/perl-db_file/APKBUILD
index 7f3d6875d3897138ab10bc8216483af31efb80ed..7a46989d1e9f5cec02940853b02e2c4eb31bb1a6 100644
--- a/main/perl-db_file/APKBUILD
+++ b/main/perl-db_file/APKBUILD
@@ -3,7 +3,7 @@
 pkgname=perl-db_file
 _realname=DB_File
 pkgver=1.820
-pkgrel=2
+pkgrel=3
 pkgdesc="Perl5 access to Berkeley DB"
 url="http://search.cpan.org/~pmqs/DB_File-1.820/"
 license="GPL PerlArtistic"
diff --git a/main/perl-digest-sha1/APKBUILD b/main/perl-digest-sha1/APKBUILD
index 044d84423beccfce07dca3056db6e070f4ea29ee..25b1fb8a2146579ba94c08516fe8c8722e48c6cc 100644
--- a/main/perl-digest-sha1/APKBUILD
+++ b/main/perl-digest-sha1/APKBUILD
@@ -2,8 +2,8 @@
 # Maintainer:  Leonardo Arena <rnalrd@gmail.com>
 pkgname=perl-digest-sha1
 _realname=Digest-SHA1
-pkgver=2.12
-pkgrel=1
+pkgver=2.13
+pkgrel=0
 pkgdesc="Perl interface to the SHA-1 algorithm"
 url="http://search.cpan.org/~gaas/Digest-SHA1-2.12/"
 license="GPL PerlArtistic"
@@ -23,4 +23,4 @@ build() {
 	find "$pkgdir" -name perllocal.pod -delete
 }
 
-md5sums="eeb0292868801a202bd7ead87b291374  Digest-SHA1-2.12.tar.gz"
+md5sums="bd22388f268434f2b24f64e28bf1aa35  Digest-SHA1-2.13.tar.gz"
diff --git a/main/perl-html-parser/APKBUILD b/main/perl-html-parser/APKBUILD
index 56c1efd5ec523daed935b61db0eb71b881f26a72..ea74f45b035bb49eb0d2608d9439096028499e10 100644
--- a/main/perl-html-parser/APKBUILD
+++ b/main/perl-html-parser/APKBUILD
@@ -2,8 +2,8 @@
 # Maintainer:  Leonardo Arena <rnalrd@gmail.com>
 pkgname=perl-html-parser
 _realname=HTML-Parser
-pkgver=3.66
-pkgrel=1
+pkgver=3.68
+pkgrel=0
 pkgdesc="Parse section of HTML documents"
 url="http://search.cpan.org/~gaas/HTML-Parser-3.60/"
 license="GPL PerlArtistic"
@@ -23,4 +23,4 @@ build() {
 	find "$pkgdir" -name perllocal.pod -delete
 }
 
-md5sums="0ef1cad08c85f56ca2dfcdafdc820842  HTML-Parser-3.66.tar.gz"
+md5sums="5550b2da7aa94341f1e8a17a4ac20c68  HTML-Parser-3.68.tar.gz"
diff --git a/main/perl-libwww/APKBUILD b/main/perl-libwww/APKBUILD
index 283b0455db0090dafe21645ef2d22ea8451d6bfc..6b4d4cda0e52217529dbf781f9df650c5f230964 100644
--- a/main/perl-libwww/APKBUILD
+++ b/main/perl-libwww/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer:  Leonardo Arena <rnalrd@gmail.com>
 pkgname=perl-libwww
 _realname=libwww-perl
-pkgver=5.834
+pkgver=5.837
 pkgrel=0
 pkgdesc="Perl World Wide Web library"
 url="http://search.cpan.org/~gaas/libwww-perl-5.834/"
@@ -28,4 +28,4 @@ package() {
 	find "$pkgdir" -name perllocal.pod -delete
 }
 
-md5sums="f2ed8a461f76556c9caed9087f47c86c  libwww-perl-5.834.tar.gz"
+md5sums="9bbf1bce482b0bac98bb4f04253c03d0  libwww-perl-5.837.tar.gz"
diff --git a/main/perl-mail-dkim/APKBUILD b/main/perl-mail-dkim/APKBUILD
index 7eb62b2e68c5aaa37746788af74b89e853d4fe72..27467db1414328ed4e6ae1fe7a86cc14c8708a59 100644
--- a/main/perl-mail-dkim/APKBUILD
+++ b/main/perl-mail-dkim/APKBUILD
@@ -1,7 +1,7 @@
 # Maintainer:  Leonardo Arena <rnalrd@gmail.com>
 pkgname=perl-mail-dkim
 _realname=Mail-DKIM
-pkgver=0.37
+pkgver=0.38
 pkgrel=0
 pkgdesc="Signs/verifies Internet mail with DKIM/DomainKey signatures"
 url="http://search.cpan.org/~jaslong/Mail-DKIM-0.36/"
@@ -22,4 +22,4 @@ build() {
 	find "$pkgdir" -name perllocal.pod -delete
 }
 
-md5sums="f3e84ec6b5e42d4cbcc7c42ea2900649  Mail-DKIM-0.37.tar.gz"
+md5sums="bdf2233c9b1c9a4615c7396b660feb7a  Mail-DKIM-0.38.tar.gz"
diff --git a/main/perl-net-dns/APKBUILD b/main/perl-net-dns/APKBUILD
index 7f3580d0613cacddf208c78a5d5b87a11c1b9152..e01a211d06b5a4a2132aeed641748665733e3499 100644
--- a/main/perl-net-dns/APKBUILD
+++ b/main/perl-net-dns/APKBUILD
@@ -3,7 +3,7 @@
 pkgname=perl-net-dns
 _realname=Net-DNS
 pkgver=0.66
-pkgrel=1
+pkgrel=2
 pkgdesc="Perl interface to the DNS resolver"
 url="http://search.cpan.org/dist/Archive-Zip/"
 license="unknown"
diff --git a/main/perl-netaddr-ip/APKBUILD b/main/perl-netaddr-ip/APKBUILD
index b23fd63ab5fb97280253a4f48b9404664b1f6bba..f6491b938fab9dbdc0d682b43519ac5ecb2cb688 100644
--- a/main/perl-netaddr-ip/APKBUILD
+++ b/main/perl-netaddr-ip/APKBUILD
@@ -2,8 +2,8 @@
 # Maintainer:  Leonardo Arena <rnalrd@gmail.com>
 pkgname=perl-netaddr-ip
 _realname=NetAddr-IP
-pkgver=4.028
-pkgrel=1
+pkgver=4.034
+pkgrel=0
 pkgdesc="Perl extension for managing IPv4 and IPv6 addresses and subnets"
 url="http://search.cpan.org/~miker/NetAddr-IP-$pkgver/"
 license="Unknown"
@@ -23,4 +23,4 @@ build() {
 	find "$pkgdir" -name perllocal.pod -delete
 }
 
-md5sums="fc1e79db336d0acbe99dff559080c5d1  NetAddr-IP-4.028.tar.gz"
+md5sums="830b05a730ee4dfdde528e3100e92024  NetAddr-IP-4.034.tar.gz"
diff --git a/main/perl-time-hires/APKBUILD b/main/perl-time-hires/APKBUILD
index 6c2dc445b6eccdbb4653251f90c180306fa2c24a..4f7de89e789f46e00355176720ad7f1754098b07 100644
--- a/main/perl-time-hires/APKBUILD
+++ b/main/perl-time-hires/APKBUILD
@@ -2,7 +2,7 @@
 pkgname=perl-time-hires
 _realname=Time-HiRes
 pkgver=1.9721
-pkgrel=1
+pkgrel=2
 pkgdesc="High resolution alarm, sleep, gettimeofday, interval timers"
 url="http://search.cpan.org/~jhi/Time-HiRes-${pkgver}/"
 license="unknown"
diff --git a/main/spamassassin/APKBUILD b/main/spamassassin/APKBUILD
index 87ec63dced2fa90ce5378ef246d8ecf6660d3305..25134e680580e398ee04922be276c66c4ee891c6 100644
--- a/main/spamassassin/APKBUILD
+++ b/main/spamassassin/APKBUILD
@@ -2,7 +2,7 @@
 pkgname=spamassassin
 _realname=Mail-SpamAssassin
 pkgver=3.3.1
-pkgrel=3
+pkgrel=4
 pkgdesc="The Powerful #1 Open-Source Spam Filter"
 url="http://spamassassin.apache.org"
 license="Apache"
@@ -10,10 +10,12 @@ depends="perl perl-digest-sha1 perl-time-hires perl-netaddr-ip perl-mail-dkim pe
 makedepends="perl-dev zlib-dev"
 install=
 subpackages="$pkgname-doc"
-source="http://www.apache.org/dist/spamassassin/source/$_realname-$pkgver.tar.gz"
+source="http://www.apache.org/dist/spamassassin/source/$_realname-$pkgver.tar.gz
+	spamassassin-3.3.1-PERL-5-12.patch"
 
 prepare() {
 	cd "$srcdir/$_realname-$pkgver"
+	patch -p2 < ../spamassassin-3.3.1-PERL-5-12.patch || return 1
 }
 
 build() {
@@ -34,4 +36,5 @@ package() {
 	find "$pkgdir" -name perllocal.pod -delete
 }
 
-md5sums="5a93f81fda315411560ff5da099382d2  Mail-SpamAssassin-3.3.1.tar.gz"
+md5sums="5a93f81fda315411560ff5da099382d2  Mail-SpamAssassin-3.3.1.tar.gz
+aea0b415deb2a827c50653dafb80d6e4  spamassassin-3.3.1-PERL-5-12.patch"
diff --git a/main/spamassassin/spamassassin-3.3.1-PERL-5-12.patch b/main/spamassassin/spamassassin-3.3.1-PERL-5-12.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5b4039c4d5ccb23e58fa6e4c881557b2b246c91c
--- /dev/null
+++ b/main/spamassassin/spamassassin-3.3.1-PERL-5-12.patch
@@ -0,0 +1,240 @@
+diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Dns.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Dns.pm
+--- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Dns.pm	2010-03-16 10:49:21.000000000 -0400
++++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Dns.pm	2010-07-20 15:54:23.000000000 -0400
+@@ -754,7 +754,7 @@
+   dbg("dns: entering helper-app run mode");
+   $self->{old_slash} = $/;              # Razor pollutes this
+   %{$self->{old_env}} = ();
+-  if ( defined %ENV ) {
++  if ( %ENV ) {
+     # undefined values in %ENV can result due to autovivification elsewhere,
+     # this prevents later possible warnings when we restore %ENV
+     while (my ($key, $value) = each %ENV) {
+Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin: Dns.pm~
+diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/HTML.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/HTML.pm
+--- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/HTML.pm	2010-03-16 10:49:21.000000000 -0400
++++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/HTML.pm	2010-07-20 15:52:50.000000000 -0400
+@@ -191,7 +191,7 @@
+   my $self = shift;
+   my %options = @_;
+ 
+-  return join('', @{ $self->{text} }) unless keys %options;
++  return join('', @{ $self->{text} }) unless %options;
+ 
+   my $mask;
+   while (my ($k, $v) = each %options) {
+Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin: HTML.pm~
+diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/BodyEval.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/BodyEval.pm
+--- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/BodyEval.pm	2010-03-16 10:49:21.000000000 -0400
++++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/BodyEval.pm	2010-07-20 16:04:57.000000000 -0400
+@@ -119,7 +119,7 @@
+         }
+ 
+ 	# If there are no words, mark if there's at least 1 image ...
+-	if (keys %html == 0 && exists $pms->{html}{inside}{img}) {
++  if (!%html && exists $pms->{html}{inside}{img}) {
+ 	  # Use "\n" as the mark since it can't ever occur normally
+ 	  $html{"\n"}=1;
+ 	}
+Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin: BodyEval.pm~
+Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin: check.patch
+diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/Check.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/Check.pm
+--- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/Check.pm	2010-03-16 10:49:21.000000000 -0400
++++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/Check.pm	2010-07-20 16:03:00.000000000 -0400
+@@ -307,64 +307,51 @@
+   my $package_name = __PACKAGE__;
+   my $methodname = $package_name."::_".$ruletype."_tests_".$clean_priority;
+ 
+-  if (defined &{$methodname} && !$doing_user_rules) {
+-run_compiled_method:
+-  # dbg("rules: run_generic_tests - calling %s", $methodname);
+-    my $t = Mail::SpamAssassin::Timeout->new({ deadline => $master_deadline });
+-    my $err = $t->run(sub {
+-      no strict "refs";
+-      $methodname->($pms, @{$opts{args}});
+-    });
+-    if ($t->timed_out() && $master_deadline && time > $master_deadline) {
+-      info("check: exceeded time limit in $methodname, skipping further tests");
+-      $pms->{deadline_exceeded} = 1;
+-    }
+-    return;
+-  }
++  if (!defined &{$methodname} || $doing_user_rules) {
+ 
+-  # use %nopts for named parameter-passing; it's more friendly to future-proof
+-  # subclassing, since new parameters can be added without breaking third-party
+-  # subclassed implementations of this plugin.
+-  my %nopts = (
+-    ruletype => $ruletype,
+-    doing_user_rules => $doing_user_rules,
+-    priority => $priority,
+-    clean_priority => $clean_priority
+-  );
+-
+-  # build up the eval string...
+-  $self->{evalstr_methodname} = $methodname;
+-  $self->{evalstr_chunk_current_methodname} = undef;
+-  $self->{evalstr_chunk_methodnames} = [];
+-  $self->{evalstr_chunk_prefix} = [];  # stack (array) of source code sections
+-  $self->{evalstr} = ''; $self->{evalstr_l} = 0;
+-  $self->{evalstr2} = '';
+-  $self->begin_evalstr_chunk($pms);
+-
+-  $self->push_evalstr_prefix($pms, '
+-      # start_rules_plugin_code '.$ruletype.' '.$priority.'
+-      my $scoresptr = $self->{conf}->{scores};
+-  ');
+-  if (defined $opts{pre_loop_body}) {
+-    $opts{pre_loop_body}->($self, $pms, $conf, %nopts);
+-  }
+-  $self->add_evalstr($pms,
+-                     $self->start_rules_plugin_code($ruletype, $priority) );
+-  while (my($rulename, $test) = each %{$opts{testhash}->{$priority}}) {
+-    $opts{loop_body}->($self, $pms, $conf, $rulename, $test, %nopts);
+-  }
+-  if (defined $opts{post_loop_body}) {
+-    $opts{post_loop_body}->($self, $pms, $conf, %nopts);
+-  }
++    # use %nopts for named parameter-passing; it's more friendly
++    # to future-proof subclassing, since new parameters can be added without
++    # breaking third-party subclassed implementations of this plugin.
++    my %nopts = (
++      ruletype => $ruletype,
++      doing_user_rules => $doing_user_rules,
++      priority => $priority,
++      clean_priority => $clean_priority
++    );
++
++    # build up the eval string...
++    $self->{evalstr_methodname} = $methodname;
++    $self->{evalstr_chunk_current_methodname} = undef;
++    $self->{evalstr_chunk_methodnames} = [];
++    $self->{evalstr_chunk_prefix} = []; # stack (array) of source code sections
++    $self->{evalstr} = ''; $self->{evalstr_l} = 0;
++    $self->{evalstr2} = '';
++    $self->begin_evalstr_chunk($pms);
++
++    $self->push_evalstr_prefix($pms, '
++        # start_rules_plugin_code '.$ruletype.' '.$priority.'
++        my $scoresptr = $self->{conf}->{scores};
++    ');
++    if (defined $opts{pre_loop_body}) {
++      $opts{pre_loop_body}->($self, $pms, $conf, %nopts);
++    }
++    $self->add_evalstr($pms,
++                       $self->start_rules_plugin_code($ruletype, $priority) );
++    while (my($rulename, $test) = each %{$opts{testhash}->{$priority}}) {
++      $opts{loop_body}->($self, $pms, $conf, $rulename, $test, %nopts);
++    }
++    if (defined $opts{post_loop_body}) {
++      $opts{post_loop_body}->($self, $pms, $conf, %nopts);
++    }
+ 
+-  $self->flush_evalstr($pms, 'run_generic_tests');
+-  $self->free_ruleset_source($pms, $ruletype, $priority);
++    $self->flush_evalstr($pms, 'run_generic_tests');
++    $self->free_ruleset_source($pms, $ruletype, $priority);
+ 
+-  # clear out a previous version of this method
+-  undef &{$methodname};
++    # clear out a previous version of this method
++    undef &{$methodname};
+ 
+-  # generate the loop that goes through each line...
+-  my $evalstr = <<"EOT";
++    # generate the loop that goes through each line...
++    my $evalstr = <<"EOT";
+   {
+     package $package_name;
+ 
+@@ -373,40 +360,51 @@
+     sub $methodname {
+ EOT
+ 
+-  for my $chunk_methodname (@{$self->{evalstr_chunk_methodnames}}) {
+-    $evalstr .= "      $chunk_methodname(\@_);\n";
+-  }
++    for my $chunk_methodname (@{$self->{evalstr_chunk_methodnames}}) {
++      $evalstr .= "      $chunk_methodname(\@_);\n";
++    }
+ 
+-  $evalstr .= <<"EOT";
++    $evalstr .= <<"EOT";
+     }
+ 
+     1;
+   }
+ EOT
+ 
+-  delete $self->{evalstr};   # free up some RAM before we eval()
+-  delete $self->{evalstr2};
+-  delete $self->{evalstr_methodname};
+-  delete $self->{evalstr_chunk_current_methodname};
+-  delete $self->{evalstr_chunk_methodnames};
+-  delete $self->{evalstr_chunk_prefix};
+-
+-  dbg("rules: run_generic_tests - compiling eval code: %s, priority %s",
+-      $ruletype, $priority);
+-# dbg("rules: eval code to compile: $evalstr");
+-  my $eval_result;
+-  { my $timer = $self->{main}->time_method('compile_gen');
+-    $eval_result = eval($evalstr);
+-  }
+-  if (!$eval_result) {
+-    my $eval_stat = $@ ne '' ? $@ : "errno=$!";  chomp $eval_stat;
+-    warn "rules: failed to compile $ruletype tests, skipping:\n".
+-         "\t($eval_stat)\n";
+-    $pms->{rule_errors}++;
+-  }
+-  else {
++    delete $self->{evalstr};   # free up some RAM before we eval()
++    delete $self->{evalstr2};
++    delete $self->{evalstr_methodname};
++    delete $self->{evalstr_chunk_current_methodname};
++    delete $self->{evalstr_chunk_methodnames};
++    delete $self->{evalstr_chunk_prefix};
++
++    dbg("rules: run_generic_tests - compiling eval code: %s, priority %s",
++        $ruletype, $priority);
++  # dbg("rules: eval code to compile: $evalstr");
++    my $eval_result;
++    { my $timer = $self->{main}->time_method('compile_gen');
++      $eval_result = eval($evalstr);
++    }
++    if (!$eval_result) {
++      my $eval_stat = $@ ne '' ? $@ : "errno=$!";  chomp $eval_stat;
++      warn "rules: failed to compile $ruletype tests, skipping:\n".
++           "\t($eval_stat)\n";
++      $pms->{rule_errors}++;
++      return;
++    }
+     dbg("rules: compiled $ruletype tests");
+-    goto run_compiled_method;
++  }
++
++#run_compiled_method:
++# dbg("rules: run_generic_tests - calling %s", $methodname);
++  my $t = Mail::SpamAssassin::Timeout->new({ deadline => $master_deadline });
++  my $err = $t->run(sub {
++    no strict "refs";
++    $methodname->($pms, @{$opts{args}});
++  });
++  if ($t->timed_out() && $master_deadline && time > $master_deadline) {
++    info("check: exceeded time limit in $methodname, skipping further tests");
++    $pms->{deadline_exceeded} = 1;
+   }
+ }
+ 
+diff -ur a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
+--- a/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm	2010-03-16 10:49:21.000000000 -0400
++++ b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm	2010-07-20 16:06:47.000000000 -0400
+@@ -498,7 +498,7 @@
+     # perhaps just limit to test, and image?
+     next if ($ctype eq 'application/ics');
+ 
+-    my $cte = lc $p->get_header('content-transfer-encoding') || '';
++    my $cte = lc($p->get_header('content-transfer-encoding') || '');
+     next if ($cte !~ /^base64$/);
+     foreach my $l ( @{$p->raw()} ) {
+       my $len = length $l;
+Only in b/Mail-SpamAssassin-3.3.1/lib/Mail/SpamAssassin/Plugin: MIMEEval.pm~