# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/mail-filter/spamassassin/spamassassin-3.2.0-r1.ebuild,v 1.6 2008/11/18 16:13:26 tove 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="http://archive.apache.org/dist/spamassassin/source/${MY_P}.tar.bz2" SRC_TEST="do" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~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.31 >=dev-perl/Net-DNS-0.53 dev-perl/Digest-SHA1 dev-perl/libwww-perl >=virtual/perl-Archive-Tar-1.26 app-crypt/gnupg virtual/perl-IO-Zlib >=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_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 # 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="" # 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 "=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" }