Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/libav/
Date: Fri, 05 Oct 2018 22:06:33
Message-Id: 1538777172.64addcf8c4fc672fd0597858d0c101e4ab2600f7.whissi@gentoo
1 commit: 64addcf8c4fc672fd0597858d0c101e4ab2600f7
2 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
3 AuthorDate: Fri Oct 5 22:00:23 2018 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Fri Oct 5 22:06:12 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64addcf8
7
8 media-video/libav: bump to v12.3
9
10 Package-Manager: Portage-2.3.50, Repoman-2.3.11
11 Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
12
13 media-video/libav/Manifest | 1 +
14 media-video/libav/libav-12.3.ebuild | 349 ++++++++++++++++++++++++++++++++++++
15 2 files changed, 350 insertions(+)
16
17 diff --git a/media-video/libav/Manifest b/media-video/libav/Manifest
18 index 125623c2d18..998c922b52f 100644
19 --- a/media-video/libav/Manifest
20 +++ b/media-video/libav/Manifest
21 @@ -4,5 +4,6 @@ DIST fate-12.tar.xz 755165356 BLAKE2B 031cef24bcfae6205cd6546f453cddb17387176ae8
22 DIST fate-9.tar.xz 467671500 BLAKE2B df4ef8187f257c91b7b6c3c25c2f204c2d4a476cc73cca199ec1c8af2c4641cbb3a314e39ab38f6d8b68c5fe0b91ff1b4b592dec6b518d544806eaeaca003608 SHA512 8e45539f2512ef915b37c857226c0243940259f269b8f99393b9defa3352d7b8c1fcc5078f4f0d40dc0509737f0c915e179cedcc77f71fe5d96b1b956169a202
23 DIST libav-11.8.tar.xz 4865796 BLAKE2B fb0e8f129edee0423252f334b12485d514f9fdfb3d916877d83141e0985ec4efb4de0f5b65d6e3e6d94b835f317a52116b849eec99d023ebb109bdbc2b7a8c5c SHA512 26f9a6bb7312acc08b6785c260220ada3ca2a8db0d0f2bd4621b47082c275fbdb7978457cb423693ba9a61dc4570b05d0dceb5861ff0bcce859c349a6a8f49be
24 DIST libav-12.2.tar.xz 5268804 BLAKE2B e25b3dfe1026b9e69c89cbec2090070088a7004dc03e8cc23da2da03824a627c733c16c67e5fc65ec9f19942d93405d5ba6926de83cae04c497597f55220f004 SHA512 4b37cfb18a6cf6f12eddb5175b1751c093f3a495ae1d1b588884c60157cb260479b1d8fa3a6e3e08c00d7a26422b1e78a750eb35cf7bc763c01790f3567cba03
25 +DIST libav-12.3.tar.xz 5267988 BLAKE2B 92147dde4f41a5aa05d93824d3ffa9a21b067f99cec5fa17bc4b8e3600f2b1913f7e74d4ea766c864cdba686dd14d5d3a8bc8af8f9e6de4c956f14cb8e20ab88 SHA512 fd4838a934792797a975ece034cbd63760c94ee6becc99b8707e8345e41777baf26e30ef6937ab30b7d2f722977e69aabc2cfca3fcdf88373d579f9cc9d69162
26 DIST libav-13_pre20171219.tar.xz 5427904 BLAKE2B 074dc5d071aeb656fc14a015c2e3c168aa81d25e2fb08d99e300dc47d7ea28f61500fcfab0b16fa136261a5af27631b7536eb3aefa0e1feb4d615af57f9f5a36 SHA512 0c9b59957f1fbbff8f5b95b02c11014a4efdddf4b7e1b158cd0fda3af8b89bd90d48263ed0239915adfb7abcd7a8b22c278cd5cf1d01822bd22df65cc7f69689
27 DIST libav-9.17.tar.xz 4080028 BLAKE2B 206e80835292af9f4c1c65539e69981b6993679c11e8a1feef1e37dc32174e47744ebce319b8709bcd60804f493fab1e524c781e174d60d9ebe35ad01f6fbc60 SHA512 20af83d4b6a23c159c2386b6592ba6a6acf3f2c54e8aeb16dd0c8a64d637fbde24f37b864698b1143c6802b64a7b5e8ddfe0e7601b35c35686a789e2b3232f5a
28
29 diff --git a/media-video/libav/libav-12.3.ebuild b/media-video/libav/libav-12.3.ebuild
30 new file mode 100644
31 index 00000000000..610966c54b8
32 --- /dev/null
33 +++ b/media-video/libav/libav-12.3.ebuild
34 @@ -0,0 +1,349 @@
35 +# Copyright 1999-2018 Gentoo Authors
36 +# Distributed under the terms of the GNU General Public License v2
37 +
38 +EAPI="6"
39 +
40 +inherit flag-o-matic multilib multilib-minimal toolchain-funcs
41 +
42 +if [[ ${PV} == *9999 ]] ; then
43 + : ${EGIT_REPO_URI:="git://git.libav.org/libav.git"}
44 + if [[ ${PV%9999} != "" ]] ; then
45 + : ${EGIT_BRANCH:="release/${PV%.9999}"}
46 + fi
47 + inherit git-r3
48 +fi
49 +
50 +DESCRIPTION="Complete solution to record, convert and stream audio and video"
51 +HOMEPAGE="https://libav.org/"
52 +if [[ ${PV} == *9999 ]] ; then
53 + SRC_URI=""
54 +elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
55 + SRC_URI="https://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
56 + SRC_URI+=" test? ( https://dev.gentoo.org/~lu_zero/libav/fate-${PV}.tar.xz )"
57 +else # Official release
58 + SRC_URI="https://libav.org/releases/${P}.tar.xz"
59 + FATE_VER=${PV%%_*}
60 + SRC_URI+=" test? ( https://dev.gentoo.org/~lu_zero/libav/fate-12-r1.tar.xz )"
61 +fi
62 +
63 +# 9999 does not have fate-*.tar.xz
64 +
65 +LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
66 +SLOT="0/12"
67 +[[ ${PV} == *9999 ]] || KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
68 +IUSE="aac alsa amr bs2b +bzip2 cdio cpudetection custom-cflags debug doc +encode faac fdk
69 + frei0r fontconfig +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k libressl mp3
70 + +network nvidia openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
71 + static-libs test theora threads tools truetype twolame v4l vaapi vdpau vorbis vpx X
72 + wavpack webp x264 x265 xvid +zlib"
73 +
74 +# String for CPU features in the useflag[:configure_option] form
75 +# if :configure_option isn't set, it will use 'useflag' as configure option
76 +CPU_FEATURES="altivec armv5te armv6 armv6t2 armvfp:vfp neon"
77 +X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext mmx mmxext sse sse2 sse3 ssse3 sse4_1:sse4 sse4_2:sse42 avx xop fma3 fma4 avx2"
78 +for i in ${X86_CPU_FEATURES} ; do
79 + CPU_FEATURES+=" cpu_flags_x86_${i%:*}:${i#*:}"
80 +done
81 +for i in ${CPU_FEATURES} ; do
82 + IUSE+=" ${i%:*}"
83 +done
84 +
85 +RDEPEND="
86 + !media-video/ffmpeg:0
87 + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
88 + amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
89 + bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
90 + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
91 + cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
92 + encode? (
93 + aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
94 + amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
95 + faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
96 + mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
97 + theora? (
98 + >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
99 + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
100 + )
101 + twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
102 + vorbis? (
103 + >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
104 + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
105 + )
106 + webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
107 + wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
108 + x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
109 + x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
110 + xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
111 + )
112 + nvidia? ( media-video/nvidia-video-codec )
113 + fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
114 + frei0r? ( media-plugins/frei0r-plugins )
115 + gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
116 + ieee1394? (
117 + >=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
118 + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
119 + )
120 + jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
121 + jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
122 + opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
123 + pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
124 + rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
125 + ssl? (
126 + openssl? (
127 + !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
128 + libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
129 + )
130 + !openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
131 + )
132 + sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
133 + schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
134 + speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
135 + truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
136 + fontconfig? ( >=media-libs/fontconfig-2.10[${MULTILIB_USEDEP}] )
137 + vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
138 + vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
139 + vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
140 + X? ( >=x11-libs/libxcb-1.9.1[${MULTILIB_USEDEP}] )
141 + zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
142 +"
143 +
144 +DEPEND="${RDEPEND}
145 + >=sys-devel/make-3.81
146 + doc? ( app-text/texi2html )
147 + ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
148 + cpu_flags_x86_mmx? ( dev-lang/yasm )
149 + rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
150 + schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
151 + ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
152 + test? ( sys-devel/bc )
153 + truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
154 + fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
155 + v4l? ( sys-kernel/linux-headers )
156 +"
157 +
158 +# faac can't be binary distributed
159 +# openssl support marked as nonfree
160 +# faac and aac are concurent implementations
161 +# amr and aac require at least lgpl3
162 +# x264 requires gpl2
163 +REQUIRED_USE="
164 + rtmp? ( network )
165 + amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) cdio? ( gpl ) x265? ( gpl )
166 + test? ( encode zlib )
167 + fontconfig? ( truetype )
168 +"
169 +RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist ) nvidia? ( bindist )"
170 +
171 +MULTILIB_WRAPPED_HEADERS=(
172 + /usr/include/libavutil/avconfig.h
173 +)
174 +
175 +src_unpack() {
176 + [[ ${PV} == *9999 ]] && git-r3_src_unpack
177 + # 9999 does not have fate-*.tar.xz
178 + [[ ${PV%9999} != "" ]] && default_src_unpack
179 +}
180 +
181 +src_prepare() {
182 + eapply_user
183 +
184 + # if we have snapshot then we need to hardcode the version
185 + if [[ ${PV%_p*} != ${PV} ]]; then
186 + sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
187 + fi
188 +
189 + TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
190 + use zlib && TOOLS+=( cws2fws )
191 +
192 + MAKEOPTS+=" V=1"
193 +}
194 +
195 +multilib_src_configure() {
196 + local myconf=( ${EXTRA_LIBAV_CONF} )
197 + local uses i
198 +
199 + # 9999 does not have fate-*.tar.xz
200 + [[ ${PV%9999} != "" ]] && use test && myconf+=( --samples="${WORKDIR}/fate" )
201 +
202 + myconf+=(
203 + $(use_enable gpl)
204 + $(use_enable gpl version3)
205 + --enable-avfilter
206 + )
207 +
208 + # enabled by default
209 + uses="debug doc network zlib"
210 + for i in ${uses}; do
211 + use ${i} || myconf+=( --disable-${i} )
212 + done
213 + use bzip2 || myconf+=( --disable-bzlib )
214 + use sdl || myconf+=( --disable-avplay )
215 +
216 + if use ssl; then
217 + use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
218 + || myconf+=( --enable-gnutls )
219 + fi
220 +
221 + use custom-cflags && myconf+=( --disable-optimizations )
222 + use cpudetection && myconf+=( --enable-runtime-cpudetect )
223 +
224 + use vdpau || myconf+=( --disable-vdpau )
225 +
226 + use vaapi && myconf+=( --enable-vaapi )
227 +
228 + NVIDIA_INCLUDES="-I/opt/nvidia-video-codec/include -I/opt/cuda/include"
229 + NVIDIA_LIBS="-L/opt/cuda/lib64"
230 + use nvidia && myconf+=( --enable-nonfree --enable-cuda --enable-libnpp
231 + --extra-cflags="$NVIDIA_INCLUDES" --extra-ldflags="$NVIDIA_LIBS" )
232 +
233 + # Encoders
234 + if use encode; then
235 + use faac && myconf+=( --enable-nonfree )
236 + use mp3 && myconf+=( --enable-libmp3lame )
237 + use amr && myconf+=( --enable-libvo-amrwbenc )
238 + use aac && myconf+=( --enable-libvo-aacenc )
239 + use nvidia && myconf+=( --enable-nvenc )
240 + uses="faac theora twolame vorbis wavpack webp x264 x265 xvid"
241 + for i in ${uses}; do
242 + use ${i} && myconf+=( --enable-lib${i} )
243 + done
244 + else
245 + myconf+=( --disable-encoders )
246 + fi
247 +
248 + # libavdevice options
249 + use cdio && myconf+=( --enable-libcdio )
250 + use ieee1394 && myconf+=( --enable-libdc1394 )
251 + use pulseaudio && myconf+=( --enable-libpulse )
252 +
253 + # Indevs
254 + # v4l1 is gone since linux-headers-2.6.38
255 + myconf+=( --disable-indev=v4l )
256 + use v4l || myconf+=( --disable-indev=v4l2 )
257 + for i in alsa oss jack; do
258 + use ${i} || myconf+=( --disable-indev=${i} )
259 + done
260 + use X && myconf+=( --enable-libxcb )
261 + # Outdevs
262 + for i in alsa oss ; do
263 + use ${i} || myconf+=( --disable-outdev=${i} )
264 + done
265 + # libavfilter options
266 + use bs2b && myconf+=( --enable-libbs2b )
267 + multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
268 + use truetype && myconf+=( --enable-libfreetype )
269 + use fontconfig && myconf+=( --enable-libfontconfig )
270 +
271 + # Threads; we only support pthread for now
272 + use threads && myconf+=( --enable-pthreads )
273 +
274 + # Decoders
275 + use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
276 + use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
277 + uses="gsm opus rtmp schroedinger speex vpx"
278 + for i in ${uses}; do
279 + use ${i} && myconf+=( --enable-lib${i} )
280 + done
281 + use jpeg2k && myconf+=( --enable-libopenjpeg )
282 +
283 + # CPU features
284 + for i in ${CPU_FEATURES}; do
285 + use ${i%:*} || myconf+=( --disable-${i#*:} )
286 + done
287 +
288 + # pass the right -mfpu as extra
289 + use neon && use arm && append-cflags -mfpu=neon
290 +
291 + # disable mmx accelerated code if PIC is required
292 + # as the provided asm decidedly is not PIC for x86.
293 + if use pic && [[ ${ABI} == x86 ]]; then
294 + myconf+=( --disable-mmx --disable-mmxext )
295 + fi
296 +
297 + # Option to force building pic
298 + use pic && myconf+=( --enable-pic )
299 +
300 + # cross compile support
301 + if tc-is-cross-compiler ; then
302 + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
303 + case ${CHOST} in
304 + *freebsd*)
305 + myconf+=( --target-os=freebsd )
306 + ;;
307 + mingw32*)
308 + myconf+=( --target-os=mingw32 )
309 + ;;
310 + *linux*)
311 + myconf+=( --target-os=linux )
312 + ;;
313 + esac
314 + fi
315 +
316 + # Misc stuff
317 + use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
318 +
319 + # Forcing arm would make the compiler break left and right
320 + if [[ ${ABI} == arm ]]; then
321 + filter-flags -marm
322 + fi
323 +
324 + # Specific workarounds for too-few-registers arch...
325 + if [[ ${ABI} == x86 ]]; then
326 + local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
327 + filter-flags -fforce-addr -momit-leaf-frame-pointer
328 + append-flags -fomit-frame-pointer
329 + is-flag -O? || append-flags -O2
330 + if use debug; then
331 + # no need to warn about debug if not using debug flag
332 + ewarn ""
333 + ewarn "Debug information will be almost useless as the frame pointer is omitted."
334 + ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
335 + ewarn "difficult to fix. Please have that in mind."
336 + ewarn ""
337 + fi
338 + fi
339 +
340 + set -- "${S}"/configure \
341 + --prefix="${EPREFIX}"/usr \
342 + --libdir="${EPREFIX}"/usr/$(get_libdir) \
343 + --shlibdir="${EPREFIX}"/usr/$(get_libdir) \
344 + --mandir="${EPREFIX}"/usr/share/man \
345 + --enable-shared \
346 + --cc="$(tc-getCC)" \
347 + --ar="$(tc-getAR)" \
348 + --optflags="${CFLAGS}" \
349 + --extra-cflags="${CFLAGS}" \
350 + $(use_enable static-libs static) \
351 + "${myconf[@]}"
352 + echo "${@}"
353 + "${@}" || die
354 +}
355 +
356 +multilib_src_compile() {
357 + emake
358 +
359 + if use tools; then
360 + tc-export CC
361 +
362 + emake ${TOOLS[@]/#/tools/}
363 + fi
364 +}
365 +
366 +multilib_src_install() {
367 + emake DESTDIR="${D}" install install-man
368 + use doc && dodoc doc/*.html
369 +
370 + if use tools; then
371 + dobin ${TOOLS[@]/#/tools/}
372 + fi
373 +}
374 +
375 +multilib_src_install_all() {
376 + dodoc Changelog README.md INSTALL
377 +}
378 +
379 +multilib_src_test() {
380 + local _libs="$(for i in lib*/;do echo -n "${BUILD_DIR}/${i%/}:";done)"
381 + einfo "LD_LIBRARY_PATH is set to \"${_libs}\""
382 + LD_LIBRARY_PATH="${_libs}" make -j1 fate V=1
383 +}