Merge branch 'master' into staging
[jackhill/guix/guix.git] / gnu / packages / xiph.scm
index d3a590b..be02106 100644 (file)
@@ -5,9 +5,10 @@
 ;;; 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 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,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 +42,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)
    (synopsis "Library for manipulating the ogg multimedia format")
    (description
@@ -80,17 +83,14 @@ periodic timestamps for seeking.")
 (define libvorbis
   (package
    (name "libvorbis")
-   (version "1.3.5")
-   (replacement libvorbis-1.3.6)
+   (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"))
-            (patches (search-patches "libvorbis-CVE-2017-14633.patch"
-                                     "libvorbis-CVE-2017-14632.patch"))
             (sha256
              (base32
-              "1lg1n3a6r41492r7in0fpvzc7909mc5ir9z0gd3qh2pz4yalmyal"))))
+              "05dlzjkdpv46zb837wysxqyn8l636x3dw8v8ymlrwz2fg1dbn05g"))))
    (build-system gnu-build-system)
    (propagated-inputs `(("libogg" ,libogg)))
    (arguments `(#:configure-flags '("LDFLAGS=-lm")
@@ -106,25 +106,13 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
                                "See COPYING in the distribution."))
    (home-page "https://xiph.org/vorbis/")))
 
-;; For CVE-2018-5146.
-(define-public libvorbis-1.3.6
-  (package/inherit libvorbis
-    (version "1.3.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://downloads.xiph.org/releases/vorbis/"
-                                  "libvorbis-" version ".tar.xz"))
-              (sha256
-               (base32
-                "05dlzjkdpv46zb837wysxqyn8l636x3dw8v8ymlrwz2fg1dbn05g"))))))
-
 (define libtheora
   (package
     (name "libtheora")
     (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
@@ -149,7 +137,7 @@ 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
@@ -174,14 +162,14 @@ 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"
@@ -199,15 +187,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://git.xiph.org/libao.git")
+                    (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,
@@ -217,7 +207,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
@@ -244,19 +237,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))
@@ -276,7 +270,7 @@ 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
@@ -312,7 +306,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
@@ -347,14 +341,14 @@ 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)
     (synopsis "Versatile audio codec")
     (description
@@ -369,15 +363,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
@@ -388,9 +382,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.
@@ -402,23 +399,23 @@ decoding .opus files.")
 (define opusfile
   (package
     (name "opusfile")
-    (version "0.10")
+    (version "0.11")
     (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
-                "0bs1376sd131qdh7198jp64vv5d17az5wyy4y7srrvw7p8k3bq28"))))
+                "1gq3aszzl5glgbajw5p1f5a1kdyf23w5vjdmwwrk246syin9pkkl"))))
     (build-system gnu-build-system)
+    ;; 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
@@ -427,18 +424,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)))
@@ -462,15 +481,15 @@ things in between.")
 (define-public libshout
   (package
     (name "libshout")
-    (version "2.4.1")
+    (version "2.4.2")
     (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"))))
+                "0qgwarqp2p6jy3zadds6dzj8z1jfb2mbwc3lsdlidf527h0a86ym"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -479,7 +498,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