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: Tue, 25 Jul 2017 13:52:02 -0400 [thread overview]
Message-ID: <20170725175202.GA27528@jasmine.lan> (raw)
In-Reply-To: <87shhkncq3.fsf@gnu.org>
[-- Attachment #1.1: Type: text/plain, Size: 266 bytes --]
I've attached patches to fix this. First, a patch to create an otherwise
equivalent package variant and to use it in GnuTLS, and a second patch
to actually update the public net-tools variable.
Is this the right way to create the test-only package variant for now?
[-- Attachment #1.2: 0001-gnu-net-tools-Add-a-test-only-variant-and-use-it-for.patch --]
[-- Type: text/plain, Size: 2328 bytes --]
From 5c738ab1ec5543981c9d5e512ee94d469bcca12b Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Tue, 25 Jul 2017 00:19:56 -0400
Subject: [PATCH 1/2] gnu: net-tools: Add a test-only variant and use it for
GnuTLS.
* gnu/packages/linux.scm (net-tools-for-tests): Add net-tools variant
for the GnuTLS test suite, et cetera.
(net-tools): Inherit from net-tools-for-tests.
* gnu/packages/tls.scm (gnutls)[native-inputs]: Use net-tools-for-tests
instead of net-tools.
---
gnu/packages/linux.scm | 5 ++++-
gnu/packages/tls.scm | 4 +++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 456909a94..4f9fa6d25 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1187,7 +1187,7 @@ 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+)))
-(define-public net-tools
+(define net-tools-for-tests
;; 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.
@@ -1288,6 +1288,9 @@ network hardware types (plipconfig, slattach) and advanced aspects of IP
configuration (iptunnel, ipmaddr).")
(license license:gpl2+)))
+(define-public net-tools
+ (package (inherit net-tools-for-tests)))
+
(define-public libcap
(package
(name "libcap")
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 0a81633aa..740f5a42e 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -140,6 +140,8 @@ coordinating the use of PKCS#11 by different components or libraries
living in the same process.")
(license license:bsd-3)))
+;; TODO Add net-tools to #:disallowed-references when we can afford to rebuild
+;; GnuTLS.
(define-public gnutls
(package
(name "gnutls")
@@ -194,7 +196,7 @@ living in the same process.")
"debug"
"doc")) ;4.1 MiB of man pages
(native-inputs
- `(("net-tools" ,net-tools)
+ `(("net-tools" ,(@@ (gnu packages linux) net-tools-for-tests))
("pkg-config" ,pkg-config)
("which" ,which)))
(inputs
--
2.13.3
[-- Attachment #1.3: 0002-gnu-net-tools-Update-to-1.60-0.90da8a0.patch --]
[-- Type: text/plain, Size: 6025 bytes --]
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.
---
gnu/packages/linux.scm | 77 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 76 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 4f9fa6d25..12c6a1241 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)
@@ -1187,6 +1188,18 @@ 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. This one, net-tools-for-tests, is
+;; relatively old and buggy. It can be used in package test suites and should
+;; never be referenced by a built package. Use #:disallowed-references to
+;; enforce this. The second one, net-tools, is more recent and probably safer to
+;; use, and it is the one that is exported as a public variable.
+;;
+;; When we are able to rebuild many packages (i.e. core-updates), the
+;; relationship of these two net-tools packages will be reversed. That is,
+;; net-tools will become the primary package, and net-tools-from-tests will
+;; inherit from it.
+;;
+;; See <https://bugs.gnu.org/27811> for more information.
(define net-tools-for-tests
;; XXX: This package is basically unmaintained, but it provides a few
;; commands not yet provided by Inetutils, such as 'route', so we have to
@@ -1270,6 +1283,10 @@ 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
@@ -1289,8 +1306,66 @@ configuration (iptunnel, ipmaddr).")
(license license:gpl2+)))
(define-public net-tools
- (package (inherit net-tools-for-tests)))
+ (package (inherit net-tools-for-tests)
+ (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"))))
+ (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")))))))
(define-public libcap
(package
(name "libcap")
--
2.13.3
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-07-25 18:00 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 [this message]
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
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=20170725175202.GA27528@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).