From 339c27e5232302f2b7219741fc4b3920e4332322 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 17 Apr 2022 20:23:42 +0100 Subject: media-libs/libvpx: drop 1.7.0-r1, 1.10.0 Signed-off-by: Sam James --- media-libs/libvpx/Manifest | 4 - ...libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch | 211 --------------------- media-libs/libvpx/libvpx-1.10.0.ebuild | 119 ------------ media-libs/libvpx/libvpx-1.7.0-r1.ebuild | 129 ------------- 4 files changed, 463 deletions(-) delete mode 100644 media-libs/libvpx/files/libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch delete mode 100644 media-libs/libvpx/libvpx-1.10.0.ebuild delete mode 100644 media-libs/libvpx/libvpx-1.7.0-r1.ebuild diff --git a/media-libs/libvpx/Manifest b/media-libs/libvpx/Manifest index cb0494a1bad1..09a825a81ef6 100644 --- a/media-libs/libvpx/Manifest +++ b/media-libs/libvpx/Manifest @@ -1,8 +1,4 @@ -DIST libvpx-1.10.0.tar.gz 5340421 BLAKE2B 25ef346b9dce92d37cc4f4612ed351d0f93a60c9021ed5f9145a9128efa8b0af7cf30b6279c40481ab043b9922b93f6b502cdffc3feedaf4bca310fdaf8b1502 SHA512 f88c588145b5164e98531b75215e119056cd806a9dbe6599bb9dab35c0af0ecd4b3daabee7d795e412a58aeb543d5c7dc0107457c4bd8f4d434e966e8e22a32d DIST libvpx-1.11.0.tar.gz 5347256 BLAKE2B 2c350e14fc3b8a3c10a71e230e893fbb9a68e6eeb6a413cc359bdbfddda21cc5c15d0de4b6110889845f88f8a946ef1266980c0a1b26aaf55b52330fe038e261 SHA512 7aa5d30afa956dccda60917fd82f6f9992944ca893437c8cd53a04d1b7a94e0210431954aa136594dc400340123cc166dcc855753e493c8d929667f4c42b65a5 -DIST libvpx-1.7.0.tar.gz 2679797 BLAKE2B de7992adb517e375c5be2a9facf2b4a73174adcaef11185ed6d3102c2f6b73f378b0d415c5e3a4d915b3a6889bd8b31ba3e8c007a87a433a345ef7696a1dd899 SHA512 8b3b766b550f8d86907628d7ed88035f9a2612aac21542e0fd5ad35b905eb82cbe1be02a1a24afce7a3bcc4766f62611971f72724761996b392136c40a1e7ff0 DIST libvpx-1.9.0.tar.gz 5326239 BLAKE2B 6403a5d8326235a8d27ca3727f45398556cbe72cd125ae358c22f729cc01d6a81917cca8a6e97ad0ed01e7fc04ca4212baf21f371323b93ccc8830c4a11acf91 SHA512 8d544552b35000ea5712aec220b78bb5f7dc210704b2f609365214cb95a4f5a0e343b362723d829cb4a9ac203b10d5443700ba84b28fd6b2fefbabb40663e298 -DIST libvpx-testdata-1.10.0.tar.xz 448090752 BLAKE2B 88391427d35c538d114df188a899f8de7247dcd861d8438a32530909430feceef48c2c35a53c5a57268dccd85bcd40ec92bb053cfc2b4588bde6447747e10803 SHA512 6d4f0d08f32b34e95c1a75a4340e0340c83b26008852fac4293f1f3c4b9e9ce0f8e2290de678e2f2c9e1309f6995857add4e98796e1a3f474ce1402c9cc862f4 DIST libvpx-testdata-1.11.0.tar.xz 444614504 BLAKE2B ab6de4c46a771dc1c0dfb19326e580a492768c629eebbfb276db7da02e13256b2a66fdaadf76e5856879e871c7a17fcff657139582b1a3a84ad39c6018b912be SHA512 772e9d69dc9fc8e5a9411e1a532d908e86d90b03019e958349115a74697dcb35972ce71325312193d3a84030c3ff1d9bdbd09ed58918fffcba39c120ce4be868 -DIST libvpx-testdata-1.7.0.tar.xz 238790100 BLAKE2B 1d14e794341d35402eaf54d398ebed56b0983908e397ae677737e0f313ea0bfc9c4a39be91765b02a07a8eb9b55529d5f998efcc87b1b493b0e326e02193d982 SHA512 1556345e41674f0846a7419828972ec27c3c37fe270fa1deb45e03665f60ec088d79134aee0d2e27003b130636eeed4a15ea3f701c9d7014f3ca2785467767a8 DIST libvpx-testdata-1.9.0.tar.xz 450868860 BLAKE2B aaed7f2ef4f70ff352e39be2630e3a5cd803e8d2408c4fd5c3e06e040a75d2f593a10bc267a497aa91eaceb64286e81f69e86ca0940160e4f34b62c08e91df7b SHA512 bcc89062a436d652d15d5852a842cb4985c4783855b943ab11667c022b5082887129fd9579b8da3af209a3031f95ff8dc625c380f79559db160501cd676736ea diff --git a/media-libs/libvpx/files/libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch b/media-libs/libvpx/files/libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch deleted file mode 100644 index 623eccda902d..000000000000 --- a/media-libs/libvpx/files/libvpx-1.7.0-CVE-2019-9232_9325_9371_9433.patch +++ /dev/null @@ -1,211 +0,0 @@ -Backports of - -From 46e17f0cb4a80b36755c84b8bf15731d3386c08f Mon Sep 17 00:00:00 2001 -From: kyslov -Date: Fri, 4 Jan 2019 17:04:09 -0800 -Subject: [PATCH] Fix OOB memory access on fuzzed data - -From 0681cff1ad36b3ef8ec242f59b5a6c4234ccfb88 Mon Sep 17 00:00:00 2001 -From: James Zern -Date: Tue, 24 Jul 2018 21:36:50 -0700 -Subject: [PATCH] vp9: fix OOB read in decoder_peek_si_internal - -From f00890eecdf8365ea125ac16769a83aa6b68792d Mon Sep 17 00:00:00 2001 -From: James Zern -Date: Tue, 11 Dec 2018 18:06:20 -0800 -Subject: [PATCH] update libwebm to libwebm-1.0.0.27-352-g6ab9fcf - -From 34d54b04e98dd0bac32e9aab0fbda0bf501bc742 Mon Sep 17 00:00:00 2001 -From: James Zern -Date: Tue, 9 Apr 2019 18:37:44 -0700 -Subject: [PATCH] update libwebm to libwebm-1.0.0.27-358-gdbf1d10 - -From 52add5896661d186dec284ed646a4b33b607d2c7 Mon Sep 17 00:00:00 2001 -From: Jerome Jiang -Date: Wed, 23 May 2018 15:43:00 -0700 -Subject: [PATCH] VP8: Fix use-after-free in postproc. - -to address CVE-2019-9232 CVE-2019-9325 CVE-2019-9371 CVE-2019-9433 - - ---- a/test/decode_api_test.cc -+++ b/test/decode_api_test.cc -@@ -138,8 +138,30 @@ TEST(DecodeAPI, Vp9InvalidDecode) { - EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec)); - } - --TEST(DecodeAPI, Vp9PeekSI) { -+void TestPeekInfo(const uint8_t *const data, uint32_t data_sz, -+ uint32_t peek_size) { - const vpx_codec_iface_t *const codec = &vpx_codec_vp9_dx_algo; -+ // Verify behavior of vpx_codec_decode. vpx_codec_decode doesn't even get -+ // to decoder_peek_si_internal on frames of size < 8. -+ if (data_sz >= 8) { -+ vpx_codec_ctx_t dec; -+ EXPECT_EQ(VPX_CODEC_OK, vpx_codec_dec_init(&dec, codec, NULL, 0)); -+ EXPECT_EQ((data_sz < peek_size) ? VPX_CODEC_UNSUP_BITSTREAM -+ : VPX_CODEC_CORRUPT_FRAME, -+ vpx_codec_decode(&dec, data, data_sz, NULL, 0)); -+ vpx_codec_iter_t iter = NULL; -+ EXPECT_EQ(NULL, vpx_codec_get_frame(&dec, &iter)); -+ EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec)); -+ } -+ -+ // Verify behavior of vpx_codec_peek_stream_info. -+ vpx_codec_stream_info_t si; -+ si.sz = sizeof(si); -+ EXPECT_EQ((data_sz < peek_size) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_OK, -+ vpx_codec_peek_stream_info(codec, data, data_sz, &si)); -+} -+ -+TEST(DecodeAPI, Vp9PeekStreamInfo) { - // The first 9 bytes are valid and the rest of the bytes are made up. Until - // size 10, this should return VPX_CODEC_UNSUP_BITSTREAM and after that it - // should return VPX_CODEC_CORRUPT_FRAME. -@@ -150,24 +172,18 @@ TEST(DecodeAPI, Vp9PeekSI) { - }; - - for (uint32_t data_sz = 1; data_sz <= 32; ++data_sz) { -- // Verify behavior of vpx_codec_decode. vpx_codec_decode doesn't even get -- // to decoder_peek_si_internal on frames of size < 8. -- if (data_sz >= 8) { -- vpx_codec_ctx_t dec; -- EXPECT_EQ(VPX_CODEC_OK, vpx_codec_dec_init(&dec, codec, NULL, 0)); -- EXPECT_EQ( -- (data_sz < 10) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_CORRUPT_FRAME, -- vpx_codec_decode(&dec, data, data_sz, NULL, 0)); -- vpx_codec_iter_t iter = NULL; -- EXPECT_EQ(NULL, vpx_codec_get_frame(&dec, &iter)); -- EXPECT_EQ(VPX_CODEC_OK, vpx_codec_destroy(&dec)); -- } -+ TestPeekInfo(data, data_sz, 10); -+ } -+} -+ -+TEST(DecodeAPI, Vp9PeekStreamInfoTruncated) { -+ // This profile 1 header requires 10.25 bytes, ensure -+ // vpx_codec_peek_stream_info doesn't over read. -+ const uint8_t profile1_data[10] = { 0xa4, 0xe9, 0x30, 0x68, 0x53, -+ 0xe9, 0x30, 0x68, 0x53, 0x04 }; - -- // Verify behavior of vpx_codec_peek_stream_info. -- vpx_codec_stream_info_t si; -- si.sz = sizeof(si); -- EXPECT_EQ((data_sz < 10) ? VPX_CODEC_UNSUP_BITSTREAM : VPX_CODEC_OK, -- vpx_codec_peek_stream_info(codec, data, data_sz, &si)); -+ for (uint32_t data_sz = 1; data_sz <= 10; ++data_sz) { -+ TestPeekInfo(profile1_data, data_sz, 11); - } - } - #endif // CONFIG_VP9_DECODER ---- a/third_party/libwebm/mkvparser/mkvparser.cc -+++ b/third_party/libwebm/mkvparser/mkvparser.cc -@@ -5307,8 +5307,8 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info, - - const long long stop = pos + s.size; - -- Colour* colour = NULL; -- Projection* projection = NULL; -+ std::unique_ptr colour_ptr; -+ std::unique_ptr projection_ptr; - - while (pos < stop) { - long long id, size; -@@ -5357,11 +5357,19 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info, - if (rate <= 0) - return E_FILE_FORMAT_INVALID; - } else if (id == libwebm::kMkvColour) { -- if (!Colour::Parse(pReader, pos, size, &colour)) -+ Colour* colour = NULL; -+ if (!Colour::Parse(pReader, pos, size, &colour)) { - return E_FILE_FORMAT_INVALID; -+ } else { -+ colour_ptr.reset(colour); -+ } - } else if (id == libwebm::kMkvProjection) { -- if (!Projection::Parse(pReader, pos, size, &projection)) -+ Projection* projection = NULL; -+ if (!Projection::Parse(pReader, pos, size, &projection)) { - return E_FILE_FORMAT_INVALID; -+ } else { -+ projection_ptr.reset(projection); -+ } - } - - pos += size; // consume payload -@@ -5392,8 +5400,8 @@ long VideoTrack::Parse(Segment* pSegment, const Info& info, - pTrack->m_display_unit = display_unit; - pTrack->m_stereo_mode = stereo_mode; - pTrack->m_rate = rate; -- pTrack->m_colour = colour; -- pTrack->m_projection = projection; -+ pTrack->m_colour = colour_ptr.release(); -+ pTrack->m_projection = projection_ptr.release(); - - pResult = pTrack; - return 0; // success ---- a/vp8/common/postproc.c -+++ b/vp8/common/postproc.c -@@ -65,7 +65,7 @@ void vp8_deblock(VP8_COMMON *cm, YV12_BUFFER_CONFIG *source, - double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065; - int ppl = (int)(level + .5); - -- const MODE_INFO *mode_info_context = cm->show_frame_mi; -+ const MODE_INFO *mode_info_context = cm->mi; - int mbr, mbc; - - /* The pixel thresholds are adjusted according to if or not the macroblock ---- a/vp8/decoder/dboolhuff.h -+++ b/vp8/decoder/dboolhuff.h -@@ -76,7 +76,7 @@ static int vp8dx_decode_bool(BOOL_DECODER *br, int probability) { - } - - { -- register int shift = vp8_norm[range]; -+ const unsigned char shift = vp8_norm[(unsigned char)range]; - range <<= shift; - value <<= shift; - count -= shift; ---- a/vp9/vp9_dx_iface.c -+++ b/vp9/vp9_dx_iface.c -@@ -97,7 +97,7 @@ static vpx_codec_err_t decoder_peek_si_internal( - const uint8_t *data, unsigned int data_sz, vpx_codec_stream_info_t *si, - int *is_intra_only, vpx_decrypt_cb decrypt_cb, void *decrypt_state) { - int intra_only_flag = 0; -- uint8_t clear_buffer[10]; -+ uint8_t clear_buffer[11]; - - if (data + data_sz <= data) return VPX_CODEC_INVALID_PARAM; - -@@ -158,6 +158,9 @@ static vpx_codec_err_t decoder_peek_si_internal( - if (profile > PROFILE_0) { - if (!parse_bitdepth_colorspace_sampling(profile, &rb)) - return VPX_CODEC_UNSUP_BITSTREAM; -+ // The colorspace info may cause vp9_read_frame_size() to need 11 -+ // bytes. -+ if (data_sz < 11) return VPX_CODEC_UNSUP_BITSTREAM; - } - rb.bit_offset += REF_FRAMES; // refresh_frame_flags - vp9_read_frame_size(&rb, (int *)&si->w, (int *)&si->h); ---- a/vpx_dsp/bitreader.h -+++ b/vpx_dsp/bitreader.h -@@ -94,7 +94,7 @@ static INLINE int vpx_read(vpx_reader *r, int prob) { - } - - { -- register int shift = vpx_norm[range]; -+ const unsigned char shift = vpx_norm[(unsigned char)range]; - range <<= shift; - value <<= shift; - count -= shift; ---- a/vpx_dsp/bitreader_buffer.c -+++ b/vpx_dsp/bitreader_buffer.c -@@ -23,7 +23,7 @@ int vpx_rb_read_bit(struct vpx_read_bit_buffer *rb) { - rb->bit_offset = off + 1; - return bit; - } else { -- rb->error_handler(rb->error_handler_data); -+ if (rb->error_handler != NULL) rb->error_handler(rb->error_handler_data); - return 0; - } - } diff --git a/media-libs/libvpx/libvpx-1.10.0.ebuild b/media-libs/libvpx/libvpx-1.10.0.ebuild deleted file mode 100644 index 9cce08a6ecf0..000000000000 --- a/media-libs/libvpx/libvpx-1.10.0.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" -inherit toolchain-funcs multilib-minimal - -# To create a new testdata tarball: -# 1. Unpack source tarball or checkout git tag -# 2. mkdir libvpx-testdata -# 3. export LIBVPX_TEST_DATA_PATH=libvpx-testdata -# 4. configure --enable-unit-tests --enable-vp9-highbitdepth -# 5. make testdata -# 6. tar -caf libvpx-testdata-${MY_PV}.tar.xz libvpx-testdata - -LIBVPX_TESTDATA_VER=1.10.0 - -DESCRIPTION="WebM VP8 and VP9 Codec SDK" -HOMEPAGE="https://www.webmproject.org" -SRC_URI="https://github.com/webmproject/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz - test? ( https://dev.gentoo.org/~whissi/dist/libvpx/${PN}-testdata-${LIBVPX_TESTDATA_VER}.tar.xz )" - -LICENSE="BSD" -SLOT="0/6" -KEYWORDS="amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" -IUSE="doc +highbitdepth postproc static-libs test +threads" - -REQUIRED_USE="test? ( threads )" - -# Disable test phase when USE="-test" -RESTRICT="!test? ( test )" - -BDEPEND="dev-lang/perl - abi_x86_32? ( dev-lang/yasm ) - abi_x86_64? ( dev-lang/yasm ) - abi_x86_x32? ( dev-lang/yasm ) - doc? ( - app-doc/doxygen - dev-lang/php - ) -" - -PATCHES=( - "${FILESDIR}/libvpx-1.3.0-sparc-configure.patch" # 501010 -) - -src_configure() { - # https://bugs.gentoo.org/show_bug.cgi?id=384585 - # https://bugs.gentoo.org/show_bug.cgi?id=465988 - # copied from php-pear-r1.eclass - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/ #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - addpredict /session_mm_cli0.sem #nowarn - multilib-minimal_src_configure -} - -multilib_src_configure() { - unset CODECS #357487 - - # #498364: sse doesn't work without sse2 enabled, - local myconfargs=( - --prefix="${EPREFIX}"/usr - --libdir="${EPREFIX}"/usr/$(get_libdir) - --enable-pic - --enable-vp8 - --enable-vp9 - --enable-shared - --disable-optimizations - $(use_enable postproc) - $(use_enable static-libs static) - $(use_enable test unit-tests) - $(use_enable threads multithread) - $(use_enable highbitdepth vp9-highbitdepth) - ) - - # let the build system decide which AS to use (it honours $AS but - # then feeds it with yasm flags without checking...) #345161 - tc-export AS - case "${CHOST}" in - i?86*) export AS=yasm;; - x86_64*) export AS=yasm;; - esac - - # powerpc toolchain is not recognized anymore, #694368 - [[ ${CHOST} == powerpc-* ]] && myconfargs+=( --force-target=generic-gnu ) - - # Build with correct toolchain. - tc-export CC CXX AR NM - # Link with gcc by default, the build system should override this if needed. - export LD="${CC}" - - if multilib_is_native_abi; then - myconfargs+=( $(use_enable doc install-docs) $(use_enable doc docs) ) - else - # not needed for multilib and will be overwritten anyway. - myconfargs+=( --disable-examples --disable-install-docs --disable-docs ) - fi - - echo "${S}"/configure "${myconfargs[@]}" >&2 - "${S}"/configure "${myconfargs[@]}" -} - -multilib_src_compile() { - # build verbose by default and do not build examples that will not be installed - # disable stripping of debug info, bug #752057 - # (only works as long as upstream does not use non-gnu strip) - emake verbose=yes GEN_EXAMPLES= HAVE_GNU_STRIP=no -} - -multilib_src_test() { - local -x LD_LIBRARY_PATH="${BUILD_DIR}" - local -x LIBVPX_TEST_DATA_PATH="${WORKDIR}/${PN}-testdata" - emake verbose=yes GEN_EXAMPLES= test -} - -multilib_src_install() { - emake verbose=yes GEN_EXAMPLES= DESTDIR="${D}" install - multilib_is_native_abi && use doc && dodoc -r docs/html -} diff --git a/media-libs/libvpx/libvpx-1.7.0-r1.ebuild b/media-libs/libvpx/libvpx-1.7.0-r1.ebuild deleted file mode 100644 index d91f9a9f7b52..000000000000 --- a/media-libs/libvpx/libvpx-1.7.0-r1.ebuild +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" -inherit toolchain-funcs multilib-minimal - -# To create a new testdata tarball: -# 1. Unpack source tarbll or checkout git tag -# 2. export LIBVPX_TEST_DATA_PATH=libvpx-testdata -# 3. configure --enable-unit-tests --enable-vp9-highbitdepth -# 4. make testdata -# 5. tar -cjf libvpx-testdata-${MY_PV}.tar.bz2 libvpx-testdata - -LIBVPX_TESTDATA_VER=1.7.0 - -DESCRIPTION="WebM VP8 and VP9 Codec SDK" -HOMEPAGE="https://www.webmproject.org" -SRC_URI="https://github.com/webmproject/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz - test? ( mirror://gentoo/${PN}-testdata-${LIBVPX_TESTDATA_VER}.tar.xz )" - -LICENSE="BSD" -SLOT="0/5" -KEYWORDS="amd64 arm arm64 ~ia64 ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux" -IUSE="cpu_flags_x86_avx cpu_flags_x86_avx2 doc cpu_flags_x86_mmx postproc cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1 +highbitdepth static-libs svc test +threads" - -REQUIRED_USE=" - cpu_flags_x86_sse2? ( cpu_flags_x86_mmx ) - cpu_flags_x86_ssse3? ( cpu_flags_x86_sse2 ) - test? ( threads ) -" - -# Disable test phase when USE="-test" -RESTRICT="!test? ( test )" - -BDEPEND="dev-lang/perl - abi_x86_32? ( dev-lang/yasm ) - abi_x86_64? ( dev-lang/yasm ) - abi_x86_x32? ( dev-lang/yasm ) - doc? ( - app-doc/doxygen - dev-lang/php - ) -" - -PATCHES=( - "${FILESDIR}"/libvpx-1.3.0-sparc-configure.patch # 501010 - "${FILESDIR}"/${P}-CVE-2019-9232_9325_9371_9433.patch -) - -src_configure() { - # https://bugs.gentoo.org/show_bug.cgi?id=384585 - # https://bugs.gentoo.org/show_bug.cgi?id=465988 - # copied from php-pear-r1.eclass - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/ #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - addpredict /session_mm_cli0.sem #nowarn - multilib-minimal_src_configure -} - -multilib_src_configure() { - unset CODECS #357487 - - # #498364: sse doesn't work without sse2 enabled, - local myconfargs=( - --prefix="${EPREFIX}"/usr - --libdir="${EPREFIX}"/usr/$(get_libdir) - --enable-pic - --enable-vp8 - --enable-vp9 - --enable-shared - --extra-cflags="${CFLAGS}" - $(use_enable cpu_flags_x86_avx avx) - $(use_enable cpu_flags_x86_avx2 avx2) - $(use_enable cpu_flags_x86_mmx mmx) - $(use_enable postproc) - $(use cpu_flags_x86_sse2 && use_enable cpu_flags_x86_sse sse || echo --disable-sse) - $(use_enable cpu_flags_x86_sse2 sse2) - $(use_enable cpu_flags_x86_sse3 sse3) - $(use_enable cpu_flags_x86_sse4_1 sse4_1) - $(use_enable cpu_flags_x86_ssse3 ssse3) - $(use_enable svc experimental) $(use_enable svc spatial-svc) - $(use_enable static-libs static) - $(use_enable test unit-tests) - $(use_enable threads multithread) - $(use_enable highbitdepth vp9-highbitdepth) - ) - - # let the build system decide which AS to use (it honours $AS but - # then feeds it with yasm flags without checking...) #345161 - tc-export AS - case "${CHOST}" in - i?86*) export AS=yasm;; - x86_64*) export AS=yasm;; - esac - - # powerpc toolchain is not recognized anymore, #694368 - [[ ${CHOST} == powerpc-* ]] && myconfargs+=( --force-target=generic-gnu ) - - # Build with correct toolchain. - tc-export CC CXX AR NM - # Link with gcc by default, the build system should override this if needed. - export LD="${CC}" - - if multilib_is_native_abi; then - myconfargs+=( $(use_enable doc install-docs) $(use_enable doc docs) ) - else - # not needed for multilib and will be overwritten anyway. - myconfargs+=( --disable-examples --disable-install-docs --disable-docs ) - fi - - "${S}"/configure "${myconfargs[@]}" -} - -multilib_src_compile() { - # build verbose by default and do not build examples that will not be installed - emake verbose=yes GEN_EXAMPLES= -} - -multilib_src_test() { - local -x LD_LIBRARY_PATH="${BUILD_DIR}" - local -x LIBVPX_TEST_DATA_PATH="${WORKDIR}/${PN}-testdata" - emake verbose=yes GEN_EXAMPLES= test -} - -multilib_src_install() { - emake verbose=yes GEN_EXAMPLES= DESTDIR="${D}" install - multilib_is_native_abi && use doc && dodoc -r docs/html -} -- cgit v1.2.3-65-gdbad