blob: 9f5e768d7ba3c32d49c8fdce1cf49844bdeadf4d [file] [log] [blame]
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python{2_7,3_3,3_4} )
PYTHON_REQ_USE='threads(+)'
inherit eutils python-any-r1 waf-utils pax-utils fdo-mime gnome2-utils
WAF_V="1.8.4"
DESCRIPTION="Media player based on MPlayer and mplayer2"
HOMEPAGE="http://mpv.io/"
SRC_URI="http://ftp.waf.io/pub/release/waf-${WAF_V}"
DOCS=( README.md etc/example.conf etc/input.conf )
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/mpv-player/mpv.git"
inherit git-r3
else
SRC_URI+=" https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="alpha amd64 ~arm hppa ppc ppc64 ~sparc ~x86 ~amd64-linux"
DOCS+=( RELEASE_NOTES )
fi
# See Copyright in source tarball and bug #506946. Waf is BSD, libmpv is ISC.
LICENSE="GPL-2+ BSD ISC"
SLOT="0"
IUSE="+alsa bluray bs2b cdio +cli doc-pdf drm dvb +dvd egl +enca encode +iconv
jack jpeg ladspa lcms +libass libav libcaca libguess libmpv lua luajit openal
+opengl oss pulseaudio pvr raspberry-pi rubberband samba sdl selinux v4l vaapi
vdpau vf-dlopen wayland +X xinerama +xscreensaver xv"
REQUIRED_USE="
|| ( cli libmpv )
egl? ( opengl X )
enca? ( iconv )
lcms? ( opengl )
libguess? ( iconv )
luajit? ( lua )
opengl? ( || ( wayland X ) )
pvr? ( v4l )
vaapi? ( X )
vdpau? ( X )
wayland? ( opengl )
xinerama? ( X )
xscreensaver? ( X )
xv? ( X )
"
RDEPEND="
libav? ( >=media-video/libav-11:0=[encode?,threads,vaapi?,vdpau?] )
!libav? ( >=media-video/ffmpeg-2.4.0:0=[encode?,threads,vaapi?,vdpau?] )
sys-libs/zlib
X? (
x11-libs/libX11
x11-libs/libXext
>=x11-libs/libXrandr-1.2.0
opengl? (
virtual/opengl
egl? ( media-libs/mesa[egl] )
)
lcms? ( >=media-libs/lcms-2.6:2 )
vaapi? ( >=x11-libs/libva-0.34.0[X(+)] )
vdpau? ( >=x11-libs/libvdpau-0.2 )
xinerama? ( x11-libs/libXinerama )
xscreensaver? ( x11-libs/libXScrnSaver )
xv? ( x11-libs/libXv )
)
alsa? ( >=media-libs/alsa-lib-1.0.18 )
bluray? ( >=media-libs/libbluray-0.3.0 )
bs2b? ( media-libs/libbs2b )
cdio? (
dev-libs/libcdio
dev-libs/libcdio-paranoia
)
drm? ( x11-libs/libdrm )
dvb? ( virtual/linuxtv-dvb-headers )
dvd? (
>=media-libs/libdvdread-4.1.3
>=media-libs/libdvdnav-4.2.0
)
enca? ( app-i18n/enca )
iconv? ( virtual/libiconv )
jack? ( media-sound/jack-audio-connection-kit )
jpeg? ( virtual/jpeg:0 )
ladspa? ( media-libs/ladspa-sdk )
libass? (
>=media-libs/libass-0.12.1:=[enca?,fontconfig]
virtual/ttf-fonts
)
libcaca? ( >=media-libs/libcaca-0.99_beta18 )
libguess? ( >=app-i18n/libguess-1.0 )
lua? (
!luajit? ( || ( =dev-lang/lua-5.1*:= =dev-lang/lua-5.2*:= ) )
luajit? ( dev-lang/luajit:2 )
)
openal? ( >=media-libs/openal-1.13 )
pulseaudio? ( media-sound/pulseaudio )
rubberband? ( >=media-libs/rubberband-1.8.0 )
samba? ( net-fs/samba )
sdl? ( media-libs/libsdl2[threads] )
v4l? ( media-libs/libv4l )
wayland? (
>=dev-libs/wayland-1.6.0
media-libs/mesa[egl,wayland]
>=x11-libs/libxkbcommon-0.3.0
)
"
DEPEND="${RDEPEND}
${PYTHON_DEPS}
virtual/pkgconfig
>=dev-lang/perl-5.8
dev-python/docutils
doc-pdf? ( dev-python/rst2pdf )
X? (
x11-proto/videoproto
xinerama? ( x11-proto/xineramaproto )
xscreensaver? ( x11-proto/scrnsaverproto )
)
"
RDEPEND+="
selinux? ( sec-policy/selinux-mplayer )
"
pkg_setup() {
if ! use libass; then
ewarn "You have disabled the libass flag. No OSD or subtitles will be displayed."
fi
if use openal; then
ewarn "You have enabled the openal audio output which is a fallback"
ewarn "and disabled by upstream."
fi
if use sdl; then
ewarn "You have enabled the sdl video and audio outputs which are fallbacks"
ewarn "and disabled by upstream."
fi
if use libav; then
einfo "You have enabled media-video/libav instead of media-video/ffmpeg."
einfo "Upstream recommends media-video/ffmpeg, as some functionality is not"
einfo "provided by media-video/libav."
fi
einfo "For additional format support you need to enable the support on your"
einfo "libavcodec/libavformat provider:"
einfo " media-video/ffmpeg or media-video/libav"
python-any-r1_pkg_setup
}
src_prepare() {
cp "${DISTDIR}"/waf-${WAF_V} "${S}"/waf || die
chmod 0755 "${S}"/waf || die
epatch_user
}
src_configure() {
local mywafargs=(
--confdir="${EPREFIX}"/etc/${PN}
--docdir="${EPREFIX}"/usr/share/doc/${PF}
$(usex cli '' '--disable-cplayer')
$(use_enable libmpv libmpv-shared)
--disable-libmpv-static
--disable-build-date # keep build reproducible
--disable-optimize # do not add '-O2' to CFLAGS
--disable-debug-build # do not add '-g' to CFLAGS
--disable-test # avoid dev-util/cmocka automagic
$(use_enable doc-pdf pdf-build)
$(use_enable vf-dlopen vf-dlopen-filters)
$(use_enable cli zsh-comp)
# optional features
$(use_enable iconv)
$(use_enable libguess)
$(use_enable samba libsmbclient)
$(use_enable lua)
$(use_enable libass)
$(use_enable libass libass-osd)
$(use_enable encode encoding)
$(use_enable bluray libbluray)
$(use_enable dvd dvdread)
$(use_enable dvd dvdnav)
$(use_enable cdio cdda)
$(use_enable enca)
$(use_enable ladspa)
$(use_enable rubberband)
$(use_enable bs2b libbs2b)
$(use_enable lcms lcms2)
--disable-vapoursynth # vapoursynth is not packaged
--disable-vapoursynth-lazy
--enable-libavfilter
--enable-libavdevice
$(usex luajit '--lua=luajit' '')
# audio outputs
$(use_enable sdl sdl2) # SDL output is fallback for platforms where nothing better is available
--disable-sdl1
$(use_enable oss oss-audio)
--disable-rsound # media-sound/rsound is in pro-audio overlay only
$(use_enable pulseaudio pulse)
$(use_enable jack)
$(use_enable openal)
$(use_enable alsa)
# video outputs
$(use_enable wayland)
$(use_enable X x11)
$(use_enable xscreensaver xss)
$(use_enable X xext)
$(use_enable xv)
$(use_enable xinerama)
$(use_enable X xrandr)
$(usex X "$(use_enable opengl gl-x11)" '--disable-gl-x11')
$(use_enable egl egl-x11)
$(usex wayland "$(use_enable opengl gl-wayland)" '--disable-gl-wayland')
$(use_enable opengl gl)
$(use_enable vdpau)
$(usex vdpau "$(use_enable opengl vdpau-gl-x11)" '--disable-vdpau-gl-x11')
$(use_enable vaapi)
$(use_enable vaapi vaapi-vpp)
$(usex vaapi "$(use_enable opengl vaapi-glx)" '--disable-vaapi-glx')
$(use_enable libcaca caca)
$(use_enable drm)
$(use_enable jpeg)
$(use_enable raspberry-pi rpi)
$(use_enable raspberry-pi rpi-gles)
# hwaccels
$(use_enable vaapi vaapi-hwaccel)
$(use_enable vdpau vdpau-hwaccel)
# tv features
$(use_enable v4l tv)
$(use_enable v4l tv-v4l2)
$(use_enable v4l libv4l2)
$(use_enable pvr)
$(use_enable dvb dvbin)
)
waf-utils_src_configure "${mywafargs[@]}"
}
src_install() {
waf-utils_src_install
if use cli && use luajit; then
pax-mark -m "${ED}"usr/bin/mpv
fi
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}
pkg_postrm() {
fdo-mime_desktop_database_update
gnome2_icon_cache_update
}