;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;;
;;; This file is part of GNU Guix.
;;;
(name "libsrtp")
(version "2.2.0")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/cisco/libsrtp/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cisco/libsrtp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "02x5l5h2nq6f9gq1bmgz5v9jmnqaab51p8aldglng1z7pjbp9za4"))))
+ "1ac7xs1djb03j131f1gmqyfmrplblid9qqyxahs0shdy707r5ll6"))))
(native-inputs
`(("psmisc" ,psmisc) ;some tests require 'killall'
("procps" ,procps)))
(home-page "https://www.linphone.org")
(synopsis "Utilities library for linphone software")
(description "BCtoolbox is a utilities library used by Belledonne
-Communications softwares like linphone.")
+Communications software like linphone.")
(license license:gpl2+)))
(define-public ortp
(find-files "release/plugins" "\\.so$"))))))))
(inputs
`(("avahi" ,avahi)
- ("protobuf" ,protobuf)
+ ("protobuf" ,protobuf-3.5)
("openssl" ,openssl)
("libsndfile" ,libsndfile)
("boost" ,boost)
license:bsd-2))))
(define-public twinkle
- (let ((commit "02e1d1538af3337134bd7381dcd95f8d7775b30f")
- (revision "1"))
(package
- (name "twinkle")
- (version (git-version "1.10.1" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/LubosD/twinkle")
- (commit commit)))
- (patches
- (search-patches "twinkle-include-qregexpvalidator.patch"))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0ds4rp4vr1wagn4m4m7ldqbsx5vgmgbfcqqgyhn1wf6s1dm0020z"))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; no test target
- #:configure-flags '("-DWITH_SPEEX=On")
- #:phases
- (modify-phases %standard-phases
+ (name "twinkle")
+ (version "1.10.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LubosD/twinkle")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0s0gi03xwvzp02ah4q6j33r9jx9nbayr6dxlg2ck9pwbay1nq1hx"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no test target
+ #:configure-flags '("-DWITH_SPEEX=On")
+ #:phases
+ (modify-phases %standard-phases
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
"/lib/qt5/qml"))
'("qtdeclarative" "qtquickcontrols"))))
#t))))))
- (native-inputs
- `(("bison" ,bison)
- ("flex" ,flex)
- ("readline" ,readline)
- ("file" ,file)
- ("ucommon" ,ucommon)
- ("ccrtp" ,ccrtp)
- ("libxml2" ,libxml2)
- ("speex" ,speex)
- ("speexdsp" ,speexdsp)
- ("libsndfile" ,libsndfile)
- ("alsa-lib" ,alsa-lib)
- ("qttools" ,qttools)))
- (inputs
- `(("qtbase" ,qtbase)
- ("qtdeclarative" ,qtdeclarative)
- ("qtquickcontrols" ,qtquickcontrols)))
- (home-page "http://twinkle.dolezel.info/")
- (synopsis "Softphone for voice over IP and instant messaging")
- (description "Twinkle is a softphone for your voice over IP and instant
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ("readline" ,readline)
+ ("file" ,file)
+ ("ucommon" ,ucommon)
+ ("ccrtp" ,ccrtp)
+ ("libxml2" ,libxml2)
+ ("speex" ,speex)
+ ("speexdsp" ,speexdsp)
+ ("libsndfile" ,libsndfile)
+ ("alsa-lib" ,alsa-lib)
+ ("qttools" ,qttools)))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("qtquickcontrols" ,qtquickcontrols)))
+ (home-page "http://twinkle.dolezel.info/")
+ (synopsis "Softphone for voice over IP and instant messaging")
+ (description "Twinkle is a softphone for your voice over IP and instant
messaging communcations using the SIP protocol. You can use it for direct IP
phone to IP phone communication or in a network using a SIP proxy to route your
calls and messages")
- (license license:gpl2+))))
+ (license license:gpl2+)))
(define-public pjproject
(package
(name "pjproject")
- (version "2.7.2")
+ (version "2.9")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "http://www.pjsip.org/release/" ;
- version "/" name "-" version ".tar.bz2"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pjsip/pjproject.git")
+ (commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
(modules '((guix build utils)))
(snippet
'(begin
(let ((third-party-directories
- (list "BaseClasses" "bdsound" "bin" "g7221" "gsm"
- "ilbc" "lib" "milenage" "mp3" "speex" "srtp"
- "resample"
+ ;; Things we don't need:
+ ;; BaseClasses - contains libraries from Windows SDK
+ ;; we don't need it, at least not now.
+ (list "BaseClasses" "g7221" "ilbc" "milenage"
+ "speex" "threademulation" "yuv" "bdsound"
+ "gsm" "mp3" "resample" "srtp" "webrtc"
;; Keep only resample, build and README.txt.
"build/baseclasses" "build/g7221" "build/gsm"
- "build/ilbc" "build/milenage" "build/samplerate"
- "build/speex" "build/srtp"
- "build/resample" "build/yuv")))
+ "build/ilbc" "build/milenage" "build/resample"
+ "build/samplerate" "build/speex" "build/srtp"
+ "build/webrtc" "build/yuv")))
;; Keep only Makefiles related to resample.
- (for-each (lambda (file)
+ (for-each (lambda (directory)
(delete-file-recursively
- (string-append "third_party/" file)))
+ (string-append "third_party/" directory)))
third-party-directories)
#t)
(let ((third-party-dirs
(substitute* "third_party/build/os-linux.mak"
(((string-append "DIRS += " dirs)) "")))
third-party-dirs))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0wiph6g51wanzwjjrpwsz63amgvly8g08jz033gnwqmppa584b4w"))))
+ "1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
(build-system gnu-build-system)
(inputs
`(("portaudio" ,portaudio)))
`(("speex" ,speex)
("libsrtp" ,libsrtp)
("gnutls" ,gnutls)
+ ("resample", resample)
("util-linux" ,util-linux)))
(native-inputs
`(("autoconf" ,autoconf)
(lambda _ (invoke "make" "dep")))
(add-before 'patch-source-shebangs 'autoconf
(lambda _
- (invoke "autoconf" "-vfi" "-o"
+ (invoke "autoconf" "-v" "-f" "-i" "-o"
"aconfigure" "aconfigure.ac")))
(add-before 'autoconf 'disable-some-tests
;; Three of the six test programs fail due to missing network
Initiation Protocol (SIP) and a multimedia framework.")
(license license:gpl2+)))
-(define %jami-version "20190319.4.a16a99f")
+(define %jami-version "20191101.3.67671e7")
(define* (jami-source #:key without-daemon)
(origin
(method url-fetch)
- (uri (string-append "http://dl.jami.net/ring-release/tarballs/ring_"
+ (uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
%jami-version
".tar.gz"))
(modules '((guix build utils)))
#f))
(sha256
(base32
- "1c6n6sm7skw83v25g33g4jzbragz9j4przbzaz7asxw54jy33dwl"))))
+ "0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
(define-public pjproject-jami
(package
"--disable-openh264"
"--disable-resample"
"--disable-libwebrtc"
- ;; "-fPIC" is required for libring. Bug?
- "CFLAGS=-fPIC -DPJ_ENABLE_EXTRA_CHECK=1 -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=1024 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000 -DPJ_ICE_ST_MAX_CAND=32"
- "CXXFLAGS=-fPIC -DPJ_ENABLE_EXTRA_CHECK=1 -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=1024 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000 -DPJ_ICE_ST_MAX_CAND=32"
- ;; Now deviating from the rules.mak file.
- "--enable-ssl=gnutls"
- "--with-external-srtp")
+ "--with-gnutls"
+ "--with-external-srtp"
+ ;; We need -fPIC or else we get the following error when linking
+ ;; against pjproject-jami:
+ ;; relocation R_X86_64_32S against `.rodata' can not be used when
+ ;; making a shared object;
+ "CFLAGS=-fPIC"
+ "CXXFLAGS=-fPIC")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'make-git-checkout-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))
+ #t))
(add-after 'unpack 'apply-patches
(lambda* (#:key inputs #:allow-other-keys)
(let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
;; Comes from
;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
;; WARNING: These amount for huge changes in pjproject.
- ;; Particularly, they add support for GnuTLS.
(savoir-faire-linux-patches
- '("gnutls"
+ '("fix_turn_alloc_failure"
"rfc2466"
"ipv6"
- "ice_config"
"multiple_listeners"
"pj_ice_sess"
"fix_turn_fallback"
"fix_ioqueue_ipv6_sendto"
"add_dtls_transport"
- "rfc6062")))
+ "rfc6544"
+ "ice_config"
+ "sip_config"
+ "fix_first_packet_turn_tcp"
+ "fix_ebusy_turn"
+ "ignore_ipv6_on_transport_check"
+ "fix_turn_connection_failure"
+ ;; "uwp_vs" ; for windows
+ "disable_local_resolution")))
(mkdir-p savoir-faire-linux-patches-directory)
(invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
- "-C" savoir-faire-linux-patches-directory "--strip-components=5" "ring-project/daemon/contrib/src/pjproject")
+ "-C" savoir-faire-linux-patches-directory
+ "--strip-components=5"
+ "ring-project/daemon/contrib/src/pjproject")
(for-each
(lambda (file)
(invoke "patch" "--force" "-p1" "-i"
("libsecp256k1" ,libsecp256k1)
("python" ,python)
("python-wrapper" ,python-wrapper)
- ("restbed" ,restbed)
+ ("restinio" ,restinio)
("libx11" ,libx11)
+ ("asio" ,asio)
;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
("pjproject" ,pjproject-jami)))
(home-page "https://jami.net")
(license license:gpl3+)))
-(define-public jami-client-gnome
+(define-public jami
(package
(inherit libring)
- (name "jami-client-gnome")
+ (name "jami")
(build-system cmake-build-system)
(inputs
`(("libringclient" ,libringclient)
("glib:bin" ,glib "bin")
("doxygen" ,doxygen)))
(propagated-inputs
- `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
+ `(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
("adwaita-icon-theme" ,adwaita-icon-theme)
("evolution-data-server" ,evolution-data-server)))
(arguments
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(path (string-append (assoc-ref inputs "sqlite") "/lib")))
- (wrap-program (string-append out "/bin/gnome-ring")
+ (wrap-program (string-append out "/bin/jami-gnome")
`("LD_LIBRARY_PATH" ":" prefix (,path))))
#t)))))
- (synopsis "Distributed multimedia communications platform")
+ (synopsis "Distributed, privacy-respecting communication program")
(description "Jami (formerly GNU 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
This package provides the Jami client for the GNOME desktop.")
(home-page "https://jami.net")
(license license:gpl3+)))
+
+(define-public jami-client-gnome
+ (deprecated-package "jami-client-gnome" jami))