# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $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" 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 >=virtual/perl-Archive-Tar-1.26 app-crypt/gnupg >=virtual/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 )" RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}/${PN}-3.2.5-DESTDIR.patch" ) 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). myconf="SYSCONFDIR=/etc DATADIR=/usr/share/spamassassin" # If ssl is enabled, spamc can be built with ssl support if use ssl; then myconf+=" ENABLE_SSL=yes" else 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+=" PERL_BIN=/usr/bin/perl" # 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. 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}" || die # Now compile all the stuff selected. perl-module_src_compile if use qmail; then make spamc/qmail-spamc || die "building qmail-spamc failed" fi 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 || die # Move spamd to sbin where it belongs. dodir /usr/sbin mv "${D}"/usr/bin/spamd "${D}"/usr/sbin/spamd || die if use qmail; then dobin spamc/qmail-spamc || die fi dosym /etc/mail/spamassassin /etc/spamassassin || die # Disable plugin by default sed -i -e 's/^loadplugin/\#loadplugin/g' "${D}"/etc/mail/spamassassin/init.pre || die # Add the init and config scripts. newinitd "${FILESDIR}"/3.2.5-spamd.init spamd || die newconfd "${FILESDIR}"/3.0.0-spamd.conf spamd || die use postgres && \ sed -i -e 's:@USEPOSTGRES@::' "${D}/etc/init.d/spamd" || \ sed -i -e '/@USEPOSTGRES@/d' "${D}/etc/init.d/spamd" use mysql && \ sed -i -e 's:@USEMYSQL@::' "${D}/etc/init.d/spamd" || \ sed -i -e '/@USEMYSQL@/d' "${D}/etc/init.d/spamd" 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 || die # Rename some docu files so they don't clash with others newdoc spamd/README README.spamd || die newdoc sql/README README.sql || die newdoc ldap/README README.ldap || die if use doc; then dohtml doc/*.html || die docinto sql dodoc sql/*.sql || die fi if use qmail; then dodoc spamc/README.qmail || die fi # Install provided tools. See bug 108168 if use tools; then docinto tools dodoc tools/* || die "dodoc failed" fi cp "${FILESDIR}"/secrets.cf "${D}"/etc/mail/spamassassin/secrets.cf.example || die fperms 0400 /etc/mail/spamassassin/secrets.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 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." elog "If you build ${PN} with optional dependancy support," elog "you can enable them in /etc/mail/spamassassin/init.pre" elog "You need to configure your database to be able to use Bayes filter" elog "with database backend, otherwise it will still use (and need) the" elog "Berkeley DB support." elog "Look at the sql/README.bayes file in the documentation directory" elog "for how to configure it." }