summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-09-26 20:54:32 +0200
committerLudovic Courtès <ludo@gnu.org>2013-09-27 00:46:16 +0200
commit85e0dc6a6bc84bfb1f752df77e23e4a24bed2625 (patch)
tree6d0adc48233aab913570290df32078328caa256f
parentd08213980c06da252e6b8e6b7b7aa9bff2c68ec1 (diff)
gnu: Add net-tools.
* gnu/packages/linux.scm (net-tools): New variable.
-rw-r--r--gnu/packages/linux.scm80
1 files changed, 80 insertions, 0 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 38bff72933..06b0b6da99 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -30,6 +30,8 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages algebra)
+ #:use-module ((gnu packages gettext)
+ #:renamer (symbol-prefix-proc 'g:))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
@@ -566,3 +568,81 @@ controls IPv4 and IPv6 configuration and tc stands for traffic control. Both
tools print detailed usage messages and are accompanied by a set of
manpages.")
(license gpl2+)))
+
+(define-public net-tools
+ ;; XXX: This package is basically unmaintained, but it provides a few
+ ;; commands not yet provided by Inetutils, such as 'route', so we have to
+ ;; live with it.
+ (package
+ (name "net-tools")
+ (version "1.60")
+ (home-page "http://www.tazenda.demon.co.uk/phil/net-tools/")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "/" name "-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0yvxrzk0mzmspr7sa34hm1anw6sif39gyn85w4c5ywfn8inxvr3s"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-replace
+ 'patch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (apply-patch file)
+ (zero? (system* "patch" "-p1" "--batch"
+ "--input" file)))
+
+ (let ((patch.gz (assoc-ref inputs "patch")))
+ (format #t "applying Debian patch set '~a'...~%"
+ patch.gz)
+ (system (string-append "gunzip < " patch.gz " > the-patch"))
+ (pk 'here)
+ (and (apply-patch "the-patch")
+ (for-each apply-patch
+ (find-files "debian/patches"
+ "\\.patch")))))
+ (alist-replace
+ 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/bin"))
+ (mkdir-p (string-append out "/sbin"))
+
+ ;; Pretend we have everything...
+ (system "yes | make config")
+
+ ;; ... except we don't have libdnet, so remove that
+ ;; definition.
+ (substitute* '("config.make" "config.h")
+ (("^.*HAVE_AFDECnet.*$") ""))))
+ %standard-phases))
+
+ ;; Binaries that depend on libnet-tools.a don't declare that
+ ;; dependency, making it parallel-unsafe.
+ #:parallel-build? #f
+
+ #:tests? #f ; no test suite
+ #:make-flags (list "CC=gcc"
+ (string-append "BASEDIR="
+ (assoc-ref %outputs "out")))))
+
+ ;; Use the big Debian patch set (the thing does not even compile out of
+ ;; the box.)
+ (inputs `(("patch" ,(origin
+ (method url-fetch)
+ (uri
+ "http://ftp.de.debian.org/debian/pool/main/n/net-tools/net-tools_1.60-24.2.diff.gz")
+ (sha256
+ (base32
+ "0p93lsqx23v5fv4hpbrydmfvw1ha2rgqpn2zqbs2jhxkzhjc030p"))))))
+ (native-inputs `(("gettext" ,g:gettext)))
+
+ (synopsis "Tools for controlling the network subsystem in Linux")
+ (description
+ "This package includes the important tools for controlling the network
+subsystem of the Linux kernel. This includes arp, hostname, ifconfig,
+netstat, rarp and route. Additionally, this package contains utilities
+relating to particular network hardware types (plipconfig, slattach) and
+advanced aspects of IP configuration (iptunnel, ipmaddr).")
+ (license gpl2+)))