On Sat, Dec 11, 2010 at 04:11:47PM +0200, Peter Pentchev wrote: > Package: release.debian.org > Severity: normal > User: release.debian.org@packages.debian.org > Usertags: unblock > > Hi, > > Thanks for your efforts on cutting great Debian releases! > > I've made some changes (debdiff attached) to the dma package which > I haven't uploaded to unstable yet; do you think they are suitable > for a unstable -> testing migration during the freeze, or should I > upload to experimental instead, or just wait? > > The first change is a fix for #606398 - now dma provides the > /usr/lib/sendmail symlink so some MUA's can actually, well, send > mail. IMHO this is a usability improvement, although only for a > small portion of the MUA's. > > The second change is a fix for a segfault if dma cannot resolve any > of the MX's it tries to deliver to. This does not have any really > bad consequences - the message is still in the queue and dma will > retry the delivery in a while - but it is kind of annoying to have > segfaults show up in your syslog just because a VPN is down :) Actually, after a bit of communication with the upstream developer, I decided that it would be better to use his version of the fix for the DNS MX trouble. Attached is a debdiff that replaces my patch with his change, committed to his Gitorious repo. > So - what's your call? Should I upload to unstable with a freeze > exception in mind, or should these fixes wait for the Squeeze > release? G'luck, Peter -- Peter Pentchev roam@space.bg roam@ringlet.net roam@FreeBSD.org PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 This sentence was in the past tense.
diffstat for dma-0.0.2010.06.17 dma-0.0.2010.06.17
changelog | 9 ++++
dma.links | 1
patches/38-unresolvable-mx.patch | 87 +++++++++++++++++++++++++++++++++++++++
patches/series | 1
4 files changed, 98 insertions(+)
diff -Nru dma-0.0.2010.06.17/debian/changelog dma-0.0.2010.06.17/debian/changelog
--- dma-0.0.2010.06.17/debian/changelog 2010-10-17 00:08:38.000000000 +0300
+++ dma-0.0.2010.06.17/debian/changelog 2010-12-13 12:58:57.000000000 +0200
@@ -1,3 +1,12 @@
+dma (0.0.2010.06.17-7) unstable; urgency=low
+
+ * Provide the /usr/lib/sendmail symlink. Closes: #606398
+ * Add the 38-unresolvable-mx patch to fix a segfault when
+ dma is unable to, well, resolve either the provided smarthost or
+ any of the mail exchangers for the recipient domain.
+
+ -- Peter Pentchev <roam@ringlet.net> Mon, 13 Dec 2010 12:58:54 +0200
+
dma (0.0.2010.06.17-6) unstable; urgency=low
* Add the 37-gnu-hurd patch to really fix the FTBFS on GNU/Hurd.
diff -Nru dma-0.0.2010.06.17/debian/dma.links dma-0.0.2010.06.17/debian/dma.links
--- dma-0.0.2010.06.17/debian/dma.links 2009-12-09 20:27:05.000000000 +0200
+++ dma-0.0.2010.06.17/debian/dma.links 2010-12-11 15:19:23.000000000 +0200
@@ -1,5 +1,6 @@
usr/sbin/dma usr/bin/mailq
usr/sbin/dma usr/bin/newaliases
+usr/sbin/dma usr/lib/sendmail
usr/sbin/dma usr/sbin/sendmail
usr/share/man/man8/dma.8 usr/share/man/man8/mailq.8
usr/share/man/man8/dma.8 usr/share/man/man8/newaliases.8
diff -Nru dma-0.0.2010.06.17/debian/patches/38-unresolvable-mx.patch dma-0.0.2010.06.17/debian/patches/38-unresolvable-mx.patch
--- dma-0.0.2010.06.17/debian/patches/38-unresolvable-mx.patch 1970-01-01 02:00:00.000000000 +0200
+++ dma-0.0.2010.06.17/debian/patches/38-unresolvable-mx.patch 2010-12-13 12:42:42.000000000 +0200
@@ -0,0 +1,87 @@
+Description: Fix a segfault upon unresolvable MX's.
+ This fixes both the case when the configured smarthost is unresolvable
+ and the case when a smarthost is not used but *all* of the MX's for
+ the recipient domain are unresolvable.
+Origin: upstream; http://gitorious.org/~corecode/dma/corecodes-dma/commit/4b26e6a7
+Author: Simon 'corecode' Schubert <2@0x2c.org>
+Last-Update: 2010-12-13
+
+--- a/dns.c
++++ b/dns.c
+@@ -80,7 +80,7 @@
+ snprintf(servname, sizeof(servname), "%d", port);
+ err = getaddrinfo(host, servname, &hints, &res0);
+ if (err)
+- return (-1);
++ return (err == EAI_AGAIN ? 1 : -1);
+
+ for (res = res0; res != NULL; res = res->ai_next) {
+ if (*ps + 1 >= roundup(*ps, count_inc)) {
+@@ -110,7 +110,7 @@
+ out:
+ if (res0 != NULL)
+ freeaddrinfo(res0);
+- return (-1);
++ return (1);
+ }
+
+ int
+@@ -127,6 +127,7 @@
+ size_t anssz;
+ int pref;
+ int cname_recurse;
++ int have_mx = 0;
+ int err;
+ int i;
+
+@@ -183,6 +184,7 @@
+
+ switch (ns_rr_type(rr)) {
+ case ns_t_mx:
++ have_mx = 1;
+ pref = ns_get16(cp);
+ cp += 2;
+ err = ns_name_uncompress(ns_msg_base(msg), ns_msg_end(msg),
+@@ -190,7 +192,9 @@
+ if (err < 0)
+ goto transerr;
+
+- add_host(pref, outname, port, &hosts, &nhosts);
++ err = add_host(pref, outname, port, &hosts, &nhosts);
++ if (err == -1)
++ goto err;
+ break;
+
+ case ns_t_cname:
+@@ -225,17 +229,23 @@
+
+ free(ans);
+
+- if (!err) {
+- /*
+- * If we didn't find any MX, use the hostname instead.
+- */
+- if (nhosts == 0)
+- add_host(0, searchhost, port, &hosts, &nhosts);
+-
+- qsort(hosts, nhosts, sizeof(*hosts), sort_pref);
++ if (err == 0) {
++ if (!have_mx) {
++ /*
++ * If we didn't find any MX, use the hostname instead.
++ */
++ err = add_host(0, host, port, &hosts, &nhosts);
++ } else if (nhosts == 0) {
++ /*
++ * We did get MX, but couldn't resolve any of them
++ * due to transient errors.
++ */
++ err = 1;
++ }
+ }
+
+ if (nhosts > 0) {
++ qsort(hosts, nhosts, sizeof(*hosts), sort_pref);
+ /* terminate list */
+ *hosts[nhosts].host = 0;
+ } else {
diff -Nru dma-0.0.2010.06.17/debian/patches/series dma-0.0.2010.06.17/debian/patches/series
--- dma-0.0.2010.06.17/debian/patches/series 2010-10-16 18:54:13.000000000 +0300
+++ dma-0.0.2010.06.17/debian/patches/series 2010-12-11 15:19:23.000000000 +0200
@@ -20,3 +20,4 @@
35-delivery-retry.patch
36-sa_nocldwait.patch
37-gnu-hurd.patch
+38-unresolvable-mx.patch
Attachment:
signature.asc
Description: Digital signature