From ad9397f36c7d4e8797c38a838f27079b8ba32631 Mon Sep 17 00:00:00 2001 From: Lukas Gradl 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