[PATCH] gnu: Add pn.

OpenSubmitted by Antero Mejr.
Details
3 participants
  • Antero Mejr
  • Nicolas Goaziou
  • Xinglu Chen
Owner
unassigned
Severity
normal
A
A
Antero Mejr wrote on 25 Sep 2021 05:28
(address . guix-patches@gnu.org)(name . Antero Mejr)(address . antero@mailbox.org)
20210925032815.68194-1-antero@mailbox.org
* gnu/packages/telephony.scm (pn): New variable.
---
Add pn and its dependencies.
It's a phone number CLI tool used by Linux phone GUIs like SXMO.

gnu/packages/telephony.scm | 72 ++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)

Toggle diff (102 lines)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 48bbe12920..9015cf536a 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
+;;; Copyright © 2021 Antero Mejr <antero@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,12 +55,14 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages file)
   #:use-module (gnu packages protobuf)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linphone)
@@ -907,3 +910,72 @@ Initiation Protocol (SIP) and a multimedia framework.")
 telephony functionality into custom Telegram clients.")
     (home-page "https://github.com/zevlg/libtgvoip")
     (license license:unlicense)))
+
+(define-public libphonenumber
+  (package
+    (name "libphonenumber")
+    (version "8.12.33")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/google/libphonenumber")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+         (base32
+          "0r12icyig6jy0v87j9n3w14acfa2yfckzzfbmnjx1hww6qc9ih25"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'enter-dir
+            (lambda _ (chdir "cpp") #t)))))
+    (inputs
+     `(("boost" ,boost)
+       ("googletest" ,googletest)
+       ("protobuf" ,protobuf)
+       ("icu4c" ,icu4c)))
+    (home-page "https://github.com/google/libphonenumber")
+    (synopsis "C++ library for phone number parsing")
+    (description
+     "libphonenumber is Google's common Java, C++ and JavaScript library for
+parsing, formatting, and validating international phone numbers.")
+    (license license:asl2.0)))
+
+(define-public pn
+  (package
+    (name "pn")
+    (version "0.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Orange-OpenSource/pn")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1lvzb0yixj7wmmqzsri20k9nn3gf06j0yjvmg2mi1zihywq7s4dx"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases
+        (modify-phases %standard-phases
+         (add-after 'unpack 'sub-bin-path
+           (lambda _
+             (substitute* "CMakeLists.txt" (("DESTINATION \\$\\{AWKLIBPATH\\}")
+                                             "DESTINATION bin")))))))
+    (inputs
+     `(("libphonenumber" ,libphonenumber)
+       ("icu4c" ,icu4c)
+       ("protobuf" ,protobuf)
+       ("gawk" ,gawk)))
+    (home-page "https://github.com/Orange-OpenSource/pn")
+    (synopsis "Command-line validation tool for phone numbers")
+    (description
+     "pn is a tool that allows command line user/programmers to operate on
+phone numbers (get validity information, reformat them, or extract numbers
+from a text snippet), using libphonenumber.")
+    (license license:asl2.0)))
-- 
2.30.2
A
A
Antero Mejr wrote on 28 Sep 2021 22:56
[PATCH 0/2] Add pn.
(address . 50796@debbugs.gnu.org)(name . Antero Mejr)(address . antero@mailbox.org)
20210928205649.27328-1-antero@mailbox.org
Thanks for the suggestions Xinglu, I updated with the changes.

Toggle quote (3 lines)
> The package doesn’t seem to be reproducible; ‘guix build libphonenumber
> --rounds=2’ fails

libphonenumber reproduces on my main computer, I can try again with a different one later:
successfully built /gnu/store/dyf2a70slkvfxf4qcims3q69a51ydb0x-libphonenumber-8.12.33.drv
successfully built /gnu/store/dyf2a70slkvfxf4qcims3q69a51ydb0x-libphonenumber-8.12.33.drv
A
A
Antero Mejr wrote on 28 Sep 2021 22:56
[PATCH 1/2] gnu: Add libphonenumber.
(address . 50796@debbugs.gnu.org)(name . Antero Mejr)(address . antero@mailbox.org)
20210928205649.27328-2-antero@mailbox.org
* gnu/packages/telephony.scm (libphonenumber): New variable.
---
gnu/packages/telephony.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (68 lines)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 48bbe12920..50b5790ae3 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
+;;; Copyright © 2021 Antero Mejr <antero@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,12 +55,14 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages file)
   #:use-module (gnu packages protobuf)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linphone)
@@ -907,3 +910,38 @@ Initiation Protocol (SIP) and a multimedia framework.")
 telephony functionality into custom Telegram clients.")
     (home-page "https://github.com/zevlg/libtgvoip")
     (license license:unlicense)))
+
+(define-public libphonenumber
+  (package
+    (name "libphonenumber")
+    (version "8.12.33")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/google/libphonenumber")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+         (base32
+          "0r12icyig6jy0v87j9n3w14acfa2yfckzzfbmnjx1hww6qc9ih25"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'enter-dir
+            (lambda _ (chdir "cpp")))
+          (replace 'check
+            (lambda _ (invoke "./libphonenumber_test"))))))
+    (inputs
+     `(("boost" ,boost)
+       ("googletest" ,googletest)
+       ("protobuf" ,protobuf)
+       ("icu4c" ,icu4c)))
+    (home-page "https://github.com/google/libphonenumber")
+    (synopsis "C++ library for phone number parsing")
+    (description
+     "@code{libphonenumber} is Google's common Java, C++ and JavaScript
+library for parsing, formatting, and validating international phone numbers.")
+    (license license:asl2.0)))
+
-- 
2.30.2
A
A
Antero Mejr wrote on 28 Sep 2021 22:56
[PATCH 2/2] gnu: Add pn.
(address . 50796@debbugs.gnu.org)(name . Antero Mejr)(address . antero@mailbox.org)
20210928205649.27328-3-antero@mailbox.org
* gnu/packages/telephony.scm (pn): New variable.
---
gnu/packages/telephony.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 50b5790ae3..d30c8aa661 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -945,3 +945,38 @@ telephony functionality into custom Telegram clients.")
 library for parsing, formatting, and validating international phone numbers.")
     (license license:asl2.0)))
 
+(define-public pn
+  (package
+    (name "pn")
+    (version "0.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Orange-OpenSource/pn")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1lvzb0yixj7wmmqzsri20k9nn3gf06j0yjvmg2mi1zihywq7s4dx"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:phases
+        (modify-phases %standard-phases
+         (add-after 'unpack 'sub-bin-path
+           (lambda _
+             (substitute* "CMakeLists.txt" (("DESTINATION \\$\\{AWKLIBPATH\\}")
+                                             "DESTINATION bin")))))))
+    (inputs
+     `(("libphonenumber" ,libphonenumber)
+       ("icu4c" ,icu4c)
+       ("protobuf" ,protobuf)
+       ("gawk" ,gawk)))
+    (home-page "https://github.com/Orange-OpenSource/pn")
+    (synopsis "Command-line validation tool for phone numbers")
+    (description
+     "@code{pn} provides a command line tool that allows users to operate on
+phone numbers (get validity information, reformat them, or extract
+numbers from a text snippet), using @code{libphonenumber}.")
+    (license license:asl2.0)))
-- 
2.30.2
X
X
Xinglu Chen wrote on 29 Sep 2021 13:42
Re: [bug#50796] [PATCH 1/2] gnu: Add libphonenumber.
(name . Antero Mejr)(address . antero@mailbox.org)
87wnmz1uco.fsf@yoctocell.xyz
On Tue, Sep 28 2021, Antero Mejr via Guix-patches via wrote:

Toggle quote (60 lines)
> * gnu/packages/telephony.scm (libphonenumber): New variable.
> ---
> gnu/packages/telephony.scm | 38 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
> index 48bbe12920..50b5790ae3 100644
> --- a/gnu/packages/telephony.scm
> +++ b/gnu/packages/telephony.scm
> @@ -20,6 +20,7 @@
> ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
> ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
> +;;; Copyright © 2021 Antero Mejr <antero@mailbox.org>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -54,12 +55,14 @@
> #:use-module (gnu packages documentation)
> #:use-module (gnu packages file)
> #:use-module (gnu packages protobuf)
> + #:use-module (gnu packages gawk)
> #:use-module (gnu packages gettext)
> #:use-module (gnu packages gl)
> #:use-module (gnu packages glib)
> #:use-module (gnu packages gnome)
> #:use-module (gnu packages gnupg)
> #:use-module (gnu packages gtk)
> + #:use-module (gnu packages icu4c)
> #:use-module (gnu packages image)
> #:use-module (gnu packages libcanberra)
> #:use-module (gnu packages linphone)
> @@ -907,3 +910,38 @@ Initiation Protocol (SIP) and a multimedia framework.")
> telephony functionality into custom Telegram clients.")
> (home-page "https://github.com/zevlg/libtgvoip")
> (license license:unlicense)))
> +
> +(define-public libphonenumber
> + (package
> + (name "libphonenumber")
> + (version "8.12.33")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/google/libphonenumber")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0r12icyig6jy0v87j9n3w14acfa2yfckzzfbmnjx1hww6qc9ih25"))))
> + (build-system cmake-build-system)
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'enter-dir
> + (lambda _ (chdir "cpp")))
> + (replace 'check
> + (lambda _ (invoke "./libphonenumber_test"))))))

Great that you got the tests to run; however this ‘check’ phase doesn’t
respect the ‘--without-tests’ package transformation. The snippet below
should do.

Toggle snippet (5 lines)
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./libphonenumber_test")))

Toggle quote (12 lines)
> + (inputs
> + `(("boost" ,boost)
> + ("googletest" ,googletest)
> + ("protobuf" ,protobuf)
> + ("icu4c" ,icu4c)))
> + (home-page "https://github.com/google/libphonenumber")
> + (synopsis "C++ library for phone number parsing")
> + (description
> + "@code{libphonenumber} is Google's common Java, C++ and JavaScript
> +library for parsing, formatting, and validating international phone numbers.")
> + (license license:asl2.0)))

For some reason the build is still not reproducible for me; I ran
diffoscope on the two outputs, and it produced 120 MB worth of output…

Maybe a third person could test if the build is reproducible.
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmFUURcVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x54v0QAIyOlHGdy4ZlMXv282HZ89qE2eon
mTSSgWqBV2KOlBrW4Y+PKpMWfRH9MvqFGM+PANohgXDbDJzHJWqu7QJB0e0izojn
Bu7nDl+i0xH/SAu/A15/McV9fWGSbc3n2WFrG8xETYpY1aPpTjzAPcGlN6NlqHmX
GWJ+VlCFx9n0f3IkbNtFvGLCi+i0upMGBLsQazzwB8duOdFrvpwgspilJaRH6Vt7
4uQW8MsvkAKhXAw0pZevcHMf1R87TM0Ttbthpqb+cze6yeAzp5dIbUqYoRyXVdZQ
5PrbJhrSbnL7cptDtstIeCupYF8pX5/RF00Rwn8XV/9uWgiHl1xpLrbdjvkRK/Yx
k55hW8PiYYm2Mv9VfnKDi9ie+pLsbQnnnx8srWyV4av3kea6riTCrwD+z6a1DW/O
pungg0hnQ0MVqtSSlIUgRXiTaHg0OfMXLySSBuQQchKw8rjZqQVqt+1kyX4y6aU8
f1ZcF/Bw6pSZsrLg5IxltpcmKEKhPUoHPhfOdx49TG0rg9QGzJeK/csyFjzWnwlK
xLBbHybhww+SRUvDZwR62ZfN0CWn/V+LzsGu04676sJF48KWowP6/CTzV/RHlq1H
ZAfdBQuyyPNwCdNoTdFvaSLitfkSKPOnXbI9jxe63u1OaZodtv92X3GUv58SS79B
mRjmkcWz3ziR7w/S
=kdgw
-----END PGP SIGNATURE-----

N
N
Nicolas Goaziou wrote on 17 Jan 11:06 +0100
(name . Antero Mejr via Guix-patches via)(address . guix-patches@gnu.org)
87r196he12.fsf@nicolasgoaziou.fr
Hello,

Antero Mejr via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (2 lines)
> * gnu/packages/telephony.scm (libphonenumber): New variable.

Thank you.

I tweaked the package and updated it to 8.12.41. I'm attaching the resulting package.

Unfortunately I couldn't make it build. Could you have a look?

Regards,
--
Nicolas Goaziou
From b51b0f4b9b9afb9843e6e3f0b248677725961d1b Mon Sep 17 00:00:00 2001
Message-Id: <b51b0f4b9b9afb9843e6e3f0b248677725961d1b.1642413903.git.mail@nicolasgoaziou.fr>
From: Antero Mejr <antero@kodmin.com>
Date: Mon, 17 Jan 2022 11:04:50 +0100
Subject: [PATCH] gnu: Add libphonenumber.

* gnu/packages/telephony.scm (libphonenumber): New variable.
---
gnu/packages/telephony.scm | 40 ++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (86 lines)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index b4b2585935..264c5a738f 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2021 Demis Balbach <db@minikn.xyz>
+;;; Copyright © 2021 Antero Mejr <antero@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,18 +51,21 @@ (define-module (gnu packages telephony)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages file)
   #:use-module (gnu packages protobuf)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linphone)
@@ -92,6 +96,7 @@ (define-module (gnu packages telephony)
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -156,6 +161,41 @@ (define-public libilbc
     (home-page "https://github.com/TimothyGu/libilbc")
     (license license:bsd-3)))
 
+(define-public libphonenumber
+  (package
+    (name "libphonenumber")
+    (version "8.12.41")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/google/libphonenumber")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0w2jy4nng8y2203l56m2bg5mzfkan99q9k4ixqa83ss8sj0ris4q"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'enter-dir
+            (lambda _ (chdir "cpp")))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "./libphonenumber_test")))))))
+    (native-inputs
+     (list googletest pkg-config))
+    (inputs
+     (list boost icu4c protobuf))
+    (home-page "https://github.com/google/libphonenumber")
+    (synopsis "C++ library for phone number parsing")
+    (description
+     "@code{libphonenumber} is Google's common Java, C++ and JavaScript
+library for parsing, formatting, and validating international phone numbers.")
+    (license license:asl2.0)))
+
 (define-public spandsp
   (package
     (name "spandsp")
-- 
2.34.0
?