Gentoo Archives: gentoo-commits

From: Luca Barbato <lu_zero@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/libav/
Date: Sun, 29 May 2016 15:03:40
Message-Id: 1464534209.683277d5da27e49e7cb0a519ff6e7765713094bd.lu_zero@gentoo
1 commit: 683277d5da27e49e7cb0a519ff6e7765713094bd
2 Author: Luca Barbato <lu_zero <AT> gentoo <DOT> org>
3 AuthorDate: Sun May 29 15:03:17 2016 +0000
4 Commit: Luca Barbato <lu_zero <AT> gentoo <DOT> org>
5 CommitDate: Sun May 29 15:03:29 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=683277d5
7
8 media-video/libav: Add version 11.7
9
10 Security fixes as usual.
11
12 Package-Manager: portage-2.2.26
13
14 media-video/libav/Manifest | 1 +
15 media-video/libav/libav-11.7.ebuild | 347 ++++++++++++++++++++++++++++++++++++
16 2 files changed, 348 insertions(+)
17
18 diff --git a/media-video/libav/Manifest b/media-video/libav/Manifest
19 index 0c4e4b8..4c093c0 100644
20 --- a/media-video/libav/Manifest
21 +++ b/media-video/libav/Manifest
22 @@ -5,6 +5,7 @@ DIST fate-9.tar.xz 467671500 SHA256 27d10fd49267452ac787c3f43501a4a21d0ccaccc5dd
23 DIST libav-11.3.tar.xz 4858864 SHA256 12ae6c051967765ae5faeddf94c4584129ac0b18edb884afffc5fcedcdb5e030 SHA512 f25b9fb7392d5bb4df35937f79beae26bd8f6606f0ad7cdebf16963834eb9b423d882f6a3a44b5120a5d5d853c7c31bb8c3420a427cd2b360f41a48a6d5df284 WHIRLPOOL 721c4cbe7ee3f7307d24c0e4f1cc1f8ab8b0ccd50ddf88b77ecf1cae05f06fc80d7527e9f7a0a098a6d95d0e7fed50082aaffa07935eab6e9131f7c9be6e696c
24 DIST libav-11.4.tar.xz 4860264 SHA256 0b7dabc2605f3a254ee410bb4b1a857945696aab495fe21b34c3b6544ff5d525 SHA512 82ffe6aaccb1a19782dfcb0de641c8255531ce34ee5f49f9b8ec7f5a11c81713432aafc3a6b7c4de927eb8141ddea41f28e4e3a1ab715b943774193050fb02e7 WHIRLPOOL c2e14e06fd7632852feea45f468803929cb1c1688d77ac8641c56d77523da455ccdf4cc6bf52b3dba9b387af9ad15ea9efd82b11ce365c3a84440fb2998f06aa
25 DIST libav-11.6.tar.xz 4860268 SHA256 542f30e4266d2d2226e681b888bc718c995f5438f2db66a9a27d581243d27aed SHA512 bff3e22de93e4ab357715ae20e25b6435df52d1868c5164426a693d14fe7f54e47a46c4c62a36fbf27bd204e12f6a29a6f58016c7deaa838915d424b5ce530bd WHIRLPOOL 060bd61e784112a56e02ba86d0901ff488d6ef1735d731a869c68a27da72a209734648148edf9922efe2d15fed3380c36129a92c6917af812bf9e606ef97c131
26 +DIST libav-11.7.tar.xz 4861984 SHA256 8c9a75c89c6df58dd5e3f6f735d1ba5448680e23013fd66a51b50b4f49913c46 SHA512 23c6ffd0efdfa6b22c7863bf440d7469eba03a7990382fe33c8c4c7871edf250641ac536572516225679b0934e5c250ee0e2e91ea093c770a0c4c32b4776e3c5 WHIRLPOOL adb106828ae1e3c802b719a5c9feede1c96d02d79512bf04e2bf29da3d24e969a044a887eeb94dc76d528582026aed6cb1e0e342115507aaa98a8918de358ecd
27 DIST libav-12_pre20160529.tar.xz 5238532 SHA256 e12f2c1c737a990e277ec0e78673c971962036374b4e53eddb3c1b417e2672fe SHA512 bcfebbed8b4f65526cb9bea3535a04a99891e89a8dcbe544fa104895558b043848f4521949220ac31210b59441ec280aaa7ec7e9138ccba1e0ab0357805f5d87 WHIRLPOOL d35b7df7b023e4c37115ff196f6ac031662c1fa92c1880ac40a88fe0db02ce606dff807baa1c42422c3512060673262748a93bd577b20510f4538c376f1da77c
28 DIST libav-9.14.tar.xz 4077424 SHA256 e4baf0c2adbd941a827854794dd6af9c29cd2042b23501c5828e9b8e1725f61d SHA512 fa8e83cb92a5a565cd23c63467c64972a69a4cbd652b946c7891b73180b609890f67a6f89f009ed263fb9e2c769236f3a8f7f70b0fce4c4373fa93a49470c04d WHIRLPOOL 178ba6c6ad0ecd8ad59eb3bf7a0d4289a3c253d82981cf3ad454e3b222848ae4f875e37cfd280be43faa25a9614c445106555c9f3b5ee4497aec9d71f39ac1af
29 DIST libav-9.17.tar.xz 4080028 SHA256 e32d5f152bce1de283c002a35eb6e71f265877633dee8a40db4d16381dd5d17c SHA512 20af83d4b6a23c159c2386b6592ba6a6acf3f2c54e8aeb16dd0c8a64d637fbde24f37b864698b1143c6802b64a7b5e8ddfe0e7601b35c35686a789e2b3232f5a WHIRLPOOL ec07b5dd116e87416a9841044e09a6ef9b124fe4882f53e88711a32813d3d3a1d71f5067854bbd553ecdadec401dbbb8b504bfc1c6966bfd5e2db79459fb9995
30
31 diff --git a/media-video/libav/libav-11.7.ebuild b/media-video/libav/libav-11.7.ebuild
32 new file mode 100644
33 index 0000000..ee44d33
34 --- /dev/null
35 +++ b/media-video/libav/libav-11.7.ebuild
36 @@ -0,0 +1,347 @@
37 +# Copyright 1999-2016 Gentoo Foundation
38 +# Distributed under the terms of the GNU General Public License v2
39 +# $Id$
40 +
41 +EAPI=5
42 +
43 +inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs
44 +
45 +if [[ ${PV} == *9999 ]] ; then
46 + : ${EGIT_REPO_URI:="git://git.libav.org/libav.git"}
47 + if [[ ${PV%9999} != "" ]] ; then
48 + : ${EGIT_BRANCH:="release/${PV%.9999}"}
49 + fi
50 + inherit git-r3
51 +fi
52 +
53 +DESCRIPTION="Complete solution to record, convert and stream audio and video"
54 +HOMEPAGE="https://libav.org/"
55 +if [[ ${PV} == *9999 ]] ; then
56 + SRC_URI=""
57 +elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
58 + SRC_URI="https://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
59 +else # Official release
60 + SRC_URI="https://libav.org/releases/${P}.tar.xz"
61 +fi
62 +# 9999 does not have fate-*.tar.xz
63 +[[ ${PV%9999} != "" ]] && SRC_URI+=" test? ( https://dev.gentoo.org/~lu_zero/libav/fate-${PV%%.*}.tar.xz )"
64 +
65 +LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
66 +SLOT="0/11"
67 +[[ ${PV} == *9999 ]] || \
68 +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
69 +IUSE="aac alsa amr bs2b +bzip2 cdio cpudetection custom-cflags debug doc +encode faac fdk
70 + frei0r fontconfig +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k libressl mp3
71 + +network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
72 + static-libs test theora threads tools truetype twolame v4l vaapi vdpau vorbis vpx X
73 + wavpack webp x264 x265 xvid +zlib"
74 +
75 +# String for CPU features in the useflag[:configure_option] form
76 +# if :configure_option isn't set, it will use 'useflag' as configure option
77 +CPU_FEATURES="altivec armv5te armv6 armv6t2 armvfp:vfp neon"
78 +X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext mmx mmxext sse sse2 sse3 ssse3 sse4_1:sse4 sse4_2:sse42 avx xop fma3 fma4 avx2"
79 +for i in ${X86_CPU_FEATURES} ; do
80 + CPU_FEATURES+=" cpu_flags_x86_${i%:*}:${i#*:}"
81 +done
82 +for i in ${CPU_FEATURES} ; do
83 + IUSE+=" ${i%:*}"
84 +done
85 +
86 +RDEPEND="
87 + !media-video/ffmpeg:0
88 + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
89 + amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
90 + bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
91 + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
92 + cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
93 + encode? (
94 + aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
95 + amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
96 + faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
97 + mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
98 + theora? (
99 + >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
100 + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
101 + )
102 + twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
103 + vorbis? (
104 + >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
105 + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
106 + )
107 + webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
108 + wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
109 + x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
110 + x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
111 + xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
112 + )
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? (
141 + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
142 + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
143 + >=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
144 + )
145 + zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
146 +"
147 +
148 +DEPEND="${RDEPEND}
149 + >=sys-devel/make-3.81
150 + doc? ( app-text/texi2html )
151 + ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
152 + cpu_flags_x86_mmx? ( dev-lang/yasm )
153 + rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
154 + schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
155 + ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
156 + test? ( sys-devel/bc )
157 + truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
158 + fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
159 + v4l? ( sys-kernel/linux-headers )
160 +"
161 +
162 +RDEPEND="${RDEPEND}
163 + abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
164 + !app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
165 +
166 +# faac can't be binary distributed
167 +# openssl support marked as nonfree
168 +# faac and aac are concurent implementations
169 +# amr and aac require at least lgpl3
170 +# x264 requires gpl2
171 +REQUIRED_USE="
172 + rtmp? ( network )
173 + amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) X? ( gpl ) cdio? ( gpl ) x265? ( gpl )
174 + test? ( encode zlib )
175 + fontconfig? ( truetype )
176 +"
177 +RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist )"
178 +
179 +MULTILIB_WRAPPED_HEADERS=(
180 + /usr/include/libavutil/avconfig.h
181 +)
182 +
183 +src_unpack() {
184 + [[ ${PV} == *9999 ]] && git-r3_src_unpack
185 + # 9999 does not have fate-*.tar.xz
186 + [[ ${PV%9999} != "" ]] && default_src_unpack
187 +}
188 +
189 +src_prepare() {
190 + epatch_user
191 +
192 + epatch "${FILESDIR}"/libav-11.3-libvpx-1.5.0.patch #565696
193 +
194 + # if we have snapshot then we need to hardcode the version
195 + if [[ ${PV%_p*} != ${PV} ]]; then
196 + sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
197 + fi
198 +
199 + TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
200 + use zlib && TOOLS+=( cws2fws )
201 +
202 + MAKEOPTS+=" V=1"
203 +}
204 +
205 +multilib_src_configure() {
206 + local myconf=( ${EXTRA_LIBAV_CONF} )
207 + local uses i
208 +
209 + # 9999 does not have fate-*.tar.xz
210 + [[ ${PV%9999} != "" ]] && use test && myconf+=( --samples="${WORKDIR}/fate" )
211 +
212 + myconf+=(
213 + $(use_enable gpl)
214 + $(use_enable gpl version3)
215 + # It is a security concern and removed in the next version
216 + --disable-protocol=concat
217 + )
218 +
219 + # enabled by default
220 + uses="debug doc network zlib"
221 + for i in ${uses}; do
222 + use ${i} || myconf+=( --disable-${i} )
223 + done
224 + use bzip2 || myconf+=( --disable-bzlib )
225 + use sdl || myconf+=( --disable-avplay )
226 +
227 + if use ssl; then
228 + use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
229 + || myconf+=( --enable-gnutls )
230 + fi
231 +
232 + use custom-cflags && myconf+=( --disable-optimizations )
233 + use cpudetection && myconf+=( --enable-runtime-cpudetect )
234 +
235 + use vdpau || myconf+=( --disable-vdpau )
236 +
237 + use vaapi && myconf+=( --enable-vaapi )
238 +
239 + # Encoders
240 + if use encode; then
241 + use faac && myconf+=( --enable-nonfree )
242 + use mp3 && myconf+=( --enable-libmp3lame )
243 + use amr && myconf+=( --enable-libvo-amrwbenc )
244 + use aac && myconf+=( --enable-libvo-aacenc )
245 + uses="faac theora twolame vorbis wavpack webp x264 x265 xvid"
246 + for i in ${uses}; do
247 + use ${i} && myconf+=( --enable-lib${i} )
248 + done
249 + else
250 + myconf+=( --disable-encoders )
251 + fi
252 +
253 + # libavdevice options
254 + use cdio && myconf+=( --enable-libcdio )
255 + use ieee1394 && myconf+=( --enable-libdc1394 )
256 + use pulseaudio && myconf+=( --enable-libpulse )
257 +
258 + # Indevs
259 + # v4l1 is gone since linux-headers-2.6.38
260 + myconf+=( --disable-indev=v4l )
261 + use v4l || myconf+=( --disable-indev=v4l2 )
262 + for i in alsa oss jack; do
263 + use ${i} || myconf+=( --disable-indev=${i} )
264 + done
265 + use X && myconf+=( --enable-x11grab )
266 + # Outdevs
267 + for i in alsa oss ; do
268 + use ${i} || myconf+=( --disable-outdev=${i} )
269 + done
270 + # libavfilter options
271 + use bs2b && myconf+=( --enable-libbs2b )
272 + multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
273 + use truetype && myconf+=( --enable-libfreetype )
274 + use fontconfig && myconf+=( --enable-libfontconfig )
275 +
276 + # Threads; we only support pthread for now
277 + use threads && myconf+=( --enable-pthreads )
278 +
279 + # Decoders
280 + use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
281 + use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
282 + uses="gsm opus rtmp schroedinger speex vpx"
283 + for i in ${uses}; do
284 + use ${i} && myconf+=( --enable-lib${i} )
285 + done
286 + use jpeg2k && myconf+=( --enable-libopenjpeg )
287 +
288 + # CPU features
289 + for i in ${CPU_FEATURES}; do
290 + use ${i%:*} || myconf+=( --disable-${i#*:} )
291 + done
292 +
293 + # pass the right -mfpu as extra
294 + use neon && append-cflags -mfpu=neon
295 +
296 + # disable mmx accelerated code if PIC is required
297 + # as the provided asm decidedly is not PIC for x86.
298 + if use pic && [[ ${ABI} == x86 ]]; then
299 + myconf+=( --disable-mmx --disable-mmxext )
300 + fi
301 +
302 + # Option to force building pic
303 + use pic && myconf+=( --enable-pic )
304 +
305 + # cross compile support
306 + if tc-is-cross-compiler ; then
307 + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
308 + case ${CHOST} in
309 + *freebsd*)
310 + myconf+=( --target-os=freebsd )
311 + ;;
312 + mingw32*)
313 + myconf+=( --target-os=mingw32 )
314 + ;;
315 + *linux*)
316 + myconf+=( --target-os=linux )
317 + ;;
318 + esac
319 + fi
320 +
321 + # Misc stuff
322 + use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
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}" emake -k -j1 fate
383 +}