--- a/spamassassin-3.2.5-r1.ebuild 2009-10-27 03:22:18.000000000 -0400 +++ b/spamassassin-3.2.5-r1.ebuild 2009-11-12 12:49:41.000000000 -0500 @@ -1,16 +1,19 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/mail-filter/spamassassin/spamassassin-3.2.5-r1.ebuild,v 1.1 2009/10/27 07:22:18 loki_val Exp $ +# $Header: $ + +EAPI="2" 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="http://archive.apache.org/dist/spamassassin/source/${MY_P}.tar.bz2 mirror://gentoo/${MY_P}.tar.bz2" - +SRC_URI="http://archive.apache.org/dist/spamassassin/source/${MY_P}.tar.bz2" SRC_TEST="do" + LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" @@ -49,43 +52,30 @@ dev-perl/DBI dev-perl/DBD-SQLite ) - ipv6? ( dev-perl/IO-Socket-INET6 )" +RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}/${PN}-3.2.5-DESTDIR.patch" ) -src_compile() { +src_configure() { # - 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). + # (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" + myconf+=" ENABLE_SSL=yes" else - myconf="${myconf} ENABLE_SSL=no" + 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 # - 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. - # and - # . - myconf="${myconf} PERL_TAINT=no" - - # No settings needed for 'make all'. - mymake="" - - # Neither for 'make install'. - myinst="" + myconf+=" PERL_BIN=/usr/bin/perl" # Add Gentoo tag to make it easier for the upstream devs to spot # possible modifications or patches. @@ -97,159 +87,92 @@ 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 + perl-module_src_configure +} + +src_compile() { # 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}" + make spamc/Makefile VERSION_STRING="${version_str}" || die # Now compile all the stuff selected. perl-module_src_compile + if use qmail; then - make spamc/qmail-spamc || die building qmail-spamc failed + 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_test() { - perl-module_src_test + if use doc; then + make text_html_doc || die + fi } src_install () { perl-module_src_install # Create the stub dir used by sa-update and friends - dodir /var/lib/spamassassin + dodir /var/lib/spamassassin || die # 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 + if use qmail; then + dobin spamc/qmail-spamc || die + fi - dosym /etc/mail/spamassassin /etc/spamassassin + dosym /etc/mail/spamassassin /etc/spamassassin || die # Disable plugin by default - sed -i -e 's/^loadplugin/\#loadplugin/g' "${D}"/etc/mail/spamassassin/init.pre + sed -i -e 's/^loadplugin/\#loadplugin/g' "${D}"/etc/mail/spamassassin/init.pre || die # Add the init and config scripts. - newinitd "${FILESDIR}"/3.0.0-spamd.init spamd - newconfd "${FILESDIR}"/3.0.0-spamd.conf spamd + newinitd "${FILESDIR}"/3.0.0-spamd.init spamd || die + newconfd "${FILESDIR}"/3.0.0-spamd.conf spamd || die if use doc; then - dodoc NOTICE TRADEMARK CREDITS INSTALL INSTALL.VMS UPGRADE USAGE \ + dodoc NOTICE TRADEMARK CREDITS INSTALL.VMS UPGRADE USAGE \ sql/README.bayes sql/README.awl procmailrc.example sample-nonspam.txt \ sample-spam.txt spamassassin.spec spamd/PROTOCOL spamd/README.vpopmail \ - spamd-apache2/README.apache + spamd-apache2/README.apache || die # 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 + newdoc spamd/README README.spamd || die + newdoc sql/README README.sql || die + newdoc ldap/README README.ldap || die - dohtml doc/*.html + dohtml doc/*.html || die docinto sql - dodoc sql/*.sql + dodoc sql/*.sql || die + + if use qmail; then + dodoc spamc/README.qmail || die + fi fi # Install provided tools. See bug 108168 if use tools; then docinto tools - dodoc tools/* + dodoc tools/* || die "dodoc failed" fi - cp "${FILESDIR}"/secrets.cf "${D}"/etc/mail/spamassassin/secrets.cf.example + cp "${FILESDIR}"/secrets.cf "${D}"/etc/mail/spamassassin/secrets.cf.example || die 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 + + cat < "${T}/local.cf.example" +# Sensitive data, such as database connection info, should be stored in +# /etc/mail/spamassassin/secrets.cf with appropriate permissions +EOF + + insinto /etc/mail/spamassassin/ + doins "${T}/local.cf.example" || die } 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 "=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" - + elog "If you build ${PN} with optional dependancy support," + elog "you can enable them in /etc/mail/spamassassin/init.pre" }