diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2018-10-04 01:53:25 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2018-10-04 02:01:17 +0200 |
commit | 92a952a998d41206b6af06fe2d9c3eb9ab2e3f4a (patch) | |
tree | 2b324b94acc43c1a7c93a21b0a3e71f7efcc071d /media-libs/libtheora | |
parent | media-plugins/gst-plugins-wavpack: bump to 1.14.4, no code changes from 1.14.3 (diff) | |
download | gentoo-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')
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 +} |