1 |
commit: 99173e7c992b7f640d41701f344d7c5e83eee3ec |
2 |
Author: Alexis Ballier <aballier <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Jan 20 16:33:33 2020 +0000 |
4 |
Commit: Alexis Ballier <aballier <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jan 20 17:43:18 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=99173e7c |
7 |
|
8 |
media-libs/x265: bump to 3.2.1 |
9 |
|
10 |
Package-Manager: Portage-2.3.84, Repoman-2.3.20 |
11 |
Signed-off-by: Alexis Ballier <aballier <AT> gentoo.org> |
12 |
|
13 |
media-libs/x265/Manifest | 1 + |
14 |
media-libs/x265/x265-3.2.1.ebuild | 196 ++++++++++++++++++++++++++++++++++++++ |
15 |
2 files changed, 197 insertions(+) |
16 |
|
17 |
diff --git a/media-libs/x265/Manifest b/media-libs/x265/Manifest |
18 |
index 70a6b4cecfe..28249212eef 100644 |
19 |
--- a/media-libs/x265/Manifest |
20 |
+++ b/media-libs/x265/Manifest |
21 |
@@ -3,4 +3,5 @@ DIST x265_2.9.tar.gz 1385848 BLAKE2B ff14eba55cea0646ad0ffc12f9032c9033d23c9d805 |
22 |
DIST x265_3.0.tar.gz 1398519 BLAKE2B e3ac28b01e89ce8a428f294c759644a8177e1b79941aba5e1b53033c236e3445f9afeea96f8adf7e5cdcfff8c790ca9fcadcc8b2de6c31ba3fe9ba87321a8ca8 SHA512 bb7665194ddd4bccbb91c16337463ad4ef32111a1e7779e4cc16964df0992aa99e578cb74fef0edbf41119105e4085574247f60541b0558cc36730ea12d2c6ba |
23 |
DIST x265_3.1.2.tar.gz 1419864 BLAKE2B 1eeb210e58d6977f9a048b84e924d690868aa350b6e736f577b5c1a62b9c5b71cfb2b03f004f26839ea44b9db871313bc9888af95999a576dcc167e79d297c61 SHA512 00fc2d8460657c0d2edcc54fd8c4521785c632f8811b74d0cd0a3efa0f06f1fb8cdd6233ad4917c1f40b3c1f1660a6c97ad947e656b7c3e9a51f8ae84afef65a |
24 |
DIST x265_3.1.tar.gz 1419649 BLAKE2B b9151f136fdc6c0512f481af6c8d4d575ce4c75ef8891b42ca24ddfd1f4802bfe8cd47bb07dfc1834243560a8d36ddd5ca4d79d7b9f140fbd411b5b80ea6b8d4 SHA512 81905b6286a61fada7cb1632d7f8461295a28e8d53ccd53d3c26c60c7d8091df47a1b694de28caa721f632d66940f5ceeb44d3405dc3b079edd17d21c30e7a7d |
25 |
+DIST x265_3.2.1.tar.gz 1426255 BLAKE2B 4184cfa290b36f497c5f3a5e3b597bf44e52dd20ba6af21c665d98709c9b984122a339d93aae572756a94549c0c1a293ee195c6c1d34902d298664ecf016f896 SHA512 5cb29b9d4475c1f686f6e31e47ccddde3db1639d5dcf9c058513389a9fdeb35a83b14e30e59498a76dec74bb0b410b6d8f5b1b45d18927be9811bb6a40d8d568 |
26 |
DIST x265_3.2.tar.gz 1425689 BLAKE2B 58da4aa52381ec89b0aea1dc896fef92d9ec9fc781fd279acd0a338cd872f52482c81c558dde749c1205dbc13341a9851c381d01e2f312f5e2b4712d2242b7d3 SHA512 08c779026fe4c03797efef9d6a898b16c308355311e167c81b976345eb78039725a31294c77a60b76b4ef648d8720e16b2d6524e7108755531a5375231f5313e |
27 |
|
28 |
diff --git a/media-libs/x265/x265-3.2.1.ebuild b/media-libs/x265/x265-3.2.1.ebuild |
29 |
new file mode 100644 |
30 |
index 00000000000..a7c7ebc8e96 |
31 |
--- /dev/null |
32 |
+++ b/media-libs/x265/x265-3.2.1.ebuild |
33 |
@@ -0,0 +1,196 @@ |
34 |
+# Copyright 1999-2020 Gentoo Authors |
35 |
+# Distributed under the terms of the GNU General Public License v2 |
36 |
+ |
37 |
+EAPI=5 |
38 |
+ |
39 |
+inherit cmake-utils multilib-minimal multilib multibuild flag-o-matic |
40 |
+ |
41 |
+if [[ ${PV} = 9999* ]]; then |
42 |
+ inherit mercurial |
43 |
+ EHG_REPO_URI="https://bitbucket.org/multicoreware/x265" |
44 |
+else |
45 |
+ SRC_URI="https://bitbucket.org/multicoreware/x265/downloads/${PN}_${PV}.tar.gz" |
46 |
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~x86" |
47 |
+fi |
48 |
+ |
49 |
+DESCRIPTION="Library for encoding video streams into the H.265/HEVC format" |
50 |
+HOMEPAGE="http://x265.org/" |
51 |
+ |
52 |
+LICENSE="GPL-2" |
53 |
+# subslot = libx265 soname |
54 |
+SLOT="0/179" |
55 |
+IUSE="+10bit +12bit cpu_flags_arm_neon numa pic power8 test" |
56 |
+RESTRICT="!test? ( test )" |
57 |
+ |
58 |
+ASM_DEPEND=">=dev-lang/yasm-1.2.0" |
59 |
+RDEPEND="numa? ( >=sys-process/numactl-2.0.10-r1[${MULTILIB_USEDEP}] )" |
60 |
+DEPEND="${RDEPEND} |
61 |
+ abi_x86_32? ( ${ASM_DEPEND} ) |
62 |
+ abi_x86_64? ( ${ASM_DEPEND} )" |
63 |
+ |
64 |
+PATCHES=( |
65 |
+ "${FILESDIR}/arm.patch" |
66 |
+ "${FILESDIR}/neon.patch" |
67 |
+ "${FILESDIR}/ppc64.patch" |
68 |
+) |
69 |
+ |
70 |
+src_unpack() { |
71 |
+ if [[ ${PV} = 9999* ]]; then |
72 |
+ mercurial_src_unpack |
73 |
+ # Can't set it at global scope due to mercurial.eclass limitations... |
74 |
+ export S=${WORKDIR}/${P}/source |
75 |
+ else |
76 |
+ unpack ${A} |
77 |
+ export S="$(echo "${WORKDIR}/${PN}_"*"/source")" |
78 |
+ fi |
79 |
+} |
80 |
+ |
81 |
+# By default, the library and the encoder is configured for only one output bit |
82 |
+# depth. Meaning, one has to rebuild libx265 if (s)he wants to produce HEVC |
83 |
+# files with a different bit depth, which is annoying. However, upstream |
84 |
+# supports proper namespacing for 8bits, 10bits & 12bits HEVC and linking all |
85 |
+# that together so that the resulting library can produce all three of them |
86 |
+# instead of only one. |
87 |
+# The API requires the bit depth parameter, so that libx265 can then chose which |
88 |
+# variant of the encoder to use. |
89 |
+# To achieve this, we have to build one (static) library for each non-main |
90 |
+# variant, and link it into the main library. |
91 |
+# Upstream documents using the 8bit variant as main library, hence we do not |
92 |
+# allow disabling it: "main" *MUST* come last in the following list. |
93 |
+ |
94 |
+x265_get_variants() { |
95 |
+ local variants="" |
96 |
+ use 12bit && variants+="main12 " |
97 |
+ use 10bit && variants+="main10 " |
98 |
+ variants+="main" |
99 |
+ echo "${variants}" |
100 |
+} |
101 |
+ |
102 |
+x265_variant_src_configure() { |
103 |
+ mkdir -p "${BUILD_DIR}" || die |
104 |
+ pushd "${BUILD_DIR}" >/dev/null || die |
105 |
+ |
106 |
+ local mycmakeargs=( "${myabicmakeargs[@]}" ) |
107 |
+ case "${MULTIBUILD_VARIANT}" in |
108 |
+ "main12") |
109 |
+ mycmakeargs+=( |
110 |
+ -DHIGH_BIT_DEPTH=ON |
111 |
+ -DEXPORT_C_API=OFF |
112 |
+ -DENABLE_SHARED=OFF |
113 |
+ -DENABLE_CLI=OFF |
114 |
+ -DMAIN12=ON |
115 |
+ ) |
116 |
+ if [[ ${ABI} = x86 ]] ; then |
117 |
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF ) |
118 |
+ fi |
119 |
+ if [[ ${ABI} = arm ]] ; then |
120 |
+ # 589674 |
121 |
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF ) |
122 |
+ fi |
123 |
+ if [[ ${ABI} = ppc64 ]] ; then |
124 |
+ # https://bugs.gentoo.org/show_bug.cgi?id=607802#c5 |
125 |
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF -DENABLE_ALTIVEC=OFF ) |
126 |
+ fi |
127 |
+ ;; |
128 |
+ "main10") |
129 |
+ mycmakeargs+=( |
130 |
+ -DHIGH_BIT_DEPTH=ON |
131 |
+ -DEXPORT_C_API=OFF |
132 |
+ -DENABLE_SHARED=OFF |
133 |
+ -DENABLE_CLI=OFF |
134 |
+ ) |
135 |
+ if [[ ${ABI} = x86 ]] ; then |
136 |
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF ) |
137 |
+ fi |
138 |
+ if [[ ${ABI} = arm ]] ; then |
139 |
+ # 589674 |
140 |
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF ) |
141 |
+ fi |
142 |
+ if [[ ${ABI} = ppc64 ]] ; then |
143 |
+ # https://bugs.gentoo.org/show_bug.cgi?id=607802#c5 |
144 |
+ mycmakeargs+=( -DENABLE_ASSEMBLY=OFF -DENABLE_ALTIVEC=OFF ) |
145 |
+ fi |
146 |
+ ;; |
147 |
+ "main") |
148 |
+ if (( "${#MULTIBUILD_VARIANTS[@]}" > 1 )) ; then |
149 |
+ local myvariants=( "${MULTIBUILD_VARIANTS[@]}" ) |
150 |
+ unset myvariants[${#MULTIBUILD_VARIANTS[@]}-1] |
151 |
+ local liblist="" |
152 |
+ for v in "${myvariants[@]}" ; do |
153 |
+ ln -s "${BUILD_DIR%-*}-${v}/libx265.a" "libx265_${v}.a" || die |
154 |
+ liblist+="libx265_${v}.a;" |
155 |
+ done |
156 |
+ mycmakeargs+=( |
157 |
+ -DEXTRA_LIB="${liblist}" |
158 |
+ -DEXTRA_LINK_FLAGS=-L. |
159 |
+ -DLINKED_10BIT=$(usex 10bit) |
160 |
+ -DLINKED_12BIT=$(usex 12bit) |
161 |
+ ) |
162 |
+ fi |
163 |
+ ;; |
164 |
+ *) |
165 |
+ die "Unknown variant: ${MULTIBUILD_VARIANT}";; |
166 |
+ esac |
167 |
+ cmake-utils_src_configure |
168 |
+ popd >/dev/null || die |
169 |
+} |
170 |
+ |
171 |
+multilib_src_configure() { |
172 |
+ append-cflags -fPIC |
173 |
+ append-cxxflags -fPIC |
174 |
+ local myabicmakeargs=( |
175 |
+ $(cmake-utils_use_enable test TESTS) |
176 |
+ $(multilib_is_native_abi || echo "-DENABLE_CLI=OFF") |
177 |
+ -DENABLE_LIBNUMA=$(usex numa ON OFF) |
178 |
+ -DCPU_POWER8=$(usex power8 ON OFF) |
179 |
+ -DENABLE_ALTIVEC=$(usex power8 ON OFF) |
180 |
+ -DLIB_INSTALL_DIR="$(get_libdir)" |
181 |
+ ) |
182 |
+ |
183 |
+ if [[ ${ABI} = x86 ]] ; then |
184 |
+ # Bug #528202 |
185 |
+ if use pic ; then |
186 |
+ ewarn "PIC has been requested but x86 asm is not PIC-safe, disabling it." |
187 |
+ myabicmakeargs+=( -DENABLE_ASSEMBLY=OFF ) |
188 |
+ fi |
189 |
+ elif [[ ${ABI} = x32 ]] ; then |
190 |
+ # bug #510890 |
191 |
+ myabicmakeargs+=( -DENABLE_ASSEMBLY=OFF ) |
192 |
+ elif [[ ${ABI} = arm ]] ; then |
193 |
+ myabicmakeargs+=( -DENABLE_ASSEMBLY=$(usex pic OFF $(usex cpu_flags_arm_neon ON OFF)) ) |
194 |
+ use cpu_flags_arm_neon && use pic && ewarn "PIC has been requested but arm neon asm is not PIC-safe, disabling it." |
195 |
+ fi |
196 |
+ |
197 |
+ local MULTIBUILD_VARIANTS=( $(x265_get_variants) ) |
198 |
+ multibuild_foreach_variant x265_variant_src_configure |
199 |
+} |
200 |
+ |
201 |
+multilib_src_compile() { |
202 |
+ local MULTIBUILD_VARIANTS=( $(x265_get_variants) ) |
203 |
+ multibuild_foreach_variant cmake-utils_src_compile |
204 |
+} |
205 |
+ |
206 |
+x265_variant_src_test() { |
207 |
+ if [ -x "${BUILD_DIR}/test/TestBench" ] ; then |
208 |
+ "${BUILD_DIR}/test/TestBench" || die |
209 |
+ else |
210 |
+ einfo "Unit tests check only assembly." |
211 |
+ einfo "You do not seem to have any for ABI=${ABI}, x265 variant=${MULTIBUILD_VARIANT}" |
212 |
+ einfo "Skipping tests." |
213 |
+ fi |
214 |
+} |
215 |
+ |
216 |
+multilib_src_test() { |
217 |
+ local MULTIBUILD_VARIANTS=( $(x265_get_variants) ) |
218 |
+ multibuild_foreach_variant x265_variant_src_test |
219 |
+} |
220 |
+ |
221 |
+multilib_src_install() { |
222 |
+ # Install only "main" variant since the others are already linked into it. |
223 |
+ local MULTIBUILD_VARIANTS=( "main" ) |
224 |
+ multibuild_foreach_variant cmake-utils_src_install |
225 |
+} |
226 |
+ |
227 |
+multilib_src_install_all() { |
228 |
+ dodoc -r "${S}/../doc/"* |
229 |
+} |