diff options
author | Christian Hartmann <ian@gentoo.org> | 2007-07-29 09:42:18 +0000 |
---|---|---|
committer | Christian Hartmann <ian@gentoo.org> | 2007-07-29 09:42:18 +0000 |
commit | 5684200d02dec979f148305aaa08b7867dccb9ef (patch) | |
tree | c41eda53c528b135788f5a44057ff3c7480d5fc2 /mail-filter | |
parent | Version bump for bug 184182, thanks to flo for reporting. (diff) | |
download | gentoo-2-5684200d02dec979f148305aaa08b7867dccb9ef.tar.gz gentoo-2-5684200d02dec979f148305aaa08b7867dccb9ef.tar.bz2 gentoo-2-5684200d02dec979f148305aaa08b7867dccb9ef.zip |
Versionbump bug #186668; fixed upstream bug #5574; reenabled tests
(Portage version: 2.1.3)
Diffstat (limited to 'mail-filter')
5 files changed, 365 insertions, 1 deletions
diff --git a/mail-filter/spamassassin/ChangeLog b/mail-filter/spamassassin/ChangeLog index 4e172522d592..1a33274de485 100644 --- a/mail-filter/spamassassin/ChangeLog +++ b/mail-filter/spamassassin/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for mail-filter/spamassassin # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/mail-filter/spamassassin/ChangeLog,v 1.150 2007/06/26 05:48:39 corsair Exp $ +# $Header: /var/cvsroot/gentoo-x86/mail-filter/spamassassin/ChangeLog,v 1.151 2007/07/29 09:42:18 ian Exp $ + +*spamassassin-3.2.2 (29 Jul 2007) + + 29 Jul 2007; Christian Hartmann <ian@gentoo.org> + +files/3.2.2-upstream-5574-fix.patch, + +files/3.2.2-upstream-5574-testcase.patch, +spamassassin-3.2.2.ebuild: + Versionbump bug #186668; fixed upstream bug #5574; reenabled tests 26 Jun 2007; Markus Rothe <corsair@gentoo.org> spamassassin-3.2.1-r1.ebuild: diff --git a/mail-filter/spamassassin/files/3.2.2-upstream-5574-fix.patch b/mail-filter/spamassassin/files/3.2.2-upstream-5574-fix.patch new file mode 100644 index 000000000000..41335394326c --- /dev/null +++ b/mail-filter/spamassassin/files/3.2.2-upstream-5574-fix.patch @@ -0,0 +1,29 @@ +Index: spamd/spamd.raw +=================================================================== +--- spamd/spamd.raw (revision 559081) ++++ spamd/spamd.raw (working copy) +@@ -1024,10 +1024,11 @@ + # use the POSIX functions to hide the platform specific workarounds + POSIX::setgid($ugid); # set effective and real gid + POSIX::setuid($uuid); # set effective and real UID ++ $< = $uuid; $> = $uuid; # bug 5574 + + # keep the sanity check to catch problems like bug 3900 just in case + if ( $> != $uuid and $> != ( $uuid - 2**32 ) ) { +- die "spamd: setuid to uid $uuid failed\n"; ++ die "spamd: setuid to uid $uuid failed (> = $>, < = $<)\n"; + } + } + +Index: lib/Mail/SpamAssassin/Util.pm +=================================================================== +--- lib/Mail/SpamAssassin/Util.pm (revision 559081) ++++ lib/Mail/SpamAssassin/Util.pm (working copy) +@@ -1336,6 +1336,7 @@ + # bug 3586: kludges needed to work around platform dependent behavior assigning to $< + # The POSIX functions deal with that so just use it here + POSIX::setuid($touid); ++ $< = $touid; $> = $touid; # bug 5574 + + # Check that we have now accomplished the setuid: catch bug 3586 if it comes back + if ($< != $touid) { diff --git a/mail-filter/spamassassin/files/3.2.2-upstream-5574-testcase.patch b/mail-filter/spamassassin/files/3.2.2-upstream-5574-testcase.patch new file mode 100644 index 000000000000..67379769f26d --- /dev/null +++ b/mail-filter/spamassassin/files/3.2.2-upstream-5574-testcase.patch @@ -0,0 +1,62 @@ +Index: MANIFEST +=================================================================== +--- MANIFEST (revision 559081) ++++ MANIFEST (working copy) +@@ -504,3 +504,4 @@ + t/root_spamd_x_u.t + t/spamc_x_E_R.t + t/spamc_x_e.t ++t/root_spamd_u.t +Index: t/root_spamd_u.t +=================================================================== +--- t/root_spamd_u.t (revision 0) ++++ t/root_spamd_u.t (revision 0) +@@ -0,0 +1,42 @@ ++#!/usr/bin/perl ++ ++# run with: sudo prove -v t/root_spamd* ++ ++use lib '.'; use lib 't'; ++use SATest; sa_t_init("root_spamd_u"); ++use Test; ++ ++use constant TEST_ENABLED => conf_bool('run_root_tests'); ++use constant IS_ROOT => eval { ($> == 0); }; ++use constant RUN_TESTS => (TEST_ENABLED && IS_ROOT); ++ ++BEGIN { plan tests => (RUN_TESTS ? 14 : 0) }; ++exit unless RUN_TESTS; ++ ++# --------------------------------------------------------------------------- ++ ++%patterns = ( ++ ++q{ Return-Path: sb55sb55@yahoo.com}, 'firstline', ++q{ Subject: There yours for FREE!}, 'subj', ++q{ X-Spam-Status: Yes, score=}, 'status', ++q{ X-Spam-Flag: YES}, 'flag', ++q{ X-Spam-Level: **********}, 'stars', ++q{ TEST_ENDSNUMS}, 'endsinnums', ++q{ TEST_NOREALNAME}, 'noreal', ++q{ This must be the very last line}, 'lastline', ++ ++); ++ ++# run spamc as unpriv uid ++$spamc = "sudo -u nobody $spamc"; ++ ++ok(start_spamd("-L -u nobody")); ++ ++$SIG{ALRM} = sub { die "timed out"; }; ++alarm 10; ++ok(spamcrun("< data/spam/001", \&patterns_run_cb)); ++alarm 0; ++ok_all_patterns(); ++ ++ok(stop_spamd()); + +Property changes on: t/root_spamd_u.t +___________________________________________________________________ +Name: svn:executable + + * + diff --git a/mail-filter/spamassassin/files/digest-spamassassin-3.2.2 b/mail-filter/spamassassin/files/digest-spamassassin-3.2.2 new file mode 100644 index 000000000000..6bb0db1f273b --- /dev/null +++ b/mail-filter/spamassassin/files/digest-spamassassin-3.2.2 @@ -0,0 +1,3 @@ +MD5 7423a1bca96b932d321882fc6092080b Mail-SpamAssassin-3.2.2.tar.bz2 989555 +RMD160 663a4e21e824bbdaa99f34c5155869a9cb3f098a Mail-SpamAssassin-3.2.2.tar.bz2 989555 +SHA256 32797587da66214c7453bc0ae102b53cec9a0f5dc27a326cfab5bf96f6e0d69a Mail-SpamAssassin-3.2.2.tar.bz2 989555 diff --git a/mail-filter/spamassassin/spamassassin-3.2.2.ebuild b/mail-filter/spamassassin/spamassassin-3.2.2.ebuild new file mode 100644 index 000000000000..74740ce9fb4a --- /dev/null +++ b/mail-filter/spamassassin/spamassassin-3.2.2.ebuild @@ -0,0 +1,263 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/mail-filter/spamassassin/spamassassin-3.2.2.ebuild,v 1.1 2007/07/29 09:42:18 ian Exp $ + +inherit perl-module eutils + +MY_P=Mail-SpamAssassin-${PV//_/-} +S=${WORKDIR}/${MY_P} +DESCRIPTION="SpamAssassin is an extensible email filter which is used to identify spam." +HOMEPAGE="http://spamassassin.apache.org/" +SRC_URI="mirror://apache/spamassassin/source/${MY_P}.tar.bz2" + +SRC_TEST="do" +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="berkdb qmail ssl doc ldap mysql postgres sqlite tools ipv6" + +DEPEND=">=dev-lang/perl-5.8.2-r1 + virtual/perl-MIME-Base64 + >=virtual/perl-PodParser-1.32 + virtual/perl-Storable + virtual/perl-Time-HiRes + >=dev-perl/HTML-Parser-3.43 + >=dev-perl/Net-DNS-0.53 + dev-perl/Digest-SHA1 + dev-perl/libwww-perl + >=dev-perl/Archive-Tar-1.26 + app-crypt/gnupg + >=dev-perl/IO-Zlib-1.04 + >=dev-util/re2c-0.12.0 + ssl? ( + dev-perl/IO-Socket-SSL + dev-libs/openssl + ) + berkdb? ( + virtual/perl-DB_File + ) + ldap? ( dev-perl/perl-ldap ) + mysql? ( + dev-perl/DBI + dev-perl/DBD-mysql + ) + postgres? ( + dev-perl/DBI + dev-perl/DBD-Pg + ) + sqlite? ( + dev-perl/DBI + dev-perl/DBD-SQLite + ) + + ipv6? ( + dev-perl/IO-Socket-INET6 + )" + +src_unpack() { + unpack ${A} + cd ${S} + # - Bug #186668 - new setuid code broken under perl 5.6.x and 5.8.x + # (spamassassin 3.2.2) + epatch ${FILESDIR}/3.2.2-upstream-5574-testcase.patch + epatch ${FILESDIR}/3.2.2-upstream-5574-fix.patch +} + +src_compile() { + # - Set SYSCONFDIR explicitly so we can't get bitten by bug 48205 again + # (just to be sure, nobody knows how it could happen in the first place). + myconf="SYSCONFDIR=/etc DATADIR=/usr/share/spamassassin" + + # If ssl is enabled, spamc can be built with ssl support + if use ssl; then + myconf="${myconf} ENABLE_SSL=yes" + else + myconf="${myconf} ENABLE_SSL=no" + fi + + # Set the path to the Perl executable explictly. This will be used to + # create the initial sharpbang line in the scripts and might cause + # a versioned app name end in there, see + # <http://bugs.gentoo.org/show_bug.cgi?id=62276> + myconf="${myconf} PERL_BIN=/usr/bin/perl" + + # If you are going to enable taint mode, make sure that the bug where + # spamd doesn't start when the PATH contains . is addressed, and make + # sure you deal with versions of razor <2.36-r1 not being taint-safe. + # <http://bugzilla.spamassassin.org/show_bug.cgi?id=2511> and + # <http://spamassassin.org/released/Razor2.patch>. + myconf="${myconf} PERL_TAINT=no" + + # No settings needed for 'make all'. + mymake="" + + # Neither for 'make install'. + myinst="" + + # Add Gentoo tag to make it easier for the upstream devs to spot + # possible modifications or patches. + version_tag="g${PV:6}${PR}" + version_str="${PV//_/-}-${version_tag}" + + # Create the Gentoo config file before Makefile.PL is called so it + # is copied later on. + echo "version_tag ${version_tag}" > rules/11_gentoo.cf + + # Setting the following env var ensures that no questions are asked. + export PERL_MM_USE_DEFAULT=1 + perl-module_src_prep + # Run the autoconf stuff now, just to make the build sequence look more + # familiar to the user :) Plus feeding the VERSION_STRING skips some + # calls to Perl. + make spamc/Makefile VERSION_STRING="${version_str}" + + # Now compile all the stuff selected. + perl-module_src_compile + if use qmail; then + make spamc/qmail-spamc || die building qmail-spamc failed + fi + + # Remove the MANIFEST files as they aren't docu files + rm -f MANIFEST* + + use doc && make text_html_doc +} + +src_install () { + perl-module_src_test +} + +src_install () { + perl-module_src_install + + # Create the stub dir used by sa-update and friends + dodir /var/lib/spamassassin + + # Move spamd to sbin where it belongs. + dodir /usr/sbin + mv "${D}"/usr/bin/spamd "${D}"/usr/sbin/spamd || die + + use qmail && dobin spamc/qmail-spamc + + dosym /etc/mail/spamassassin /etc/spamassassin + + # Disable plugin by default + sed -i -e 's/^loadplugin/\#loadplugin/g' ${D}/etc/mail/spamassassin/init.pre + + # Add the init and config scripts. + newinitd "${FILESDIR}"/3.0.0-spamd.init spamd + newconfd "${FILESDIR}"/3.0.0-spamd.conf spamd + + if use doc; then + dodoc NOTICE TRADEMARK CREDITS INSTALL UPGRADE BUGS USAGE \ + sql/README.bayes sql/README.awl README.ldap procmailrc.example \ + sample-nonspam.txt sample-spam.txt rules/STATISTICS-set0.txt \ + STATISTICS-set1.txt STATISTICS-set2.txt STATISTICS-set3.txt \ + spamd/PROTOCOL + + # Rename some docu files so they don't clash with others + newdoc spamd/README README.spamd + newdoc sql/README README.sql + newdoc ldap/README README.ldap + use qmail && newdoc spamc/README.qmail README.qmail + + dohtml doc/*.html + docinto sql + dodoc sql/*.sql + fi + + # Install provided tools. See bug 108168 + if use tools; then + docinto tools + dodoc tools/* + fi + + cp ${FILESDIR}/secrets.cf ${D}/etc/mail/spamassassin/secrets.cf.example + fperms 0400 /etc/mail/spamassassin/secrets.cf.example + echo "">>${D}/etc/mail/spamassassin/local.cf.example + echo "# Sensitive data, such as database connection info, should">>${D}/etc/mail/spamassassin/local.cf.example + echo "# be stored in /etc/mail/spamassassin/secrets.cf with">>${D}/etc/mail/spamassassin/local.cf.example + echo "# appropriate permissions">>${D}/etc/mail/spamassassin/local.cf.example +} + +pkg_postinst() { + perl-module_pkg_postinst + + if ! has_version "perl-core/DB_File"; then + einfo "The Bayes backend requires the Berkeley DB to store its data. You" + einfo "need to emerge perl-core/DB_File or USE=berkdb to make it available." + fi + + if has_version "mail-filter/razor"; then + if ! has_version ">=mail-filter/razor-2.61"; then + ewarn "You have $(best_version mail-filter/razor) installed but SpamAssassin" + if has_version "<mail-filter/razor-2.40"; then + ewarn "requires at least version 2.40, version 2.61 or later is recommended." + else + ewarn "recommends at least version 2.61." + fi + fi + fi + + if use doc; then + einfo + einfo "Please read the file" + einfo " /usr/share/doc/${PF}/INSTALL.gz" + einfo "to find out which optional modules you need to install to enable" + einfo "additional features which depend on them." + einfo + einfo "If upgraded from 2.x, please read the file" + einfo " /usr/share/doc/${PF}/UPGRADE.gz" + einfo + fi + + ewarn + ewarn "spamd is not designed to listen to an untrusted network" + ewarn "and is vulnerable to DoS attacks (and eternal doom) if" + ewarn "configured to do so" + ewarn + elog "If you plan on using the -u flag to spamd, please read the notes" + elog "in /etc/conf.d/spamd regarding the location of the pid file." + + einfo + einfo "If you build ${PN} with optional dependancy support," + einfo "you can enable them in /etc/mail/spamassassin/init.pre" + einfo + + if has_version '>=dev-lang/perl-5.8.8'; then + elog "A note from the SA developers:" + elog "Perl 5.8 now uses Unicode internally by default, which causes trouble for" + elog "SpamAssassin (and almost all other reasonably complex pieces of perl" + elog "code!)." + elog "" + elog "We've worked around this in most places, as far as we know, but there may" + elog "still be some issues. In addition, there is a speed hit, which it would" + elog "be nice to avoid." + elog "" + elog "Setting the LANG environment variable before any invocation of" + elog "SpamAssassin sometimes seems to help fix it, like so:" + elog "" + elog " export LANG=en_US" + elog "" + elog "Notably, the LANG setting must not include \"utf8\". However, some folks" + elog "have reported that this makes no difference. ;)" + fi + einfo + if ! has_version 'dev-perl/Mail-SPF-Query'; then + elog "For spf support, please emerge dev-perl/Mail-SPF-Query" + fi + if ! has_version 'mail-filter/dcc'; then + elog "For dcc support, please emerge mail-filter/dcc" + fi + if ! has_version 'dev-python/pyzor'; then + elog "For pyzor support, please emerge dev-python/pyzor" + fi + if ! has_version 'mail-filter/razor'; then + elog "For razor support, please emerge mail-filter/razor" + fi + einfo + elog "For addtional functionality, you may wish to emerge:" + elog "dev-perl/IP-Country dev-perl/Net-Ident " + elog "dev-perl/Mail-DKIM" + +} |