Subject: Re: [bug#50796] [PATCH 1/2] gnu: Add libphonenumber.

From: Xinglu Chen <[email-masked]>
Date: Wed, 29 Sep 2021 13:42:15 +0200

On Tue, Sep 28 2021, Antero Mejr via Guix-patches via wrote:

> * 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 <[email-masked]>
>  ;;; Copyright © 2020 Vincent Legoll <[email-masked]>
>  ;;; Copyright © 2021 LibreMiami <[email-masked]>
> +;;; Copyright © 2021 Antero Mejr <[email-masked]>
>  ;;;
>  ;;; 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.

--8<---------------cut here---------------start------------->8---
(lambda* (#:key tests? #:allow-other-keys)
  (when tests?
    (invoke "./libphonenumber_test")))
--8<---------------cut here---------------end--------------->8---

> +    (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.