GNU bug report logs - #37886
[PATCH] gnu: Add ipcalc.

Previous Next

Package: guix-patches;

Reported by: Daniel Schäfer <git <at> danielschaefer.me>

Date: Wed, 23 Oct 2019 14:11:02 UTC

Severity: normal

Tags: patch

Done: Mathieu Othacehe <m.othacehe <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 37886 in the body.
You can then email your comments to 37886 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#37886; Package guix-patches. (Wed, 23 Oct 2019 14:11:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Daniel Schäfer <git <at> danielschaefer.me>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 23 Oct 2019 14:11:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Daniel Schäfer <git <at> danielschaefer.me>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add ipcalc.
Date: Wed, 23 Oct 2019 15:44:06 +0200
Hi,
here's my first patch to guix - please let me know whether everything's okay.
It adds the ipcalc package which can calculate IP ranges. Example:

$ /gnu/store/7jw45m8d1hcaihnr7978qqg1didl048a-ipcalc-0.41/bin/ipcalc 192.168.0.1/24
Address:   192.168.0.1          11000000.10101000.00000000. 00000001
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.0.0/24       11000000.10101000.00000000. 00000000
HostMin:   192.168.0.1          11000000.10101000.00000000. 00000001
HostMax:   192.168.0.254        11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255        11000000.10101000.00000000. 11111111
Hosts/Net: 254                   Class C, Private Internet


* gnu/packages/ipcalc.scm (ipcalc): New file.
---
 gnu/packages/ipcalc.scm | 61 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100644 gnu/packages/ipcalc.scm

diff --git a/gnu/packages/ipcalc.scm b/gnu/packages/ipcalc.scm
new file mode 100644
index 0000000000..5f83389b25
--- /dev/null
+++ b/gnu/packages/ipcalc.scm
@@ -0,0 +1,61 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Daniel Schaefer <git <at> danielschaefer.me>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages ipcalc)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages)
+  #:use-module (guix download)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix build-system gnu))
+
+(define-public ipcalc
+  (package
+    (name "ipcalc")
+    (version "0.41")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://jodies.de/ipcalc-archive/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12if9sm8h2ac0pgwkw835cgyqjxm6h27k4kfn2vfas9krrqwbafx"))))
+    (inputs `(("perl" ,perl)))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f  ; No test suite
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out-bin (string-append
+                             (assoc-ref outputs "out")
+                             "/bin")))
+               (install-file "ipcalc" out-bin)
+               #t))))))
+    (synopsis "Simple IP network calculator")
+    (description "ipcalc takes an IP address and netmask and calculates the
+                 resulting broadcast, network, Cisco wildcard mask, and host
+                 range.  By giving a second netmask, you can design subnets and
+                 supernets.  It is also intended to be a teaching tool and
+                 presents the subnetting results as easy-to-understand binary
+                 values.")
+    (home-page "http://jodies.de/ipcalc")
+    (license gpl2+)))
-- 
2.23.0




Information forwarded to guix-patches <at> gnu.org:
bug#37886; Package guix-patches. (Thu, 24 Oct 2019 15:13:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: 37886 <at> debbugs.gnu.org
Subject: Re: [bug#37886] [PATCH] gnu: Add ipcalc.
Date: Thu, 24 Oct 2019 17:12:37 +0200
Hello Daniel,

> here's my first patch to guix - please let me know whether everything's okay.
> It adds the ipcalc package which can calculate IP ranges. Example:

Welcome to Guix :) This first patch looks fine, I just have two remarks.

> new file mode 100644
> index 0000000000..5f83389b25
> --- /dev/null
> +++ b/gnu/packages/ipcalc.scm

I think you can use the existing networking.scm for this tool.

> +    (description "ipcalc takes an IP address and netmask and calculates the
> +                 resulting broadcast, network, Cisco wildcard mask, and host
> +                 range.  By giving a second netmask, you can design subnets and
> +                 supernets.  It is also intended to be a teaching tool and
> +                 presents the subnetting results as easy-to-understand binary
> +                 values.")

The indentation is not correct here. You can use M-q if you are using
emacs or indent.el script otherwise (see:
https://guix.gnu.org/manual/en/html_node/Formatting-Code.html).

Can you please send an updated patch?

Thanks,

Mathieu




Information forwarded to guix-patches <at> gnu.org:
bug#37886; Package guix-patches. (Thu, 24 Oct 2019 15:13:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#37886; Package guix-patches. (Mon, 25 Nov 2019 23:43:01 GMT) Full text and rfc822 format available.

Message #14 received at 37886 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Daniel Schäfer <git <at> danielschaefer.me>
Cc: 37886 <at> debbugs.gnu.org, Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: Re: [bug#37886] [PATCH] gnu: Add ipcalc.
Date: Tue, 26 Nov 2019 00:42:32 +0100
Hello Daniel,

Did you have a chance to look into the suggestions Mathieu made?
See <https://issues.guix.gnu.org/issue/37886>.

Thanks in advance!  :-)

Ludo’.

Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:

> Hello Daniel,
>
>> here's my first patch to guix - please let me know whether everything's okay.
>> It adds the ipcalc package which can calculate IP ranges. Example:
>
> Welcome to Guix :) This first patch looks fine, I just have two remarks.
>
>> new file mode 100644
>> index 0000000000..5f83389b25
>> --- /dev/null
>> +++ b/gnu/packages/ipcalc.scm
>
> I think you can use the existing networking.scm for this tool.
>
>> +    (description "ipcalc takes an IP address and netmask and calculates the
>> +                 resulting broadcast, network, Cisco wildcard mask, and host
>> +                 range.  By giving a second netmask, you can design subnets and
>> +                 supernets.  It is also intended to be a teaching tool and
>> +                 presents the subnetting results as easy-to-understand binary
>> +                 values.")
>
> The indentation is not correct here. You can use M-q if you are using
> emacs or indent.el script otherwise (see:
> https://guix.gnu.org/manual/en/html_node/Formatting-Code.html).
>
> Can you please send an updated patch?
>
> Thanks,
>
> Mathieu




Information forwarded to guix-patches <at> gnu.org:
bug#37886; Package guix-patches. (Sun, 01 Dec 2019 17:09:01 GMT) Full text and rfc822 format available.

Message #17 received at 37886 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Schäfer <git <at> danielschaefer.me>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 37886 <at> debbugs.gnu.org, Mathieu Othacehe <m.othacehe <at> gmail.com>
Subject: Re: [bug#37886] [PATCH] gnu: Add ipcalc.
Date: Sun, 1 Dec 2019 17:32:17 +0100
Hello Ludo and Matthieu,

thanks for taking a look. Sorry, I did not receive Matthieu's answer and I'm not subscribed to the patches ML.

It seems that etc/indent-code.el does not correct that particular formatting difference, which I had in my description attribute.
I corrected it manually, according to what the other packages look like.
It's also moved into networking.scm.

off-topic @Ludo, What's the language of your MUA? Ido? (https://en.wiktionary.org/wiki/skribis)

--8<---------------cut here---------------start------------->8---
From b511c6a206cb61c22f3da3d6682bfc2a37035463 Mon Sep 17 00:00:00 2001
From: Daniel Schaefer <git <at> danielschaefer.me>
Date: Wed, 23 Oct 2019 15:29:48 +0200
Subject: [PATCH] gnu: Add ipcalc.

* gnu/packages/networking.scm (ipcalc): New variable.
---
 gnu/packages/networking.scm | 54 +++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 1b31314485..13728038d8 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -34,6 +34,7 @@
 ;;; Copyright © 2019 Tonton <tonton <at> riseup.net>
 ;;; Copyright © 2019 Alex Griffin <a <at> ajgrf.com>
 ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia <at> interia.pl>
+;;; Copyright © 2019 Daniel Schaefer <git <at> danielschaefer.me>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,6 +62,7 @@
   #:use-module (guix build-system go)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
@@ -2778,3 +2780,55 @@ a service (such as an HTTP or SSH server) on localhost visible to the wider
 Internet, even behind NAT or restrictive firewalls.  A managed front-end relay
 service is available at @url{https://pagekite.net/}, or you can run your own.")
     (license license:agpl3+)))
+
+(define-public ipcalc
+  (package
+    (name "ipcalc")
+    (version "0.41")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://jodies.de/ipcalc-archive/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12if9sm8h2ac0pgwkw835cgyqjxm6h27k4kfn2vfas9krrqwbafx"))))
+    (inputs `(("perl" ,perl)
+              ("tar" ,tar)
+              ("gzip" ,gzip)
+              ("tarball" ,source)))
+    (build-system trivial-build-system) ; no Makefile.PL
+    (arguments
+     '(#:modules ((guix build utils))
+                 #:builder (begin
+                             (use-modules (guix build utils))
+                             (use-modules (srfi srfi-1))
+                             (let* ((tarball    (assoc-ref %build-inputs "tarball"))
+                                    (perl       (string-append (assoc-ref %build-inputs
+                                                                          "perl")
+                                                               "/bin"))
+                                    (gzip       (string-append (assoc-ref %build-inputs
+                                                                          "gzip")
+                                                               "/bin/gzip"))
+                                    (tar        (string-append (assoc-ref %build-inputs
+                                                                          "tar")
+                                                               "/bin/tar"))
+                                    (out        (assoc-ref %outputs "out"))
+                                    (bin        (string-append out "/bin"))
+                                    (doc        (string-append out "/share/doc/ipcalc")))
+                               (copy-file tarball "ipcalc.tar.gz")
+                               (invoke gzip "-d" "ipcalc.tar.gz")
+                               (invoke tar "xvf" "ipcalc.tar")
+
+                               (mkdir-p bin)
+                               (install-file "ipcalc-0.41/ipcalc" bin)
+                               (patch-shebang (string-append bin "/ipcalc") (list perl))
+                               (install-file "ipcalc-0.41/ipcalc" doc)
+                               #t))))
+    (synopsis "Simple IP network calculator")
+    (description "ipcalc takes an IP address and netmask and calculates the
+resulting broadcast, network, Cisco wildcard mask, and host range. By giving a
+second netmask, you can design subnets and supernets. It is also intended to be
+a teaching tool and presents the subnetting results as easy-to-understand
+binary values.")
+    (home-page "http://jodies.de/ipcalc")
+    (license gpl2+)))
-- 
2.23.0
--8<---------------cut here---------------end------------->8---

Thanks,
Daniel

On 11/26/19 12:42 AM, Ludovic Courtès wrote:
> Hello Daniel,
> 
> Did you have a chance to look into the suggestions Mathieu made?
> See <https://issues.guix.gnu.org/issue/37886>.
> 
> Thanks in advance!  :-)
> 
> Ludo’.
> 
> Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:
> 
>> Hello Daniel,
>>
>>> here's my first patch to guix - please let me know whether everything's okay.
>>> It adds the ipcalc package which can calculate IP ranges. Example:
>>
>> Welcome to Guix :) This first patch looks fine, I just have two remarks.
>>
>>> new file mode 100644
>>> index 0000000000..5f83389b25
>>> --- /dev/null
>>> +++ b/gnu/packages/ipcalc.scm
>>
>> I think you can use the existing networking.scm for this tool.
>>
>>> +    (description "ipcalc takes an IP address and netmask and calculates the
>>> +                 resulting broadcast, network, Cisco wildcard mask, and host
>>> +                 range.  By giving a second netmask, you can design subnets and
>>> +                 supernets.  It is also intended to be a teaching tool and
>>> +                 presents the subnetting results as easy-to-understand binary
>>> +                 values.")
>>
>> The indentation is not correct here. You can use M-q if you are using
>> emacs or indent.el script otherwise (see:
>> https://guix.gnu.org/manual/en/html_node/Formatting-Code.html).
>>
>> Can you please send an updated patch?
>>
>> Thanks,
>>
>> Mathieu




Reply sent to Mathieu Othacehe <m.othacehe <at> gmail.com>:
You have taken responsibility. (Mon, 02 Dec 2019 08:11:02 GMT) Full text and rfc822 format available.

Notification sent to Daniel Schäfer <git <at> danielschaefer.me>:
bug acknowledged by developer. (Mon, 02 Dec 2019 08:11:02 GMT) Full text and rfc822 format available.

Message #22 received at 37886-done <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: Daniel Schäfer <git <at> danielschaefer.me>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 37886-done <at> debbugs.gnu.org
Subject: Re: [bug#37886] [PATCH] gnu: Add ipcalc.
Date: Mon, 02 Dec 2019 09:10:44 +0100
Hello Daniel,

> It seems that etc/indent-code.el does not correct that particular formatting difference, which I had in my description attribute.
> I corrected it manually, according to what the other packages look like.
> It's also moved into networking.scm.

I simplified the builder procedure and removed an explicit reference to
package version. I also fixed the license field and the description.

Anyway, pushed, thanks for your patch :)

Mathieu




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 30 Dec 2019 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 112 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.