Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/libvpx/
Date: Thu, 30 Dec 2021 04:21:30
Message-Id: 1640838074.73bb5c035a58480d2a455619a02f4097b1e58a10.sam@gentoo
1 commit: 73bb5c035a58480d2a455619a02f4097b1e58a10
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Thu Dec 30 04:20:43 2021 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Thu Dec 30 04:21:14 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73bb5c03
7
8 media-libs/libvpx: add 1.11.0
9
10 Notably now forcing specific targets only where we
11 know libvpx works well and otherwise using
12 the generic implementation due to
13 runtime breakage (and extensive test failures).
14
15 Closes: https://bugs.gentoo.org/830254
16 Bug: https://bugs.gentoo.org/814668
17 Bug: https://bugs.gentoo.org/700902
18 Bug: https://bugs.gentoo.org/746173
19 Bug: https://bugs.gentoo.org/499336
20 Signed-off-by: Sam James <sam <AT> gentoo.org>
21
22 media-libs/libvpx/Manifest | 2 +
23 media-libs/libvpx/libvpx-1.11.0.ebuild | 136 +++++++++++++++++++++++++++++++++
24 2 files changed, 138 insertions(+)
25
26 diff --git a/media-libs/libvpx/Manifest b/media-libs/libvpx/Manifest
27 index 558390719ab5..cb0494a1bad1 100644
28 --- a/media-libs/libvpx/Manifest
29 +++ b/media-libs/libvpx/Manifest
30 @@ -1,6 +1,8 @@
31 DIST libvpx-1.10.0.tar.gz 5340421 BLAKE2B 25ef346b9dce92d37cc4f4612ed351d0f93a60c9021ed5f9145a9128efa8b0af7cf30b6279c40481ab043b9922b93f6b502cdffc3feedaf4bca310fdaf8b1502 SHA512 f88c588145b5164e98531b75215e119056cd806a9dbe6599bb9dab35c0af0ecd4b3daabee7d795e412a58aeb543d5c7dc0107457c4bd8f4d434e966e8e22a32d
32 +DIST libvpx-1.11.0.tar.gz 5347256 BLAKE2B 2c350e14fc3b8a3c10a71e230e893fbb9a68e6eeb6a413cc359bdbfddda21cc5c15d0de4b6110889845f88f8a946ef1266980c0a1b26aaf55b52330fe038e261 SHA512 7aa5d30afa956dccda60917fd82f6f9992944ca893437c8cd53a04d1b7a94e0210431954aa136594dc400340123cc166dcc855753e493c8d929667f4c42b65a5
33 DIST libvpx-1.7.0.tar.gz 2679797 BLAKE2B de7992adb517e375c5be2a9facf2b4a73174adcaef11185ed6d3102c2f6b73f378b0d415c5e3a4d915b3a6889bd8b31ba3e8c007a87a433a345ef7696a1dd899 SHA512 8b3b766b550f8d86907628d7ed88035f9a2612aac21542e0fd5ad35b905eb82cbe1be02a1a24afce7a3bcc4766f62611971f72724761996b392136c40a1e7ff0
34 DIST libvpx-1.9.0.tar.gz 5326239 BLAKE2B 6403a5d8326235a8d27ca3727f45398556cbe72cd125ae358c22f729cc01d6a81917cca8a6e97ad0ed01e7fc04ca4212baf21f371323b93ccc8830c4a11acf91 SHA512 8d544552b35000ea5712aec220b78bb5f7dc210704b2f609365214cb95a4f5a0e343b362723d829cb4a9ac203b10d5443700ba84b28fd6b2fefbabb40663e298
35 DIST libvpx-testdata-1.10.0.tar.xz 448090752 BLAKE2B 88391427d35c538d114df188a899f8de7247dcd861d8438a32530909430feceef48c2c35a53c5a57268dccd85bcd40ec92bb053cfc2b4588bde6447747e10803 SHA512 6d4f0d08f32b34e95c1a75a4340e0340c83b26008852fac4293f1f3c4b9e9ce0f8e2290de678e2f2c9e1309f6995857add4e98796e1a3f474ce1402c9cc862f4
36 +DIST libvpx-testdata-1.11.0.tar.xz 444614504 BLAKE2B ab6de4c46a771dc1c0dfb19326e580a492768c629eebbfb276db7da02e13256b2a66fdaadf76e5856879e871c7a17fcff657139582b1a3a84ad39c6018b912be SHA512 772e9d69dc9fc8e5a9411e1a532d908e86d90b03019e958349115a74697dcb35972ce71325312193d3a84030c3ff1d9bdbd09ed58918fffcba39c120ce4be868
37 DIST libvpx-testdata-1.7.0.tar.xz 238790100 BLAKE2B 1d14e794341d35402eaf54d398ebed56b0983908e397ae677737e0f313ea0bfc9c4a39be91765b02a07a8eb9b55529d5f998efcc87b1b493b0e326e02193d982 SHA512 1556345e41674f0846a7419828972ec27c3c37fe270fa1deb45e03665f60ec088d79134aee0d2e27003b130636eeed4a15ea3f701c9d7014f3ca2785467767a8
38 DIST libvpx-testdata-1.9.0.tar.xz 450868860 BLAKE2B aaed7f2ef4f70ff352e39be2630e3a5cd803e8d2408c4fd5c3e06e040a75d2f593a10bc267a497aa91eaceb64286e81f69e86ca0940160e4f34b62c08e91df7b SHA512 bcc89062a436d652d15d5852a842cb4985c4783855b943ab11667c022b5082887129fd9579b8da3af209a3031f95ff8dc625c380f79559db160501cd676736ea
39
40 diff --git a/media-libs/libvpx/libvpx-1.11.0.ebuild b/media-libs/libvpx/libvpx-1.11.0.ebuild
41 new file mode 100644
42 index 000000000000..5666b8e11bcc
43 --- /dev/null
44 +++ b/media-libs/libvpx/libvpx-1.11.0.ebuild
45 @@ -0,0 +1,136 @@
46 +# Copyright 1999-2021 Gentoo Authors
47 +# Distributed under the terms of the GNU General Public License v2
48 +
49 +EAPI="7"
50 +inherit toolchain-funcs multilib-minimal
51 +
52 +# To create a new testdata tarball:
53 +# 1. Unpack source tarball or checkout git tag
54 +# 2. mkdir libvpx-testdata
55 +# 3. export LIBVPX_TEST_DATA_PATH=libvpx-testdata
56 +# 4. configure --enable-unit-tests --enable-vp9-highbitdepth
57 +# 5. make testdata
58 +# 6. tar -caf libvpx-testdata-${MY_PV}.tar.xz libvpx-testdata
59 +
60 +LIBVPX_TESTDATA_VER=1.11.0
61 +
62 +DESCRIPTION="WebM VP8 and VP9 Codec SDK"
63 +HOMEPAGE="https://www.webmproject.org"
64 +SRC_URI="https://github.com/webmproject/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
65 + test? ( https://dev.gentoo.org/~sam/${CATEGORY}/${PN}/${PN}-testdata-${LIBVPX_TESTDATA_VER}.tar.xz )"
66 +
67 +LICENSE="BSD"
68 +SLOT="0/7"
69 +KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
70 +IUSE="doc +highbitdepth postproc static-libs test +threads"
71 +
72 +REQUIRED_USE="test? ( threads )"
73 +
74 +# Disable test phase when USE="-test"
75 +RESTRICT="!test? ( test )"
76 +
77 +BDEPEND="dev-lang/perl
78 + abi_x86_32? ( dev-lang/yasm )
79 + abi_x86_64? ( dev-lang/yasm )
80 + abi_x86_x32? ( dev-lang/yasm )
81 + x86-fbsd? ( dev-lang/yasm )
82 + amd64-fbsd? ( dev-lang/yasm )
83 + doc? (
84 + app-doc/doxygen
85 + dev-lang/php
86 + )
87 +"
88 +
89 +PATCHES=(
90 + "${FILESDIR}/libvpx-1.3.0-sparc-configure.patch" # 501010
91 +)
92 +
93 +src_configure() {
94 + # https://bugs.gentoo.org/show_bug.cgi?id=384585
95 + # https://bugs.gentoo.org/show_bug.cgi?id=465988
96 + # copied from php-pear-r1.eclass
97 + addpredict /usr/share/snmp/mibs/.index #nowarn
98 + addpredict /var/lib/net-snmp/ #nowarn
99 + addpredict /var/lib/net-snmp/mib_indexes #nowarn
100 + addpredict /session_mm_cli0.sem #nowarn
101 + multilib-minimal_src_configure
102 +}
103 +
104 +multilib_src_configure() {
105 + unset CODECS #357487
106 +
107 + # #498364: sse doesn't work without sse2 enabled,
108 + local myconfargs=(
109 + --prefix="${EPREFIX}"/usr
110 + --libdir="${EPREFIX}"/usr/$(get_libdir)
111 + --enable-pic
112 + --enable-vp8
113 + --enable-vp9
114 + --enable-shared
115 + --disable-optimizations
116 + $(use_enable postproc)
117 + $(use_enable static-libs static)
118 + $(use_enable test unit-tests)
119 + $(use_enable threads multithread)
120 + $(use_enable highbitdepth vp9-highbitdepth)
121 + )
122 +
123 + # let the build system decide which AS to use (it honours $AS but
124 + # then feeds it with yasm flags without checking...) #345161
125 + tc-export AS
126 + case "${CHOST}" in
127 + i?86*) export AS=yasm;;
128 + x86_64*) export AS=yasm;;
129 + esac
130 +
131 + # libvpx is fragile: both for tests at runtime.
132 + # We force using the generic target unless we know things work to
133 + # avoid runtime breakage on exotic arches.
134 + if [[ ${ABI} == amd64 ]] ; then
135 + myconfargs+=( --force-target=x86_64-linux-gcc )
136 + elif [[ ${ABI} == x86 ]] ; then
137 + myconfargs+=( --force-target=x86-linux-gcc )
138 + elif [[ ${ABI} == arm64 ]] ; then
139 + myconfargs+=( --force-target=arm64-linux-gcc )
140 + elif [[ ${ABI} == arm ]] && [[ ${CHOST} == *armv7* ]] ; then
141 + myconfargs+=( --force-target=armv7-linux-gcc )
142 + else
143 + myconfargs+=( --force-target=generic-gnu )
144 + fi
145 +
146 + # powerpc toolchain is not recognized anymore, #694368
147 + #[[ ${CHOST} == powerpc-* ]] && myconfargs+=( --force-target=generic-gnu )
148 +
149 + # Build with correct toolchain.
150 + tc-export CC CXX AR NM
151 + # Link with gcc by default, the build system should override this if needed.
152 + export LD="${CC}"
153 +
154 + if multilib_is_native_abi; then
155 + myconfargs+=( $(use_enable doc install-docs) $(use_enable doc docs) )
156 + else
157 + # not needed for multilib and will be overwritten anyway.
158 + myconfargs+=( --disable-examples --disable-install-docs --disable-docs )
159 + fi
160 +
161 + echo "${S}"/configure "${myconfargs[@]}" >&2
162 + "${S}"/configure "${myconfargs[@]}" || die
163 +}
164 +
165 +multilib_src_compile() {
166 + # build verbose by default and do not build examples that will not be installed
167 + # disable stripping of debug info, bug #752057
168 + # (only works as long as upstream does not use non-gnu strip)
169 + emake verbose=yes GEN_EXAMPLES= HAVE_GNU_STRIP=no
170 +}
171 +
172 +multilib_src_test() {
173 + local -x LD_LIBRARY_PATH="${BUILD_DIR}"
174 + local -x LIBVPX_TEST_DATA_PATH="${WORKDIR}/${PN}-testdata"
175 + emake verbose=yes GEN_EXAMPLES= test
176 +}
177 +
178 +multilib_src_install() {
179 + emake verbose=yes GEN_EXAMPLES= DESTDIR="${D}" install
180 + multilib_is_native_abi && use doc && dodoc -r docs/html
181 +}