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 © 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.
 ;;;
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +28,7 @@
 
 (define-module (gnu packages xiph)
   #:use-module (gnu packages)
 
 (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)
   #: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 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
   #:use-module (guix build-system gnu)
   #:export (libogg
             libvorbis
 (define libogg
   (package
    (name "libogg")
 (define libogg
   (package
    (name "libogg")
-   (version "1.3.3")
+   (version "1.3.4")
    (source (origin
             (method url-fetch)
    (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
                                 version ".tar.xz"))
             (sha256
              (base32
-              "022wjlzn8fx7mfby4pcgyjwx8zir7jr7cizichh3jgaki8bwcgsg"))))
+              "1zlk33vxvxr0l9lhkbhkdwvylw96d2n0fnd3d8dl031hph9bqqy1"))))
    (build-system gnu-build-system)
    (build-system gnu-build-system)
+   (arguments
+    '(#:configure-flags '("--disable-static")))
    (synopsis "Library for manipulating the ogg multimedia format")
    (description
    (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
 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)
    (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)))
                                 "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
                 #: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)
     (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)
                                  "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)))
     (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)
     (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)
                           version ".tar.gz"))
       (sha256
        (base32
         "150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -159,17 +170,18 @@ stereo encoding, and voice activity detection.")
 (define speexdsp
   (package
     (name "speexdsp")
 (define speexdsp
   (package
     (name "speexdsp")
-    (version "1.2rc3")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
     (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
                                   "speexdsp-" version ".tar.gz"))
               (sha256
                (base32
-                "1wcjyrnwlkayb20zdhp48y260rfyzg925qpjpljd5x9r01h8irja"))))
+                "0wa7sqpk3x61zz99m7lwkgr6yv62ml6lfgs5xja65vlvdzy44838"))))
     (build-system gnu-build-system)
     (arguments
     (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
                                '()))))
                                            (%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")
 (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,
     (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
      `(("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
     (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+)
 @end enumerate
 ")
     (license license:gpl2+)
+    (properties '((cpe-name . "libao")))
     (home-page "https://www.xiph.org/ao/")))
 
 (define flac
   (package
    (name "flac")
     (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)
    (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
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0gymm2j3276kr9nz6vmgfwsdfrq6c449n40a0mzz8h6wc7nw7kwi"))))
+              "0j0p9sf56a2fm2hkjnf7x3py5ir49jyavg4q5zdyd7bcf6yq4gi1"))))
    (build-system gnu-build-system)
    (arguments
     `(#:parallel-tests? #f))
    (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)
    (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)
                                 "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
                     ("pkg-config" ,pkg-config)))
    ;; FIXME: Add optional input liboggz
-   (inputs `(("bison" ,bison)
-             ("libogg" ,libogg)
+   (inputs `(("libogg" ,libogg)
              ("libpng" ,libpng)
              ("python" ,python-wrapper)
              ("zlib" ,zlib)))
              ("libpng" ,libpng)
              ("python" ,python-wrapper)
              ("zlib" ,zlib)))
@@ -297,7 +315,7 @@ Kate stream.")
    (version "1.4.0")
    (source (origin
             (method url-fetch)
    (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
                                 "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")
 (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
     (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)
     (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
     (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")
 (define opus-tools
   (package
     (name "opus-tools")
-    (version "0.1.10")
+    (version "0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
     (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
                     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
     (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"))))
                                               "/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.
     (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")
 (define opusfile
   (package
     (name "opusfile")
-    (version "0.11")
+    (version "0.12")
     (source (origin
               (method url-fetch)
               (uri (string-append
     (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
                     ".tar.gz"))
               (sha256
                (base32
-                "1gq3aszzl5glgbajw5p1f5a1kdyf23w5vjdmwwrk246syin9pkkl"))))
+                "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i"))))
     (build-system gnu-build-system)
     (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
+    ;; Required by opusfile.pc and opusurl.pc.
     (propagated-inputs
     (propagated-inputs
-     `(("opus" ,opus)))
+     `(("libogg" ,libogg)
+       ("openssl" ,openssl)
+       ("opus" ,opus)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (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
     (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")))
 
     (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")
 (define-public icecast
   (package
     (name "icecast")
-    (version "2.4.3")
+    (version "2.4.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
     (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
                     version ".tar.gz"))
               (sha256
                (base32
-                "14n5vm2xnyn8y7kl46lnnlgv6v5fjykhc57ffdsh0qaxfs6a8p68"))))
+                "0i2d9rhav0x6js2qhjf5iy6j2a7f0d11ail0lfv40hb1kygrgda9"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -447,15 +494,15 @@ things in between.")
 (define-public libshout
   (package
     (name "libshout")
 (define-public libshout
   (package
     (name "libshout")
-    (version "2.4.1")
+    (version "2.4.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
     (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
               (sha256
                (base32
-                "0kgjpf8jkgyclw11nilxi8vyjk4s8878x23qyxnvybbgqbgbib7k"))))
+                "1zhdshas539cs8fsz8022ljxnnncr5lafhfd1dqr1gs125fzb2hd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -464,7 +511,7 @@ things in between.")
      `(("libtheora" ,libtheora)
        ("libvorbis" ,libvorbis)
        ("speex"     ,speex)))
      `(("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
     (synopsis "Audio streaming library for icecast encoders")
     (description
      "Libshout is a library for communicating with and sending data to an