gnu: r-maldiquant: Move to (gnu packages cran).
[jackhill/guix/guix.git] / gnu / packages / xiph.scm
index 7ecfa58..fb3c064 100644 (file)
@@ -5,9 +5,11 @@
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2015, 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +28,7 @@
 
 (define-module (gnu packages xiph)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
@@ -40,6 +43,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:export (libogg
             libvorbis
 (define libogg
   (package
    (name "libogg")
-   (version "1.3.3")
+   (version "1.3.4")
    (source (origin
             (method url-fetch)
-            (uri (string-append "http://downloads.xiph.org/releases/ogg/libogg-"
+            (uri (string-append "https://downloads.xiph.org/releases/ogg/libogg-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "022wjlzn8fx7mfby4pcgyjwx8zir7jr7cizichh3jgaki8bwcgsg"))))
+              "1zlk33vxvxr0l9lhkbhkdwvylw96d2n0fnd3d8dl031hph9bqqy1"))))
    (build-system gnu-build-system)
+   (arguments
+    '(#:configure-flags '("--disable-static")))
    (synopsis "Library for manipulating the ogg multimedia format")
    (description
-    "The libogg library allows to manipulate the ogg multimedia container
+    "The libogg library manipulates the ogg multimedia container
 format, which encapsulates raw compressed data and allows the interleaving of
 audio and video data.  In addition to encapsulation and interleaving of
 multiple data streams, ogg provides packet framing, error detection, and
@@ -83,14 +89,15 @@ periodic timestamps for seeking.")
    (version "1.3.6")
    (source (origin
             (method url-fetch)
-            (uri (string-append "http://downloads.xiph.org/releases/vorbis/"
+            (uri (string-append "https://downloads.xiph.org/releases/vorbis/"
                                 "libvorbis-" version ".tar.xz"))
             (sha256
              (base32
               "05dlzjkdpv46zb837wysxqyn8l636x3dw8v8ymlrwz2fg1dbn05g"))))
    (build-system gnu-build-system)
    (propagated-inputs `(("libogg" ,libogg)))
-   (arguments `(#:configure-flags '("LDFLAGS=-lm")
+   (arguments `(#:configure-flags '("LDFLAGS=-lm"
+                                    "--disable-static")
                 #:parallel-tests? #f))
    (synopsis "Library implementing the vorbis audio format")
    (description
@@ -109,13 +116,15 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
     (version "1.1.1")
     (source (origin
              (method url-fetch)
-             (uri (string-append "http://downloads.xiph.org/releases/theora/"
+             (uri (string-append "https://downloads.xiph.org/releases/theora/"
                                  "libtheora-" version ".tar.xz"))
              (sha256
               (base32
                "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk"))
              (patches (search-patches "libtheora-config-guess.patch"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
     (inputs `(("libvorbis" ,libvorbis)))
     ;; The .pc files refer to libogg.
     (propagated-inputs `(("libogg" ,libogg)))
@@ -134,12 +143,14 @@ compressed video format.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "http://downloads.xiph.org/releases/speex/speex-"
+      (uri (string-append "https://downloads.xiph.org/releases/speex/speex-"
                           version ".tar.gz"))
       (sha256
        (base32
         "150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -159,17 +170,18 @@ stereo encoding, and voice activity detection.")
 (define speexdsp
   (package
     (name "speexdsp")
-    (version "1.2rc3")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://downloads.xiph.org/releases/speex/"
+              (uri (string-append "https://downloads.xiph.org/releases/speex/"
                                   "speexdsp-" version ".tar.gz"))
               (sha256
                (base32
-                "1wcjyrnwlkayb20zdhp48y260rfyzg925qpjpljd5x9r01h8irja"))))
+                "0wa7sqpk3x61zz99m7lwkgr6yv62ml6lfgs5xja65vlvdzy44838"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '(,@(if (string=? "aarch64-linux"
+     `(#:configure-flags '("--disable-static"
+                           ,@(if (string=? "aarch64-linux"
                                            (%current-system))
                                '("--enable-neon=no") ; neon defaults to armv7-a
                                '()))))
@@ -184,15 +196,17 @@ work from the @code{speex} codec.")
 (define ao
   (package
     (name "ao")
-    (version "1.2.0")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "http://downloads.xiph.org/releases/ao/libao-"
-                          version ".tar.gz"))
-      (sha256
-       (base32
-        "1bwwv1g9lchaq6qmhvj1pp3hnyqr64ydd4j38x94pmprs4d27b83"))))
+    ;; We need a few commits on top of 1.2.2 to fix CVE-2017-11548.
+    (version "1.2.2-5-g20dc8ed")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.xiph.org/xiph/libao")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1d1b3g2a7jd43c32242yq6nfysqsmp7rjslhvbrmpgk119l5fnbj"))))
     (build-system gnu-build-system)
     ;; FIXME: Add further backends, see the summary printed after configure.
     ;; XXX: Should back-ends be pushed to different outputs?  For instance,
@@ -202,7 +216,10 @@ work from the @code{speex} codec.")
      `(("alsa-lib" ,alsa-lib)
        ("pulseaudio" ,pulseaudio)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
     (synopsis "Cross platform audio library")
     (description
      "Libao is a cross-platform audio library that allows programs to
@@ -229,19 +246,20 @@ It currently supports:
 @end enumerate
 ")
     (license license:gpl2+)
+    (properties '((cpe-name . "libao")))
     (home-page "https://www.xiph.org/ao/")))
 
 (define flac
   (package
    (name "flac")
-   (version "1.3.2")
+   (version "1.3.3")
    (source (origin
             (method url-fetch)
-            (uri (string-append "http://downloads.xiph.org/releases/flac/flac-"
+            (uri (string-append "https://downloads.xiph.org/releases/flac/flac-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0gymm2j3276kr9nz6vmgfwsdfrq6c449n40a0mzz8h6wc7nw7kwi"))))
+              "0j0p9sf56a2fm2hkjnf7x3py5ir49jyavg4q5zdyd7bcf6yq4gi1"))))
    (build-system gnu-build-system)
    (arguments
     `(#:parallel-tests? #f))
@@ -261,17 +279,17 @@ meaning that audio is compressed in FLAC without any loss in quality.")
    (version "0.4.1")
    (source (origin
             (method url-fetch)
-            (uri (string-append "http://downloads.xiph.org/releases/kate/"
+            (uri (string-append "https://downloads.xiph.org/releases/kate/"
                                 "libkate-" version ".tar.gz"))
             (sha256
              (base32
               "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4"))))
    (build-system gnu-build-system)
    (native-inputs `(("doxygen" ,doxygen)
+                    ("bison" ,bison)
                     ("pkg-config" ,pkg-config)))
    ;; FIXME: Add optional input liboggz
-   (inputs `(("bison" ,bison)
-             ("libogg" ,libogg)
+   (inputs `(("libogg" ,libogg)
              ("libpng" ,libpng)
              ("python" ,python-wrapper)
              ("zlib" ,zlib)))
@@ -297,7 +315,7 @@ Kate stream.")
    (version "1.4.0")
    (source (origin
             (method url-fetch)
-            (uri (string-append "http://downloads.xiph.org/releases/vorbis/"
+            (uri (string-append "https://downloads.xiph.org/releases/vorbis/"
                                 "vorbis-tools-" version ".tar.gz"))
             (sha256
              (base32
@@ -332,15 +350,17 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about
 (define opus
   (package
     (name "opus")
-    (version "1.2.1")
+    (version "1.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.mozilla.org/pub/opus/opus-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0ch7yzgg4bn1g36bpjsfrgs4n19c84d7wpdida6yzifrrhwx7byg"))))
+                "17gz8kxs4i7icsc1gj713gadiapyklynlwqlf0ai98dj4lg8xdb5"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
     (synopsis "Versatile audio codec")
     (description
      "Opus is a totally open, royalty-free, highly versatile audio codec.  Opus
@@ -354,15 +374,15 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
 (define opus-tools
   (package
     (name "opus-tools")
-    (version "0.1.10")
+    (version "0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://downloads.xiph.org/releases/opus/opus-tools-"
+                    "https://downloads.xiph.org/releases/opus/opus-tools-"
                     version ".tar.gz"))
               (sha256
                (base32
-                "135jfb9ny3xvd27idsxj7j5ns90lslbyrq70cq3bfwcls4r7add2"))))
+                "11pzl27s4vcz4m18ch72nivbhww2zmzn56wspb7rll1y1nq6rrdl"))))
     (build-system gnu-build-system)
     (arguments
      ;; The package developers misuse pkg-config such that it doesn't work
@@ -373,9 +393,12 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
                                               "/include -I"
                                               (assoc-ref %build-inputs "opus")
                                               "/include/opus"))))
-    (inputs `(("libogg" ,libogg)
-              ("opus" ,opus)
-              ("flac" ,flac)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libopusenc" ,libopusenc)
+       ("opusfile" ,opusfile)
+       ("flac" ,flac)))
     (synopsis
      "Command line utilities to encode, inspect, and decode .opus files")
     (description "Opus is a royalty-free, highly versatile audio codec.
@@ -387,23 +410,25 @@ decoding .opus files.")
 (define opusfile
   (package
     (name "opusfile")
-    (version "0.11")
+    (version "0.12")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://downloads.xiph.org/releases/opus/opusfile-" version
+                    "https://downloads.xiph.org/releases/opus/opusfile-" version
                     ".tar.gz"))
               (sha256
                (base32
-                "1gq3aszzl5glgbajw5p1f5a1kdyf23w5vjdmwwrk246syin9pkkl"))))
+                "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
+    ;; Required by opusfile.pc and opusurl.pc.
     (propagated-inputs
-     `(("opus" ,opus)))
+     `(("libogg" ,libogg)
+       ("openssl" ,openssl)
+       ("opus" ,opus)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("libogg" ,libogg)
-       ("openssl" ,openssl)))
     (synopsis "Versatile audio codec")
     (description
      "The opusfile library provides seeking, decode, and playback of Opus
@@ -412,18 +437,40 @@ windows systems.")
     (license license:bsd-3)
     (home-page "https://www.opus-codec.org")))
 
+(define-public libopusenc
+  (package
+    (name "libopusenc")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://archive.mozilla.org/pub/opus/"
+                                  "libopusenc-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ffb0vhlymlsq70pxsjj0ksz77yfm2x0a1x8q50kxmnkm1hxp642"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("opus" ,opus)))
+    (synopsis "Library for encoding Opus audio files and streams ")
+    (description "The libopusenc libraries provide a high-level API for
+encoding Opus files and streams.")
+    (home-page "https://www.opus-codec.org/")
+    (license license:bsd-3)))
+
 (define-public icecast
   (package
     (name "icecast")
-    (version "2.4.3")
+    (version "2.4.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://downloads.xiph.org/releases/icecast/icecast-"
+                    "https://downloads.xiph.org/releases/icecast/icecast-"
                     version ".tar.gz"))
               (sha256
                (base32
-                "14n5vm2xnyn8y7kl46lnnlgv6v5fjykhc57ffdsh0qaxfs6a8p68"))))
+                "0i2d9rhav0x6js2qhjf5iy6j2a7f0d11ail0lfv40hb1kygrgda9"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -447,15 +494,15 @@ things in between.")
 (define-public libshout
   (package
     (name "libshout")
-    (version "2.4.1")
+    (version "2.4.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://downloads.xiph.org/releases/libshout/"
-                    name "-" version ".tar.gz"))
+                    "https://downloads.xiph.org/releases/libshout/"
+                    "libshout-" version ".tar.gz"))
               (sha256
                (base32
-                "0kgjpf8jkgyclw11nilxi8vyjk4s8878x23qyxnvybbgqbgbib7k"))))
+                "1zhdshas539cs8fsz8022ljxnnncr5lafhfd1dqr1gs125fzb2hd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -464,7 +511,7 @@ things in between.")
      `(("libtheora" ,libtheora)
        ("libvorbis" ,libvorbis)
        ("speex"     ,speex)))
-    (home-page "http://www.icecast.org/")
+    (home-page "https://icecast.org/")
     (synopsis "Audio streaming library for icecast encoders")
     (description
      "Libshout is a library for communicating with and sending data to an