224 lines
7.5 KiB
Ruby
224 lines
7.5 KiB
Ruby
class Libopendkim < Formula
|
|
desc "Implementation of Domain Keys Identified Mail authentication"
|
|
homepage "http://opendkim.org"
|
|
url "https://downloads.sourceforge.net/project/opendkim/opendkim-2.10.3.tar.gz"
|
|
sha256 "43a0ba57bf942095fe159d0748d8933c6b1dd1117caf0273fa9a0003215e681b"
|
|
revision 2
|
|
|
|
livecheck do
|
|
url :stable
|
|
regex(%r{url=.*?/opendkim[._-]v?(\d+(?:\.\d+)+)\.t}i)
|
|
end
|
|
|
|
bottle do
|
|
cellar :any
|
|
sha256 "76268e02f90b0931a9fd8d2ae933d334c2efb9ee34dc85c77d8eecc25b48c68b" => :mojave
|
|
sha256 "e5d79e2cd539dff2a02ac91b171b23c0c36d7d012d2a3d21af1cbd732c2ee58a" => :high_sierra
|
|
sha256 "33a66999fc2479cd6d0d27d2189ed34125e2510afb7afe0c97cdb08ed67efc95" => :sierra
|
|
end
|
|
|
|
depends_on "autoconf" => :build
|
|
depends_on "automake" => :build
|
|
depends_on "libtool" => :build
|
|
depends_on "openssl@1.1"
|
|
depends_on "unbound"
|
|
|
|
on_linux do
|
|
depends_on "pkg-config" => :build
|
|
end
|
|
|
|
# Patch for compatibility with OpenSSL 1.1.1
|
|
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223568
|
|
patch :p0, :DATA
|
|
|
|
def install
|
|
# Recreate configure due to patch
|
|
system "autoreconf", "-fvi"
|
|
|
|
# --disable-filter: not needed for the library build
|
|
system "./configure", "--disable-debug",
|
|
"--disable-dependency-tracking",
|
|
"--disable-silent-rules",
|
|
"--prefix=#{prefix}",
|
|
"--disable-filter",
|
|
"--with-unbound=#{Formula["unbound"].opt_prefix}",
|
|
"--with-openssl=#{Formula["openssl@1.1"].opt_prefix}"
|
|
system "make", "install"
|
|
end
|
|
|
|
test do
|
|
system "#{sbin}/opendkim-genkey", "--directory=#{testpath}"
|
|
assert_predicate testpath/"default.private", :exist?
|
|
assert_predicate testpath/"default.txt", :exist?
|
|
end
|
|
end
|
|
__END__
|
|
--- libopendkim/tests/Makefile.in.orig 2015-05-12 18:43:48 UTC
|
|
+++ libopendkim/tests/Makefile.in
|
|
@@ -1108,8 +1108,10 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
|
END { for (dir in files) print dir, files[dir] }'
|
|
am__base_list = \
|
|
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
|
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
|
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\
|
|
+/ /g' | \
|
|
+ sed '$$!N;$$!N;$$!N;$$!N;s/\
|
|
+/ /g'
|
|
am__uninstall_files_from_dir = { \
|
|
test -z "$$files" \
|
|
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
@@ -4131,16 +4133,19 @@ uninstall-am: uninstall-dist_docDATA
|
|
@LCOV_TRUE@description.txt: $(check_PROGRAMS) $(check_SCRIPTS)
|
|
@LCOV_TRUE@ rm -f $@
|
|
@LCOV_TRUE@ for i in $(check_PROGRAMS); do \
|
|
-@LCOV_TRUE@ testname=$${i/t-}; \
|
|
-@LCOV_TRUE@ testname=$${testname//-/_}; \
|
|
+@LCOV_TRUE@ testname=$${i#t-}; \
|
|
+@LCOV_TRUE@ testname=$$(echo $${testname} | sed -e 's/-/_/g'); \
|
|
@LCOV_TRUE@ fgrep '***' $$i.c | tail -n 1 | \
|
|
-@LCOV_TRUE@ (echo $${testname} ; sed -e 's/[^*]*\*\*\*\(.*\)\\n.*/\t\1\n/g' ) >> $@; \
|
|
+@LCOV_TRUE@ (echo $${testname} ; sed -e 's/[^*]*\*\*\*\(.*\)\\
|
|
+@LCOV_TRUE@.*/ \1\
|
|
+@LCOV_TRUE@/g' ) >> $@; \
|
|
@LCOV_TRUE@ done
|
|
@LCOV_TRUE@ for i in $(check_SCRIPTS); do \
|
|
-@LCOV_TRUE@ testname=$${i/t-}; \
|
|
-@LCOV_TRUE@ testname=$${testname//-/_}; \
|
|
+@LCOV_TRUE@ testname=$${i#t-}; \
|
|
+@LCOV_TRUE@ testname=$$(echo $${testname} | sed -e 's/-/_/g'); \
|
|
@LCOV_TRUE@ grep '^#' $$i | tail -n 1 | \
|
|
-@LCOV_TRUE@ (echo $${testname} ; sed -e 's/^# \(.*\)/\t\1\n/g' ) >> $@; \
|
|
+@LCOV_TRUE@ (echo $${testname} ; sed -e 's/^# \(.*\)/ \1\
|
|
+@LCOV_TRUE@/g' ) >> $@; \
|
|
@LCOV_TRUE@ done
|
|
|
|
@LCOV_TRUE@description.html: description.txt
|
|
--- libopendkim/dkim-canon.c.orig 2015-05-11 03:56:13 UTC
|
|
+++ libopendkim/dkim-canon.c
|
|
@@ -388,7 +388,7 @@ dkim_canon_header_string(struct dkim_dstring *dstr, dk
|
|
}
|
|
|
|
/* skip all spaces before first word */
|
|
- while (*p != '\0' && DKIM_ISWSP(*p))
|
|
+ while (*p != '\0' && DKIM_ISLWSP(*p))
|
|
p++;
|
|
|
|
space = FALSE; /* just saw a space */
|
|
--- opendkim/tests/Makefile.in.orig 2015-05-12 18:43:49 UTC
|
|
+++ opendkim/tests/Makefile.in
|
|
@@ -139,8 +139,10 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
|
END { for (dir in files) print dir, files[dir] }'
|
|
am__base_list = \
|
|
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
|
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
|
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\
|
|
+/ /g' | \
|
|
+ sed '$$!N;$$!N;$$!N;$$!N;s/\
|
|
+/ /g'
|
|
am__uninstall_files_from_dir = { \
|
|
test -z "$$files" \
|
|
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
|
@@ -1298,14 +1300,16 @@ uninstall-am: uninstall-dist_docDATA
|
|
@LCOV_TRUE@description.txt: $(check_SCRIPTS)
|
|
@LCOV_TRUE@ rm -f $@
|
|
@LCOV_TRUE@ for test in $? ; do \
|
|
-@LCOV_TRUE@ testname=$${test/t-}; \
|
|
-@LCOV_TRUE@ testname=$${testname//-/_}; \
|
|
+@LCOV_TRUE@ testname=$${test#t-}; \
|
|
+@LCOV_TRUE@ testname=$$(echo $${testname} | sed -e 's/-/_/g'); \
|
|
@LCOV_TRUE@ grep ^# $$test | tail -n 1 | \
|
|
-@LCOV_TRUE@ sed -e "s/^#\(.*\)/$${testname}\n\t\1\n/g" >> $@; \
|
|
+@LCOV_TRUE@ sed -e "s/^#\(.*\)/$${testname}\
|
|
+@LCOV_TRUE@ \1\
|
|
+@LCOV_TRUE@/g" >> $@; \
|
|
@LCOV_TRUE@ done
|
|
|
|
@LCOV_TRUE@description.html: description.txt
|
|
-@LCOV_TRUE@ gendesc --output $@ $<
|
|
+@LCOV_TRUE@ gendesc --output $@ $?
|
|
|
|
@LCOV_TRUE@maintainer-clean-local:
|
|
@LCOV_TRUE@ -rm -rf lcov/[^C]*
|
|
--- opendkim/opendkim-crypto.c.orig 2013-02-25 21:02:41 UTC
|
|
+++ 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 && !defined(LIBRESSL_VERSION_NUMBER))
|
|
+ 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 && !defined(LIBRESSL_VERSION_NUMBER))
|
|
+ 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)
|
|
{
|
|
--- configure.ac.orig 2015-05-12 18:43:09 UTC
|
|
+++ configure.ac
|
|
@@ -860,26 +860,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,
|