From 6cd4159e355b9414b0678608e74fa53b8e173834 Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Tue, 25 Jul 2017 20:33:27 -0400
Subject: [PATCH 1/2] gnu: net-tools: Update to 1.60-0.90da8a0.
This leaves net-tools-for-tests unchanged.
Fixes .
* gnu/packages/linux.scm (net-tools): Update to 1.60-0.90da8a0.
[inputs]: Remove the Debian patch.
[arguments]: Use modify-phases. Remove the 'patch' phase. Disable
SELINUX and AFBLUETOOTH from build configuration.
---
gnu/packages/linux.scm | 103 ++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 88 insertions(+), 15 deletions(-)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 7412ee571..d55eb6a11 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1187,14 +1187,96 @@ consists of several tools, of which the most important are @command{ip} and
messages and are accompanied by a set of manpages.")
(license license:gpl2+)))
+;; There are two packages for net-tools. The first, net-tools, is more recent
+;; and probably safer to use with untrusted inputs (i.e. the internet). The
+;; second, net-tools-for-tests, is relatively old and buggy. It can be used in
+;; package test suites and should never be referred to by a built package. Use
+;; #:disallowed-references to enforce this.
+;;
+;; When we are able to rebuild many packages (i.e. core-updates), we can update
+;; net-tools-for-tests if appropriate.
+;;
+;; See for more information.
(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")
+ (version "1.60-0.90da8a0")
+ ;; This tarball from Debian is equivalent to a Git checkout of the upstream
+ ;; repo, , commit
+ ;; 90da8a01bd27a945bb85c7773e8174a6cb7037a1.
+ ;; Git depends on net-tools, transitively, so we fetch this tarball to avoid
+ ;; a reference cycle. We should find a better workaround for this problem so
+ ;; that we can use the latest upstream source.
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://http.debian.net/debian/pool/main/n/"
+ "net-tools/net-tools_1.60+git20161116.90da8a0"
+ ".orig.tar.gz"))
+ (sha256
+ (base32
+ "0ahrqhxrgqk0x785ghzlpcfgs7418cj1xcpbajxv46slf15mrhnk"))))
(home-page "http://net-tools.sourceforge.net/")
+ (build-system gnu-build-system)
+ (arguments
+ '(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-1)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases %standard-phases
+ (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 for the things we don't have.
+ ;; HAVE_AFDECnet requires libdnet, which we don't have.
+ ;; HAVE_HWSTRIP and HAVE_HWTR require kernel headers
+ ;; that have been removed.
+ ;; XXX SELINUX and AFBLUETOOTH are removed for now, but we should
+ ;; think about adding them later.
+ (substitute* '("config.make" "config.h")
+ (("^.*HAVE_(AFDECnet|HWSTRIP|HWTR|SELINUX|AFBLUETOOTH)[ =]1.*$")
+ "")))))
+ (add-after 'install 'remove-redundant-commands
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Remove commands and man pages redundant with Inetutils.
+ (let* ((out (assoc-ref outputs "out"))
+ (dup (append-map (cut find-files out <>)
+ '("^hostname"
+ "^(yp|nis|dns)?domainname"))))
+ (for-each delete-file dup)
+ #t))))
+ ;; 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 (let ((out (assoc-ref %outputs "out")))
+ (list "CC=gcc"
+ (string-append "BASEDIR=" out)
+ (string-append "INSTALLNLSDIR=" out "/share/locale")
+ (string-append "mandir=/share/man")))))
+ (native-inputs `(("gettext" ,gettext-minimal)))
+ (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, 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 license:gpl2+)))
+
+(define-public net-tools-for-tests
+ (hidden-package (package (inherit net-tools)
+ (version "1.60")
(source (origin
(method url-fetch)
(uri (list (string-append
@@ -1270,26 +1352,17 @@ messages and are accompanied by a set of manpages.")
;; Use the big Debian patch set (the thing does not even compile out of
;; the box.)
+ ;; XXX The patch is not actually applied, due to a bug in the 'patch' phase
+ ;; above. However, this package variant is only used in GnuTLS's tests. It
+ ;; will be adjusted when convenient for the build farm.
+ ;; See for more information.
(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" ,gettext-minimal)))
-
- (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, 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 license:gpl2+)))
-
-(define-public net-tools-for-tests
- (hidden-package net-tools))
+ "0p93lsqx23v5fv4hpbrydmfvw1ha2rgqpn2zqbs2jhxkzhjc030p")))))))))
(define-public libcap
(package
--
2.13.3