| # 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 |
| } |