* bug#27811: net-tools patch has no effect? @ 2017-07-24 22:02 Leo Famulari 2017-07-25 4:12 ` Leo Famulari 0 siblings, 1 reply; 15+ messages in thread From: Leo Famulari @ 2017-07-24 22:02 UTC (permalink / raw) To: 27811 [-- Attachment #1: Type: text/plain, Size: 297 bytes --] While looking into an update of the Debian patch that we apply to net-tools, I noticed that the patch is not being applied meaningfully. After the 'patch' phase, there is an empty file called 'the-patch' in the root of the source tree, but otherwise there are no changes to the unpacked tarball. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 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 0 siblings, 1 reply; 15+ messages in thread From: Leo Famulari @ 2017-07-25 4:12 UTC (permalink / raw) To: 27811 [-- Attachment #1: Type: text/plain, Size: 2264 bytes --] The problem is that, in the patch phase, the patch file is referred to as 'patch', but the package for the `patch` program is what that variable resolves to: (let ((patch.gz (assoc-ref inputs "patch"))) After fixing that by renaming the variable for the patch file to something unique, the build fails like this: ------ gcc -D_GNU_SOURCE -O2 -Wall -g -I. -idirafter ./include/ -Ilib -c -o ipmaddr.o ipmaddr.c ipmaddr.c: In function ‘multiaddr_modify’: ipmaddr.c:351:25: warning: pointer targets in passing argument 2 of ‘parse_lla’ differ in signedness [-Wpointer-sign] if (parse_lla(*argv, ifr.ifr_hwaddr.sa_data) < 0) ^ ipmaddr.c:78:12: note: expected ‘unsigned char *’ but argument is of type ‘char *’ static int parse_lla(char *str, unsigned char *addr) ^ gcc -Llib -o ipmaddr ipmaddr.o -lnet-tools gcc -D_GNU_SOURCE -O2 -Wall -g -I. -idirafter ./include/ -Ilib -c -o mii-tool.o mii-tool.c mii-tool.c: In function ‘main’: mii-tool.c:432:29: error: too few arguments to function ‘parse_media’ case 'A': nway_advertise = parse_media(optarg); break; ^ mii-tool.c:163:12: note: declared here static int parse_media(char *arg, unsigned *bmcr2) ^ mii-tool.c:433:26: error: too few arguments to function ‘parse_media’ case 'F': fixed_speed = parse_media(optarg); break; ^ mii-tool.c:163:12: note: declared here static int parse_media(char *arg, unsigned *bmcr2) ^ mii-tool.c:456:2: warning: implicit declaration of function ‘version’ [-Wimplicit-function-declaration] version(); ^ mii-tool.c: At top level: mii-tool.c:32:13: warning: ‘Version’ defined but not used [-Wunused-variable] static char Version[] = "$Id: mii-tool.c,v 1.9 2006/09/27 20:59:18 ecki Exp $\n(Author: David Hinds based on Donald Becker's mii-diag)"; ^ make: *** [<builtin>: mii-tool.o] Error 1 phase `build' failed after 7.5 seconds ------ This problem with the wrong number of arguments being passed to parse_media() is introduced in the Debian patch, so we should check if there is a better version of the patch or if fixes are being applied upstream. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-25 4:12 ` Leo Famulari @ 2017-07-25 4:59 ` Leo Famulari 2017-07-25 8:27 ` Ludovic Courtès 0 siblings, 1 reply; 15+ messages in thread From: Leo Famulari @ 2017-07-25 4:59 UTC (permalink / raw) To: 27811 [-- Attachment #1: Type: text/plain, Size: 2549 bytes --] On Tue, Jul 25, 2017 at 12:12:25AM -0400, Leo Famulari wrote: > This problem with the wrong number of arguments being passed to > parse_media() is introduced in the Debian patch, so we should check if > there is a better version of the patch or if fixes are being applied > upstream. Actually, the first issue is that the patch doesn't apply to the source fully. I tried a later patch from Debian, but it also doesn't apply. I haven't been able to try fetching a later revision of the net-tools Git repo, because I first have to make Git not depend on net-tools. This patch will try to apply the patch and handle the exit codes of gunzip and patch correctly: diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 456909a94..cab6abb32 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1220,14 +1217,15 @@ messages and are accompanied by a set of manpages.") (zero? (system* "patch" "-p1" "--force" "--input" file))) - (let ((patch.gz (assoc-ref inputs "patch"))) + (let ((patch.gz (assoc-ref inputs "debian-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"))))) + (and + (zero? (system (string-append "gunzip < " patch.gz " > debian-patch"))) + (and (apply-patch "debian-patch") + (every apply-patch + (find-files "debian/patches" + "\\.patch")))))) (alist-replace 'configure (lambda* (#:key outputs #:allow-other-keys) @@ -1270,7 +1268,7 @@ 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.) - (inputs `(("patch" ,(origin + (inputs `(("debian-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") [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply related [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 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 0 siblings, 2 replies; 15+ messages in thread From: Ludovic Courtès @ 2017-07-25 8:27 UTC (permalink / raw) To: Leo Famulari; +Cc: 27811 Hi Leo, Leo Famulari <leo@famulari.name> skribis: > On Tue, Jul 25, 2017 at 12:12:25AM -0400, Leo Famulari wrote: >> This problem with the wrong number of arguments being passed to >> parse_media() is introduced in the Debian patch, so we should check if >> there is a better version of the patch or if fixes are being applied >> upstream. > > Actually, the first issue is that the patch doesn't apply to the source > fully. I tried a later patch from Debian, but it also doesn't apply. I > haven't been able to try fetching a later revision of the net-tools Git > repo, because I first have to make Git not depend on net-tools. > > This patch will try to apply the patch and handle the exit codes of > gunzip and patch correctly: Good catch, this LGTM. I wonder how this went unnoticed for so long! As for the actual update, the intent is to add a second ‘net-tools’ variant, right? Thanks for looking into this! Ludo’. ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-25 8:27 ` Ludovic Courtès @ 2017-07-25 16:10 ` Leo Famulari 2017-07-25 17:52 ` Leo Famulari 1 sibling, 0 replies; 15+ messages in thread From: Leo Famulari @ 2017-07-25 16:10 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27811 [-- Attachment #1: Type: text/plain, Size: 672 bytes --] On Tue, Jul 25, 2017 at 10:27:00AM +0200, Ludovic Courtès wrote: > > This patch will try to apply the patch and handle the exit codes of > > gunzip and patch correctly: > > Good catch, this LGTM. I wonder how this went unnoticed for so long! By handling the exit codes properly, the build fails ;) But I'm working on that today. > As for the actual update, the intent is to add a second ‘net-tools’ > variant, right? Right. I want to be able to update net-tools without rebuilding everything. So, GnuTLS will use a special variant of net-tools for its test suite, and the built GnuTLS will not keep any references to net-tools after it is built. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 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 ` (3 more replies) 1 sibling, 4 replies; 15+ messages in thread From: Leo Famulari @ 2017-07-25 17:52 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27811 [-- 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 --] ^ permalink raw reply related [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-25 17:52 ` Leo Famulari @ 2017-07-25 17:53 ` Leo Famulari 2017-07-25 18:03 ` Leo Famulari ` (2 subsequent siblings) 3 siblings, 0 replies; 15+ messages in thread From: Leo Famulari @ 2017-07-25 17:53 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27811 [-- Attachment #1: Type: text/plain, Size: 505 bytes --] On Tue, Jul 25, 2017 at 01:52:02PM -0400, Leo Famulari wrote: > 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. I forgot to mention that I've tested these changes by rebuilding, on x86_64-linux, every package that refers directly to net-tools, and by reconfiguring my GuixSD system to test the effect of the new net-tools on wicd. Wicd is still working. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 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:33 ` Ludovic Courtès 2017-07-26 16:11 ` Leo Famulari 3 siblings, 1 reply; 15+ messages in thread From: Leo Famulari @ 2017-07-25 18:03 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27811 [-- Attachment #1: Type: text/plain, Size: 225 bytes --] On Tue, Jul 25, 2017 at 01:52:02PM -0400, Leo Famulari wrote: > Is this the right way to create the test-only package variant for now? I was reminded of the hidden-package procedure. I'll try rewriting this change using it. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-25 18:03 ` Leo Famulari @ 2017-07-25 18:08 ` Leo Famulari 2017-07-25 21:30 ` Ludovic Courtès 0 siblings, 1 reply; 15+ messages in thread From: Leo Famulari @ 2017-07-25 18:08 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27811 [-- Attachment #1: Type: text/plain, Size: 520 bytes --] On Tue, Jul 25, 2017 at 02:03:35PM -0400, Leo Famulari wrote: > On Tue, Jul 25, 2017 at 01:52:02PM -0400, Leo Famulari wrote: > > Is this the right way to create the test-only package variant for now? > > I was reminded of the hidden-package procedure. I'll try rewriting this > change using it. I think the order of package inheritance between net-tools and net-tools-for-tests is the opposite of what's needed for hidden-package. I'll add a note about using hidden-package in the next core-updates cycle. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-25 18:08 ` Leo Famulari @ 2017-07-25 21:30 ` Ludovic Courtès 0 siblings, 0 replies; 15+ messages in thread From: Ludovic Courtès @ 2017-07-25 21:30 UTC (permalink / raw) To: Leo Famulari; +Cc: 27811 Leo Famulari <leo@famulari.name> skribis: > On Tue, Jul 25, 2017 at 02:03:35PM -0400, Leo Famulari wrote: >> On Tue, Jul 25, 2017 at 01:52:02PM -0400, Leo Famulari wrote: >> > Is this the right way to create the test-only package variant for now? >> >> I was reminded of the hidden-package procedure. I'll try rewriting this >> change using it. > > I think the order of package inheritance between net-tools and > net-tools-for-tests is the opposite of what's needed for hidden-package. > I'll add a note about using hidden-package in the next core-updates > cycle. ‘hidden-package’ simply adds a ‘properties’ field; you could do that “by hand” and make the property list of ‘net-tools’ empty. Ludo’. ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-25 17:52 ` Leo Famulari 2017-07-25 17:53 ` Leo Famulari 2017-07-25 18:03 ` Leo Famulari @ 2017-07-25 21:33 ` Ludovic Courtès 2017-07-26 16:08 ` Leo Famulari 2017-07-26 16:11 ` Leo Famulari 3 siblings, 1 reply; 15+ messages in thread From: Ludovic Courtès @ 2017-07-25 21:33 UTC (permalink / raw) To: Leo Famulari; +Cc: 27811 Leo Famulari <leo@famulari.name> skribis: > 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 Use ‘define-public’ here, and perhaps add a comment explaining the intent. > ;; 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))) I would tend to do it the other way around, and simply start with: (define-public net-tools-for-tests net-tools) and change that whenever we need it. > +;; 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)) Remove the “@@” once ‘net-tools-for-tests’ is public. OK with these changes, thank you! Ludo’. ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-25 21:33 ` Ludovic Courtès @ 2017-07-26 16:08 ` Leo Famulari 0 siblings, 0 replies; 15+ messages in thread From: Leo Famulari @ 2017-07-26 16:08 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27811 [-- Attachment #1: Type: text/plain, Size: 769 bytes --] On Tue, Jul 25, 2017 at 11:33:08PM +0200, Ludovic Courtès wrote: > Leo Famulari <leo@famulari.name> skribis: > > 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. > > OK with these changes, thank you! Ah, that's much better! Pushed as f96dbf6b70364518072c63037d3fca105dfe6497. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-25 17:52 ` Leo Famulari ` (2 preceding siblings ...) 2017-07-25 21:33 ` Ludovic Courtès @ 2017-07-26 16:11 ` Leo Famulari 2017-07-26 21:04 ` Ludovic Courtès 3 siblings, 1 reply; 15+ messages in thread From: Leo Famulari @ 2017-07-26 16:11 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27811 [-- 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 --] ^ permalink raw reply related [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-26 16:11 ` Leo Famulari @ 2017-07-26 21:04 ` Ludovic Courtès 2017-07-27 17:41 ` Leo Famulari 0 siblings, 1 reply; 15+ messages in thread From: Ludovic Courtès @ 2017-07-26 21:04 UTC (permalink / raw) To: Leo Famulari; +Cc: 27811 Leo Famulari <leo@famulari.name> skribis: > 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. > > 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. LGTM. Using ‘git-fetch’ sounds preferable, so better squash both patches. Thank you! Ludo’. ^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#27811: net-tools patch has no effect? 2017-07-26 21:04 ` Ludovic Courtès @ 2017-07-27 17:41 ` Leo Famulari 0 siblings, 0 replies; 15+ messages in thread From: Leo Famulari @ 2017-07-27 17:41 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 27811-done [-- Attachment #1: Type: text/plain, Size: 1608 bytes --] On Wed, Jul 26, 2017 at 11:04:54PM +0200, Ludovic Courtès wrote: > > 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. > > > > 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. > > LGTM. Using ‘git-fetch’ sounds preferable, so better squash both > patches. > > Thank you! Pushed as 6d31c175b2e7b062ce71648595c7af2e1381a036. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2017-07-27 17:43 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 2017-07-26 21:04 ` Ludovic Courtès 2017-07-27 17:41 ` Leo Famulari
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).