--- a/spamassassin-3.2.5-r1.ebuild 2009-10-27 03:22:18.000000000 -0400 +++ b/spamassassin-3.2.5-r1.ebuild 2009-11-11 18:18:01.000000000 -0500 @@ -1,255 +1,195 @@ # 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" 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 - )" + 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 + )" 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="${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. +} + 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 + make spamc/Makefile VERSION_STRING="${version_str}" - # Remove the MANIFEST files as they aren't docu files - rm -f MANIFEST* + # Now compile all the stuff selected. + perl-module_src_compile + if use qmail; then + make spamc/qmail-spamc || die building qmail-spamc failed + fi - use doc && make text_html_doc + # 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 + perl-module_src_test } src_install () { - perl-module_src_install + perl-module_src_install + + # Create the stub dir used by sa-update and friends + dodir /var/lib/spamassassin - # 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 || die + newconfd "${FILESDIR}"/3.0.0-spamd.conf spamd || die + + if use doc; then + dodoc NOTICE TRADEMARK CREDITS INSTALL 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 + use qmail && newdoc spamc/README.qmail README.qmail || die + + dohtml doc/*.html || die + docinto sql + dodoc sql/*.sql || die + fi + + # Install provided tools. See bug 108168 + if use tools; then + docinto tools + dodoc tools/* || die + fi + + cp "${FILESDIR}"/secrets.cf "${D}"/etc/mail/spamassassin/secrets.cf.example || die + fperms 0400 /etc/mail/spamassassin/secrets.cf.example + + cat <<-EOF > "${T}/local.cf.example" +# Sensitive data, such as database connection info, should be stored in +# /etc/mail/spamassassin/secrets.cf with appropriate permissions +EOF - # 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 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 - - # 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 + 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" + echo }