[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