[packages/exim] - up to 4.87; event/proxy/redis no longer experimental; enable DSN_INFO

arekm arekm at pld-linux.org
Thu Apr 7 07:43:40 CEST 2016


commit ca839913776724d44ec27f5a0058bd9052f98d4a
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Thu Apr 7 07:43:35 2016 +0200

    - up to 4.87; event/proxy/redis no longer experimental; enable DSN_INFO

 exim-callout-address.patch |  91 ------------------------
 exim-dkim.patch            | 168 ---------------------------------------------
 exim.spec                  |  32 +++++----
 3 files changed, 19 insertions(+), 272 deletions(-)
---
diff --git a/exim.spec b/exim.spec
index 74b7284..08d76ca 100644
--- a/exim.spec
+++ b/exim.spec
@@ -10,6 +10,8 @@
 %bcond_without	srs	# without srs support
 %bcond_without	dynamic # dynamic modules
 %bcond_without	hiredis # without redis
+# opendmarc.spec not ready, so off by default
+%bcond_with	dmarc	# DMARC support
 
 %if "%{pld_release}" == "ac"
 # hiredis build segfaults on ac-alpha
@@ -20,15 +22,15 @@ Summary:	University of Cambridge Mail Transfer Agent
 Summary(pl.UTF-8):	Agent Transferu Poczty Uniwersytetu w Cambridge
 Summary(pt_BR.UTF-8):	Servidor de correio eletrônico exim
 Name:		exim
-Version:	4.86.2
-Release:	2
+Version:	4.87
+Release:	1
 Epoch:		2
 License:	GPL
 Group:		Networking/Daemons/SMTP
 Source0:	ftp://ftp.exim.org/pub/exim/exim4/%{name}-%{version}.tar.bz2
-# Source0-md5:	1443a4a88d6b78ad9b6a681c51437b55
+# Source0-md5:	2effc2bd47ad2dc010f655c11a1b1173
 Source1:	ftp://ftp.exim.org/pub/exim/exim4/%{name}-html-%{version}.tar.bz2
-# Source1-md5:	b8766a100c4f5a9c7bd11e88fab6c80b
+# Source1-md5:	f6ee36fd8d024912c053d113970938f5
 Source2:	%{name}.init
 Source3:	%{name}.cron.db
 Source4:	%{name}4.conf
@@ -45,7 +47,7 @@ Source14:	ftp://ftp.exim.org/pub/exim/exim4/old/config.samples.tar.bz2
 # Source14-md5:	4b93321938a800caa6127c48ad60a42b
 Source15:	%{name}4-smtp.pamd
 Source16:	%{name}on.png
-# git log -p exim-4_86..exim-4_86+fixes --reverse -- . ":(exclude)doc/doc-*" ":(exclude)test" ":(exclude).*" > exim-git.patch
+# git log -p exim-4_87..exim-4_87+fixes --reverse -- . ":(exclude)doc/doc-*" ":(exclude)test" ":(exclude).*" > exim-git.patch
 Patch100:	%{name}-git.patch
 Patch0:		%{name}4-EDITME.patch
 Patch1:		%{name}4-monitor-EDITME.patch
@@ -54,15 +56,16 @@ Patch3:		exim-defs.patch
 Patch4:		%{name}4-Makefile-Default.patch
 # http://marc.merlins.org/linux/exim/files/sa-exim-cvs/localscan_dlopen_exim_4.20_or_better.patch
 Patch5:		localscan_dlopen_%{name}_4.20_or_better.patch
-Patch6:		exim-dkim.patch
+
 Patch8:		%{name}-spam-timeout.patch
-Patch9:		%{name}-callout-address.patch
+
 Patch10:	%{name}-force-sigalrm.patch
 
 Patch20:	%{name}4-disableSSLv3.patch
 URL:		http://www.exim.org/
 %{?with_sasl:BuildRequires:	cyrus-sasl-devel >= 2.1.0}
 BuildRequires:	db-devel
+%{?with_dmarc:BuildRequires:	opendmarc-devel}
 %{?with_hiredis:BuildRequires:	hiredis-devel}
 %{?with_spf:BuildRequires:	libspf2-devel >= 1.2.5-2}
 %{?with_srs:BuildRequires:	libsrs_alt-devel >= 1.0}
@@ -168,7 +171,7 @@ Pliki nagłówkowe dla Exima.
 
 %prep
 %setup -q -a1 -a7
-%patch100 -p2
+#%patch100 -p2
 
 %patch0 -p1
 %patch1 -p1
@@ -176,10 +179,9 @@ Pliki nagłówkowe dla Exima.
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
-%patch6 -p2
 
 %patch8 -p1
-%patch9 -p2
+
 %patch10 -p1
 
 install %{SOURCE4} exim4.conf
@@ -197,8 +199,12 @@ X11_LD_LIB=%{_prefix}/X11R6/%{_lib}
 EXPERIMENTAL_DANE=yes
 EXPERIMENTAL_DCC=yes
 EXPERIMENTAL_PRDR=yes
-EXPERIMENTAL_EVENT=yes
-EXPERIMENTAL_PROXY=yes
+EXPERIMENTAL_DSN_INFO=yes
+SUPPORT_PROXY=yes
+%if %{with dmarc}
+EXPERIMENTAL_DMARC=yes
+LOOKUP_LIBS+=-lopendmarc
+%endif
 %if %{with spf}
 EXPERIMENTAL_SPF=yes
 LOOKUP_LIBS+=-lspf2
@@ -208,7 +214,7 @@ EXPERIMENTAL_SRS=yes
 LOOKUP_LIBS+=-lsrs_alt
 %endif
 %if %{with hiredis}
-EXPERIMENTAL_REDIS=yes
+LOOKUP_REDIS=yes
 LOOKUP_LIBS+=-lhiredis
 %endif
 %if %{with mysql}
diff --git a/exim-callout-address.patch b/exim-callout-address.patch
deleted file mode 100644
index d394a2b..0000000
--- a/exim-callout-address.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-commit 055e2cb463e4e4adf2d9292a50ac274938f9a5ac
-Author: Jeremy Harris <jgh146exb at wizmail.org>
-Date:   Sat Sep 12 15:00:45 2015 +0100
-
-    New $callout_address variable to record spamd (etc) address.  Bug 1652
-
-diff --git a/src/src/expand.c b/src/src/expand.c
-index 1bff521..f9849e6 100644
---- a/src/src/expand.c
-+++ b/src/src/expand.c
-@@ -462,6 +462,7 @@ static var_entry var_table[] = {
-   { "bounce_return_size_limit", vtype_int,    &bounce_return_size_limit },
-   { "caller_gid",          vtype_gid,         &real_gid },
-   { "caller_uid",          vtype_uid,         &real_uid },
-+  { "callout_address",     vtype_stringptr,   &callout_address },
-   { "compile_date",        vtype_stringptr,   &version_date },
-   { "compile_number",      vtype_stringptr,   &version_cnumber },
-   { "config_dir",          vtype_stringptr,   &config_main_directory },
-diff --git a/src/src/globals.c b/src/src/globals.c
-index f3b6791..55a101f 100644
---- a/src/src/globals.c
-+++ b/src/src/globals.c
-@@ -478,6 +478,7 @@ int     bounce_return_size_limit = 100*1024;
- uschar *bounce_sender_authentication = NULL;
- int     bsmtp_transaction_linecount = 0;
- 
-+uschar *callout_address        = NULL;
- int     callout_cache_domain_positive_expire = 7*24*60*60;
- int     callout_cache_domain_negative_expire = 3*60*60;
- int     callout_cache_positive_expire = 24*60*60;
-diff --git a/src/src/globals.h b/src/src/globals.h
-index 3c69e43..7bfb5aa 100644
---- a/src/src/globals.h
-+++ b/src/src/globals.h
-@@ -255,6 +255,7 @@ extern int     bounce_return_size_limit; /* Max amount to return */
- extern uschar *bounce_sender_authentication; /* AUTH address for bounces */
- extern int     bsmtp_transaction_linecount; /* Start of last transaction */
- 
-+extern uschar *callout_address;         /* Address used for a malware/spamd/verify etc. callout */
- extern int     callout_cache_domain_positive_expire; /* Time for positive domain callout cache records to expire */
- extern int     callout_cache_domain_negative_expire; /* Time for negative domain callout cache records to expire */
- extern int     callout_cache_positive_expire; /* Time for positive callout cache records to expire */
-diff --git a/src/src/ip.c b/src/src/ip.c
-index 2d71705..1e3875a 100644
---- a/src/src/ip.c
-+++ b/src/src/ip.c
-@@ -237,7 +237,11 @@ if (running_in_test_harness  && save_errno == ECONNREFUSED && timeout == 999999)
- 
- /* Success */
- 
--if (rc >= 0) return 0;
-+if (rc >= 0)
-+  {
-+  callout_address = string_sprintf("[%s]:%d", address, port);
-+  return 0;
-+  }
- 
- /* A failure whose error code is "Interrupted system call" is in fact
- an externally applied timeout if the signal handler has been run. */
-@@ -400,6 +404,7 @@ if (connect(sock, (struct sockaddr *) &server, sizeof(server)) < 0)
- 		path, strerror(err));
-   return -1;
-   }
-+callout_address = string_copy(path);
- return sock;
- }
- 
-diff --git a/src/src/smtp_out.c b/src/src/smtp_out.c
-index c704a0b..88dde83 100644
---- a/src/src/smtp_out.c
-+++ b/src/src/smtp_out.c
-@@ -284,6 +284,8 @@ if (host->port != PORT_NONE)
-   }
- else host->port = port;    /* Set the port actually used */
- 
-+callout_address = string_sprintf("[%s]:%d", host->address, port);
-+
- HDEBUG(D_transport|D_acl|D_v)
-   {
-   uschar * s = US" ";
-@@ -291,8 +293,7 @@ HDEBUG(D_transport|D_acl|D_v)
- #ifdef EXPERIMENTAL_SOCKS
-   if (ob->socks_proxy) s = string_sprintf("%svia proxy ", s);
- #endif
--  debug_printf("Connecting to %s [%s]:%d%s... ",
--    host->name, host->address, port, s);
-+  debug_printf("Connecting to %s %s%s... ", host->name, callout_address, s);
-   }
- 
- /* Create and connect the socket */
-
diff --git a/exim-dkim.patch b/exim-dkim.patch
deleted file mode 100644
index 80dd59b..0000000
--- a/exim-dkim.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-commit 6a11a9e618a72b8d96aecb2ad9aa300b98f8d991
-Author: Jeremy Harris <jgh146exb at wizmail.org>
-Date:   Sun Nov 29 01:12:38 2015 +0000
-
-    DKIM: relaxed body canonicalisation should ignore whitespace at EOL
-    and empty lines at EOM.  Bug 1721
-
-diff --git a/src/src/pdkim/pdkim.c b/src/src/pdkim/pdkim.c
-index cd79521..de774a2 100644
---- a/src/src/pdkim/pdkim.c
-+++ b/src/src/pdkim/pdkim.c
-@@ -596,7 +596,7 @@ pdkim_signature *pdkim_parse_sig_header(pdkim_ctx *ctx, char *raw_hdr) {
-           pdkim_strtrim(cur_val);
-           #ifdef PDKIM_DEBUG
-           if (ctx->debug_stream)
--            fprintf(ctx->debug_stream, "%s=%s\n", cur_tag->str, cur_val->str);
-+            fprintf(ctx->debug_stream, " %s=%s\n", cur_tag->str, cur_val->str);
-           #endif
-           switch (cur_tag->str[0]) {
-             case 'b':
-@@ -674,7 +674,7 @@ pdkim_signature *pdkim_parse_sig_header(pdkim_ctx *ctx, char *raw_hdr) {
-             default:
-               #ifdef PDKIM_DEBUG
-               if (ctx->debug_stream)
--                fprintf(ctx->debug_stream, "Unknown tag encountered\n");
-+                fprintf(ctx->debug_stream, " Unknown tag encountered\n");
-               #endif
-             break;
-           }
-@@ -799,7 +799,7 @@ pdkim_pubkey *pdkim_parse_pubkey_record(pdkim_ctx *ctx, char *raw_record) {
-           pdkim_strtrim(cur_val);
-           #ifdef PDKIM_DEBUG
-           if (ctx->debug_stream)
--            fprintf(ctx->debug_stream, "%s=%s\n", cur_tag->str, cur_val->str);
-+            fprintf(ctx->debug_stream, " %s=%s\n", cur_tag->str, cur_val->str);
-           #endif
-           switch (cur_tag->str[0]) {
-             case 'v':
-@@ -833,7 +833,7 @@ pdkim_pubkey *pdkim_parse_pubkey_record(pdkim_ctx *ctx, char *raw_record) {
-             default:
-               #ifdef PDKIM_DEBUG
-               if (ctx->debug_stream)
--                fprintf(ctx->debug_stream, "Unknown tag encountered\n");
-+                fprintf(ctx->debug_stream, " Unknown tag encountered\n");
-               #endif
-             break;
-           }
-@@ -925,7 +925,7 @@ int pdkim_update_bodyhash(pdkim_ctx *ctx, const char *data, int len) {
-       sig->signed_body_bytes += canon_len;
- #ifdef PDKIM_DEBUG
-       if (ctx->debug_stream!=NULL)
--        pdkim_quoteprint(ctx->debug_stream,canon_data,canon_len,0);
-+        pdkim_quoteprint(ctx->debug_stream,canon_data,canon_len,1);
- #endif
-     }
- 
-@@ -1037,6 +1037,23 @@ int pdkim_bodyline_complete(pdkim_ctx *ctx) {
-     goto BAIL;
-   }
- 
-+  if (  ctx->sig
-+     && ctx->sig->canon_body == PDKIM_CANON_RELAXED) {
-+    /* Lines with just spaces need to be buffered too */
-+    char *check = p;
-+    while(memcmp(check,"\r\n",2) != 0) {
-+      char c = *check;
-+
-+      if (c != '\t' && c != ' ')
-+	goto PROCESS;
-+      check++;
-+    }
-+
-+    ctx->num_buffered_crlf++;
-+    goto BAIL;
-+  }
-+
-+  PROCESS:
-   /* At this point, we have a non-empty line, so release the buffered ones. */
-   while (ctx->num_buffered_crlf) {
-     pdkim_update_bodyhash(ctx,"\r\n",2);
-@@ -1699,7 +1716,7 @@ DLLEXPORT int pdkim_feed_finish(pdkim_ctx *ctx, pdkim_signature **return_signatu
-       if (ctx->debug_stream) {
-         fprintf(ctx->debug_stream,
-                 "PDKIM >> Parsing public key record >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
--        fprintf(ctx->debug_stream,"Raw record: ");
-+        fprintf(ctx->debug_stream," Raw record: ");
-         pdkim_quoteprint(ctx->debug_stream, dns_txt_reply, strlen(dns_txt_reply), 1);
-       }
-       #endif
-@@ -1710,7 +1727,7 @@ DLLEXPORT int pdkim_feed_finish(pdkim_ctx *ctx, pdkim_signature **return_signatu
-         sig->verify_ext_status =  PDKIM_VERIFY_INVALID_PUBKEY_PARSING;
-         #ifdef PDKIM_DEBUG
-         if (ctx->debug_stream) {
--          fprintf(ctx->debug_stream,"Error while parsing public key record\n");
-+          fprintf(ctx->debug_stream," Error while parsing public key record\n");
-           fprintf(ctx->debug_stream,
-             "PDKIM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
-         }
-
-commit 9042106b5116fcc621e1c720460a42896011c1cd
-Author: Jeremy Harris <jgh146exb at wizmail.org>
-Date:   Sun Nov 29 01:36:06 2015 +0000
-
-    DKIM: fix relaxed body verify for a newline-only body.  Bug 963
-
-diff --git a/src/src/pdkim/pdkim.c b/src/src/pdkim/pdkim.c
-index 99948ff..94328f7 100644
---- a/src/src/pdkim/pdkim.c
-+++ b/src/src/pdkim/pdkim.c
-@@ -987,11 +987,11 @@ int pdkim_finish_bodyhash(pdkim_ctx *ctx) {
-       else {
-         #ifdef PDKIM_DEBUG
-         if (ctx->debug_stream) {
--          fprintf(ctx->debug_stream, "PDKIM [%s] Body hash did NOT verify\n",
--                  sig->domain);
-           fprintf(ctx->debug_stream, "PDKIM [%s] bh signature: ", sig->domain);
-           pdkim_hexprint(ctx->debug_stream, sig->bodyhash,
-                            (sig->algo == PDKIM_ALGO_RSA_SHA1)?20:32,1);
-+          fprintf(ctx->debug_stream, "PDKIM [%s] Body hash did NOT verify\n",
-+                  sig->domain);
-         }
-         #endif
-         sig->verify_status     = PDKIM_VERIFY_FAIL;
-@@ -1022,6 +1022,12 @@ int pdkim_bodyline_complete(pdkim_ctx *ctx) {
-   if (ctx->input_mode == PDKIM_INPUT_SMTP) {
-     /* Terminate on EOD marker */
-     if (memcmp(p,".\r\n",3) == 0) {
-+      /* In simple body mode, if any empty lines were buffered,
-+      replace with one. rfc 4871 3.4.3 */
-+      if (ctx->sig && ctx->sig->canon_body == PDKIM_CANON_SIMPLE
-+	 && ctx->num_buffered_crlf > 0)
-+	pdkim_update_bodyhash(ctx,"\r\n",2);
-+
-       ctx->seen_eod = 1;
-       goto BAIL;
-     }
-
---- a/src/src/pdkim/pdkim.c~	2015-12-02 19:18:54.000000000 +0100
-+++ a/src/src/pdkim/pdkim.c	2015-12-02 19:22:09.149625694 +0100
-@@ -1096,6 +1096,7 @@
- int pdkim_bodyline_complete(pdkim_ctx *ctx) {
-   char *p = ctx->linebuf;
-   int   n = ctx->linebuf_offset;
-+  pdkim_signature *sig = ctx->sig;       /*XXX assumes only one sig */
- 
-   /* Ignore extra data if we've seen the end-of-data marker */
-   if (ctx->seen_eod) goto BAIL;
-@@ -1108,7 +1109,8 @@
-     if (memcmp(p,".\r\n",3) == 0) {
-       /* In simple body mode, if any empty lines were buffered,
-       replace with one. rfc 4871 3.4.3 */
--      if (ctx->sig && ctx->sig->canon_body == PDKIM_CANON_SIMPLE
-+      if (  sig && sig->canon_body == PDKIM_CANON_SIMPLE
-+         && sig->signed_body_bytes == 0
- 	 && ctx->num_buffered_crlf > 0)
- 	pdkim_update_bodyhash(ctx,"\r\n",2);
- 
-@@ -1128,8 +1130,8 @@
-     goto BAIL;
-   }
- 
--  if (  ctx->sig
--     && ctx->sig->canon_body == PDKIM_CANON_RELAXED) {
-+  if (  sig
-+     && sig->canon_body == PDKIM_CANON_RELAXED) {
-     /* Lines with just spaces need to be buffered too */
-     char *check = p;
-     while(memcmp(check,"\r\n",2) != 0) {
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/exim.git/commitdiff/ca839913776724d44ec27f5a0058bd9052f98d4a



More information about the pld-cvs-commit mailing list