diff -Nru traceroute-2.0.20/ChangeLog traceroute-2.0.21/ChangeLog --- traceroute-2.0.20/ChangeLog 2014-06-14 19:00:40.000000000 +0000 +++ traceroute-2.0.21/ChangeLog 2014-11-12 03:54:41.000000000 +0000 @@ -1,3 +1,10 @@ +2014-11-12 Dmitry Butskoy - 2.0.21 + + * Fix `--mtu' and `-F' working on kernels >= 3.13 + + * Some manual page improving (Christopher Mann) + + 2014-06-14 Dmitry Butskoy - 2.0.20 * Describe all complementary long options in the man page (Jan Synacek) diff -Nru traceroute-2.0.20/debian/changelog traceroute-2.0.21/debian/changelog --- traceroute-2.0.20/debian/changelog 2014-08-10 13:15:22.000000000 +0000 +++ traceroute-2.0.21/debian/changelog 2015-05-03 10:56:20.000000000 +0000 @@ -1,3 +1,15 @@ +traceroute (1:2.0.21-1) unstable; urgency=low + + * New upstream release. + * Remove 07-fix-mtu-on-recent-kernels.patch , applied upstream. + * Update Standards-Version to 3.9.6 . + + [ Jérémy Bobbio ] + * Add 08-remove-build-date.patch to make the package build reproducibly + (closes: #774365). + + -- Laszlo Boszormenyi (GCS) Sun, 03 May 2015 10:44:53 +0000 + traceroute (1:2.0.20-2) unstable; urgency=medium [ Graham Inggs ] diff -Nru traceroute-2.0.20/debian/control traceroute-2.0.21/debian/control --- traceroute-2.0.20/debian/control 2014-06-16 17:12:21.000000000 +0000 +++ traceroute-2.0.21/debian/control 2015-05-03 10:48:52.000000000 +0000 @@ -3,7 +3,7 @@ Priority: important Maintainer: Laszlo Boszormenyi (GCS) Build-Depends: debhelper (>= 9) -Standards-Version: 3.9.5 +Standards-Version: 3.9.6 Homepage: http://traceroute.sourceforge.net/ Package: traceroute diff -Nru traceroute-2.0.20/debian/patches/07-fix-mtu-on-recent-kernels.patch traceroute-2.0.21/debian/patches/07-fix-mtu-on-recent-kernels.patch --- traceroute-2.0.20/debian/patches/07-fix-mtu-on-recent-kernels.patch 2014-08-10 13:12:15.000000000 +0000 +++ traceroute-2.0.21/debian/patches/07-fix-mtu-on-recent-kernels.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -Description: Fix --mtu on recent kernels - This patch allows EMSGSIZE replies with SO_EE_ORIGIN_LOCAL so that - traceroute with the --mtu option can work on recent kernels -Author: Graham Inggs -Forwarded: https://sourceforge.net/p/traceroute/bugs/8/ -Last-Update: 2014-08-09 ---- a/traceroute/traceroute.c -+++ b/traceroute/traceroute.c -@@ -1345,7 +1345,8 @@ - - ee = (struct sock_extended_err *) ptr; - -- if (ee->ee_origin != SO_EE_ORIGIN_ICMP) -+ if ((ee->ee_origin != SO_EE_ORIGIN_ICMP) && -+ (ee->ee_origin != SO_EE_ORIGIN_LOCAL)) - ee = NULL; - /* dgram icmp sockets might return extra things... */ - else if (ee->ee_type == ICMP_SOURCE_QUENCH || diff -Nru traceroute-2.0.20/debian/patches/08-remove-build-date.patch traceroute-2.0.21/debian/patches/08-remove-build-date.patch --- traceroute-2.0.20/debian/patches/08-remove-build-date.patch 1970-01-01 00:00:00.000000000 +0000 +++ traceroute-2.0.21/debian/patches/08-remove-build-date.patch 2015-05-03 10:51:11.000000000 +0000 @@ -0,0 +1,19 @@ +Description: Remove build date from version string + Using the C pre-processor __DATE__ macro prevents traceroute from being built + reproducibly. In the context of Debian, adding the build date to the version + string gives little information to users. So we just remove it. +Author: Jérémy Bobbio + +Index: traceroute-2.0.20/traceroute/traceroute.c +=================================================================== +--- traceroute-2.0.20.orig/traceroute/traceroute.c ++++ traceroute-2.0.20/traceroute/traceroute.c +@@ -72,7 +72,7 @@ + + + static char version_string[] = "Modern traceroute for Linux, " +- "version " _TEXT(VERSION) ", " __DATE__ ++ "version " _TEXT(VERSION) + "\nCopyright (c) 2008 Dmitry Butskoy, " + " License: GPL v2 or any later"; + static int debug = 0; diff -Nru traceroute-2.0.20/debian/patches/series traceroute-2.0.21/debian/patches/series --- traceroute-2.0.20/debian/patches/series 2014-08-10 13:12:34.000000000 +0000 +++ traceroute-2.0.21/debian/patches/series 2015-05-03 10:52:07.000000000 +0000 @@ -4,4 +4,4 @@ 04-manpage-lft.patch 05-manpage-p.patch 06-build.patch -07-fix-mtu-on-recent-kernels.patch +08-remove-build-date.patch diff -Nru traceroute-2.0.20/traceroute/traceroute.8 traceroute-2.0.21/traceroute/traceroute.8 --- traceroute-2.0.20/traceroute/traceroute.8 2014-06-14 16:52:02.000000000 +0000 +++ traceroute-2.0.21/traceroute/traceroute.8 2014-11-11 23:27:17.000000000 +0000 @@ -251,8 +251,8 @@ Print the version and exit. .br .P -There is a couple of additional options, intended for an advanced usage -(another trace methods etc.): +There are additional options intended for advanced usage +(such as alternate trace methods etc.): .TP .B \--sport\fR=\fIport Chooses the source port to use. Implies diff -Nru traceroute-2.0.20/traceroute/traceroute.c traceroute-2.0.21/traceroute/traceroute.c --- traceroute-2.0.20/traceroute/traceroute.c 2014-06-14 18:57:38.000000000 +0000 +++ traceroute-2.0.21/traceroute/traceroute.c 2014-11-12 03:33:00.000000000 +0000 @@ -1252,6 +1252,19 @@ } +static void parse_local_res (probe *pb, int ee_errno, int info) { + + if (ee_errno == EMSGSIZE && info != 0) { + snprintf (pb->err_str, sizeof(pb->err_str)-1, "!F-%d", info); + pb->final = 1; + return; + } + + errno = ee_errno; + error ("local recverr"); +} + + void probe_done (probe *pb) { if (pb->sk) { @@ -1321,7 +1334,17 @@ pb = check_reply (sk, err, &from, bufp, n); - if (!pb) return; + if (!pb) { + + /* for `frag needed' case at the local host, + kernel >= 3.13 sends local error (no more icmp) + */ + if (!n && err && dontfrag) { + pb = &probes[(first_hop - 1) * probes_per_hop]; + if (pb->done) return; + } else + return; + } /* Parse CMSG stuff */ @@ -1345,11 +1368,14 @@ ee = (struct sock_extended_err *) ptr; - if (ee->ee_origin != SO_EE_ORIGIN_ICMP) - ee = NULL; + if (ee->ee_origin != SO_EE_ORIGIN_ICMP && + ee->ee_origin != SO_EE_ORIGIN_LOCAL + ) return; + /* dgram icmp sockets might return extra things... */ - else if (ee->ee_type == ICMP_SOURCE_QUENCH || - ee->ee_type == ICMP_REDIRECT + if (ee->ee_origin == SO_EE_ORIGIN_ICMP && + (ee->ee_type == ICMP_SOURCE_QUENCH || + ee->ee_type == ICMP_REDIRECT) ) return; } } @@ -1361,8 +1387,9 @@ ee = (struct sock_extended_err *) ptr; - if (ee->ee_origin != SO_EE_ORIGIN_ICMP6) - ee = NULL; + if (ee->ee_origin != SO_EE_ORIGIN_ICMP6 && + ee->ee_origin != SO_EE_ORIGIN_LOCAL + ) return; } } } @@ -1378,11 +1405,14 @@ pb->recv_ttl = recv_ttl; - if (ee) { + if (ee && ee->ee_origin != SO_EE_ORIGIN_LOCAL) { /* icmp or icmp6 */ memcpy (&pb->res, SO_EE_OFFENDER (ee), sizeof(pb->res)); parse_icmp_res (pb, ee->ee_type, ee->ee_code, ee->ee_info); } + if (ee && ee->ee_origin == SO_EE_ORIGIN_LOCAL) + parse_local_res (pb, ee->ee_errno, ee->ee_info); + if (ee && mtudisc && @@ -1529,7 +1559,7 @@ if (errno == ENOBUFS || errno == EAGAIN) return res; if (errno == EMSGSIZE) - return 0; /* icmp will say more... */ + return 0; /* recverr will say more... */ error ("send"); /* not recoverable */ } diff -Nru traceroute-2.0.20/traceroute.spec traceroute-2.0.21/traceroute.spec --- traceroute-2.0.20/traceroute.spec 2014-06-14 16:41:18.000000000 +0000 +++ traceroute-2.0.21/traceroute.spec 2014-11-12 03:47:41.000000000 +0000 @@ -1,6 +1,6 @@ Summary: Traces the route taken by packets over an IPv4/IPv6 network Name: traceroute -Version: 2.0.20 +Version: 2.0.21 Release: 1%{?dist} Group: Applications/Internet License: GPLv2+ diff -Nru traceroute-2.0.20/VERSION traceroute-2.0.21/VERSION --- traceroute-2.0.20/VERSION 2014-06-14 16:41:18.000000000 +0000 +++ traceroute-2.0.21/VERSION 2014-11-12 03:47:41.000000000 +0000 @@ -1 +1 @@ -#define VERSION 2.0.20 +#define VERSION 2.0.21