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 -- \

Attachment: signature.asc
Description: Digital signature

Reply via email to