diff mbox series

[bug#66823,gnome-team,4/4] gnu: Add calls.

Message ID 02ab6d7a2efc2d402f967841fcffd8837d28d61a.1698597871.git.vivien@planete-kraus.eu
State New
Headers show
Series Add GNOME Calls | expand

Commit Message

Vivien Kraus Oct. 29, 2023, 11:04 a.m. UTC
* gnu/packages/gnome.scm (libcallaudio): New variable.

Change-Id: I6f0485e4c73536c576713005cf7cd74610923a21
---
 gnu/packages/gnome.scm | 82 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)

Comments

Liliana Marie Prikler Oct. 29, 2023, 5:09 p.m. UTC | #1
Am Sonntag, dem 29.10.2023 um 12:04 +0100 schrieb Vivien Kraus:
> * gnu/packages/gnome.scm (libcallaudio): New variable.
> 
> Change-Id: I6f0485e4c73536c576713005cf7cd74610923a21
> ---
>  gnu/packages/gnome.scm | 82
> ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 82 insertions(+)
> 
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 8092715795..2536b8f98d 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -13463,3 +13463,85 @@ (define-public xffm+
>      (home-page "http://xffm.org/")
>      (license license:gpl3+)
>      (properties '((upstream-name . "xffm")))))
> +
> +(define-public calls
> +  (package
> +    (name "calls")
> +    (version "45.0")
Version 45 is nice and all, but perhaps we should stick to 44 if we can
build that with less hassle.
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "mirror://gnome/sources/" name "/"
> +                                  (version-major version) "/"
> +                                  name "-" version ".tar.xz"))
> +              (sha256
> +               (base32
> +               
> "1mvnrm5wbl69xbcjg8nxd6l6nj2fd3whbyh70axlm75c7l7d5j5r"))))
> +    (build-system meson-build-system)
> +    (arguments
> +     (list
> +      #:glib-or-gtk? #t
> +      #:configure-flags #~'("-Dgtk_doc=true")
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'unpack-gmobile
> +            (lambda _
> +              (copy-recursively
> +               #$(origin
> +                   (method git-fetch)
> +                   (uri (git-reference
> +                         (url
> "https://gitlab.gnome.org/World/Phosh/libcall-ui")
> +                         (commit
> "6798b38d4d66d069751151b3e9a202c6de8d7f3c")))
> +                   (file-name (git-file-name "libcall-ui" version))
> +                   (sha256
> +                    (base32
> +                    
> "0zfrxh77ag8garqj319amnxjcdyp3ig12dkxfkl6wbwn1mvyrwx8")))
> +               "subprojects/libcall-ui")))
> +          (add-after 'unpack 'disable-failing-test
> +            (lambda _
> +              ;; 3 tests fail with: Could not create pipeline: Could
> not create
> +              ;; 'srtpdec' element of type srtpdec
> +              (substitute* "plugins/provider/tests/meson.build"
> +                (("^test\\('media'")
> +                 "# test('media'")
> +                (("^test\\('sip'")
> +                 "# test('sip'"))
This looks like a broken GStreamer dependency.  I'd hazard a guess that
the application itself will fail as well.  srtpdec is part of the bad
gstreamer plugins, you can probably use gst-plugins/selection to not
pull in all of the plugins.
> +              (call-with-output-file "tests/test-application.c"
> +                (lambda (port)
> +                  (format port "int main(void) { return 0; }")))))
Uhm… yeah…
> +          (add-before 'check 'pre-check
> +            (lambda _
> +              (setenv "HOME" (getcwd))
> +              ;; Tests require a running X server.
> +              (system "Xvfb :1 &")
> +              (setenv "DISPLAY" ":1"))))))
> +    (inputs
> +     (list evolution-data-server
> +           feedbackd
> +           folks
> +           glib
> +           gom
> +           gstreamer
> +           gst-plugins-base
> +           gst-plugins-good
> +           gtk+
> +           libgee
> +           libpeas
> +           (@ (gnu packages telephony) libcallaudio)
> +           libhandy
> +           modem-manager
> +           (@ (gnu packages telephony) sofia-sip)))
> +    (native-inputs
> +     (list desktop-file-utils ; update-desktop-database
> +           gettext-minimal
> +           `(,glib "bin") ; glib-mkenums
> +           gtk-doc ; gtkdoc-scan
> +           `(,gtk+ "bin") ; gtk-update-icon-cache
> +           pkg-config
> +           python-docutils ; rst2man
> +           vala
> +           xorg-server-for-tests))
> +    (home-page "https://gitlab.gnome.org/GNOME/calls")
> +    (synopsis "Phone dialer and call handler")
> +    (description "Calls can make and answer phone calls using
> different backends, such as
> +ModemManager for phones and SIP for VoIP.")
> +    (license license:gpl3)))
No +?

Cheers
Maxim Cournoyer Oct. 31, 2023, 2:21 p.m. UTC | #2
Hi Vivien,

Vivien Kraus <vivien@planete-kraus.eu> writes:

> * gnu/packages/gnome.scm (libcallaudio): New variable.
>
> Change-Id: I6f0485e4c73536c576713005cf7cd74610923a21
> ---
>  gnu/packages/gnome.scm | 82 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 82 insertions(+)
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 8092715795..2536b8f98d 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -13463,3 +13463,85 @@ (define-public xffm+
>      (home-page "http://xffm.org/")
>      (license license:gpl3+)
>      (properties '((upstream-name . "xffm")))))
> +
> +(define-public calls
> +  (package
> +    (name "calls")
> +    (version "45.0")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "mirror://gnome/sources/" name "/"
> +                                  (version-major version) "/"
> +                                  name "-" version ".tar.xz"))
> +              (sha256
> +               (base32
> +                "1mvnrm5wbl69xbcjg8nxd6l6nj2fd3whbyh70axlm75c7l7d5j5r"))))
> +    (build-system meson-build-system)
> +    (arguments
> +     (list
> +      #:glib-or-gtk? #t
> +      #:configure-flags #~'("-Dgtk_doc=true")
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'unpack-gmobile
> +            (lambda _
> +              (copy-recursively
> +               #$(origin
> +                   (method git-fetch)
> +                   (uri (git-reference
> +                         (url "https://gitlab.gnome.org/World/Phosh/libcall-ui")
> +                         (commit "6798b38d4d66d069751151b3e9a202c6de8d7f3c")))
> +                   (file-name (git-file-name "libcall-ui" version))
> +                   (sha256
> +                    (base32
> +                     "0zfrxh77ag8garqj319amnxjcdyp3ig12dkxfkl6wbwn1mvyrwx8")))
> +               "subprojects/libcall-ui")))
> +          (add-after 'unpack 'disable-failing-test
> +            (lambda _
> +              ;; 3 tests fail with: Could not create pipeline: Could not create
> +              ;; 'srtpdec' element of type srtpdec

Nitpick: I'd double-quote the error and add a trailing '.'.  It'd be
nice to understand where this error comes from; e.g. is it because we're
not building gstreamer with an optional dependency?

> +              (substitute* "plugins/provider/tests/meson.build"
> +                (("^test\\('media'")
> +                 "# test('media'")
> +                (("^test\\('sip'")
> +                 "# test('sip'"))
> +              (call-with-output-file "tests/test-application.c"
> +                (lambda (port)
> +                  (format port "int main(void) { return 0; }")))))
> +          (add-before 'check 'pre-check
> +            (lambda _
> +              (setenv "HOME" (getcwd))
> +              ;; Tests require a running X server.
> +              (system "Xvfb :1 &")
> +              (setenv "DISPLAY" ":1"))))))
> +    (inputs
> +     (list evolution-data-server
> +           feedbackd
> +           folks
> +           glib
> +           gom
> +           gstreamer
> +           gst-plugins-base
> +           gst-plugins-good
> +           gtk+
> +           libgee
> +           libpeas

Same comment as earlier about the @ import hack, but I guess there was a
cyclic problem, as something in (gnu packages telephony) is not
following the rules laid in (info 'guix (Cyclic Module Dependencies)').
The problem likely stems from the ffmpeg-jami variant that inherits
ffmpeg from a different module (these are top level references and *not*
delayed).

> +           (@ (gnu packages telephony) libcallaudio)
> +           libhandy
> +           modem-manager
> +           (@ (gnu packages telephony) sofia-sip)))
> +    (native-inputs
> +     (list desktop-file-utils ; update-desktop-database
> +           gettext-minimal
> +           `(,glib "bin") ; glib-mkenums
> +           gtk-doc ; gtkdoc-scan
> +           `(,gtk+ "bin") ; gtk-update-icon-cache
> +           pkg-config
> +           python-docutils ; rst2man

Nitpick: Ensure at least 2 leading spaces before a ';' inline comment.
I like to use M-; in Emacs to produce those, as it also aligns them.  I
also don't put a space between the ';' and the *inline* comment.

Otherwise, LGTM.  I'll be looking forward to try it!
diff mbox series

Patch

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 8092715795..2536b8f98d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -13463,3 +13463,85 @@  (define-public xffm+
     (home-page "http://xffm.org/")
     (license license:gpl3+)
     (properties '((upstream-name . "xffm")))))
+
+(define-public calls
+  (package
+    (name "calls")
+    (version "45.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1mvnrm5wbl69xbcjg8nxd6l6nj2fd3whbyh70axlm75c7l7d5j5r"))))
+    (build-system meson-build-system)
+    (arguments
+     (list
+      #:glib-or-gtk? #t
+      #:configure-flags #~'("-Dgtk_doc=true")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'unpack-gmobile
+            (lambda _
+              (copy-recursively
+               #$(origin
+                   (method git-fetch)
+                   (uri (git-reference
+                         (url "https://gitlab.gnome.org/World/Phosh/libcall-ui")
+                         (commit "6798b38d4d66d069751151b3e9a202c6de8d7f3c")))
+                   (file-name (git-file-name "libcall-ui" version))
+                   (sha256
+                    (base32
+                     "0zfrxh77ag8garqj319amnxjcdyp3ig12dkxfkl6wbwn1mvyrwx8")))
+               "subprojects/libcall-ui")))
+          (add-after 'unpack 'disable-failing-test
+            (lambda _
+              ;; 3 tests fail with: Could not create pipeline: Could not create
+              ;; 'srtpdec' element of type srtpdec
+              (substitute* "plugins/provider/tests/meson.build"
+                (("^test\\('media'")
+                 "# test('media'")
+                (("^test\\('sip'")
+                 "# test('sip'"))
+              (call-with-output-file "tests/test-application.c"
+                (lambda (port)
+                  (format port "int main(void) { return 0; }")))))
+          (add-before 'check 'pre-check
+            (lambda _
+              (setenv "HOME" (getcwd))
+              ;; Tests require a running X server.
+              (system "Xvfb :1 &")
+              (setenv "DISPLAY" ":1"))))))
+    (inputs
+     (list evolution-data-server
+           feedbackd
+           folks
+           glib
+           gom
+           gstreamer
+           gst-plugins-base
+           gst-plugins-good
+           gtk+
+           libgee
+           libpeas
+           (@ (gnu packages telephony) libcallaudio)
+           libhandy
+           modem-manager
+           (@ (gnu packages telephony) sofia-sip)))
+    (native-inputs
+     (list desktop-file-utils ; update-desktop-database
+           gettext-minimal
+           `(,glib "bin") ; glib-mkenums
+           gtk-doc ; gtkdoc-scan
+           `(,gtk+ "bin") ; gtk-update-icon-cache
+           pkg-config
+           python-docutils ; rst2man
+           vala
+           xorg-server-for-tests))
+    (home-page "https://gitlab.gnome.org/GNOME/calls")
+    (synopsis "Phone dialer and call handler")
+    (description "Calls can make and answer phone calls using different backends, such as
+ModemManager for phones and SIP for VoIP.")
+    (license license:gpl3)))