From 037d59136763c03243e76ebe5d6e40bed6653333 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 9 Feb 2019 17:15:13 +0100 Subject: gnu: libvpx: Update to 1.8.0. * gnu/packages/patches/gst-plugins-good-libvpx-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/video.scm (libvpx): Update to 1.8.0. [source](patches): Remove obsolete patch. (libvpx-1.7): New public variable. * gnu/packages/gnuzilla.scm (icecat)[inputs]: Use LIBVPX-1.7 instead of LIBVPX. * gnu/packages/gstreamer.scm (gst-plugins-good)[source](patches): New field. [arguments]: Add #:make-flags. --- gnu/local.mk | 1 + gnu/packages/gnuzilla.scm | 2 +- gnu/packages/gstreamer.scm | 4 +- .../patches/gst-plugins-good-libvpx-compat.patch | 58 ++++++++++++++++++++++ gnu/packages/video.scm | 28 +++++++++-- 5 files changed, 86 insertions(+), 7 deletions(-) create mode 100644 gnu/packages/patches/gst-plugins-good-libvpx-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1ea8069308..cf8d29e4ce 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -845,6 +845,7 @@ dist_patch_DATA = \ %D%/packages/patches/grub-check-error-efibootmgr.patch \ %D%/packages/patches/gsl-test-i686.patch \ %D%/packages/patches/gspell-dash-test.patch \ + %D%/packages/patches/gst-plugins-good-libvpx-compat.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-default-utf8.patch \ %D%/packages/patches/guile-default-utf8.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index ef88510a2a..1f299a2b13 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -827,7 +827,7 @@ from forcing GEXP-PROMISE." ("libxt" ,libxt) ("libffi" ,libffi) ("ffmpeg" ,ffmpeg) - ("libvpx" ,libvpx) + ("libvpx" ,libvpx-1.7) ("icu4c" ,icu4c) ("pixman" ,pixman) ("pulseaudio" ,pulseaudio) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 755904231b..48a4dffa46 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -216,6 +216,7 @@ for the GStreamer multimedia library.") (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) + (patches (search-patches "gst-plugins-good-libvpx-compat.patch")) (sha256 (base32 "0y89qynb4b6fry3h43z1r99qslmi3m8xhlq0i5baq2nbc0r5b2sz")))) @@ -249,7 +250,8 @@ for the GStreamer multimedia library.") ("pkg-config" ,pkg-config) ("python-wrapper" ,python-wrapper))) (arguments - `(#:phases + `(#:make-flags '("CFLAGS=-DHAVE_VPX_1_8") ;XXX: Remove for >1.14. + #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests diff --git a/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch b/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch new file mode 100644 index 0000000000..8306c79e56 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch @@ -0,0 +1,58 @@ +Fix build with libvpx 1.8. + +Taken from this upstream commit: +https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/commit/b6e6f1ae73375ef66a5748069843aaed1a83e6a6 + +Note: Remove the HAVE_VPX_1_8 build flag with this patch. It was added +to avoid re-creating the configure script. + +diff --git a/configure.ac b/configure.ac +index 5e4cff126..8c20e5081 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1054,6 +1054,10 @@ AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [ + AC_DEFINE(HAVE_VPX_1_4, 1, [Defined if the VPX library version is 1.4 or bigger]) + ], [true]) + ++ PKG_CHECK_MODULES(VPX_180, vpx >= 1.8.0, [ ++ AC_DEFINE(HAVE_VPX_1_8, 1, [Defined if the VPX library version is 1.8 or bigger]) ++ ], [true]) ++ + LIBS="$OLD_LIBS" + CFLAGS="$OLD_CFLAGS" + fi +diff --git a/ext/vpx/gstvpxdec.c b/ext/vpx/gstvpxdec.c +index c3f0f625f..da4322513 100644 +--- a/ext/vpx/gstvpxdec.c ++++ b/ext/vpx/gstvpxdec.c +@@ -62,6 +62,7 @@ gst_vpx_dec_post_processing_flags_get_type (void) + {C_FLAGS (VP8_DEBLOCK), "Deblock", "deblock"}, + {C_FLAGS (VP8_DEMACROBLOCK), "Demacroblock", "demacroblock"}, + {C_FLAGS (VP8_ADDNOISE), "Add noise", "addnoise"}, ++#ifndef HAVE_VPX_1_8 + {C_FLAGS (VP8_DEBUG_TXT_FRAME_INFO), + "Print frame information", + "visualize-frame-info"}, +@@ -74,6 +75,7 @@ gst_vpx_dec_post_processing_flags_get_type (void) + {C_FLAGS (VP8_DEBUG_TXT_RATE_INFO), + "Print video rate info", + "visualize-rate-info"}, ++#endif + {C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"}, + {0, NULL, NULL} + }; +diff --git a/ext/vpx/meson.build b/ext/vpx/meson.build +index 6ed440728..0d2340b32 100644 +--- a/ext/vpx/meson.build ++++ b/ext/vpx/meson.build +@@ -48,6 +48,10 @@ if vpx_dep.found() + vpx_args += '-DHAVE_VPX_1_4' + endif + ++ if dependency('vpx', version : '>=1.8.0', required : false).found() ++ vpx_args += '-DHAVE_VPX_1_8' ++ endif ++ + gstvpx = library('gstvpx', + vpx_sources, + c_args : gst_plugins_good_args + vpx_args, diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index f98b6e796c..c0f439ea93 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2017 Gregor Giesen ;;; Copyright © 2017, 2018, 2019 Rutger Helling ;;; Copyright © 2018 Roel Janssen -;;; Copyright © 2018 Marius Bakke +;;; Copyright © 2018, 2019 Marius Bakke ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2018 Leo Famulari ;;; Copyright © 2018 Brendan Tildesley @@ -1301,7 +1301,7 @@ access to mpv's powerful playback capabilities.") (define-public libvpx (package (name "libvpx") - (version "1.7.0") + (version "1.8.0") (source (origin ;; XXX: Upstream does not provide tarballs for > 1.6.1. (method git-fetch) @@ -1311,9 +1311,8 @@ access to mpv's powerful playback capabilities.") (file-name (git-file-name name version)) (sha256 (base32 - "0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6")) - (patches (search-patches "libvpx-use-after-free-in-postproc.patch" - "libvpx-CVE-2016-2818.patch")))) + "079pb80am08lj8y5rx99vdr99mdqis9067f172zq12alkz849n93")) + (patches (search-patches "libvpx-CVE-2016-2818.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-shared" @@ -1338,6 +1337,25 @@ access to mpv's powerful playback capabilities.") (license license:bsd-3) (home-page "https://www.webmproject.org/"))) +;; GNU IceCat fails to build against 1.8.0, so keep this version for now. +(define-public libvpx-1.7 + (package + (inherit libvpx) + (version "1.7.0") + (source (origin + (inherit (package-source libvpx)) + (uri (git-reference + (url "https://chromium.googlesource.com/webm/libvpx") + (commit (string-append "v" version)))) + (file-name (git-file-name "libvpx" version)) + (sha256 + (base32 + "0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6")) + (patches + (append + (origin-patches (package-source libvpx)) + (search-patches "libvpx-use-after-free-in-postproc.patch"))))))) + (define-public youtube-dl (package (name "youtube-dl") -- cgit v1.2.3