gnu: Add spandsp.

* gnu/packages/telephony.scm (spandsp): New variable.

Co-authored by Maxim Cournoyer.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
Raghav Gururajan 2020-03-29 00:08:40 -04:00 committed by Maxim Cournoyer
parent 3de5b4047e
commit d82539d35f
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -16,6 +16,8 @@
;;; Copyright © 2019 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -34,7 +36,9 @@
(define-module (gnu packages telephony)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages audio)
@ -43,6 +47,7 @@ (define-module (gnu packages telephony)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages file)
#:use-module (gnu packages protobuf)
@ -52,10 +57,12 @@ (define-module (gnu packages telephony)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm)
#:use-module (gnu packages networking)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@ -84,6 +91,96 @@ (define-module (gnu packages telephony)
#:use-module (guix build-system gnu)
#:use-module (guix build-system qt))
(define-public spandsp
(package
(name "spandsp")
(version "0.0.6")
(source
(origin
(method url-fetch)
(uri
;; The original upstream has been down since the end of March 2020.
(string-append "https://web.archive.org/web/20180626203108/"
"https://www.soft-switch.org/downloads/" name "/"
name "-" version ".tar.gz"))
(sha256
(base32 "0rclrkyspzk575v8fslzjpgp4y2s4x7xk3r55ycvpi4agv33l1fc"))))
(build-system gnu-build-system)
(outputs '("out" "doc" "static")) ;doc contains HTML documentation
(arguments
`(#:configure-flags '("--enable-doc=yes" "--enable-tests=yes")
#:parallel-tests? #f ;fails removing the same the files twice otherwise
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-configure.ac
(lambda _
;; spandsp looks at hard coded locations of the FHS to
;; find libxml2.
(substitute* "configure.ac"
(("AC_MSG_CHECKING\\(for libxml/xmlmemory\\.h.*" all)
(string-append all
"PKG_CHECK_MODULES(XML2, libxml-2.0)\n"
"CPPFLAGS+=\" $XML2_CFLAGS\"\n")))
;; Force a regeneration of the autotools build system.
(delete-file "autogen.sh")
(delete-file "configure")
#t))
(add-after 'unpack 'do-not-install-data-files
;; The .tiff images produced for tests are not
;; reproducible and it is not desirable to have those
;; distributed.
(lambda _
(substitute* '("test-data/itu/fax/Makefile.am"
"test-data/etsi/fax/Makefile.am")
(("nobase_data_DATA")
"noinst_DATA"))
#t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "doc")
"/share/doc/" ,name "-" ,version)))
(copy-recursively "doc/t38_manual" doc)
#t)))
(add-after 'install 'move-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(mkdir-p (string-append static "/lib"))
(with-directory-excursion out
(for-each (lambda (file)
(rename-file file
(string-append static "/"
file)))
(find-files "lib" "\\.a$")))
#t))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
;; For the tests
("fftw" ,fftw)
("libpcap" ,libpcap)
("libsndfile" ,libsndfile)
("libtiff" ,libtiff)
("netpbm" ,netpbm)
("sox" ,sox)
;; For the documentation
("docbook-xml" ,docbook-xml-4.3)
("docbook-xsl" ,docbook-xsl)
("doxygen" ,doxygen)
("libxml2" ,libxml2)
("libxslt" ,libxslt)))
(synopsis "DSP library for telephony")
(description "SpanDSP is a library of DSP functions for telephony, in the
8000 sample per second world of E1s, T1s, and higher order PCM channels. It
contains low level functions, such as basic filters. It also contains higher
level functions, such as cadenced supervisory tone detection, and a complete
software FAX machine.")
(home-page "https://web.archive.org/web/20180626203108/\
https://www.soft-switch.org/index.html")
(license (list license:lgpl2.1+ ;for the library
license:gpl2+)))) ;for the test suites and support programs
(define-public commoncpp
(package
(name "commoncpp")