mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
media-video/libav: cleanup vulnerable wrt bug #600706
This commit is contained in:
@@ -1,12 +1,7 @@
|
||||
DIST 0001-x86-Put-COPY3_IF_LT-under-HAVE_6REGS.patch.gz 736 BLAKE2B 04e7b9f1b26e3df50e89e9af4663a2765ca6a71bf52b9f931b2d194366526642cdf15b96b1bba98167c1fe1304da71528b05a4504df6153d0cbf4e3b219c0bb7 SHA512 dbdfdf7fc1d42ebd93b0853e85ba0c07d816035c126a9303e6a5656bb9faeea16f16068d7e4aa67c7c4ade8ca09f64669e67f52d7d0a2a65518fa3897d586311
|
||||
DIST fate-11.tar.xz 691009480 BLAKE2B 01e1e8125d34a623b5bd4bf1da0daee96d045e73fd069cf438f471970ad4cf71df8bd3235306b3493cb547fb5ac4bb8fce416e194fec9a7e9b9de68a5a15d572 SHA512 f9dc152964e3f19cf32d5d4cbc923a2bd05ba3b0f8f3880122df79d32852ee9d4795a0bfd66d7a2925299e9e9533888df6103e212ea3e5cbfe799d17ffa2b433
|
||||
DIST fate-12-r1.tar.xz 763758260 BLAKE2B 299e1a2a773e49c7a51c1222ac34eaea24f77420570a1b0c0b18db5517736656f52ad0a7ca807f65f5e9f9597709265fcd950cf989ad995aa4289ba0e364950e SHA512 084f584c34d34b66c1f4d4742a11376ee2b90f6a07529b5aba6d50421dc8f863fded73dd57ad2c201aadfd529f0f923fa531ea9b41aaaa7b682846ef565a1018
|
||||
DIST fate-12.tar.xz 755165356 BLAKE2B 031cef24bcfae6205cd6546f453cddb17387176ae837086dd38c8c7132ad9b8dee5367be5fb1b8c604b2203a1e2a55f0c3be2a62f825a95a7ace1aceb4593b70 SHA512 f6ffb3b673b01debd71d7c79cd5c3c4d6f6adb975ed0bdb7c791d674efd8a84ac98f7db3943dfbe3756a3f8819ceab2bdf4633c15fefddf0f8e10adfc805c1e1
|
||||
DIST fate-9.tar.xz 467671500 BLAKE2B df4ef8187f257c91b7b6c3c25c2f204c2d4a476cc73cca199ec1c8af2c4641cbb3a314e39ab38f6d8b68c5fe0b91ff1b4b592dec6b518d544806eaeaca003608 SHA512 8e45539f2512ef915b37c857226c0243940259f269b8f99393b9defa3352d7b8c1fcc5078f4f0d40dc0509737f0c915e179cedcc77f71fe5d96b1b956169a202
|
||||
DIST libav-11.3.tar.xz 4858864 BLAKE2B f029581ea013564b69257f0ba71114c489afff3705bfeb9b7dad4a5c95eb64f727ebee4127b1205d1bbca0a2f56e2ebc907d57c25a5abf02ffdaf0b20ae30004 SHA512 f25b9fb7392d5bb4df35937f79beae26bd8f6606f0ad7cdebf16963834eb9b423d882f6a3a44b5120a5d5d853c7c31bb8c3420a427cd2b360f41a48a6d5df284
|
||||
DIST libav-11.4.tar.xz 4860264 BLAKE2B 3e56751b806cdf542bf078e790085bb0599696df0646f7bab5187e7af1b008041952ceadb5e1a10a021202c84eb878a8316993eddb6973d9b22fea042114db65 SHA512 82ffe6aaccb1a19782dfcb0de641c8255531ce34ee5f49f9b8ec7f5a11c81713432aafc3a6b7c4de927eb8141ddea41f28e4e3a1ab715b943774193050fb02e7
|
||||
DIST libav-11.6.tar.xz 4860268 BLAKE2B 52bd7cce7c1bbf7550d8ebfc00b735903bad1aefe0ecff6bfe80eb23deec6702974f63ec4b50d6956a6511f8dbeb9c6ee57b74786e6f8155b958c3c507391c8d SHA512 bff3e22de93e4ab357715ae20e25b6435df52d1868c5164426a693d14fe7f54e47a46c4c62a36fbf27bd204e12f6a29a6f58016c7deaa838915d424b5ce530bd
|
||||
DIST libav-11.7.tar.xz 4861984 BLAKE2B 4191e47808b4e2827594398c33f4cd95c789379c0ec1256a18385d4570139054fbb0549c2ab45f3c20c41d2a5cb861ea439a7e76939ccfa856ea2101fc181f55 SHA512 23c6ffd0efdfa6b22c7863bf440d7469eba03a7990382fe33c8c4c7871edf250641ac536572516225679b0934e5c250ee0e2e91ea093c770a0c4c32b4776e3c5
|
||||
DIST libav-11.8.tar.xz 4865796 BLAKE2B fb0e8f129edee0423252f334b12485d514f9fdfb3d916877d83141e0985ec4efb4de0f5b65d6e3e6d94b835f317a52116b849eec99d023ebb109bdbc2b7a8c5c SHA512 26f9a6bb7312acc08b6785c260220ada3ca2a8db0d0f2bd4621b47082c275fbdb7978457cb423693ba9a61dc4570b05d0dceb5861ff0bcce859c349a6a8f49be
|
||||
DIST libav-12.2.tar.xz 5268804 BLAKE2B e25b3dfe1026b9e69c89cbec2090070088a7004dc03e8cc23da2da03824a627c733c16c67e5fc65ec9f19942d93405d5ba6926de83cae04c497597f55220f004 SHA512 4b37cfb18a6cf6f12eddb5175b1751c093f3a495ae1d1b588884c60157cb260479b1d8fa3a6e3e08c00d7a26422b1e78a750eb35cf7bc763c01790f3567cba03
|
||||
DIST libav-13_pre20171219.tar.xz 5427904 BLAKE2B 074dc5d071aeb656fc14a015c2e3c168aa81d25e2fb08d99e300dc47d7ea28f61500fcfab0b16fa136261a5af27631b7536eb3aefa0e1feb4d615af57f9f5a36 SHA512 0c9b59957f1fbbff8f5b95b02c11014a4efdddf4b7e1b158cd0fda3af8b89bd90d48263ed0239915adfb7abcd7a8b22c278cd5cf1d01822bd22df65cc7f69689
|
||||
|
||||
@@ -1,347 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
: ${EGIT_REPO_URI:="git://git.libav.org/libav.git"}
|
||||
if [[ ${PV%9999} != "" ]] ; then
|
||||
: ${EGIT_BRANCH:="release/${PV%.9999}"}
|
||||
fi
|
||||
inherit git-r3
|
||||
fi
|
||||
|
||||
DESCRIPTION="Complete solution to record, convert and stream audio and video"
|
||||
HOMEPAGE="https://libav.org/"
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
SRC_URI=""
|
||||
elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
|
||||
SRC_URI="https://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
|
||||
else # Official release
|
||||
SRC_URI="https://libav.org/releases/${P}.tar.xz"
|
||||
SRC_URI+=" https://dev.gentoo.org/~lu_zero/libav/patches/0001-x86-Put-COPY3_IF_LT-under-HAVE_6REGS.patch.gz"
|
||||
fi
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && SRC_URI+=" test? ( https://dev.gentoo.org/~lu_zero/libav/fate-${PV%%.*}.tar.xz )"
|
||||
|
||||
LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
|
||||
SLOT="0/11"
|
||||
[[ ${PV} == *9999 ]] || \
|
||||
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"
|
||||
IUSE="aac alsa amr bs2b +bzip2 cdio cpudetection custom-cflags debug doc +encode faac fdk
|
||||
frei0r fontconfig +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k libressl mp3
|
||||
+network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
|
||||
static-libs test theora threads tools truetype twolame v4l vaapi vdpau vorbis vpx X
|
||||
wavpack webp x264 x265 xvid +zlib"
|
||||
|
||||
# String for CPU features in the useflag[:configure_option] form
|
||||
# if :configure_option isn't set, it will use 'useflag' as configure option
|
||||
CPU_FEATURES="altivec armv5te armv6 armv6t2 armvfp:vfp neon"
|
||||
X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext mmx mmxext sse sse2 sse3 ssse3 sse4_1:sse4 sse4_2:sse42 avx xop fma3 fma4 avx2"
|
||||
for i in ${X86_CPU_FEATURES} ; do
|
||||
CPU_FEATURES+=" cpu_flags_x86_${i%:*}:${i#*:}"
|
||||
done
|
||||
for i in ${CPU_FEATURES} ; do
|
||||
IUSE+=" ${i%:*}"
|
||||
done
|
||||
|
||||
RDEPEND="
|
||||
!media-video/ffmpeg:0
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
|
||||
bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
|
||||
cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
|
||||
encode? (
|
||||
aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
|
||||
faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
|
||||
theora? (
|
||||
>=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
|
||||
vorbis? (
|
||||
>=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
|
||||
wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
|
||||
x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
|
||||
ieee1394? (
|
||||
>=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
|
||||
opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
|
||||
rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
|
||||
ssl? (
|
||||
openssl? (
|
||||
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
|
||||
libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
!openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
|
||||
speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=media-libs/fontconfig-2.10[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
|
||||
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
|
||||
vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/make-3.81
|
||||
doc? ( app-text/texi2html )
|
||||
ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
cpu_flags_x86_mmx? ( dev-lang/yasm )
|
||||
rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
test? ( sys-devel/bc )
|
||||
truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
v4l? ( sys-kernel/linux-headers )
|
||||
"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
|
||||
|
||||
# faac can't be binary distributed
|
||||
# openssl support marked as nonfree
|
||||
# faac and aac are concurent implementations
|
||||
# amr and aac require at least lgpl3
|
||||
# x264 requires gpl2
|
||||
REQUIRED_USE="
|
||||
rtmp? ( network )
|
||||
amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) X? ( gpl ) cdio? ( gpl ) x265? ( gpl )
|
||||
test? ( encode zlib )
|
||||
fontconfig? ( truetype )
|
||||
"
|
||||
RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist )"
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
[[ ${PV} == *9999 ]] && git-r3_src_unpack
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && default_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch_user
|
||||
|
||||
epatch "${WORKDIR}/0001-x86-Put-COPY3_IF_LT-under-HAVE_6REGS.patch"
|
||||
epatch "${FILESDIR}"/${P}-libvpx-1.5.0.patch #565696
|
||||
|
||||
# if we have snapshot then we need to hardcode the version
|
||||
if [[ ${PV%_p*} != ${PV} ]]; then
|
||||
sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
|
||||
fi
|
||||
|
||||
TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
|
||||
use zlib && TOOLS+=( cws2fws )
|
||||
|
||||
MAKEOPTS+=" V=1"
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=( ${EXTRA_LIBAV_CONF} )
|
||||
local uses i
|
||||
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && use test && myconf+=( --samples="${WORKDIR}/fate" )
|
||||
|
||||
myconf+=(
|
||||
$(use_enable gpl)
|
||||
$(use_enable gpl version3)
|
||||
--enable-avfilter
|
||||
)
|
||||
|
||||
# enabled by default
|
||||
uses="debug doc network zlib"
|
||||
for i in ${uses}; do
|
||||
use ${i} || myconf+=( --disable-${i} )
|
||||
done
|
||||
use bzip2 || myconf+=( --disable-bzlib )
|
||||
use sdl || myconf+=( --disable-avplay )
|
||||
|
||||
if use ssl; then
|
||||
use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
|
||||
|| myconf+=( --enable-gnutls )
|
||||
fi
|
||||
|
||||
use custom-cflags && myconf+=( --disable-optimizations )
|
||||
use cpudetection && myconf+=( --enable-runtime-cpudetect )
|
||||
|
||||
use vdpau || myconf+=( --disable-vdpau )
|
||||
|
||||
use vaapi && myconf+=( --enable-vaapi )
|
||||
|
||||
# Encoders
|
||||
if use encode; then
|
||||
use faac && myconf+=( --enable-nonfree )
|
||||
use mp3 && myconf+=( --enable-libmp3lame )
|
||||
use amr && myconf+=( --enable-libvo-amrwbenc )
|
||||
use aac && myconf+=( --enable-libvo-aacenc )
|
||||
uses="faac theora twolame vorbis wavpack webp x264 x265 xvid"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
else
|
||||
myconf+=( --disable-encoders )
|
||||
fi
|
||||
|
||||
# libavdevice options
|
||||
use cdio && myconf+=( --enable-libcdio )
|
||||
use ieee1394 && myconf+=( --enable-libdc1394 )
|
||||
use pulseaudio && myconf+=( --enable-libpulse )
|
||||
|
||||
# Indevs
|
||||
# v4l1 is gone since linux-headers-2.6.38
|
||||
myconf+=( --disable-indev=v4l )
|
||||
use v4l || myconf+=( --disable-indev=v4l2 )
|
||||
for i in alsa oss jack; do
|
||||
use ${i} || myconf+=( --disable-indev=${i} )
|
||||
done
|
||||
use X && myconf+=( --enable-x11grab )
|
||||
# Outdevs
|
||||
for i in alsa oss ; do
|
||||
use ${i} || myconf+=( --disable-outdev=${i} )
|
||||
done
|
||||
# libavfilter options
|
||||
use bs2b && myconf+=( --enable-libbs2b )
|
||||
multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
|
||||
use truetype && myconf+=( --enable-libfreetype )
|
||||
use fontconfig && myconf+=( --enable-libfontconfig )
|
||||
|
||||
# Threads; we only support pthread for now
|
||||
use threads && myconf+=( --enable-pthreads )
|
||||
|
||||
# Decoders
|
||||
use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
|
||||
use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
|
||||
uses="gsm opus rtmp schroedinger speex vpx"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
use jpeg2k && myconf+=( --enable-libopenjpeg )
|
||||
|
||||
# CPU features
|
||||
for i in ${CPU_FEATURES}; do
|
||||
use ${i%:*} || myconf+=( --disable-${i#*:} )
|
||||
done
|
||||
|
||||
# pass the right -mfpu as extra
|
||||
use neon && append-cflags -mfpu=neon
|
||||
|
||||
# disable mmx accelerated code if PIC is required
|
||||
# as the provided asm decidedly is not PIC for x86.
|
||||
if use pic && [[ ${ABI} == x86 ]]; then
|
||||
myconf+=( --disable-mmx --disable-mmxext )
|
||||
fi
|
||||
|
||||
# Option to force building pic
|
||||
use pic && myconf+=( --enable-pic )
|
||||
|
||||
# cross compile support
|
||||
if tc-is-cross-compiler ; then
|
||||
myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
|
||||
case ${CHOST} in
|
||||
*freebsd*)
|
||||
myconf+=( --target-os=freebsd )
|
||||
;;
|
||||
mingw32*)
|
||||
myconf+=( --target-os=mingw32 )
|
||||
;;
|
||||
*linux*)
|
||||
myconf+=( --target-os=linux )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Misc stuff
|
||||
use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
|
||||
|
||||
# Specific workarounds for too-few-registers arch...
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
|
||||
filter-flags -fforce-addr -momit-leaf-frame-pointer
|
||||
append-flags -fomit-frame-pointer
|
||||
is-flag -O? || append-flags -O2
|
||||
if use debug; then
|
||||
# no need to warn about debug if not using debug flag
|
||||
ewarn ""
|
||||
ewarn "Debug information will be almost useless as the frame pointer is omitted."
|
||||
ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
|
||||
ewarn "difficult to fix. Please have that in mind."
|
||||
ewarn ""
|
||||
fi
|
||||
fi
|
||||
|
||||
set -- "${S}"/configure \
|
||||
--prefix="${EPREFIX}"/usr \
|
||||
--libdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--shlibdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--mandir="${EPREFIX}"/usr/share/man \
|
||||
--enable-shared \
|
||||
--cc="$(tc-getCC)" \
|
||||
--ar="$(tc-getAR)" \
|
||||
--optflags="${CFLAGS}" \
|
||||
--extra-cflags="${CFLAGS}" \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
echo "${@}"
|
||||
"${@}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake
|
||||
|
||||
if use tools; then
|
||||
tc-export CC
|
||||
|
||||
emake ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" install install-man
|
||||
use doc && dodoc doc/*.html
|
||||
|
||||
if use tools; then
|
||||
dobin ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc Changelog README.md INSTALL
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local _libs="$(for i in lib*/;do echo -n "${BUILD_DIR}/${i%/}:";done)"
|
||||
einfo "LD_LIBRARY_PATH is set to \"${_libs}\""
|
||||
LD_LIBRARY_PATH="${_libs}" emake -k -j1 fate
|
||||
}
|
||||
@@ -1,344 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
: ${EGIT_REPO_URI:="git://git.libav.org/libav.git"}
|
||||
if [[ ${PV%9999} != "" ]] ; then
|
||||
: ${EGIT_BRANCH:="release/${PV%.9999}"}
|
||||
fi
|
||||
inherit git-r3
|
||||
fi
|
||||
|
||||
DESCRIPTION="Complete solution to record, convert and stream audio and video"
|
||||
HOMEPAGE="https://libav.org/"
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
SRC_URI=""
|
||||
elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
|
||||
SRC_URI="https://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
|
||||
else # Official release
|
||||
SRC_URI="https://libav.org/releases/${P}.tar.xz"
|
||||
SRC_URI+=" https://dev.gentoo.org/~lu_zero/libav/patches/0001-x86-Put-COPY3_IF_LT-under-HAVE_6REGS.patch.gz"
|
||||
fi
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && SRC_URI+=" test? ( https://dev.gentoo.org/~lu_zero/libav/fate-${PV%%.*}.tar.xz )"
|
||||
|
||||
LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
|
||||
SLOT="0/11"
|
||||
[[ ${PV} == *9999 ]] || \
|
||||
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"
|
||||
IUSE="aac alsa amr bs2b +bzip2 cdio cpudetection custom-cflags debug doc +encode faac fdk
|
||||
frei0r fontconfig +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k mp3
|
||||
+network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
|
||||
static-libs test theora threads tools truetype twolame v4l vaapi vdpau vorbis vpx X
|
||||
wavpack webp x264 x265 xvid +zlib"
|
||||
|
||||
# String for CPU features in the useflag[:configure_option] form
|
||||
# if :configure_option isn't set, it will use 'useflag' as configure option
|
||||
CPU_FEATURES="altivec armv5te armv6 armv6t2 armvfp:vfp neon"
|
||||
X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext mmx mmxext sse sse2 sse3 ssse3 sse4_1:sse4 sse4_2:sse42 avx xop fma3 fma4 avx2"
|
||||
for i in ${X86_CPU_FEATURES} ; do
|
||||
CPU_FEATURES+=" cpu_flags_x86_${i%:*}:${i#*:}"
|
||||
done
|
||||
for i in ${CPU_FEATURES} ; do
|
||||
IUSE+=" ${i%:*}"
|
||||
done
|
||||
|
||||
RDEPEND="
|
||||
!media-video/ffmpeg:0
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
|
||||
bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
|
||||
cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
|
||||
encode? (
|
||||
aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
|
||||
faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
|
||||
theora? (
|
||||
>=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
|
||||
vorbis? (
|
||||
>=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
|
||||
wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
|
||||
x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
|
||||
ieee1394? (
|
||||
>=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
|
||||
opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
|
||||
rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
|
||||
ssl? (
|
||||
openssl? ( >=dev-libs/openssl-1.0.1h-r2[${MULTILIB_USEDEP}] )
|
||||
!openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
|
||||
speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=media-libs/fontconfig-2.10[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
|
||||
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
|
||||
vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/make-3.81
|
||||
doc? ( app-text/texi2html )
|
||||
ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
cpu_flags_x86_mmx? ( dev-lang/yasm )
|
||||
rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
test? ( sys-devel/bc )
|
||||
truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
v4l? ( sys-kernel/linux-headers )
|
||||
"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
|
||||
|
||||
# faac can't be binary distributed
|
||||
# openssl support marked as nonfree
|
||||
# faac and aac are concurent implementations
|
||||
# amr and aac require at least lgpl3
|
||||
# x264 requires gpl2
|
||||
REQUIRED_USE="
|
||||
rtmp? ( network )
|
||||
amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) X? ( gpl ) cdio? ( gpl ) x265? ( gpl )
|
||||
test? ( encode zlib )
|
||||
fontconfig? ( truetype )
|
||||
"
|
||||
RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist )"
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
[[ ${PV} == *9999 ]] && git-r3_src_unpack
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && default_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch_user
|
||||
|
||||
epatch "${WORKDIR}/0001-x86-Put-COPY3_IF_LT-under-HAVE_6REGS.patch"
|
||||
epatch "${FILESDIR}"/${P}-libvpx-1.5.0.patch #565696
|
||||
|
||||
# if we have snapshot then we need to hardcode the version
|
||||
if [[ ${PV%_p*} != ${PV} ]]; then
|
||||
sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
|
||||
fi
|
||||
|
||||
TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
|
||||
use zlib && TOOLS+=( cws2fws )
|
||||
|
||||
MAKEOPTS+=" V=1"
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=( ${EXTRA_LIBAV_CONF} )
|
||||
local uses i
|
||||
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && use test && myconf+=( --samples="${WORKDIR}/fate" )
|
||||
|
||||
myconf+=(
|
||||
$(use_enable gpl)
|
||||
$(use_enable gpl version3)
|
||||
--enable-avfilter
|
||||
)
|
||||
|
||||
# enabled by default
|
||||
uses="debug doc network zlib"
|
||||
for i in ${uses}; do
|
||||
use ${i} || myconf+=( --disable-${i} )
|
||||
done
|
||||
use bzip2 || myconf+=( --disable-bzlib )
|
||||
use sdl || myconf+=( --disable-avplay )
|
||||
|
||||
if use ssl; then
|
||||
use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
|
||||
|| myconf+=( --enable-gnutls )
|
||||
fi
|
||||
|
||||
use custom-cflags && myconf+=( --disable-optimizations )
|
||||
use cpudetection && myconf+=( --enable-runtime-cpudetect )
|
||||
|
||||
use vdpau || myconf+=( --disable-vdpau )
|
||||
|
||||
use vaapi && myconf+=( --enable-vaapi )
|
||||
|
||||
# Encoders
|
||||
if use encode; then
|
||||
use faac && myconf+=( --enable-nonfree )
|
||||
use mp3 && myconf+=( --enable-libmp3lame )
|
||||
use amr && myconf+=( --enable-libvo-amrwbenc )
|
||||
use aac && myconf+=( --enable-libvo-aacenc )
|
||||
uses="faac theora twolame vorbis wavpack webp x264 x265 xvid"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
else
|
||||
myconf+=( --disable-encoders )
|
||||
fi
|
||||
|
||||
# libavdevice options
|
||||
use cdio && myconf+=( --enable-libcdio )
|
||||
use ieee1394 && myconf+=( --enable-libdc1394 )
|
||||
use pulseaudio && myconf+=( --enable-libpulse )
|
||||
|
||||
# Indevs
|
||||
# v4l1 is gone since linux-headers-2.6.38
|
||||
myconf+=( --disable-indev=v4l )
|
||||
use v4l || myconf+=( --disable-indev=v4l2 )
|
||||
for i in alsa oss jack; do
|
||||
use ${i} || myconf+=( --disable-indev=${i} )
|
||||
done
|
||||
use X && myconf+=( --enable-x11grab )
|
||||
# Outdevs
|
||||
for i in alsa oss ; do
|
||||
use ${i} || myconf+=( --disable-outdev=${i} )
|
||||
done
|
||||
# libavfilter options
|
||||
use bs2b && myconf+=( --enable-libbs2b )
|
||||
multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
|
||||
use truetype && myconf+=( --enable-libfreetype )
|
||||
use fontconfig && myconf+=( --enable-libfontconfig )
|
||||
|
||||
# Threads; we only support pthread for now
|
||||
use threads && myconf+=( --enable-pthreads )
|
||||
|
||||
# Decoders
|
||||
use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
|
||||
use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
|
||||
uses="gsm opus rtmp schroedinger speex vpx"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
use jpeg2k && myconf+=( --enable-libopenjpeg )
|
||||
|
||||
# CPU features
|
||||
for i in ${CPU_FEATURES}; do
|
||||
use ${i%:*} || myconf+=( --disable-${i#*:} )
|
||||
done
|
||||
|
||||
# pass the right -mfpu as extra
|
||||
use neon && append-cflags -mfpu=neon
|
||||
|
||||
# disable mmx accelerated code if PIC is required
|
||||
# as the provided asm decidedly is not PIC for x86.
|
||||
if use pic && [[ ${ABI} == x86 ]]; then
|
||||
myconf+=( --disable-mmx --disable-mmxext )
|
||||
fi
|
||||
|
||||
# Option to force building pic
|
||||
use pic && myconf+=( --enable-pic )
|
||||
|
||||
# cross compile support
|
||||
if tc-is-cross-compiler ; then
|
||||
myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
|
||||
case ${CHOST} in
|
||||
*freebsd*)
|
||||
myconf+=( --target-os=freebsd )
|
||||
;;
|
||||
mingw32*)
|
||||
myconf+=( --target-os=mingw32 )
|
||||
;;
|
||||
*linux*)
|
||||
myconf+=( --target-os=linux )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Misc stuff
|
||||
use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
|
||||
|
||||
# Specific workarounds for too-few-registers arch...
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
|
||||
filter-flags -fforce-addr -momit-leaf-frame-pointer
|
||||
append-flags -fomit-frame-pointer
|
||||
is-flag -O? || append-flags -O2
|
||||
if use debug; then
|
||||
# no need to warn about debug if not using debug flag
|
||||
ewarn ""
|
||||
ewarn "Debug information will be almost useless as the frame pointer is omitted."
|
||||
ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
|
||||
ewarn "difficult to fix. Please have that in mind."
|
||||
ewarn ""
|
||||
fi
|
||||
fi
|
||||
|
||||
set -- "${S}"/configure \
|
||||
--prefix="${EPREFIX}"/usr \
|
||||
--libdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--shlibdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--mandir="${EPREFIX}"/usr/share/man \
|
||||
--enable-shared \
|
||||
--cc="$(tc-getCC)" \
|
||||
--ar="$(tc-getAR)" \
|
||||
--optflags="${CFLAGS}" \
|
||||
--extra-cflags="${CFLAGS}" \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
echo "${@}"
|
||||
"${@}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake
|
||||
|
||||
if use tools; then
|
||||
tc-export CC
|
||||
|
||||
emake ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" install install-man
|
||||
use doc && dodoc doc/*.html
|
||||
|
||||
if use tools; then
|
||||
dobin ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc Changelog README.md INSTALL
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local _libs="$(for i in lib*/;do echo -n "${BUILD_DIR}/${i%/}:";done)"
|
||||
einfo "LD_LIBRARY_PATH is set to \"${_libs}\""
|
||||
LD_LIBRARY_PATH="${_libs}" emake -k -j1 fate
|
||||
}
|
||||
@@ -1,346 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
: ${EGIT_REPO_URI:="git://git.libav.org/libav.git"}
|
||||
if [[ ${PV%9999} != "" ]] ; then
|
||||
: ${EGIT_BRANCH:="release/${PV%.9999}"}
|
||||
fi
|
||||
inherit git-r3
|
||||
fi
|
||||
|
||||
DESCRIPTION="Complete solution to record, convert and stream audio and video"
|
||||
HOMEPAGE="https://libav.org/"
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
SRC_URI=""
|
||||
elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
|
||||
SRC_URI="https://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
|
||||
else # Official release
|
||||
SRC_URI="https://libav.org/releases/${P}.tar.xz"
|
||||
fi
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && SRC_URI+=" test? ( https://dev.gentoo.org/~lu_zero/libav/fate-${PV%%.*}.tar.xz )"
|
||||
|
||||
LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
|
||||
SLOT="0/11"
|
||||
[[ ${PV} == *9999 ]] || \
|
||||
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"
|
||||
IUSE="aac alsa amr bs2b +bzip2 cdio cpudetection custom-cflags debug doc +encode faac fdk
|
||||
frei0r fontconfig +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k libressl mp3
|
||||
+network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
|
||||
static-libs test theora threads tools truetype twolame v4l vaapi vdpau vorbis vpx X
|
||||
wavpack webp x264 x265 xvid +zlib"
|
||||
|
||||
# String for CPU features in the useflag[:configure_option] form
|
||||
# if :configure_option isn't set, it will use 'useflag' as configure option
|
||||
CPU_FEATURES="altivec armv5te armv6 armv6t2 armvfp:vfp neon"
|
||||
X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext mmx mmxext sse sse2 sse3 ssse3 sse4_1:sse4 sse4_2:sse42 avx xop fma3 fma4 avx2"
|
||||
for i in ${X86_CPU_FEATURES} ; do
|
||||
CPU_FEATURES+=" cpu_flags_x86_${i%:*}:${i#*:}"
|
||||
done
|
||||
for i in ${CPU_FEATURES} ; do
|
||||
IUSE+=" ${i%:*}"
|
||||
done
|
||||
|
||||
RDEPEND="
|
||||
!media-video/ffmpeg:0
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
|
||||
bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
|
||||
cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
|
||||
encode? (
|
||||
aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
|
||||
faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
|
||||
theora? (
|
||||
>=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
|
||||
vorbis? (
|
||||
>=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
|
||||
wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
|
||||
x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
|
||||
ieee1394? (
|
||||
>=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
|
||||
opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
|
||||
rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
|
||||
ssl? (
|
||||
openssl? (
|
||||
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
|
||||
libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
!openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
|
||||
speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=media-libs/fontconfig-2.10[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
|
||||
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
|
||||
vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/make-3.81
|
||||
doc? ( app-text/texi2html )
|
||||
ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
cpu_flags_x86_mmx? ( dev-lang/yasm )
|
||||
rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
test? ( sys-devel/bc )
|
||||
truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
v4l? ( sys-kernel/linux-headers )
|
||||
"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
|
||||
|
||||
# faac can't be binary distributed
|
||||
# openssl support marked as nonfree
|
||||
# faac and aac are concurent implementations
|
||||
# amr and aac require at least lgpl3
|
||||
# x264 requires gpl2
|
||||
REQUIRED_USE="
|
||||
rtmp? ( network )
|
||||
amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) X? ( gpl ) cdio? ( gpl ) x265? ( gpl )
|
||||
test? ( encode zlib )
|
||||
fontconfig? ( truetype )
|
||||
"
|
||||
RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist )"
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
[[ ${PV} == *9999 ]] && git-r3_src_unpack
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && default_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch_user
|
||||
|
||||
epatch "${FILESDIR}"/libav-11.3-libvpx-1.5.0.patch #565696
|
||||
|
||||
# if we have snapshot then we need to hardcode the version
|
||||
if [[ ${PV%_p*} != ${PV} ]]; then
|
||||
sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
|
||||
fi
|
||||
|
||||
TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
|
||||
use zlib && TOOLS+=( cws2fws )
|
||||
|
||||
MAKEOPTS+=" V=1"
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=( ${EXTRA_LIBAV_CONF} )
|
||||
local uses i
|
||||
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && use test && myconf+=( --samples="${WORKDIR}/fate" )
|
||||
|
||||
myconf+=(
|
||||
$(use_enable gpl)
|
||||
$(use_enable gpl version3)
|
||||
# It is a security concern and removed in the next version
|
||||
--disable-protocol=concat
|
||||
)
|
||||
|
||||
# enabled by default
|
||||
uses="debug doc network zlib"
|
||||
for i in ${uses}; do
|
||||
use ${i} || myconf+=( --disable-${i} )
|
||||
done
|
||||
use bzip2 || myconf+=( --disable-bzlib )
|
||||
use sdl || myconf+=( --disable-avplay )
|
||||
|
||||
if use ssl; then
|
||||
use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
|
||||
|| myconf+=( --enable-gnutls )
|
||||
fi
|
||||
|
||||
use custom-cflags && myconf+=( --disable-optimizations )
|
||||
use cpudetection && myconf+=( --enable-runtime-cpudetect )
|
||||
|
||||
use vdpau || myconf+=( --disable-vdpau )
|
||||
|
||||
use vaapi && myconf+=( --enable-vaapi )
|
||||
|
||||
# Encoders
|
||||
if use encode; then
|
||||
use faac && myconf+=( --enable-nonfree )
|
||||
use mp3 && myconf+=( --enable-libmp3lame )
|
||||
use amr && myconf+=( --enable-libvo-amrwbenc )
|
||||
use aac && myconf+=( --enable-libvo-aacenc )
|
||||
uses="faac theora twolame vorbis wavpack webp x264 x265 xvid"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
else
|
||||
myconf+=( --disable-encoders )
|
||||
fi
|
||||
|
||||
# libavdevice options
|
||||
use cdio && myconf+=( --enable-libcdio )
|
||||
use ieee1394 && myconf+=( --enable-libdc1394 )
|
||||
use pulseaudio && myconf+=( --enable-libpulse )
|
||||
|
||||
# Indevs
|
||||
# v4l1 is gone since linux-headers-2.6.38
|
||||
myconf+=( --disable-indev=v4l )
|
||||
use v4l || myconf+=( --disable-indev=v4l2 )
|
||||
for i in alsa oss jack; do
|
||||
use ${i} || myconf+=( --disable-indev=${i} )
|
||||
done
|
||||
use X && myconf+=( --enable-x11grab )
|
||||
# Outdevs
|
||||
for i in alsa oss ; do
|
||||
use ${i} || myconf+=( --disable-outdev=${i} )
|
||||
done
|
||||
# libavfilter options
|
||||
use bs2b && myconf+=( --enable-libbs2b )
|
||||
multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
|
||||
use truetype && myconf+=( --enable-libfreetype )
|
||||
use fontconfig && myconf+=( --enable-libfontconfig )
|
||||
|
||||
# Threads; we only support pthread for now
|
||||
use threads && myconf+=( --enable-pthreads )
|
||||
|
||||
# Decoders
|
||||
use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
|
||||
use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
|
||||
uses="gsm opus rtmp schroedinger speex vpx"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
use jpeg2k && myconf+=( --enable-libopenjpeg )
|
||||
|
||||
# CPU features
|
||||
for i in ${CPU_FEATURES}; do
|
||||
use ${i%:*} || myconf+=( --disable-${i#*:} )
|
||||
done
|
||||
|
||||
# pass the right -mfpu as extra
|
||||
use neon && append-cflags -mfpu=neon
|
||||
|
||||
# disable mmx accelerated code if PIC is required
|
||||
# as the provided asm decidedly is not PIC for x86.
|
||||
if use pic && [[ ${ABI} == x86 ]]; then
|
||||
myconf+=( --disable-mmx --disable-mmxext )
|
||||
fi
|
||||
|
||||
# Option to force building pic
|
||||
use pic && myconf+=( --enable-pic )
|
||||
|
||||
# cross compile support
|
||||
if tc-is-cross-compiler ; then
|
||||
myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
|
||||
case ${CHOST} in
|
||||
*freebsd*)
|
||||
myconf+=( --target-os=freebsd )
|
||||
;;
|
||||
mingw32*)
|
||||
myconf+=( --target-os=mingw32 )
|
||||
;;
|
||||
*linux*)
|
||||
myconf+=( --target-os=linux )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Misc stuff
|
||||
use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
|
||||
|
||||
# Specific workarounds for too-few-registers arch...
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
|
||||
filter-flags -fforce-addr -momit-leaf-frame-pointer
|
||||
append-flags -fomit-frame-pointer
|
||||
is-flag -O? || append-flags -O2
|
||||
if use debug; then
|
||||
# no need to warn about debug if not using debug flag
|
||||
ewarn ""
|
||||
ewarn "Debug information will be almost useless as the frame pointer is omitted."
|
||||
ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
|
||||
ewarn "difficult to fix. Please have that in mind."
|
||||
ewarn ""
|
||||
fi
|
||||
fi
|
||||
|
||||
set -- "${S}"/configure \
|
||||
--prefix="${EPREFIX}"/usr \
|
||||
--libdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--shlibdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--mandir="${EPREFIX}"/usr/share/man \
|
||||
--enable-shared \
|
||||
--cc="$(tc-getCC)" \
|
||||
--ar="$(tc-getAR)" \
|
||||
--optflags="${CFLAGS}" \
|
||||
--extra-cflags="${CFLAGS}" \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
echo "${@}"
|
||||
"${@}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake
|
||||
|
||||
if use tools; then
|
||||
tc-export CC
|
||||
|
||||
emake ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" install install-man
|
||||
use doc && dodoc doc/*.html
|
||||
|
||||
if use tools; then
|
||||
dobin ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc Changelog README.md INSTALL
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local _libs="$(for i in lib*/;do echo -n "${BUILD_DIR}/${i%/}:";done)"
|
||||
einfo "LD_LIBRARY_PATH is set to \"${_libs}\""
|
||||
LD_LIBRARY_PATH="${_libs}" emake -k -j1 fate
|
||||
}
|
||||
@@ -1,346 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
: ${EGIT_REPO_URI:="git://git.libav.org/libav.git"}
|
||||
if [[ ${PV%9999} != "" ]] ; then
|
||||
: ${EGIT_BRANCH:="release/${PV%.9999}"}
|
||||
fi
|
||||
inherit git-r3
|
||||
fi
|
||||
|
||||
DESCRIPTION="Complete solution to record, convert and stream audio and video"
|
||||
HOMEPAGE="https://libav.org/"
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
SRC_URI=""
|
||||
elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
|
||||
SRC_URI="https://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
|
||||
else # Official release
|
||||
SRC_URI="https://libav.org/releases/${P}.tar.xz"
|
||||
fi
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && SRC_URI+=" test? ( https://dev.gentoo.org/~lu_zero/libav/fate-${PV%%.*}.tar.xz )"
|
||||
|
||||
LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
|
||||
SLOT="0/11"
|
||||
[[ ${PV} == *9999 ]] || \
|
||||
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"
|
||||
IUSE="aac alsa amr bs2b +bzip2 cdio cpudetection custom-cflags debug doc +encode faac fdk
|
||||
frei0r fontconfig +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k libressl mp3
|
||||
+network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
|
||||
static-libs test theora threads tools truetype twolame v4l vaapi vdpau vorbis vpx X
|
||||
wavpack webp x264 x265 xvid +zlib"
|
||||
|
||||
# String for CPU features in the useflag[:configure_option] form
|
||||
# if :configure_option isn't set, it will use 'useflag' as configure option
|
||||
CPU_FEATURES="altivec armv5te armv6 armv6t2 armvfp:vfp neon"
|
||||
X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext mmx mmxext sse sse2 sse3 ssse3 sse4_1:sse4 sse4_2:sse42 avx xop fma3 fma4 avx2"
|
||||
for i in ${X86_CPU_FEATURES} ; do
|
||||
CPU_FEATURES+=" cpu_flags_x86_${i%:*}:${i#*:}"
|
||||
done
|
||||
for i in ${CPU_FEATURES} ; do
|
||||
IUSE+=" ${i%:*}"
|
||||
done
|
||||
|
||||
RDEPEND="
|
||||
!media-video/ffmpeg:0
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
|
||||
bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
|
||||
cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
|
||||
encode? (
|
||||
aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
|
||||
faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
|
||||
theora? (
|
||||
>=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
|
||||
vorbis? (
|
||||
>=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
|
||||
wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
|
||||
x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
|
||||
ieee1394? (
|
||||
>=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
|
||||
opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
|
||||
rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
|
||||
ssl? (
|
||||
openssl? (
|
||||
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
|
||||
libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
!openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
|
||||
speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=media-libs/fontconfig-2.10[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
|
||||
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
|
||||
vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/make-3.81
|
||||
doc? ( app-text/texi2html )
|
||||
ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
cpu_flags_x86_mmx? ( dev-lang/yasm )
|
||||
rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
test? ( sys-devel/bc )
|
||||
truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
v4l? ( sys-kernel/linux-headers )
|
||||
"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
|
||||
|
||||
# faac can't be binary distributed
|
||||
# openssl support marked as nonfree
|
||||
# faac and aac are concurent implementations
|
||||
# amr and aac require at least lgpl3
|
||||
# x264 requires gpl2
|
||||
REQUIRED_USE="
|
||||
rtmp? ( network )
|
||||
amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) X? ( gpl ) cdio? ( gpl ) x265? ( gpl )
|
||||
test? ( encode zlib )
|
||||
fontconfig? ( truetype )
|
||||
"
|
||||
RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist )"
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
[[ ${PV} == *9999 ]] && git-r3_src_unpack
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && default_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch_user
|
||||
|
||||
epatch "${FILESDIR}"/libav-11.3-libvpx-1.5.0.patch #565696
|
||||
|
||||
# if we have snapshot then we need to hardcode the version
|
||||
if [[ ${PV%_p*} != ${PV} ]]; then
|
||||
sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
|
||||
fi
|
||||
|
||||
TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
|
||||
use zlib && TOOLS+=( cws2fws )
|
||||
|
||||
MAKEOPTS+=" V=1"
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=( ${EXTRA_LIBAV_CONF} )
|
||||
local uses i
|
||||
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && use test && myconf+=( --samples="${WORKDIR}/fate" )
|
||||
|
||||
myconf+=(
|
||||
$(use_enable gpl)
|
||||
$(use_enable gpl version3)
|
||||
# It is a security concern and removed in the next version
|
||||
--disable-protocol=concat
|
||||
)
|
||||
|
||||
# enabled by default
|
||||
uses="debug doc network zlib"
|
||||
for i in ${uses}; do
|
||||
use ${i} || myconf+=( --disable-${i} )
|
||||
done
|
||||
use bzip2 || myconf+=( --disable-bzlib )
|
||||
use sdl || myconf+=( --disable-avplay )
|
||||
|
||||
if use ssl; then
|
||||
use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
|
||||
|| myconf+=( --enable-gnutls )
|
||||
fi
|
||||
|
||||
use custom-cflags && myconf+=( --disable-optimizations )
|
||||
use cpudetection && myconf+=( --enable-runtime-cpudetect )
|
||||
|
||||
use vdpau || myconf+=( --disable-vdpau )
|
||||
|
||||
use vaapi && myconf+=( --enable-vaapi )
|
||||
|
||||
# Encoders
|
||||
if use encode; then
|
||||
use faac && myconf+=( --enable-nonfree )
|
||||
use mp3 && myconf+=( --enable-libmp3lame )
|
||||
use amr && myconf+=( --enable-libvo-amrwbenc )
|
||||
use aac && myconf+=( --enable-libvo-aacenc )
|
||||
uses="faac theora twolame vorbis wavpack webp x264 x265 xvid"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
else
|
||||
myconf+=( --disable-encoders )
|
||||
fi
|
||||
|
||||
# libavdevice options
|
||||
use cdio && myconf+=( --enable-libcdio )
|
||||
use ieee1394 && myconf+=( --enable-libdc1394 )
|
||||
use pulseaudio && myconf+=( --enable-libpulse )
|
||||
|
||||
# Indevs
|
||||
# v4l1 is gone since linux-headers-2.6.38
|
||||
myconf+=( --disable-indev=v4l )
|
||||
use v4l || myconf+=( --disable-indev=v4l2 )
|
||||
for i in alsa oss jack; do
|
||||
use ${i} || myconf+=( --disable-indev=${i} )
|
||||
done
|
||||
use X && myconf+=( --enable-x11grab )
|
||||
# Outdevs
|
||||
for i in alsa oss ; do
|
||||
use ${i} || myconf+=( --disable-outdev=${i} )
|
||||
done
|
||||
# libavfilter options
|
||||
use bs2b && myconf+=( --enable-libbs2b )
|
||||
multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
|
||||
use truetype && myconf+=( --enable-libfreetype )
|
||||
use fontconfig && myconf+=( --enable-libfontconfig )
|
||||
|
||||
# Threads; we only support pthread for now
|
||||
use threads && myconf+=( --enable-pthreads )
|
||||
|
||||
# Decoders
|
||||
use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
|
||||
use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
|
||||
uses="gsm opus rtmp schroedinger speex vpx"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
use jpeg2k && myconf+=( --enable-libopenjpeg )
|
||||
|
||||
# CPU features
|
||||
for i in ${CPU_FEATURES}; do
|
||||
use ${i%:*} || myconf+=( --disable-${i#*:} )
|
||||
done
|
||||
|
||||
# pass the right -mfpu as extra
|
||||
use neon && append-cflags -mfpu=neon
|
||||
|
||||
# disable mmx accelerated code if PIC is required
|
||||
# as the provided asm decidedly is not PIC for x86.
|
||||
if use pic && [[ ${ABI} == x86 ]]; then
|
||||
myconf+=( --disable-mmx --disable-mmxext )
|
||||
fi
|
||||
|
||||
# Option to force building pic
|
||||
use pic && myconf+=( --enable-pic )
|
||||
|
||||
# cross compile support
|
||||
if tc-is-cross-compiler ; then
|
||||
myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
|
||||
case ${CHOST} in
|
||||
*freebsd*)
|
||||
myconf+=( --target-os=freebsd )
|
||||
;;
|
||||
mingw32*)
|
||||
myconf+=( --target-os=mingw32 )
|
||||
;;
|
||||
*linux*)
|
||||
myconf+=( --target-os=linux )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Misc stuff
|
||||
use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
|
||||
|
||||
# Specific workarounds for too-few-registers arch...
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
|
||||
filter-flags -fforce-addr -momit-leaf-frame-pointer
|
||||
append-flags -fomit-frame-pointer
|
||||
is-flag -O? || append-flags -O2
|
||||
if use debug; then
|
||||
# no need to warn about debug if not using debug flag
|
||||
ewarn ""
|
||||
ewarn "Debug information will be almost useless as the frame pointer is omitted."
|
||||
ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
|
||||
ewarn "difficult to fix. Please have that in mind."
|
||||
ewarn ""
|
||||
fi
|
||||
fi
|
||||
|
||||
set -- "${S}"/configure \
|
||||
--prefix="${EPREFIX}"/usr \
|
||||
--libdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--shlibdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--mandir="${EPREFIX}"/usr/share/man \
|
||||
--enable-shared \
|
||||
--cc="$(tc-getCC)" \
|
||||
--ar="$(tc-getAR)" \
|
||||
--optflags="${CFLAGS}" \
|
||||
--extra-cflags="${CFLAGS}" \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
echo "${@}"
|
||||
"${@}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake
|
||||
|
||||
if use tools; then
|
||||
tc-export CC
|
||||
|
||||
emake ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" install install-man
|
||||
use doc && dodoc doc/*.html
|
||||
|
||||
if use tools; then
|
||||
dobin ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc Changelog README.md INSTALL
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local _libs="$(for i in lib*/;do echo -n "${BUILD_DIR}/${i%/}:";done)"
|
||||
einfo "LD_LIBRARY_PATH is set to \"${_libs}\""
|
||||
LD_LIBRARY_PATH="${_libs}" emake -k -j1 fate
|
||||
}
|
||||
@@ -1,346 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
: ${EGIT_REPO_URI:="git://git.libav.org/libav.git"}
|
||||
if [[ ${PV%9999} != "" ]] ; then
|
||||
: ${EGIT_BRANCH:="release/${PV%.9999}"}
|
||||
fi
|
||||
inherit git-r3
|
||||
fi
|
||||
|
||||
DESCRIPTION="Complete solution to record, convert and stream audio and video"
|
||||
HOMEPAGE="https://libav.org/"
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
SRC_URI=""
|
||||
elif [[ ${PV%_p*} != ${PV} ]] ; then # Gentoo snapshot
|
||||
SRC_URI="https://dev.gentoo.org/~lu_zero/libav/${P}.tar.xz"
|
||||
else # Official release
|
||||
SRC_URI="https://libav.org/releases/${P}.tar.xz"
|
||||
fi
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && SRC_URI+=" test? ( https://dev.gentoo.org/~lu_zero/libav/fate-${PV%%.*}.tar.xz )"
|
||||
|
||||
LICENSE="LGPL-2.1 gpl? ( GPL-3 )"
|
||||
SLOT="0/11"
|
||||
[[ ${PV} == *9999 ]] || \
|
||||
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"
|
||||
IUSE="aac alsa amr bs2b +bzip2 cdio cpudetection custom-cflags debug doc +encode faac fdk
|
||||
frei0r fontconfig +gpl gsm +hardcoded-tables ieee1394 jack jpeg2k libressl mp3
|
||||
+network openssl opus oss pic pulseaudio rtmp schroedinger sdl speex ssl
|
||||
static-libs test theora threads tools truetype twolame v4l vaapi vdpau vorbis vpx X
|
||||
wavpack webp x264 x265 xvid +zlib"
|
||||
|
||||
# String for CPU features in the useflag[:configure_option] form
|
||||
# if :configure_option isn't set, it will use 'useflag' as configure option
|
||||
CPU_FEATURES="altivec armv5te armv6 armv6t2 armvfp:vfp neon"
|
||||
X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext mmx mmxext sse sse2 sse3 ssse3 sse4_1:sse4 sse4_2:sse42 avx xop fma3 fma4 avx2"
|
||||
for i in ${X86_CPU_FEATURES} ; do
|
||||
CPU_FEATURES+=" cpu_flags_x86_${i%:*}:${i#*:}"
|
||||
done
|
||||
for i in ${CPU_FEATURES} ; do
|
||||
IUSE+=" ${i%:*}"
|
||||
done
|
||||
|
||||
RDEPEND="
|
||||
!media-video/ffmpeg:0
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
|
||||
bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
|
||||
cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
|
||||
encode? (
|
||||
aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
|
||||
faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
|
||||
theora? (
|
||||
>=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
|
||||
vorbis? (
|
||||
>=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
|
||||
wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
|
||||
x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
fdk? ( >=media-libs/fdk-aac-0.1.2[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
|
||||
ieee1394? (
|
||||
>=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
|
||||
opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
|
||||
rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
|
||||
ssl? (
|
||||
openssl? (
|
||||
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
|
||||
libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
!openssl? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
|
||||
speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=media-libs/fontconfig-2.10[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
|
||||
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
|
||||
vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/make-3.81
|
||||
doc? ( app-text/texi2html )
|
||||
ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
cpu_flags_x86_mmx? ( dev-lang/yasm )
|
||||
rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ssl? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
test? ( sys-devel/bc )
|
||||
truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
v4l? ( sys-kernel/linux-headers )
|
||||
"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
|
||||
|
||||
# faac can't be binary distributed
|
||||
# openssl support marked as nonfree
|
||||
# faac and aac are concurent implementations
|
||||
# amr and aac require at least lgpl3
|
||||
# x264 requires gpl2
|
||||
REQUIRED_USE="
|
||||
rtmp? ( network )
|
||||
amr? ( gpl ) aac? ( gpl ) x264? ( gpl ) X? ( gpl ) cdio? ( gpl ) x265? ( gpl )
|
||||
test? ( encode zlib )
|
||||
fontconfig? ( truetype )
|
||||
"
|
||||
RESTRICT="faac? ( bindist ) fdk? ( bindist ) openssl? ( bindist )"
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
[[ ${PV} == *9999 ]] && git-r3_src_unpack
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && default_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch_user
|
||||
|
||||
epatch "${FILESDIR}"/libav-11.3-libvpx-1.5.0.patch #565696
|
||||
|
||||
# if we have snapshot then we need to hardcode the version
|
||||
if [[ ${PV%_p*} != ${PV} ]]; then
|
||||
sed -i -e "s/UNKNOWN/DATE-${PV#*_pre}/" "${S}/version.sh" || die
|
||||
fi
|
||||
|
||||
TOOLS=( aviocat graph2dot ismindex pktdumper qt-faststart trasher )
|
||||
use zlib && TOOLS+=( cws2fws )
|
||||
|
||||
MAKEOPTS+=" V=1"
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=( ${EXTRA_LIBAV_CONF} )
|
||||
local uses i
|
||||
|
||||
# 9999 does not have fate-*.tar.xz
|
||||
[[ ${PV%9999} != "" ]] && use test && myconf+=( --samples="${WORKDIR}/fate" )
|
||||
|
||||
myconf+=(
|
||||
$(use_enable gpl)
|
||||
$(use_enable gpl version3)
|
||||
# It is a security concern and removed in the next version
|
||||
--disable-protocol=concat
|
||||
)
|
||||
|
||||
# enabled by default
|
||||
uses="debug doc network zlib"
|
||||
for i in ${uses}; do
|
||||
use ${i} || myconf+=( --disable-${i} )
|
||||
done
|
||||
use bzip2 || myconf+=( --disable-bzlib )
|
||||
use sdl || myconf+=( --disable-avplay )
|
||||
|
||||
if use ssl; then
|
||||
use openssl && myconf+=( --enable-openssl --enable-nonfree ) \
|
||||
|| myconf+=( --enable-gnutls )
|
||||
fi
|
||||
|
||||
use custom-cflags && myconf+=( --disable-optimizations )
|
||||
use cpudetection && myconf+=( --enable-runtime-cpudetect )
|
||||
|
||||
use vdpau || myconf+=( --disable-vdpau )
|
||||
|
||||
use vaapi && myconf+=( --enable-vaapi )
|
||||
|
||||
# Encoders
|
||||
if use encode; then
|
||||
use faac && myconf+=( --enable-nonfree )
|
||||
use mp3 && myconf+=( --enable-libmp3lame )
|
||||
use amr && myconf+=( --enable-libvo-amrwbenc )
|
||||
use aac && myconf+=( --enable-libvo-aacenc )
|
||||
uses="faac theora twolame vorbis wavpack webp x264 x265 xvid"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
else
|
||||
myconf+=( --disable-encoders )
|
||||
fi
|
||||
|
||||
# libavdevice options
|
||||
use cdio && myconf+=( --enable-libcdio )
|
||||
use ieee1394 && myconf+=( --enable-libdc1394 )
|
||||
use pulseaudio && myconf+=( --enable-libpulse )
|
||||
|
||||
# Indevs
|
||||
# v4l1 is gone since linux-headers-2.6.38
|
||||
myconf+=( --disable-indev=v4l )
|
||||
use v4l || myconf+=( --disable-indev=v4l2 )
|
||||
for i in alsa oss jack; do
|
||||
use ${i} || myconf+=( --disable-indev=${i} )
|
||||
done
|
||||
use X && myconf+=( --enable-x11grab )
|
||||
# Outdevs
|
||||
for i in alsa oss ; do
|
||||
use ${i} || myconf+=( --disable-outdev=${i} )
|
||||
done
|
||||
# libavfilter options
|
||||
use bs2b && myconf+=( --enable-libbs2b )
|
||||
multilib_is_native_abi && use frei0r && myconf+=( --enable-frei0r )
|
||||
use truetype && myconf+=( --enable-libfreetype )
|
||||
use fontconfig && myconf+=( --enable-libfontconfig )
|
||||
|
||||
# Threads; we only support pthread for now
|
||||
use threads && myconf+=( --enable-pthreads )
|
||||
|
||||
# Decoders
|
||||
use amr && myconf+=( --enable-libopencore-amrwb --enable-libopencore-amrnb )
|
||||
use fdk && myconf+=( --enable-nonfree --enable-libfdk-aac )
|
||||
uses="gsm opus rtmp schroedinger speex vpx"
|
||||
for i in ${uses}; do
|
||||
use ${i} && myconf+=( --enable-lib${i} )
|
||||
done
|
||||
use jpeg2k && myconf+=( --enable-libopenjpeg )
|
||||
|
||||
# CPU features
|
||||
for i in ${CPU_FEATURES}; do
|
||||
use ${i%:*} || myconf+=( --disable-${i#*:} )
|
||||
done
|
||||
|
||||
# pass the right -mfpu as extra
|
||||
use neon && append-cflags -mfpu=neon
|
||||
|
||||
# disable mmx accelerated code if PIC is required
|
||||
# as the provided asm decidedly is not PIC for x86.
|
||||
if use pic && [[ ${ABI} == x86 ]]; then
|
||||
myconf+=( --disable-mmx --disable-mmxext )
|
||||
fi
|
||||
|
||||
# Option to force building pic
|
||||
use pic && myconf+=( --enable-pic )
|
||||
|
||||
# cross compile support
|
||||
if tc-is-cross-compiler ; then
|
||||
myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
|
||||
case ${CHOST} in
|
||||
*freebsd*)
|
||||
myconf+=( --target-os=freebsd )
|
||||
;;
|
||||
mingw32*)
|
||||
myconf+=( --target-os=mingw32 )
|
||||
;;
|
||||
*linux*)
|
||||
myconf+=( --target-os=linux )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Misc stuff
|
||||
use hardcoded-tables && myconf+=( --enable-hardcoded-tables )
|
||||
|
||||
# Specific workarounds for too-few-registers arch...
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
|
||||
filter-flags -fforce-addr -momit-leaf-frame-pointer
|
||||
append-flags -fomit-frame-pointer
|
||||
is-flag -O? || append-flags -O2
|
||||
if use debug; then
|
||||
# no need to warn about debug if not using debug flag
|
||||
ewarn ""
|
||||
ewarn "Debug information will be almost useless as the frame pointer is omitted."
|
||||
ewarn "This makes debugging harder, so crashes that has no fixed behavior are"
|
||||
ewarn "difficult to fix. Please have that in mind."
|
||||
ewarn ""
|
||||
fi
|
||||
fi
|
||||
|
||||
set -- "${S}"/configure \
|
||||
--prefix="${EPREFIX}"/usr \
|
||||
--libdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--shlibdir="${EPREFIX}"/usr/$(get_libdir) \
|
||||
--mandir="${EPREFIX}"/usr/share/man \
|
||||
--enable-shared \
|
||||
--cc="$(tc-getCC)" \
|
||||
--ar="$(tc-getAR)" \
|
||||
--optflags="${CFLAGS}" \
|
||||
--extra-cflags="${CFLAGS}" \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
echo "${@}"
|
||||
"${@}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake
|
||||
|
||||
if use tools; then
|
||||
tc-export CC
|
||||
|
||||
emake ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" install install-man
|
||||
use doc && dodoc doc/*.html
|
||||
|
||||
if use tools; then
|
||||
dobin ${TOOLS[@]/#/tools/}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc Changelog README.md INSTALL
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local _libs="$(for i in lib*/;do echo -n "${BUILD_DIR}/${i%/}:";done)"
|
||||
einfo "LD_LIBRARY_PATH is set to \"${_libs}\""
|
||||
LD_LIBRARY_PATH="${_libs}" emake -k -j1 fate
|
||||
}
|
||||
Reference in New Issue
Block a user