| # Copyright 1999-2010 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Header: /var/cvsroot/gentoo-x86/mail-filter/spamassassin/spamassassin-3.2.1-r2.ebuild,v 1.6 2010/01/02 15:18:09 armin76 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://gentoo/${MY_P}.tar.bz2" |
| |
| #SRC_TEST="do" |
| LICENSE="Apache-2.0" |
| SLOT="0" |
| KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86" |
| #KEYWORDS="~amd64 ~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 |
| )" |
| |
| src_unpack() { |
| unpack ${A} |
| cd "${S}" |
| epatch "${FILESDIR}/FH_DATE_PAST_20XX.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 INSTALL in" |
| einfo " /usr/share/doc/${PF}/" |
| 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 UPGRADE in" |
| einfo " /usr/share/doc/${PF}/" |
| 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" |
| |
| } |