summary refs log tree commit diff
path: root/gnu/packages/telephony.scm
diff options
context:
space:
mode:
authorRaghav Gururajan <raghavgururajan@disroot.org>2020-03-29 00:08:40 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2020-03-31 17:02:58 -0400
commitd82539d35fc5a550118975f19b624fe040910f42 (patch)
treee89e41aaf943a6304d34b0149bafe970005ae9a0 /gnu/packages/telephony.scm
parent3de5b4047e010340485019170e5715deb0de21c0 (diff)
downloadguix-d82539d35fc5a550118975f19b624fe040910f42.tar.gz
gnu: Add spandsp.
* gnu/packages/telephony.scm (spandsp): New variable.

Co-authored by Maxim Cournoyer.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Diffstat (limited to 'gnu/packages/telephony.scm')
-rw-r--r--gnu/packages/telephony.scm97
1 files changed, 97 insertions, 0 deletions
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index fe6c230693..9c2c499ed7 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -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 @@
   #: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 @@
   #: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 @@
   #: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")