aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2019-01-11 18:56:32 +0100
committerPierre Neidhardt <mail@ambrevar.xyz>2019-03-26 19:17:01 +0100
commitbd4b6f4164465a116c972dd5eea6cf02640f4d08 (patch)
treefd4b2703dd01cf86c2bd08c64e5de9af2d39a2da
parent952afb6f8c209692e52f9561965ee39e143e1d88 (diff)
downloadgnu-guix-bd4b6f4164465a116c972dd5eea6cf02640f4d08.tar
gnu-guix-bd4b6f4164465a116c972dd5eea6cf02640f4d08.tar.gz
gnu: Add pjproject.
* gnu/packages/telephony.scm (pjproject): New variable.
-rw-r--r--gnu/packages/telephony.scm96
1 files changed, 96 insertions, 0 deletions
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 559fb3d63f..6fff1ddfbd 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -8,7 +8,10 @@
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Adonay Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
+;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,19 +32,31 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
+ #:use-module (gnu packages audio)
+ #: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 file)
#:use-module (gnu packages protobuf)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages serialization)
#:use-module (gnu packages speech)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages upnp)
+ #:use-module (gnu packages video)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xml)
@@ -529,3 +544,84 @@ 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+))))
+
+(define-public pjproject
+ (package
+ (name "pjproject")
+ (version "2.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.pjsip.org/release/" ;
+ version "/" name "-" version ".tar.bz2"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (let ((third-party-directories
+ (list "BaseClasses" "bdsound" "bin" "g7221" "gsm"
+ "ilbc" "lib" "milenage" "mp3" "speex" "srtp"
+ "resample"
+ ;; 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")))
+ ;; Keep only Makefiles related to resample.
+ (for-each (lambda (file)
+ (delete-file-recursively
+ (string-append "third_party/" file)))
+ third-party-directories)
+ #t)
+ (let ((third-party-dirs
+ (list "gsm" "ilbc" "speex" "g7221" "srtp"
+ "portaudio" "resample")))
+ (for-each
+ (lambda (dirs)
+ (substitute* "third_party/build/os-linux.mak"
+ (((string-append "DIRS += " dirs)) "")))
+ third-party-dirs))))
+ (sha256
+ (base32
+ "0wiph6g51wanzwjjrpwsz63amgvly8g08jz033gnwqmppa584b4w"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("portaudio" ,portaudio)))
+ (propagated-inputs
+ ;; These packages are referenced in the Libs field of the pkg-config
+ ;; file that will be installed by pjproject.
+ `(("speex" ,speex)
+ ("libsrtp" ,libsrtp)
+ ("gnutls" ,gnutls)
+ ("util-linux" ,util-linux)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)
+ ("libtool" ,libtool)))
+ (arguments
+ `(;; FIXME make: No rule to make target
+ ;; 'pjlib-test-unknown-[something]-gnu'.
+ #:tests? #f
+ ;; #:test-target "selftest"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'build-dep
+ (lambda _ (invoke "make" "dep")))
+ (add-before 'patch-source-shebangs 'autoconf
+ (lambda _
+ (invoke "autoconf" "-vfi" "-o"
+ "aconfigure" "aconfigure.ac")))
+ (add-before 'autoconf 'disable-some-tests
+ ;; Three of the six test programs fail due to missing network
+ ;; access.
+ (lambda _
+ (substitute* "Makefile"
+ (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
+ "selftest: pjlib-test pjlib-util-test pjmedia-test"))
+ #t)))))
+ (home-page "https://www.pjsip.org")
+ (synopsis "Session Initiation Protocol (SIP) stack")
+ (description "PJProject provides an implementation of the Session
+Initiation Protocol (SIP) and a multimedia framework.")
+ (license license:gpl2+)))