/[gentoo-x86]/media-video/libav/libav-10.9999.ebuild
Gentoo

Contents of /media-video/libav/libav-10.9999.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations) (download)
Thu Jun 19 13:14:57 2014 UTC (6 years, 1 month ago) by mgorny
Branch: MAIN
Changes since 1.5: +43 -43 lines
Fix multilib dependencies to use safe versions, bug #513718.

(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key EFB4464E!)

1 lu_zero 1.1 # Copyright 1999-2014 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 mgorny 1.6 # $Header: /var/cvsroot/gentoo-x86/media-video/libav/libav-10.9999.ebuild,v 1.5 2014/06/16 22:03:07 mgorny Exp $
4 lu_zero 1.1
5     EAPI=5
6    
7     if [[ ${PV} == *9999 ]] ; then
8     SCM="git-2"
9     EGIT_REPO_URI="git://git.libav.org/libav.git"
10     [[ ${PV%9999} != "" ]] && EGIT_BRANCH="release/${PV%.9999}"
11     fi
12    
13 mgorny 1.4 inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM}
14 lu_zero 1.1
15     DESCRIPTION="Complete solution to record, convert and stream audio and video."
16     HOMEPAGE="http://libav.org/"
17     if [[ ${PV} == *9999 ]] ; then
18     SRC_URI=""
19     elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
20     SRC_URI="http://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
21     else # Official release
22     SRC_URI="http://${PN}.org/releases/${P}.tar.xz"
23     fi
24    
25     SRC_URI+=" test? ( http://dev.gentoo.org/~lu_zero/libav/fate-10.tar.xz )"
26    
27     LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
28     SLOT="0/10"
29     [[ ${PV} == *9999 ]] || KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64
30     ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos
31     ~x64-solaris ~x86-solaris"
32     IUSE="aac alsa amr bindist +bzip2 cdio cpudetection custom-cflags debug doc
33     +encode faac fdk frei0r +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k mp3
34     +network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
35     static-libs test theora threads tools truetype v4l vaapi vdpau vorbis vpx X
36 lu_zero 1.3 wavpack webp x264 xvid +zlib"
37 lu_zero 1.1
38     # String for CPU features in the useflag[:configure_option] form
39     # if :configure_option isn't set, it will use 'useflag' as configure option
40 lu_zero 1.3 CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext altivec avx mmx mmxext neon ssse3 vis avx2"
41 lu_zero 1.1 for i in ${CPU_FEATURES} ; do
42     IUSE+=" ${i%:*}"
43     done
44    
45     RDEPEND="
46     !media-video/ffmpeg:0
47 mgorny 1.6 alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
48     amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
49     bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
50 lu_zero 1.1 cdio? (
51     || (
52 mgorny 1.6 >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}]
53 mgorny 1.4 <dev-libs/libcdio-0.90[-minimal,${MULTILIB_USEDEP}]
54 lu_zero 1.1 )
55     )
56     encode? (
57 mgorny 1.6 aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
58     amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
59     faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
60     fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
61     mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
62 lu_zero 1.1 theora? (
63 mgorny 1.4 >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
64 mgorny 1.6 >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
65 mgorny 1.4 )
66     vorbis? (
67 mgorny 1.6 >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
68     >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
69 lu_zero 1.1 )
70 mgorny 1.6 webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
71     wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
72     x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
73     xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
74 lu_zero 1.1 )
75     frei0r? ( media-plugins/frei0r-plugins )
76 mgorny 1.6 gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
77 lu_zero 1.1 ieee1394? (
78 mgorny 1.6 >=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
79     >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
80 lu_zero 1.1 )
81 mgorny 1.6 jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
82     jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
83     opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
84     pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
85     rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
86 lu_zero 1.1 ssl? (
87 mgorny 1.6 openssl? ( >=dev-libs/openssl-1.0.1h-r2[${MULTILIB_USEDEP}] )
88     !openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
89 lu_zero 1.1 )
90 mgorny 1.6 sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
91     schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
92     speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
93     truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
94     vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
95     vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
96     vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
97 lu_zero 1.1 X? (
98 mgorny 1.6 >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
99     >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
100     >=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
101 lu_zero 1.1 )
102 mgorny 1.6 zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
103 lu_zero 1.1 "
104    
105     DEPEND="${RDEPEND}
106     >=sys-devel/make-3.81
107     doc? ( app-text/texi2html )
108 mgorny 1.6 ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
109 lu_zero 1.1 mmx? ( dev-lang/yasm )
110 mgorny 1.6 rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
111     schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
112     ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
113 lu_zero 1.1 test? ( sys-devel/bc )
114 mgorny 1.6 truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
115 lu_zero 1.1 v4l? ( sys-kernel/linux-headers )
116     "
117    
118 mgorny 1.4 RDEPEND="${RDEPEND}
119     abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
120     !app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
121    
122 lu_zero 1.1 # faac can't be binary distributed
123     # openssl support marked as nonfree
124     # faac and aac are concurent implementations
125     # amr and aac require at least lgpl3
126     # x264 requires gpl2
127     REQUIRED_USE="bindist? ( !faac !openssl !fdk )
128     rtmp? ( network )
129     amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) X? ( gpl ) cdio? ( gpl )
130     test? ( encode zlib )
131     "
132    
133 lu_zero 1.3 # Test on live ebuild are not possible as they require trunk fate
134     RESTRICT="test"
135    
136 mgorny 1.5 MULTILIB_WRAPPED_HEADERS=(
137     /usr/include/libavutil/avconfig.h
138     )
139    
140 lu_zero 1.1 src_prepare() {
141     # if we have snapshot then we need to hardcode the version
142     if [[ ${PV%_p*} != ${PV} ]]; then
143     sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
144     fi
145 mgorny 1.4
146     TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
147     use zlib && TOOLS+=( cws2fws )
148    
149     MAKEOPTS+=" V=1"
150 lu_zero 1.1 }
151    
152 mgorny 1.4 multilib_src_configure() {
153     local myconf=( ${EXTRA_LIBAV_CONF} )
154 lu_zero 1.1 local uses i
155    
156 mgorny 1.4 myconf+=(
157 lu_zero 1.1 $(use_enable gpl)
158     $(use_enable gpl version3)
159     --enable-avfilter
160 mgorny 1.4 )
161 lu_zero 1.1
162     # enabled by default
163     uses="debug doc network zlib"
164     for i in ${uses}; do
165 mgorny 1.4 use ${i} || myconf+=( --disable-${i} )
166 lu_zero 1.1 done
167 mgorny 1.4 use bzip2 || myconf+=( --disable-bzlib )
168     use sdl || myconf+=( --disable-avplay )
169 lu_zero 1.1
170     if use ssl; then
171 mgorny 1.4 use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
172     || myconf+=( --enable-gnutls )
173 lu_zero 1.1 fi
174    
175 mgorny 1.4 use custom-cflags && myconf+=( --disable-optimizations )
176     use cpudetection && myconf+=( --enable-runtime-cpudetect )
177 lu_zero 1.1
178 mgorny 1.4 use vdpau || myconf+=( --disable-vdpau )
179 lu_zero 1.1
180 mgorny 1.4 use vaapi && myconf+=( --enable-vaapi )
181 lu_zero 1.1
182     # Encoders
183     if use encode; then
184 mgorny 1.4 use faac && myconf+=( --enable-nonfree )
185     use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
186     use mp3 && myconf+=( --enable-libmp3lame )
187     use amr && myconf+=( --enable-libvo-amrwbenc )
188     use aac && myconf+=( --enable-libvo-aacenc )
189 lu_zero 1.3 uses="faac theora vorbis wavpack webp x264 xvid"
190 lu_zero 1.1 for i in ${uses}; do
191 mgorny 1.4 use ${i} && myconf+=( --enable-lib${i} )
192 lu_zero 1.1 done
193     else
194 mgorny 1.4 myconf+=( --disable-encoders )
195 lu_zero 1.1 fi
196    
197     # libavdevice options
198 mgorny 1.4 use cdio && myconf+=( --enable-libcdio )
199     use ieee1394 && myconf+=( --enable-libdc1394 )
200     use pulseaudio && myconf+=( --enable-libpulse )
201 lu_zero 1.1
202     # Indevs
203     # v4l1 is gone since linux-headers-2.6.38
204 mgorny 1.4 myconf+=( --disable-indev=v4l )
205     use v4l || myconf+=( --disable-indev=v4l2 )
206 lu_zero 1.1 for i in alsa oss jack; do
207 mgorny 1.4 use ${i} || myconf+=( --disable-indev=${i} )
208 lu_zero 1.1 done
209 mgorny 1.4 use X && myconf+=( --enable-x11grab )
210 lu_zero 1.1 # Outdevs
211     for i in alsa oss ; do
212 mgorny 1.4 use ${i} || myconf+=( --disable-outdev=${i} )
213 lu_zero 1.1 done
214     # libavfilter options
215 mgorny 1.4 multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
216     use truetype && myconf+=( --enable-libfreetype )
217 lu_zero 1.1
218     # Threads; we only support pthread for now
219 mgorny 1.4 use threads && myconf+=( --enable-pthreads )
220 lu_zero 1.1
221     # Decoders
222 mgorny 1.4 use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
223 lu_zero 1.1 uses="gsm opus rtmp schroedinger speex vpx"
224     for i in ${uses}; do
225 mgorny 1.4 use ${i} && myconf+=( --enable-lib${i} )
226 lu_zero 1.1 done
227 mgorny 1.4 use jpeg2k && myconf+=( --enable-libopenjpeg )
228 lu_zero 1.1
229     # CPU features
230     for i in ${CPU_FEATURES}; do
231 mgorny 1.4 use ${i%:*} || myconf+=( --disable-${i#*:} )
232 lu_zero 1.1 done
233    
234     # pass the right -mfpu as extra
235 mgorny 1.4 use neon && myconf+=( --extra-cflags=-mfpu=neon )
236 lu_zero 1.1
237     # disable mmx accelerated code if PIC is required
238     # as the provided asm decidedly is not PIC for x86.
239 mgorny 1.4 if use pic && [[ ${ABI} == x86 ]]; then
240     myconf+=( --disable-mmx --disable-mmxext )
241 lu_zero 1.1 fi
242    
243     # Option to force building pic
244 mgorny 1.4 use pic && myconf+=( --enable-pic )
245 lu_zero 1.1
246     # cross compile support
247     if tc-is-cross-compiler ; then
248 mgorny 1.4 myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
249 lu_zero 1.1 case ${CHOST} in
250     *freebsd*)
251 mgorny 1.4 myconf+=( --target-os=freebsd )
252 lu_zero 1.1 ;;
253     mingw32*)
254 mgorny 1.4 myconf+=( --target-os=mingw32 )
255 lu_zero 1.1 ;;
256     *linux*)
257 mgorny 1.4 myconf+=( --target-os=linux )
258 lu_zero 1.1 ;;
259     esac
260     fi
261    
262     # Misc stuff
263 mgorny 1.4 use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
264 lu_zero 1.1
265     # Specific workarounds for too-few-registers arch...
266 mgorny 1.4 if [[ ${ABI} == x86 ]]; then
267     local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
268 lu_zero 1.1 filter-flags -fforce-addr -momit-leaf-frame-pointer
269     append-flags -fomit-frame-pointer
270     is-flag -O? || append-flags -O2
271     if use debug; then
272     # no need to warn about debug if not using debug flag
273     ewarn ""
274     ewarn "Debug information will be almost useless as the frame pointer is omitted."
275     ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
276     ewarn "difficult to fix. Please have that in mind."
277     ewarn ""
278     fi
279     fi
280    
281 mgorny 1.4 "${S}"/configure \
282 lu_zero 1.1 --prefix="${EPREFIX}"/usr \
283     --libdir="${EPREFIX}"/usr/$(get_libdir) \
284     --shlibdir="${EPREFIX}"/usr/$(get_libdir) \
285     --mandir="${EPREFIX}"/usr/share/man \
286     --enable-shared \
287     --cc="$(tc-getCC)" \
288     --ar="$(tc-getAR)" \
289     --optflags="${CFLAGS}" \
290     --extra-cflags="${CFLAGS}" \
291     $(use_enable static-libs static) \
292 mgorny 1.4 "${myconf[@]}" || die
293 lu_zero 1.1 }
294    
295 mgorny 1.4 multilib_src_compile() {
296 lu_zero 1.1 emake
297    
298     if use tools; then
299     tc-export CC
300    
301 mgorny 1.4 emake ${TOOLS[@]/#/tools/}
302 lu_zero 1.1 fi
303     }
304    
305 mgorny 1.4 multilib_src_install() {
306     emake DESTDIR="${D}" install install-man
307 lu_zero 1.1
308 mgorny 1.4 if use tools; then
309     dobin ${TOOLS[@]/#/tools/}
310     fi
311     }
312 lu_zero 1.1
313 mgorny 1.4 multilib_src_install_all() {
314 lu_zero 1.1 dodoc Changelog README INSTALL
315     dodoc doc/*.txt
316     use doc && dodoc doc/*.html
317     }
318    
319 mgorny 1.4 multilib_src_test() {
320     LD_LIBRARY_PATH="${BUILD_DIR}/libavcore:${BUILD_DIR}/libswscale:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil" \
321 lu_zero 1.1 emake -j1 fate
322     }

  ViewVC Help
Powered by ViewVC 1.1.20