Skip to content

Commit

Permalink
media-video/libav: Add version 11.7
Browse files Browse the repository at this point in the history
Security fixes as usual.

Package-Manager: portage-2.2.26
  • Loading branch information
lu-zero committed May 29, 2016
1 parent 933d591 commit 683277d
Show file tree
Hide file tree
Showing 2 changed files with 348 additions and 0 deletions.
1 change: 1 addition & 0 deletions media-video/libav/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ DIST fate-9.tar.xz 467671500 SHA256 27d10fd49267452ac787c3f43501a4a21d0ccaccc5dd
DIST libav-11.3.tar.xz 4858864 SHA256 12ae6c051967765ae5faeddf94c4584129ac0b18edb884afffc5fcedcdb5e030 SHA512 f25b9fb7392d5bb4df35937f79beae26bd8f6606f0ad7cdebf16963834eb9b423d882f6a3a44b5120a5d5d853c7c31bb8c3420a427cd2b360f41a48a6d5df284 WHIRLPOOL 721c4cbe7ee3f7307d24c0e4f1cc1f8ab8b0ccd50ddf88b77ecf1cae05f06fc80d7527e9f7a0a098a6d95d0e7fed50082aaffa07935eab6e9131f7c9be6e696c
DIST libav-11.4.tar.xz 4860264 SHA256 0b7dabc2605f3a254ee410bb4b1a857945696aab495fe21b34c3b6544ff5d525 SHA512 82ffe6aaccb1a19782dfcb0de641c8255531ce34ee5f49f9b8ec7f5a11c81713432aafc3a6b7c4de927eb8141ddea41f28e4e3a1ab715b943774193050fb02e7 WHIRLPOOL c2e14e06fd7632852feea45f468803929cb1c1688d77ac8641c56d77523da455ccdf4cc6bf52b3dba9b387af9ad15ea9efd82b11ce365c3a84440fb2998f06aa
DIST libav-11.6.tar.xz 4860268 SHA256 542f30e4266d2d2226e681b888bc718c995f5438f2db66a9a27d581243d27aed SHA512 bff3e22de93e4ab357715ae20e25b6435df52d1868c5164426a693d14fe7f54e47a46c4c62a36fbf27bd204e12f6a29a6f58016c7deaa838915d424b5ce530bd WHIRLPOOL 060bd61e784112a56e02ba86d0901ff488d6ef1735d731a869c68a27da72a209734648148edf9922efe2d15fed3380c36129a92c6917af812bf9e606ef97c131
DIST libav-11.7.tar.xz 4861984 SHA256 8c9a75c89c6df58dd5e3f6f735d1ba5448680e23013fd66a51b50b4f49913c46 SHA512 23c6ffd0efdfa6b22c7863bf440d7469eba03a7990382fe33c8c4c7871edf250641ac536572516225679b0934e5c250ee0e2e91ea093c770a0c4c32b4776e3c5 WHIRLPOOL adb106828ae1e3c802b719a5c9feede1c96d02d79512bf04e2bf29da3d24e969a044a887eeb94dc76d528582026aed6cb1e0e342115507aaa98a8918de358ecd
DIST libav-12_pre20160529.tar.xz 5238532 SHA256 e12f2c1c737a990e277ec0e78673c971962036374b4e53eddb3c1b417e2672fe SHA512 bcfebbed8b4f65526cb9bea3535a04a99891e89a8dcbe544fa104895558b043848f4521949220ac31210b59441ec280aaa7ec7e9138ccba1e0ab0357805f5d87 WHIRLPOOL d35b7df7b023e4c37115ff196f6ac031662c1fa92c1880ac40a88fe0db02ce606dff807baa1c42422c3512060673262748a93bd577b20510f4538c376f1da77c
DIST libav-9.14.tar.xz 4077424 SHA256 e4baf0c2adbd941a827854794dd6af9c29cd2042b23501c5828e9b8e1725f61d SHA512 fa8e83cb92a5a565cd23c63467c64972a69a4cbd652b946c7891b73180b609890f67a6f89f009ed263fb9e2c769236f3a8f7f70b0fce4c4373fa93a49470c04d WHIRLPOOL 178ba6c6ad0ecd8ad59eb3bf7a0d4289a3c253d82981cf3ad454e3b222848ae4f875e37cfd280be43faa25a9614c445106555c9f3b5ee4497aec9d71f39ac1af
DIST libav-9.17.tar.xz 4080028 SHA256 e32d5f152bce1de283c002a35eb6e71f265877633dee8a40db4d16381dd5d17c SHA512 20af83d4b6a23c159c2386b6592ba6a6acf3f2c54e8aeb16dd0c8a64d637fbde24f37b864698b1143c6802b64a7b5e8ddfe0e7601b35c35686a789e2b3232f5a WHIRLPOOL ec07b5dd116e87416a9841044e09a6ef9b124fe4882f53e88711a32813d3d3a1d71f5067854bbd553ecdadec401dbbb8b504bfc1c6966bfd5e2db79459fb9995
347 changes: 347 additions & 0 deletions media-video/libav/libav-11.7.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,347 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

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
}

0 comments on commit 683277d

Please sign in to comment.