summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2018-10-04 01:53:25 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2018-10-04 02:01:17 +0200
commit92a952a998d41206b6af06fe2d9c3eb9ab2e3f4a (patch)
tree2b324b94acc43c1a7c93a21b0a3e71f7efcc071d /media-libs/libtheora
parentmedia-plugins/gst-plugins-wavpack: bump to 1.14.4, no code changes from 1.14.3 (diff)
downloadgentoo-92a952a998d41206b6af06fe2d9c3eb9ab2e3f4a.tar.gz
gentoo-92a952a998d41206b6af06fe2d9c3eb9ab2e3f4a.tar.bz2
gentoo-92a952a998d41206b6af06fe2d9c3eb9ab2e3f4a.zip
media-libs/libtheora: Fix undefined behaviour, EAPI-7 bump
Thanks-to: <moatu@opentrash.com> Bug: https://bugs.gentoo.org/620800 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> Package-Manager: Portage-2.3.50, Repoman-2.3.11
Diffstat (limited to 'media-libs/libtheora')
-rw-r--r--media-libs/libtheora/files/libtheora-1.0_beta2-flags.patch4
-rw-r--r--media-libs/libtheora/files/libtheora-1.1.1-fix-UB.patch47
-rw-r--r--media-libs/libtheora/files/libtheora-1.1.1-libpng16.patch4
-rw-r--r--media-libs/libtheora/files/libtheora-1.1.1-underlinking.patch4
-rw-r--r--media-libs/libtheora/libtheora-1.1.1-r2.ebuild99
5 files changed, 152 insertions, 6 deletions
diff --git a/media-libs/libtheora/files/libtheora-1.0_beta2-flags.patch b/media-libs/libtheora/files/libtheora-1.0_beta2-flags.patch
index a47cc5771680..ffc6ab5802af 100644
--- a/media-libs/libtheora/files/libtheora-1.0_beta2-flags.patch
+++ b/media-libs/libtheora/files/libtheora-1.0_beta2-flags.patch
@@ -1,6 +1,6 @@
diff -ur libtheora-1.0beta2.orig/configure.ac libtheora-1.0beta2/configure.ac
---- libtheora-1.0beta2.orig/configure.ac 2007-10-13 00:01:38.000000000 +0300
-+++ libtheora-1.0beta2/configure.ac 2007-11-25 22:44:49.000000000 +0200
+--- a/configure.ac 2007-10-13 00:01:38.000000000 +0300
++++ b/configure.ac 2007-11-25 22:44:49.000000000 +0200
@@ -102,8 +102,8 @@
case $host in
*)
diff --git a/media-libs/libtheora/files/libtheora-1.1.1-fix-UB.patch b/media-libs/libtheora/files/libtheora-1.1.1-fix-UB.patch
new file mode 100644
index 000000000000..862d6a3b8164
--- /dev/null
+++ b/media-libs/libtheora/files/libtheora-1.1.1-fix-UB.patch
@@ -0,0 +1,47 @@
+From 0ae66d565e6bead8604d312bc1a4e9dccf245c88 Mon Sep 17 00:00:00 2001
+From: Tim Terriberry <tterribe@xiph.org>
+Date: Tue, 8 May 2012 02:51:57 +0000
+Subject: [PATCH] Fix pp_sharp_mod calculation.
+
+This was broken when the dequant_tables indexing changed in commit
+ r16102, but it only affected post-processing quality, so we never
+ noticed.
+With gcc 4.8.0, this can now trigger a segfault during decoder
+ initialization.
+
+svn path=/trunk/theora/; revision=18268
+---
+ lib/decode.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+Note: The hunk header was modified from
+
+ @@ -400,10 +400,10 @@
+
+to
+
+ @@ -397,10 +397,10 @@
+
+to match the source code in the libtheora-1.1.1 tar-ball.
+
+diff --git a/lib/decode.c b/lib/decode.c
+index b803505..9f2516a 100644
+--- a/lib/decode.c
++++ b/lib/decode.c
+@@ -397,10 +397,10 @@ static int oc_dec_init(oc_dec_ctx *_dec,const th_info *_info,
+ int qsum;
+ qsum=0;
+ for(qti=0;qti<2;qti++)for(pli=0;pli<3;pli++){
+- qsum+=_dec->state.dequant_tables[qti][pli][qi][12]+
+- _dec->state.dequant_tables[qti][pli][qi][17]+
+- _dec->state.dequant_tables[qti][pli][qi][18]+
+- _dec->state.dequant_tables[qti][pli][qi][24]<<(pli==0);
++ qsum+=_dec->state.dequant_tables[qi][pli][qti][12]+
++ _dec->state.dequant_tables[qi][pli][qti][17]+
++ _dec->state.dequant_tables[qi][pli][qti][18]+
++ _dec->state.dequant_tables[qi][pli][qti][24]<<(pli==0);
+ }
+ _dec->pp_sharp_mod[qi]=-(qsum>>11);
+ }
+--
+2.10.2
diff --git a/media-libs/libtheora/files/libtheora-1.1.1-libpng16.patch b/media-libs/libtheora/files/libtheora-1.1.1-libpng16.patch
index 93da700c4d7a..46d933323909 100644
--- a/media-libs/libtheora/files/libtheora-1.1.1-libpng16.patch
+++ b/media-libs/libtheora/files/libtheora-1.1.1-libpng16.patch
@@ -1,8 +1,8 @@
http://bugs.gentoo.org/465450
http://trac.xiph.org/ticket/1947
---- examples/png2theora.c
-+++ examples/png2theora.c
+--- a/examples/png2theora.c
++++ b/examples/png2theora.c
@@ -462,9 +462,9 @@
png_set_strip_alpha(png_ptr);
diff --git a/media-libs/libtheora/files/libtheora-1.1.1-underlinking.patch b/media-libs/libtheora/files/libtheora-1.1.1-underlinking.patch
index b45a368ebd76..7836e3abda23 100644
--- a/media-libs/libtheora/files/libtheora-1.1.1-underlinking.patch
+++ b/media-libs/libtheora/files/libtheora-1.1.1-underlinking.patch
@@ -1,7 +1,7 @@
http://bugs.gentoo.org/504270
---- examples/Makefile.am
-+++ examples/Makefile.am
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
@@ -22,7 +22,7 @@
player_example_SOURCES = player_example.c
diff --git a/media-libs/libtheora/libtheora-1.1.1-r2.ebuild b/media-libs/libtheora/libtheora-1.1.1-r2.ebuild
new file mode 100644
index 000000000000..43080a81d96d
--- /dev/null
+++ b/media-libs/libtheora/libtheora-1.1.1-r2.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic multilib-minimal
+
+DESCRIPTION="The Theora Video Compression Codec"
+HOMEPAGE="https://www.theora.org"
+SRC_URI="https://downloads.xiph.org/releases/theora/${P/_}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc +encode examples static-libs"
+
+REQUIRED_USE="examples? ( encode )" #285895
+
+RDEPEND="
+ >=media-libs/libogg-1.3.0:=[${MULTILIB_USEDEP}]
+ encode? ( >=media-libs/libvorbis-1.3.3-r1:=[${MULTILIB_USEDEP}] )
+ examples? (
+ media-libs/libpng:0=
+ >=media-libs/libsdl-0.11.0
+ media-libs/libvorbis:=
+ )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ doc? ( app-doc/doxygen )
+ virtual/pkgconfig"
+
+S=${WORKDIR}/${P/_}
+
+VARTEXFONTS=${T}/fonts
+
+DOCS=( AUTHORS CHANGES README )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.0_beta2-flags.patch
+ "${FILESDIR}"/${P}-underlinking.patch
+ "${FILESDIR}"/${P}-libpng16.patch # bug 465450
+ "${FILESDIR}"/${P}-fix-UB.patch # bug 620800
+)
+
+src_prepare() {
+ default
+
+ # bug 467006
+ sed -i "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" configure.ac || die
+
+ AT_M4DIR=m4 eautoreconf
+}
+
+multilib_src_configure() {
+ use x86 && filter-flags -fforce-addr -frename-registers #200549
+ use doc || export ac_cv_prog_HAVE_DOXYGEN=false
+
+ local myconf=(
+ --disable-spec
+ $(use_enable encode)
+ $(use_enable static-libs static)
+ )
+
+ if [[ "${ABI}" = "${DEFAULT_ABI}" ]] ; then
+ myconf+=( $(use_enable examples) )
+ else
+ # those will be overwritten anyway
+ myconf+=( --disable-examples )
+ fi
+
+ # --disable-spec because LaTeX documentation has been prebuilt
+ ECONF_SOURCE="${S}" econf "${myconf[@]}"
+}
+
+multilib_src_install() {
+ emake \
+ DESTDIR="${D}" \
+ docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ install
+
+ if use examples && [[] "${ABI}" = "${DEFAULT_ABI}" ]]; then
+ dobin examples/.libs/png2theora
+ for bin in dump_{psnr,video} {encoder,player}_example; do
+ newbin examples/.libs/${bin} theora_${bin}
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ find "${D}" -name '*.la' -delete || die
+ einstalldocs
+
+ if use examples && use doc; then
+ docinto examples
+ dodoc examples/*.[ch]
+ docompress -x /usr/share/doc/${PF}/examples
+ docinto .
+ fi
+}