From: Leo Famulari <leo@famulari.name>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 27811@debbugs.gnu.org
Subject: bug#27811: net-tools patch has no effect?
Date: Wed, 26 Jul 2017 12:11:46 -0400 [thread overview]
Message-ID: <20170726161146.GB6239@jasmine.lan> (raw)
In-Reply-To: <20170725175202.GA27528@jasmine.lan>
[-- Attachment #1.1: Type: text/plain, Size: 745 bytes --]
On Tue, Jul 25, 2017 at 01:52:02PM -0400, Leo Famulari wrote:
> From f57732d79ac265917f154da5791ff203c82c9733 Mon Sep 17 00:00:00 2001
> From: Leo Famulari <leo@famulari.name>
> Date: Tue, 25 Jul 2017 01:46:38 -0400
> Subject: [PATCH 2/2] gnu: net-tools: Update to 1.60-0.90da8a0.
>
> Fixes <https://bugs.gnu.org/27811>.
>
> * 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.
Revisions!
The first patch is the same as before, but the second one uses git-fetch
and builds from the latest upstream commit. I'll squash them if we
choose to build from Git.
[-- Attachment #1.2: 0001-gnu-net-tools-Update-to-1.60-0.90da8a0.patch --]
[-- Type: text/plain, Size: 7285 bytes --]
From 6cd4159e355b9414b0678608e74fa53b8e173834 Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
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 <https://bugs.gnu.org/27811>.
* 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 <https://bugs.gnu.org/27811> 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, <https://git.code.sf.net/p/net-tools/code>, 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 <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"))))))
- (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
[-- Attachment #1.3: 0002-gnu-net-tools-Update-to-1.60-1.479bb4a7.patch --]
[-- Type: text/plain, Size: 8506 bytes --]
From 0eccb8538c8deda5cf06b5ad98974b5fd62a0f5b Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Wed, 26 Jul 2017 11:54:20 -0400
Subject: [PATCH 2/2] gnu: net-tools: Update to 1.60-1.479bb4a7.
* gnu/packages/linux.scm (net-tools): Update to 1.60-0.479bb4a7.
[source]: Use git-fetch.
---
gnu/packages/linux.scm | 137 +++++++++++++++++++++++++------------------------
1 file changed, 69 insertions(+), 68 deletions(-)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index d55eb6a11..9226cebf9 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -106,6 +106,7 @@
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
@@ -1201,82 +1202,82 @@ messages and are accompanied by a set of manpages.")
;; 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-0.90da8a0")
- ;; This tarball from Debian is equivalent to a Git checkout of the upstream
- ;; repo, <https://git.code.sf.net/p/net-tools/code>, 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
+ (let ((commit "479bb4a7e11a4084e2935c0a576388f92469225b")
+ (revision "1"))
+ (package
+ (name "net-tools")
+ (version (string-append "1.60-" revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.code.sf.net/p/net-tools/code")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "189mdjfbd7j7j0jysy34nqn5byy9g5f6ylip1sikk7kz08vjml4s"))))
+ (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+)))
+ (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
--
2.13.3
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-07-26 16:13 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-24 22:02 bug#27811: net-tools patch has no effect? Leo Famulari
2017-07-25 4:12 ` Leo Famulari
2017-07-25 4:59 ` Leo Famulari
2017-07-25 8:27 ` Ludovic Courtès
2017-07-25 16:10 ` Leo Famulari
2017-07-25 17:52 ` Leo Famulari
2017-07-25 17:53 ` Leo Famulari
2017-07-25 18:03 ` Leo Famulari
2017-07-25 18:08 ` Leo Famulari
2017-07-25 21:30 ` Ludovic Courtès
2017-07-25 21:33 ` Ludovic Courtès
2017-07-26 16:08 ` Leo Famulari
2017-07-26 16:11 ` Leo Famulari [this message]
2017-07-26 21:04 ` Ludovic Courtès
2017-07-27 17:41 ` Leo Famulari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170726161146.GB6239@jasmine.lan \
--to=leo@famulari.name \
--cc=27811@debbugs.gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).