gnu: net-tools-for-tests: Inherit from net-tools.

* gnu/packages/linux.scm (net-tools-for-tests): Inherit from net-tools.
This commit is contained in:
Leo Famulari 2017-11-05 19:12:06 -05:00
parent 7183c4bf57
commit b5f610620b
No known key found for this signature in database
GPG Key ID: 2646FA30BACA7F08
1 changed files with 7 additions and 105 deletions

View File

@ -1185,11 +1185,12 @@ primary network configuration tools, but ifconfig is known to behave
inadequately in modern network environments, and both should be deprecated.")
(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.
;; There are two packages for net-tools. The first, net-tools, can be used
;; directly on the command-line or when it will be referenced by a built
;; package. The second, net-tools-for-tests, can be used in package test suites
;; if it is not referred to by the built package. Net-tools-for-tests may be
;; relatively old and buggy. It 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.
@ -1271,106 +1272,7 @@ configuration (iptunnel, ipmaddr).")
(license license:gpl2+))))
(define-public net-tools-for-tests
(hidden-package (package (inherit net-tools)
(version "1.60")
;; Git depends on net-tools-for-tests via GnuTLS, so we can't use git-fetch
;; here. We should find a better workaround for this problem so that we can
;; use the latest upstream source.
(source (origin
(method url-fetch)
(uri (list (string-append
"mirror://sourceforge/net-tools/net-tools-"
version ".tar.bz2")
(string-append
"http://distro.ibiblio.org/rootlinux/rootlinux-ports"
"/base/net-tools/net-tools-1.60.tar.bz2")))
(sha256
(base32
"0yvxrzk0mzmspr7sa34hm1anw6sif39gyn85w4c5ywfn8inxvr3s"))
(patches (search-patches "net-tools-bitrot.patch"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1)
(srfi srfi-26))
#:phases (alist-cons-after
'unpack 'patch
(lambda* (#:key inputs #:allow-other-keys)
(define (apply-patch file)
(zero? (system* "patch" "-p1" "--force"
"--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"))
(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 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.
(substitute* '("config.make" "config.h")
(("^.*HAVE_(AFDECnet|HWSTRIP|HWTR)[ =]1.*$") ""))))
(alist-cons-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))
%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 (let ((out (assoc-ref %outputs "out")))
(list "CC=gcc"
(string-append "BASEDIR=" out)
(string-append "INSTALLNLSDIR=" out "/share/locale")
(string-append "mandir=/share/man")))))
;; We added unzip to the net-tools package's native-inputs when
;; switching its source from a Git checkout to a zip archive. We
;; need to specify the native-inputs here to keep unzip out of the
;; build of net-tools-for-tests, so that we don't have to rebuild
;; many packages on the master branch. We can make
;; net-tools-for-tests inherit directly from net-tools in the next
;; core-updates cycle.
(native-inputs `(("gettext" ,gettext-minimal)))
;; 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 <https://bugs.gnu.org/27811> 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")))))))))
(hidden-package (package (inherit net-tools))))
(define-public libcap
(package