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