Package: src:inetutils Version: 1.8-3 Severity: wishlist Tags: patch There is no available traceroute tool for GNU/kFreeBSD, since the standard package `traceroute' is severely hit by an FTBFS in GNU/kFreeBSD.
However, inetutils-1.8 is easily patched to provide a fully functional traceroute tool for GNU/kFreeBSD. The following patch includes everything needed to let the source package build also `inetutils-traceroute', which works perfectly in GNU/kFreeBSD. The resulting package is lintian clean. The patch applies to inetutils_1.8-3.debian.tar.gz Best regards, Mats Erik Andersson, DM
diff -Naur inetutils-1.8.debian/debian/control inetutils-1.8/debian/control
--- inetutils-1.8.debian/debian/control 2010-11-18 05:55:54.000000000 +0100
+++ inetutils-1.8/debian/control 2011-01-18 15:26:32.000000000 +0100
@@ -12,7 +12,7 @@
Build-Conflicts: autoconf2.13, automake1.4
Package: inetutils-ftp
-Priority: extra
+Priority: standard
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, netbase
Description: File Transfer Protocol client
@@ -20,7 +20,7 @@
FTP protocol.
Package: inetutils-ftpd
-Priority: extra
+Priority: standard
Architecture: any
Provides: ftp-server
Conflicts: ftp-server
@@ -31,7 +31,7 @@
command to transfer files using the FTP protocol.
Package: inetutils-inetd
-Priority: extra
+Priority: standard
Architecture: any
Provides: inet-superserver, netkit-inetd
Conflicts: inet-superserver, netkit-inetd
@@ -42,7 +42,7 @@
programs that can't or won't do it for themselves.
Package: inetutils-ping
-Priority: extra
+Priority: standard
Architecture: any
Provides: ping
Conflicts: ping, hurd (<= 20010718-1)
@@ -52,8 +52,8 @@
calculate latency between the sending and the destination hosts.
Package: inetutils-syslogd
-Section: net
-Priority: extra
+Section: base
+Priority: required
Architecture: any
Provides: system-log-daemon, ${syslogd:Provides}
Conflicts: system-log-daemon, ${syslogd:Provides}
@@ -65,7 +65,7 @@
from remote hosts.
Package: inetutils-talk
-Priority: extra
+Priority: standard
Architecture: any
Provides: talk
Replaces: talk-hurd
@@ -75,7 +75,7 @@
to that of another user.
Package: inetutils-talkd
-Priority: extra
+Priority: standard
Architecture: any
Provides: talkd
Conflicts: talkd
@@ -88,7 +88,7 @@
by clients wishing to rendezvous to hold a conversation.
Package: inetutils-telnet
-Priority: extra
+Priority: standard
Architecture: any
Provides: telnet-client
Replaces: telnet-hurd
@@ -98,7 +98,7 @@
using the TELNET protocol.
Package: inetutils-telnetd
-Priority: extra
+Priority: standard
Architecture: any
Provides: telnet-server
Conflicts: telnet-server
@@ -110,7 +110,7 @@
interactive communication protocol.
Package: inetutils-tools
-Priority: extra
+Priority: standard
Architecture: any
Provides: ${tools:Provides}
Depends: ${shlibs:Depends}, ${misc:Depends}
@@ -120,3 +120,14 @@
WARNING: The current ifconfig implementation provided is not fully
compatible with the net-tool's ifconfig version.
+Package: inetutils-traceroute
+Priority: standard
+Architecture: any
+Provides: traceroute
+Depends: ${shlibs:Depends}, ${misc:Depends}, netbase
+Description: trace the IPv4 route to another host
+ The traceroute utility displays the route taken by IP packets on their
+ way to another host or another network.
+ .
+ Install inetutils-traceroute if you need a tool to examine network
+ connectivity or to diagnose network problems.
diff -Naur inetutils-1.8.debian/debian/control.in inetutils-1.8/debian/control.in
--- inetutils-1.8.debian/debian/control.in 2010-09-08 04:40:16.000000000 +0200
+++ inetutils-1.8/debian/control.in 2011-01-18 15:23:52.000000000 +0100
@@ -120,3 +120,14 @@
WARNING: The current ifconfig implementation provided is not fully
compatible with the net-tool's ifconfig version.
+Package: inetutils-traceroute
+Priority: @inetutils:Priority@
+Architecture: any
+Provides: traceroute
+Depends: ${shlibs:Depends}, ${misc:Depends}, netbase
+Description: trace the IPv4 route to another host
+ The traceroute utility displays the route taken by IP packets on their
+ way to another host or another network.
+ .
+ Install inetutils-traceroute if you need a tool to examine network
+ connectivity or to diagnose network problems.
diff -Naur inetutils-1.8.debian/debian/inetutils-traceroute.dirs inetutils-1.8/debian/inetutils-traceroute.dirs
--- inetutils-1.8.debian/debian/inetutils-traceroute.dirs 1970-01-01 01:00:00.000000000 +0100
+++ inetutils-1.8/debian/inetutils-traceroute.dirs 2011-01-18 15:23:52.000000000 +0100
@@ -0,0 +1 @@
+usr/share/lintian/overrides
diff -Naur inetutils-1.8.debian/debian/inetutils-traceroute.install inetutils-1.8/debian/inetutils-traceroute.install
--- inetutils-1.8.debian/debian/inetutils-traceroute.install 1970-01-01 01:00:00.000000000 +0100
+++ inetutils-1.8/debian/inetutils-traceroute.install 2011-01-18 15:23:52.000000000 +0100
@@ -0,0 +1 @@
+usr/bin/inetutils-traceroute
diff -Naur inetutils-1.8.debian/debian/inetutils-traceroute.manpages inetutils-1.8/debian/inetutils-traceroute.manpages
--- inetutils-1.8.debian/debian/inetutils-traceroute.manpages 1970-01-01 01:00:00.000000000 +0100
+++ inetutils-1.8/debian/inetutils-traceroute.manpages 2011-01-18 15:23:52.000000000 +0100
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man1/inetutils-traceroute.1
diff -Naur inetutils-1.8.debian/debian/inetutils-traceroute.overrides inetutils-1.8/debian/inetutils-traceroute.overrides
--- inetutils-1.8.debian/debian/inetutils-traceroute.overrides 1970-01-01 01:00:00.000000000 +0100
+++ inetutils-1.8/debian/inetutils-traceroute.overrides 2011-01-18 15:23:52.000000000 +0100
@@ -0,0 +1 @@
+inetutils-traceroute: setuid-binary usr/bin/inetutils-traceroute 4755 root/root
diff -Naur inetutils-1.8.debian/debian/inetutils-traceroute.postinst inetutils-1.8/debian/inetutils-traceroute.postinst
--- inetutils-1.8.debian/debian/inetutils-traceroute.postinst 1970-01-01 01:00:00.000000000 +0100
+++ inetutils-1.8/debian/inetutils-traceroute.postinst 2011-01-18 15:23:52.000000000 +0100
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+
+update-alternatives --install /usr/bin/traceroute traceroute /usr/bin/inetutils-traceroute \
+ 100 --slave /usr/share/man/man1/traceroute.1.gz traceroute.1.gz \
+ /usr/share/man/man1/inetutils-traceroute.1.gz
+
+#DEBHELPER#
+
diff -Naur inetutils-1.8.debian/debian/inetutils-traceroute.prerm inetutils-1.8/debian/inetutils-traceroute.prerm
--- inetutils-1.8.debian/debian/inetutils-traceroute.prerm 1970-01-01 01:00:00.000000000 +0100
+++ inetutils-1.8/debian/inetutils-traceroute.prerm 2011-01-18 15:23:52.000000000 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ remove|deconfigure)
+ update-alternatives --remove traceroute /usr/bin/inetutils-traceroute
+ ;;
+ *)
+esac
+
+#DEBHELPER#
+
diff -Naur inetutils-1.8.debian/debian/patches/72_traceroute_fix_setsockopt.patch inetutils-1.8/debian/patches/72_traceroute_fix_setsockopt.patch
--- inetutils-1.8.debian/debian/patches/72_traceroute_fix_setsockopt.patch 1970-01-01 01:00:00.000000000 +0100
+++ inetutils-1.8/debian/patches/72_traceroute_fix_setsockopt.patch 2011-01-18 15:37:12.000000000 +0100
@@ -0,0 +1,64 @@
+Description: Use integer arguments to setsockopt().
+ GNU/kFreeBSD must pass an integer argument with IP_TTL
+ in setsockopt(2). Thsi has no ill effect with GNU/Linux.
+ .
+ The change is backported from upstream git repository.
+Author: Mats Erik Andersson <[email protected]>
+Forwarded: not-needed
+Last-Update: 2011-01-18
+
+--- inetutils-1.8/src/traceroute.c.orig
++++ inetutils-1.8/src/traceroute.c
+@@ -67,7 +67,7 @@
+ int icmpfd, udpfd;
+ enum trace_type type;
+ struct sockaddr_in to, from;
+- unsigned char ttl;
++ int ttl;
+ struct timeval tsent;
+ } trace_t;
+
+@@ -314,7 +314,7 @@
+ trace_init (trace_t * t, const struct sockaddr_in to,
+ const enum trace_type type)
+ {
+- const unsigned char *ttlp;
++ const int *ttlp;
+ assert (t);
+ ttlp = &t->ttl;
+
+@@ -329,7 +329,7 @@
+ error (EXIT_FAILURE, errno, "socket");
+
+ if (setsockopt (t->udpfd, IPPROTO_IP, IP_TTL, ttlp,
+- sizeof (t->ttl)) < 0)
++ sizeof (*ttlp)) < 0)
+ error (EXIT_FAILURE, errno, "setsockopt");
+ }
+
+@@ -343,7 +343,7 @@
+ error (EXIT_FAILURE, errno, "socket");
+
+ if (setsockopt (t->icmpfd, IPPROTO_IP, IP_TTL,
+- ttlp, sizeof (t->ttl)) < 0)
++ ttlp, sizeof (*ttlp)) < 0)
+ error (EXIT_FAILURE, errno, "setsockopt");
+ }
+ else
+@@ -523,14 +523,14 @@
+ trace_inc_ttl (trace_t * t)
+ {
+ int fd;
+- const unsigned char *ttlp;
++ const int *ttlp;
+
+ assert (t);
+
+ ttlp = &t->ttl;
+ t->ttl++;
+ fd = (t->type == TRACE_UDP ? t->udpfd : t->icmpfd);
+- if (setsockopt (fd, IPPROTO_IP, IP_TTL, ttlp, sizeof (t->ttl)) < 0)
++ if (setsockopt (fd, IPPROTO_IP, IP_TTL, ttlp, sizeof (*ttlp)) < 0)
+ error (EXIT_FAILURE, errno, "setsockopt");
+ }
+
diff -Naur inetutils-1.8.debian/debian/patches/series inetutils-1.8/debian/patches/series
--- inetutils-1.8.debian/debian/patches/series 2010-11-18 05:41:39.000000000 +0100
+++ inetutils-1.8/debian/patches/series 2011-01-18 15:23:52.000000000 +0100
@@ -13,3 +13,4 @@
63_inetd_ipv6_sockaddrlen.patch
64_telnetd_ipv6_sockaddrlen.patch
70_ftbfs_non-linux.patch
+72_traceroute_fix_setsockopt.patch
diff -Naur inetutils-1.8.debian/debian/rules inetutils-1.8/debian/rules
--- inetutils-1.8.debian/debian/rules 2010-09-08 04:40:16.000000000 +0200
+++ inetutils-1.8/debian/rules 2011-01-18 15:23:52.000000000 +0100
@@ -116,6 +116,10 @@
mv $(D)/$(man1dir)/ftp.1 $(D)/$(man1dir)/inetutils-ftp.1
mv $(D)/usr/bin/talk $(D)/usr/bin/inetutils-talk
mv $(D)/$(man1dir)/talk.1 $(D)/$(man1dir)/inetutils-talk.1
+ # Set correct suid-bits.
+ mv $(D)/usr/bin/traceroute $(D)/usr/bin/inetutils-traceroute
+ chmod 4755 $(D)/usr/bin/inetutils-traceroute
+ cp man/traceroute.1 $(D)/$(man1dir)/inetutils-traceroute.1
binary-indep:
# Nothing to do.
@@ -133,6 +137,8 @@
# This should use the new dh_lintian instead
cp $(CURDIR)/debian/inetutils-ping.overrides \
$(CURDIR)/debian/inetutils-ping/usr/share/lintian/overrides/inetutils-ping
+ cp $(CURDIR)/debian/inetutils-traceroute.overrides \
+ $(CURDIR)/debian/inetutils-traceroute/usr/share/lintian/overrides/inetutils-traceroute
dh_installdebconf -a
dh_installdocs -a -A NEWS AUTHORS THANKS
@@ -148,7 +154,7 @@
dh_strip -a
dh_compress -a
# pings are setuid
- dh_fixperms -a -Xbin/ping -Xbin/ping6
+ dh_fixperms -a -Xbin/ping -Xbin/ping6 -Xusr/bin/inetutils-traceroute
dh_installdeb -a
dh_shlibdeps -a
dh_gencontrol -a -- \
signature.asc
Description: Digital signature

