community/opendkim: rebuild against openssl 1.1

This commit is contained in:
Natanael Copa 2018-11-01 12:05:46 +00:00
parent a08e1f9d8b
commit ed7a4d6bc3
2 changed files with 103 additions and 12 deletions

View File

@ -3,36 +3,42 @@
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=opendkim
pkgver=2.10.3
pkgrel=8
pkgrel=9
pkgdesc="DKIM signing and verifying filter for MTAs"
url="http://www.opendkim.org"
arch="all"
license="custom"
depends=""
makedepends="libressl-dev libmilter-dev"
makedepends="openssl-dev libmilter-dev automake autoconf libtool"
pkgusers="opendkim"
pkggroups="opendkim"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-dbg $pkgname-utils"
install="$pkgname.pre-install"
source="https://downloads.sourceforge.net/project/$pkgname/$pkgname-$pkgver.tar.gz
openssl_1.1.0_compat.patch
$pkgname.confd
$pkgname.initd"
builddir="$srcdir/$pkgname-$pkgver"
prepare() {
cd "$builddir"
default_prepare
autoreconf -vif
}
build() {
cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc/$pkgname \
|| return 1
make || return 1
--sysconfdir=/etc/$pkgname
make
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install || return 1
make DESTDIR="$pkgdir" install
install -d "$pkgdir"/etc/$pkgname
install -dm750 -g mail "$pkgdir"/var/db/dkim
cat "$pkgdir"/usr/share/doc/$pkgname/$pkgname.conf.simple | sed \
@ -54,12 +60,7 @@ utils() {
rm -fr "$pkgdir"/usr/lib
}
md5sums="916e691cdd16cfabd1cd6efe745323f9 opendkim-2.10.3.tar.gz
57210e7c36bd81680c09e3857f3cae19 opendkim.confd
fc898b12a28671ea617538bcb09209f2 opendkim.initd"
sha256sums="43a0ba57bf942095fe159d0748d8933c6b1dd1117caf0273fa9a0003215e681b opendkim-2.10.3.tar.gz
e3f737b54130e2ba91a7d232902b1f34778a73e1cb289fd30ad0066249c7909e opendkim.confd
b53087eebb7121fd67510b521ee126bafcc01ff5b50a393af22c730804a6c30a opendkim.initd"
sha512sums="97923e533d072c07ae4d16a46cbed95ee799aa50f19468d8bc6d1dc534025a8616c3b4b68b5842bc899b509349a2c9a67312d574a726b048c0ea46dd4fcc45d8 opendkim-2.10.3.tar.gz
f971979c5687286213218a5f0b420ed3593c262231717fb85eeee51762acde9b6e6fa0be5c7731e2da1fcf2d6761dfb3e9d6a1477ec9675fd2bbefceb734799f openssl_1.1.0_compat.patch
1dd6ed6e4efd93463f8eeb4603e72cf3a77f0a70117164a34b45bf0d2f45d4520b62c86696f7d180cff61a73201253c1ff875efdcd5317d631118776db665ea1 opendkim.confd
a3c3b4d4af875903aec1ae9f565113dc6b10fb0c5c45df96f043735de9be772e6d2fca812ce2bd51f9759f4a7c18ac5ced62a7b5530924edd0981250cb88f91f opendkim.initd"

View File

@ -0,0 +1,90 @@
Description: Build and work with either openssl 1.0.2 or 1.1.0
* Add patch to build with either openssl 1.0.2 or 1.1.0 (Closes: #828466)
- Thanks to Sebastian Andrzej Siewior for the patch
Author: Sebastian Andrzej Siewior
Bug-Debian: http://bugs.debian.org/828466
Origin: vendor
Forwarded: no
Reviewed-By: Scott Kitterman <scott@kitterman.com>
Last-Update: <YYYY-MM-DD>
--- opendkim-2.11.0~alpha.orig/configure.ac
+++ opendkim-2.11.0~alpha/configure.ac
@@ -864,26 +864,28 @@ then
AC_SEARCH_LIBS([ERR_peek_error], [crypto], ,
AC_MSG_ERROR([libcrypto not found]))
- AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
- [
- if test x"$enable_shared" = x"yes"
- then
- AC_MSG_ERROR([Cannot build shared opendkim
- against static openssl libraries.
- Configure with --disable-shared
- to get this working or obtain a
- shared libssl library for
- opendkim to use.])
- fi
- # avoid caching issue - last result of SSL_library_init
- # shouldn't be cached for this next check
- unset ac_cv_search_SSL_library_init
- LIBCRYPTO_LIBS="$LIBCRYPTO_LIBS -ldl"
- AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
- AC_MSG_ERROR([libssl not found]), [-ldl])
- ]
- )
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[#include <openssl/ssl.h>]],
+ [[SSL_library_init();]])],
+ [od_have_ossl="yes";],
+ [od_have_ossl="no";])
+ if test x"$od_have_ossl" = x"no"
+ then
+ if test x"$enable_shared" = x"yes"
+ then
+ AC_MSG_ERROR([Cannot build shared opendkim
+ against static openssl libraries.
+ Configure with --disable-shared
+ to get this working or obtain a
+ shared libssl library for
+ opendkim to use.])
+ fi
+
+ LIBCRYPTO_LIBS="$LIBCRYPTO_LIBS -ldl"
+ AC_SEARCH_LIBS([SSL_library_init], [ssl], ,
+ AC_MSG_ERROR([libssl not found]), [-ldl])
+ fi
AC_CHECK_DECL([SHA256_DIGEST_LENGTH],
AC_DEFINE([HAVE_SHA256], 1,
--- opendkim-2.11.0~alpha.orig/opendkim/opendkim-crypto.c
+++ opendkim-2.11.0~alpha/opendkim/opendkim-crypto.c
@@ -222,7 +222,11 @@ dkimf_crypto_free_id(void *ptr)
{
assert(pthread_setspecific(id_key, ptr) == 0);
+#if OPENSSL_VERSION_NUMBER >= 0x10100000
+ OPENSSL_thread_stop();
+#else
ERR_remove_state(0);
+#endif
free(ptr);
@@ -392,11 +396,15 @@ dkimf_crypto_free(void)
{
if (crypto_init_done)
{
+#if OPENSSL_VERSION_NUMBER >= 0x10100000
+ OPENSSL_thread_stop();
+#else
CRYPTO_cleanup_all_ex_data();
CONF_modules_free();
EVP_cleanup();
ERR_free_strings();
ERR_remove_state(0);
+#endif
if (nmutexes > 0)
{