summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEray Aslan <eras@gentoo.org>2013-03-01 10:58:25 +0000
committerEray Aslan <eras@gentoo.org>2013-03-01 10:58:25 +0000
commit8f10e33f4a90adf6f7e747aaeb365f7d3afe0307 (patch)
tree06b7ce89ce49c605cac6705fc9b513944524dacb /mail-filter/opendkim
parentdev-libs/igraph: Swap DEPEND/RDEPEND, thanks Mr_Bones spotting this mistake (diff)
downloadgentoo-2-8f10e33f4a90adf6f7e747aaeb365f7d3afe0307.tar.gz
gentoo-2-8f10e33f4a90adf6f7e747aaeb365f7d3afe0307.tar.bz2
gentoo-2-8f10e33f4a90adf6f7e747aaeb365f7d3afe0307.zip
Fix building with older versions of libdb
(Portage version: 2.2.0_alpha163/cvs/Linux x86_64, signed Manifest commit with key 0x77F1F175586A3B1F)
Diffstat (limited to 'mail-filter/opendkim')
-rw-r--r--mail-filter/opendkim/ChangeLog8
-rw-r--r--mail-filter/opendkim/files/opendkim-2.8.0-berkeleydb.patch72
-rw-r--r--mail-filter/opendkim/opendkim-2.8.0-r1.ebuild194
3 files changed, 273 insertions, 1 deletions
diff --git a/mail-filter/opendkim/ChangeLog b/mail-filter/opendkim/ChangeLog
index f5392c6f3006..93bdaa009208 100644
--- a/mail-filter/opendkim/ChangeLog
+++ b/mail-filter/opendkim/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for mail-filter/opendkim
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/mail-filter/opendkim/ChangeLog,v 1.61 2013/02/26 09:04:38 eras Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-filter/opendkim/ChangeLog,v 1.62 2013/03/01 10:58:25 eras Exp $
+
+*opendkim-2.8.0-r1 (01 Mar 2013)
+
+ 01 Mar 2013; Eray Aslan <eras@gentoo.org>
+ +files/opendkim-2.8.0-berkeleydb.patch, +opendkim-2.8.0-r1.ebuild:
+ Fix building with older versions of libdb
*opendkim-2.8.0 (26 Feb 2013)
diff --git a/mail-filter/opendkim/files/opendkim-2.8.0-berkeleydb.patch b/mail-filter/opendkim/files/opendkim-2.8.0-berkeleydb.patch
new file mode 100644
index 000000000000..6e3eac272500
--- /dev/null
+++ b/mail-filter/opendkim/files/opendkim-2.8.0-berkeleydb.patch
@@ -0,0 +1,72 @@
+diff --git a/RELEASE_NOTES b/RELEASE_NOTES
+index 1233905..2567a63 100644
+--- a/RELEASE_NOTES
++++ b/RELEASE_NOTES
+@@ -3,6 +3,10 @@
+ This listing shows the versions of the OpenDKIM package, the date of
+ release, and a summary of the changes in that release.
+
++2.8.1 2013/0?/??
++ BUILD: Fix build for versions of libdb between 3.1 and 4.6.
++ Problem noted by John Wood.
++
+ 2.8.0 2013/02/25
+ Feature request #SF2964383: Add DKIM_LIBFLAGS_STRICTRESIGN, which
+ inhibits signing of a handle tagged for resigning when the
+diff --git a/configure.ac b/configure.ac
+index ff018de..64d567a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -14,7 +14,7 @@ AC_PREREQ(2.61)
+ #
+ m4_define([VERSION_RELEASE], 2)
+ m4_define([VERSION_MAJOR_REV], 8)
+-m4_define([VERSION_MINOR_REV], 0)
++m4_define([VERSION_MINOR_REV], 1)
+ m4_define([VERSION_PATCH], 0)
+
+ #
+diff --git a/libopendkim/dkim-cache.c b/libopendkim/dkim-cache.c
+index 1bb10e8..c43cc0c 100644
+--- a/libopendkim/dkim-cache.c
++++ b/libopendkim/dkim-cache.c
+@@ -508,7 +508,13 @@ dkim_cache_stats(DB *db, u_int *queries, u_int *hits, u_int *expired,
+ #if DB_VERSION_CHECK(2,0,0)
+ DB_HASH_STAT *sp;
+
++# if DB_VERSION_CHECK(4,3,0)
+ if (db->stat(db, NULL, (void *) &sp, 0) != 0)
++# elif DB_VERSION_CHECK(4,0,0)
++ if (db->stat(db, (void *) &sp, 0) != 0)
++# else /* DB_VERSION_CHECK(4,0,0) */
++ if (db->stat(db, (void *) &sp, NULL, 0) != 0)
++# endif /* DB_VERSION_CHECK(4,0,0) */
+ {
+ *keys = (u_int) -1;
+ }
+diff --git a/libopendkim/tests/t-test49.c b/libopendkim/tests/t-test49.c
+index e54cb37..318ad8a 100644
+--- a/libopendkim/tests/t-test49.c
++++ b/libopendkim/tests/t-test49.c
+@@ -53,7 +53,7 @@ main(int argc, char **argv)
+
+ int status;
+ int err;
+- u_int s1, s2, s3;
++ u_int s1, s2, s3, s4;
+ size_t buflen;
+ DB *cache;
+ char buf[BUFRSZ + 1];
+@@ -99,10 +99,11 @@ main(int argc, char **argv)
+ assert(status == 1);
+
+ printf("--- retrieve cache stats\n");
+- dkim_cache_stats(&s1, &s2, &s3);
++ dkim_cache_stats(cache, &s1, &s2, &s3, &s4, FALSE);
+ assert(s1 == 3);
+ assert(s2 == 1);
+ assert(s3 == 1);
++ assert(s4 == 0);
+
+ dkim_cache_close(cache);
+ #endif /* ! QUERY_CACHE */
diff --git a/mail-filter/opendkim/opendkim-2.8.0-r1.ebuild b/mail-filter/opendkim/opendkim-2.8.0-r1.ebuild
new file mode 100644
index 000000000000..7f5db05e604d
--- /dev/null
+++ b/mail-filter/opendkim/opendkim-2.8.0-r1.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-filter/opendkim/opendkim-2.8.0-r1.ebuild,v 1.1 2013/03/01 10:58:25 eras Exp $
+
+EAPI=5
+inherit eutils db-use autotools user
+
+# for betas
+#MY_P=${P/_b/.B}
+#S=${WORKDIR}/${PN}-2.8.0
+#SRC_URI="mirror://sourceforge/opendkim/${MY_P}.tar.gz"
+
+DESCRIPTION="A milter-based application to provide DKIM signing and verification"
+HOMEPAGE="http://opendkim.org"
+SRC_URI="mirror://sourceforge/opendkim/${P}.tar.gz"
+
+LICENSE="Sendmail-Open-Source BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+berkdb gnutls ldap lua opendbx poll sasl +ssl static-libs unbound"
+
+DEPEND="|| ( mail-filter/libmilter mail-mta/sendmail )
+ dev-libs/libbsd
+ ssl? ( >=dev-libs/openssl-0.9.8 )
+ berkdb? ( >=sys-libs/db-3.2 )
+ opendbx? ( >=dev-db/opendbx-1.4.0 )
+ lua? ( dev-lang/lua )
+ ldap? ( net-nds/openldap )
+ sasl? ( dev-libs/cyrus-sasl )
+ unbound? ( >=net-dns/unbound-1.4.1 net-dns/dnssec-root )
+ !unbound? ( net-libs/ldns )
+ gnutls? ( >=net-libs/gnutls-2.11.7 )"
+
+RDEPEND="${DEPEND}
+ sys-process/psmisc"
+
+REQUIRED_USE="sasl? ( ldap )"
+
+pkg_setup() {
+ enewgroup milter
+ # mail-milter/spamass-milter creates milter user with this home directory
+ # For consistency reasons, milter user must be created here with this home directory
+ # even though this package doesn't need a home directory for this user (#280571)
+ enewuser milter -1 -1 /var/lib/milter milter
+}
+
+src_prepare() {
+ sed -i -e 's:/var/db/dkim:/etc/opendkim:g' \
+ -e 's:/var/db/opendkim:/var/lib/opendkim:g' \
+ -e 's:/etc/mail:/etc/opendkim:g' \
+ -e 's:mailnull:milter:g' \
+ -e 's:^#[[:space:]]*PidFile.*:PidFile /var/run/opendkim/opendkim.pid:' \
+ opendkim/opendkim.conf.sample opendkim/opendkim.conf.simple.in \
+ stats/opendkim-reportstats || die
+
+ sed -i -e 's:dist_doc_DATA:dist_html_DATA:' libopendkim/docs/Makefile.am \
+ || die
+
+ # don't go over the sock length and fail
+ sed -i -e '/^sock/s/t-sign-ss-macro-value-file.sock/t-s-s-m-v-f.sock/' \
+ opendkim/tests/t-sign-ss-macro-value-file.lua || die
+
+ epatch "${FILESDIR}/${PN}-2.8.0-unbreak_upgrade.patch"
+ epatch "${FILESDIR}/${PN}-2.8.0-berkeleydb.patch"
+ eautoreconf
+}
+
+src_configure() {
+ local myconf
+ if use berkdb ; then
+ myconf=$(db_includedir)
+ myconf="--with-db-incdir=${myconf#-I}"
+ myconf+=" --enable-popauth"
+ myconf+=" --enable-query_cache"
+ myconf+=" --enable-stats"
+ fi
+ if use unbound; then
+ myconf+=" --with-unbound"
+ else
+ myconf+=" --with-ldns"
+ fi
+ if use ldap; then
+ myconf+=" $(use_with sasl)"
+ fi
+ econf \
+ $(use_with berkdb db) \
+ $(use_with opendbx odbx) \
+ $(use_with lua) \
+ $(use_enable lua rbl) \
+ $(use_with ldap openldap) \
+ $(use_enable poll) \
+ $(use_enable static-libs static) \
+ $(use_with gnutls) \
+ ${myconf} \
+ --docdir=/usr/share/doc/${PF} \
+ --htmldir=/usr/share/doc/${PF}/html \
+ --enable-filter \
+ --enable-adsp_lists \
+ --enable-dkim_reputation \
+ --enable-identity_header \
+ --enable-rate_limit \
+ --enable-redirect \
+ --enable-resign \
+ --enable-replace_rules \
+ --enable-default_sender \
+ --enable-sender_macro \
+ --enable-vbr \
+ --disable-rpath \
+ --disable-live-testing \
+ --with-test-socket=/tmp/opendkim-S
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ dosbin stats/opendkim-reportstats
+ newinitd "${FILESDIR}/opendkim.init.r3" opendkim
+ dodir /etc/opendkim /var/lib/opendkim
+ fowners milter:milter /var/lib/opendkim
+
+ # default configuration
+ if [ ! -f "${ROOT}"/etc/opendkim/opendkim.conf ]; then
+ grep ^[^#] "${S}"/opendkim/opendkim.conf.simple \
+ > "${D}"/etc/opendkim/opendkim.conf
+ if use unbound; then
+ echo TrustedAnchorFile /etc/dnssec/root-anchors.txt >> "${D}"/etc/opendkim/opendkim.conf
+ fi
+ echo UserID milter >> "${D}"/etc/opendkim/opendkim.conf
+ if use berkdb; then
+ echo Statistics /var/lib/opendkim/stats.dat >> \
+ "${D}"/etc/opendkim/opendkim.conf
+ fi
+ fi
+
+ use static-libs || find "${D}" -name "*.la" -delete
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSION} ]]; then
+ elog "If you want to sign your mail messages and need some help"
+ elog "please run:"
+ elog " emerge --config ${CATEGORY}/${PN}"
+ elog "It will help you create your key and give you hints on how"
+ elog "to configure your DNS and MTA."
+
+ ewarn "Make sure your MTA has r/w access to the socket file."
+ ewarn "This can be done either by setting UMask to 002 and adding MTA's user"
+ ewarn "to milter group or you can simply set UMask to 000."
+ fi
+}
+
+pkg_config() {
+ local selector keysize pubkey
+
+ read -p "Enter the selector name (default ${HOSTNAME}): " selector
+ [[ -n "${selector}" ]] || selector=${HOSTNAME}
+ if [[ -z "${selector}" ]]; then
+ eerror "Oddly enough, you don't have a HOSTNAME."
+ return 1
+ fi
+ if [[ -f "${ROOT}"etc/opendkim/${selector}.private ]]; then
+ ewarn "The private key for this selector already exists."
+ else
+ keysize=1024
+ # generate the private and public keys
+ opendkim-genkey -b ${keysize} -D "${ROOT}"etc/opendkim/ \
+ -s ${selector} -d '(your domain)' && \
+ chown milter:milter \
+ "${ROOT}"etc/opendkim/"${selector}".private || \
+ { eerror "Failed to create private and public keys." ; return 1; }
+ chmod go-r "${ROOT}"etc/opendkim/"${selector}".private
+ fi
+
+ # opendkim selector configuration
+ echo
+ einfo "Make sure you have the following settings in your /etc/opendkim/opendkim.conf:"
+ einfo " Keyfile /etc/opendkim/${selector}.private"
+ einfo " Selector ${selector}"
+
+ # MTA configuration
+ echo
+ einfo "If you are using Postfix, add following lines to your main.cf:"
+ einfo " smtpd_milters = unix:/var/run/opendkim/opendkim.sock"
+ einfo " non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock"
+ einfo " and read http://www.postfix.org/MILTER_README.html"
+
+ # DNS configuration
+ einfo "After you configured your MTA, publish your key by adding this TXT record to your domain:"
+ cat "${ROOT}"etc/opendkim/${selector}.txt
+ einfo "t=y signifies you only test the DKIM on your domain. See following page for the complete list of tags:"
+ einfo " http://www.dkim.org/specs/rfc4871-dkimbase.html#key-text"
+ einfo
+ einfo "Also look at the ADSP http://tools.ietf.org/html/rfc5617"
+}