diff mbox

[8/10] Add libring.

Message ID 87lgywzg40.fsf@openmailbox.org
State New
Headers show

Commit Message

Lukas Gradl Sept. 13, 2016, 2:30 a.m. UTC
None

Comments

Ricardo Wurmus Nov. 5, 2016, 10:30 p.m. UTC | #1
Lukas Gradl <lgradl@openmailbox.org> writes:

> From ad9397f36c7d4e8797c38a838f27079b8ba32631 Mon Sep 17 00:00:00 2001
> From: Lukas Gradl <lgradl@openmailbox.org>
> Date: Sun, 28 Aug 2016 12:26:23 -0500
> Subject: [PATCH 08/10] gnu: Add libring.

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

> diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
> index bd849d6..96b7489 100644
> --- a/gnu/packages/telephony.scm
> +++ b/gnu/packages/telephony.scm
> @@ -25,12 +25,24 @@
>    #:use-module (gnu packages)
>    #:use-module (gnu packages audio)
>    #:use-module (gnu packages autotools)
> +  #:use-module (gnu packages base)
> +  #:use-module (gnu packages boost)
> +  #:use-module (gnu packages check)
> +  #:use-module (gnu packages compression)
> +  #:use-module (gnu packages crypto)
> +  #:use-module (gnu packages glib)
>    #:use-module (gnu packages gnupg)
> +  #:use-module (gnu packages libupnp)
>    #:use-module (gnu packages linux)
>    #:use-module (gnu packages multiprecision)
>    #:use-module (gnu packages ncurses)
> +  #:use-module (gnu packages perl)
> +  #:use-module (gnu packages pcre)
>    #:use-module (gnu packages pkg-config)
> +  #:use-module (gnu packages pulseaudio)
> +  #:use-module (gnu packages serialization)
>    #:use-module (gnu packages tls)
> +  #:use-module (gnu packages video)
>    #:use-module (gnu packages xiph)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix packages)
> @@ -469,3 +481,85 @@
>                   license:gpl3+ ; sfl-patches
>                   license:lgpl2+))))) ; bundled resample
 
> --

What’s with these dashes?

> +(define-public libring
> +  (let ((commit "41e032c81a9cdef457d2ead3767abbd6bcee2a16")) ; This is the
> +                                        ; commit used by the AUR package.

Is there another reason why we should use this commit?  I don’t think
it’s a *good* reason :) 

> +    (package
> +      (name "libring")
> +      (version (string-append "2.2.0-1." (string-take commit 7)))
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url
> +                "https://gerrit-ring.savoirfairelinux.com/ring-daemon.git")
> +               (commit commit)))
> +         (file-name (string-append name "-" version "-checkout"))
> +         (modules '((guix build utils)))
> +         (snippet
> +          '(begin
> +             (delete-file-recursively "contrib")
> +             (substitute* "src/media/video/video_scaler.cpp"
> +               ; Fix compatability with recent versions of ffmpeg:
> +               (("PIX_FMT_RGB") "AV_PIX_FMT_FLAG_RGB")
> +               (("PIX_FMT_PLANAR") "AV_PIX_FMT_FLAG_PLANAR"))
> +             (substitute* "src/media/video/video_input.h"
> +               (("#include \"threadloop.h\"")
> +                (string-append "#include \"threadloop.h\"\n"
> +                               "#include \"video/video_base.h\"")))))
> +         (sha256
> +          (base32
> +           "05jqmbihn45pajbyvbb45l1084kr285p23mmmncvqcvdzzw87437"))))
> +      (build-system gnu-build-system)
> +      (inputs
> +       `(("alsa-lib" ,alsa-lib)
> +         ("boost" ,boost)
> +         ("dbus-c++" ,dbus-c++)
> +         ("eudev" ,eudev)
> +         ("ffmpeg" ,ffmpeg)
> +         ("flac" ,flac)
> +         ("gmp" ,gmp)
> +         ("gsm" ,gsm)
> +         ("jack" ,jack-1)
> +         ("jsoncpp" ,jsoncpp)
> +         ("libogg" ,libogg)
> +         ("opendht" ,opendht)
> +         ("opus" ,opus)
> +         ("pcre" ,pcre)
> +         ("pjproject" ,pjproject-sfl)

See my other email about “pjproject”.

> +         ("pulseaudio" ,pulseaudio)
> +         ("libsamplerate" ,libsamplerate)
> +         ("libsndfile" ,libsndfile)
> +         ("speex" ,speex)
> +         ("libupnp" ,libupnp)
> +         ("libvorbis" ,libvorbis)
> +         ("libx264" ,libx264)
> +         ("yaml-cpp" ,yaml-cpp)
> +         ("zlib" ,zlib)))
> +      (native-inputs
> +       `(("autoconf" ,autoconf)
> +         ("pkg-config" ,pkg-config)
> +         ("automake" ,automake)
> +         ("libtool" ,libtool)

We can do without these native-inputs if we take the latest release, right?

> +         ("cppunit" ,cppunit)
> +         ("perl" ,perl))) ; Needed for documentation.
> +      (arguments
> +       `(#:tests? #f ; The tests fail to compile due to missing
> headers.

Is this fixable?

> +         #:phases
> +         (modify-phases %standard-phases
> +           (add-before 'configure 'autoconf
> +             (lambda _
> +               (zero? (system* "autoreconf" "-vfi"))))
> +           (add-before 'build 'add-lib-dir
> +             (lambda _
> +               (zero? (system* "mkdir" "src/lib")))))))

Please use “(lambda _ (mkdir-p "src/lib") #t)” instead.

> +      (synopsis "Distributed multimedia communications platform")
> +      (description "Ring is a secure and distributed voice, video and chat
> +communication platform that requires no centralized server and leaves the
> +power of privacy in the hands of the user.  It supports the SIP and IAX
> +protocols, as well as decentralized calling using P2P-DHT.
> +
> +This package provides a library and daemon implementing the Ring core functionality.")

The last line is a bit long, please break it.

> +      (home-page "https://ring.cx/")
> +      (license license:gpl3+))))
> +
> 2.9.0

Thanks for this patch!  This must have been a lot of work.  Do you think
you could update this patch under consideration of my comments in this
and the other email about “pjproject”?

~~ Ricardo
diff mbox

Patch

From ad9397f36c7d4e8797c38a838f27079b8ba32631 Mon Sep 17 00:00:00 2001
From: Lukas Gradl <lgradl@openmailbox.org>
Date: Sun, 28 Aug 2016 12:26:23 -0500
Subject: [PATCH 08/10] gnu: Add libring.

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

diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index bd849d6..96b7489 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -25,12 +25,24 @@ 
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages libupnp)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -469,3 +481,85 @@  patches, most notably the use of gnutls instead of openssl for encryption.")
                  license:gpl3+ ; sfl-patches
                  license:lgpl2+))))) ; bundled resample
 
+(define-public libring
+  (let ((commit "41e032c81a9cdef457d2ead3767abbd6bcee2a16")) ; This is the
+                                        ; commit used by the AUR package.
+    (package
+      (name "libring")
+      (version (string-append "2.2.0-1." (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url
+                "https://gerrit-ring.savoirfairelinux.com/ring-daemon.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (modules '((guix build utils)))
+         (snippet
+          '(begin
+             (delete-file-recursively "contrib")
+             (substitute* "src/media/video/video_scaler.cpp"
+               ; Fix compatability with recent versions of ffmpeg:
+               (("PIX_FMT_RGB") "AV_PIX_FMT_FLAG_RGB")
+               (("PIX_FMT_PLANAR") "AV_PIX_FMT_FLAG_PLANAR"))
+             (substitute* "src/media/video/video_input.h"
+               (("#include \"threadloop.h\"")
+                (string-append "#include \"threadloop.h\"\n"
+                               "#include \"video/video_base.h\"")))))
+         (sha256
+          (base32
+           "05jqmbihn45pajbyvbb45l1084kr285p23mmmncvqcvdzzw87437"))))
+      (build-system gnu-build-system)
+      (inputs
+       `(("alsa-lib" ,alsa-lib)
+         ("boost" ,boost)
+         ("dbus-c++" ,dbus-c++)
+         ("eudev" ,eudev)
+         ("ffmpeg" ,ffmpeg)
+         ("flac" ,flac)
+         ("gmp" ,gmp)
+         ("gsm" ,gsm)
+         ("jack" ,jack-1)
+         ("jsoncpp" ,jsoncpp)
+         ("libogg" ,libogg)
+         ("opendht" ,opendht)
+         ("opus" ,opus)
+         ("pcre" ,pcre)
+         ("pjproject" ,pjproject-sfl)
+         ("pulseaudio" ,pulseaudio)
+         ("libsamplerate" ,libsamplerate)
+         ("libsndfile" ,libsndfile)
+         ("speex" ,speex)
+         ("libupnp" ,libupnp)
+         ("libvorbis" ,libvorbis)
+         ("libx264" ,libx264)
+         ("yaml-cpp" ,yaml-cpp)
+         ("zlib" ,zlib)))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("pkg-config" ,pkg-config)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("cppunit" ,cppunit)
+         ("perl" ,perl))) ; Needed for documentation.
+      (arguments
+       `(#:tests? #f ; The tests fail to compile due to missing headers.
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'autoconf
+             (lambda _
+               (zero? (system* "autoreconf" "-vfi"))))
+           (add-before 'build 'add-lib-dir
+             (lambda _
+               (zero? (system* "mkdir" "src/lib")))))))
+      (synopsis "Distributed multimedia communications platform")
+      (description "Ring is a secure and distributed voice, video and chat
+communication platform that requires no centralized server and leaves the
+power of privacy in the hands of the user.  It supports the SIP and IAX
+protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library and daemon implementing the Ring core functionality.")
+      (home-page "https://ring.cx/")
+      (license license:gpl3+))))
+
-- 
2.9.0