From 1cfea2a84c51291a77ab820b6871efcff10c148d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 7 Nov 2022 21:22:54 +0000 Subject: gentoo auto-resync : 07:11:2022 - 21:22:53 --- media-video/mpv/Manifest | 6 +- media-video/mpv/metadata.xml | 1 + media-video/mpv/mpv-0.34.1_p20221105.ebuild | 289 +++++++++++++++++++ media-video/mpv/mpv-9999.ebuild | 418 ++++++++++++---------------- 4 files changed, 471 insertions(+), 243 deletions(-) create mode 100644 media-video/mpv/mpv-0.34.1_p20221105.ebuild (limited to 'media-video/mpv') diff --git a/media-video/mpv/Manifest b/media-video/mpv/Manifest index e3d1ea637032..f4bb3fbb1e27 100644 --- a/media-video/mpv/Manifest +++ b/media-video/mpv/Manifest @@ -1,6 +1,8 @@ AUX mpv-9999-docdir.patch 536 BLAKE2B eeb4bec0a51a68515c7c321a4419679e4b6d0567db2145ce44f0ff5141b2043ec3de057607dca0798f2d63f7b5f2e8fde3ed87be725e156e0b769ca561598702 SHA512 e8a122dec7adea75681e285378d99a7f94f4f75926cbde65dd5f0c7014b4a49d4567e719d92a9d9d428f8f746ff0cd3495ba59c5e7b3acb43d83329a10b338c5 DIST mpv-0.34.1.tar.gz 3288356 BLAKE2B c0e5dc3cd23307449a526bd2cf0df5d870322aa1914a139784fd50d77274d42648a769ee4da3ba74e34a7a080700a5740dae13ed0827df1b3cfef36846f983ab SHA512 77ea349d6999f8cce9b5cce4cebd3506a224fc18ab08d22dd16bd34c34d012bb170879b268ddd62db40d116b4cc0b2d9d651b8097f387ed9115c426834cac77e +DIST mpv-0.34.1_p20221105.tar.gz 3366581 BLAKE2B 52bf8f339e6535c17430d4a8f865a4559681200bfff379e98104ad1365addade3899a3339ae480c23f7e8470623374395aa2e948ee3d616fa8ce152821340fd0 SHA512 a246087a5af191459af71c729e5da5f09a7466792774e1114b8775294ed1de6a9d882e0d2076e35f7d09cd2a57780f504fedbbfc572fb533dc1d72f87e59dabc DIST waf-2.0.22 104880 BLAKE2B 6cae9e764712012ef97f790c723b86a2603dc64e9bafcec02c5251dbc1b23ec629db26c02eee2a72a77cf70c11d2729a626ea71f3cb50a6281257fd6f63eadf0 SHA512 4156cefa65b7e6349ddb1ca643bbdf3e4444449d137e5f595535564271d521362291f257765329015671584ac2c596a0ad98cfdbd621f5d5352141a55d384292 EBUILD mpv-0.34.1-r1.ebuild 9733 BLAKE2B 7c2c0935efc35f23a5389f4f9e367e3e0e0dc862b27b27c816edcaf0623c5dc9879ccef5e3519fc35b9be1ae87b3ba80f5e60dd430bbb43df581245e92b3be80 SHA512 64f06b5d6e16d943d4bf614117304839c09cb34cba4ce561b5e68c826e83672a0e9218a486de68fd506ce9c7b2a50e92b0627c66c3ebe048175c214dabd09aba -EBUILD mpv-9999.ebuild 9318 BLAKE2B f24bafee78b38fe48f1ab415541318a0a171b2f83b6e8b839e3bdda9b64410dd01d1ad3436bbd155f138a7704ec120ddd89de0732725b14c07b2b2468ebd803a SHA512 b3014d8ee025d73668ad7f8c1ff4f5b3a829eafc0cb7493de07d10f2483cac7070a517e178582d4d82c5e6a46bbf522f790f58925f9d4d1590293bbb7dedde05 -MISC metadata.xml 2668 BLAKE2B 986eaf5b4d8b23a76b0d5b921d54b26006dde9e4547ea73356a7870b7bb93213188ef6b69825f3b6cd29fbc835315e0538aad127bbe18fbe0d9a7b8ef703fddc SHA512 a2b9e21028281edbdb3c6343a391c323f1452e7cdfc07eefee07797153111d32e963aab8265d9c8ea0f9f5ef6790f465e9777e4b2bde8c66303b864739bf45b5 +EBUILD mpv-0.34.1_p20221105.ebuild 7389 BLAKE2B 742c5b973fabaca9261248deabcf08de55e67183d5f4758f01ea3f2fc7987a043edb27d04709c0766c059d5a99ca1b387110f67c37191e6d4a9267b8cf7f1721 SHA512 60d1f0bbfe057a4baabd80d4d49e3872e6eaf3b972c2aeb251989c0fa8bd61116e3fd51bf635c69e491eede9a853b0f4a06948e5fbf23c7140a1d26917a477cc +EBUILD mpv-9999.ebuild 7389 BLAKE2B 742c5b973fabaca9261248deabcf08de55e67183d5f4758f01ea3f2fc7987a043edb27d04709c0766c059d5a99ca1b387110f67c37191e6d4a9267b8cf7f1721 SHA512 60d1f0bbfe057a4baabd80d4d49e3872e6eaf3b972c2aeb251989c0fa8bd61116e3fd51bf635c69e491eede9a853b0f4a06948e5fbf23c7140a1d26917a477cc +MISC metadata.xml 2790 BLAKE2B e080803b3907aadd28e9d0b54177cf210def169d84242503b6bca102a621d0f75bd19a6e9ee2939aaae070bd9e09b6b33c10bba481d5e8db0927035057c048be SHA512 50ca35e8cb726bd6828801f97d49a3bd748051de8d4d94f8c21b3a63db28877b02de0d4599a92a9228113104314d7a99dc8c1a1c9a4e779a785382d74bf12bac diff --git a/media-video/mpv/metadata.xml b/media-video/mpv/metadata.xml index 60caeb2ccc60..76c201612ef0 100644 --- a/media-video/mpv/metadata.xml +++ b/media-video/mpv/metadata.xml @@ -20,6 +20,7 @@ Enable Graphics Buffer Manager based EGL video backend Enable support for saving screenshots in JPEG format Build mpv shared library + Enable support for GPU accelerated video rendering with media-libs/libplacebo Enable Lua scripting, OSC (On Screen Controller) GUI and net-misc/youtube-dl hook-script Enables Multi-Media Abstraction Layer (MMAL) decoding support: Available e.g. on the Raspberry Pi. Enable the recommended 'opengl' video output diff --git a/media-video/mpv/mpv-0.34.1_p20221105.ebuild b/media-video/mpv/mpv-0.34.1_p20221105.ebuild new file mode 100644 index 000000000000..44b6c139ad77 --- /dev/null +++ b/media-video/mpv/mpv-0.34.1_p20221105.ebuild @@ -0,0 +1,289 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-1 luajit ) +PYTHON_COMPAT=( python3_{8..11} ) +inherit edo flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/mpv-player/mpv.git" +else + HASH_MPV=c416a38ef227067ef7b81b9650a13157300cdfbe + SRC_URI="https://github.com/mpv-player/mpv/archive/${HASH_MPV}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-${HASH_MPV}" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux" +fi + +DESCRIPTION="Media player for the command line" +HOMEPAGE="https://mpv.io/" + +LICENSE="LGPL-2.1+ GPL-2+ BSD ISC MIT" #506946 +SLOT="0/2" # soname +IUSE=" + +X +alsa aqua archive bluray cdda +cli coreaudio debug drm dvb + dvd +egl gamepad +iconv jack javascript jpeg lcms libcaca libmpv + +libplacebo +lua mmal nvenc openal opengl pipewire pulseaudio + raspberry-pi rubberband sdl selinux sndio test tools +uchardet + vaapi vdpau +vector vulkan wayland +xv zimg zlib" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( cli libmpv ) + egl? ( || ( X drm wayland ) ) + libplacebo? ( || ( egl opengl vulkan ) ) + lua? ( ${LUA_REQUIRED_USE} ) + nvenc? ( || ( egl opengl vulkan ) ) + opengl? ( || ( X aqua ) ) + test? ( cli ) + tools? ( cli ) + uchardet? ( iconv ) + vaapi? ( || ( X egl libplacebo wayland ) ) + vdpau? ( X ) + vulkan? ( || ( X wayland ) libplacebo ) + xv? ( X )" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + media-libs/libass:=[fontconfig] + media-video/ffmpeg:=[encode,threads,vaapi?,vdpau?] + X? ( + x11-libs/libX11 + x11-libs/libXScrnSaver + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXpresent + x11-libs/libXrandr + xv? ( x11-libs/libXv ) + ) + alsa? ( media-libs/alsa-lib ) + archive? ( app-arch/libarchive:= ) + bluray? ( media-libs/libbluray:= ) + cdda? ( + dev-libs/libcdio-paranoia:= + dev-libs/libcdio:= + ) + drm? ( + media-libs/mesa[gbm(+)] + x11-libs/libdrm + ) + dvd? ( + media-libs/libdvdnav + media-libs/libdvdread:= + ) + egl? ( media-libs/libglvnd ) + gamepad? ( media-libs/libsdl2[joystick] ) + iconv? ( + virtual/libiconv + uchardet? ( app-i18n/uchardet ) + ) + jack? ( virtual/jack ) + javascript? ( dev-lang/mujs:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + lcms? ( media-libs/lcms:2 ) + libcaca? ( media-libs/libcaca ) + libplacebo? ( + >=media-libs/libplacebo-4.202:=[opengl?,vulkan?] + egl? ( media-libs/libplacebo[opengl] ) + ) + lua? ( ${LUA_DEPS} ) + openal? ( media-libs/openal ) + opengl? ( media-libs/libglvnd[X?] ) + pipewire? ( media-video/pipewire:= ) + pulseaudio? ( media-libs/libpulse ) + raspberry-pi? ( media-libs/raspberrypi-userland ) + rubberband? ( media-libs/rubberband ) + sdl? ( media-libs/libsdl2[sound,threads,video] ) + sndio? ( media-sound/sndio:= ) + vaapi? ( media-libs/libva:=[X?,drm(+)?,wayland?] ) + vdpau? ( x11-libs/libvdpau ) + vulkan? ( + media-libs/shaderc + media-libs/vulkan-loader[X?,wayland?] + ) + wayland? ( + dev-libs/wayland + dev-libs/wayland-protocols + x11-libs/libxkbcommon + ) + zimg? ( media-libs/zimg ) + zlib? ( sys-libs/zlib:= )" +RDEPEND=" + ${COMMON_DEPEND} + selinux? ( sec-policy/selinux-mplayer ) + tools? ( ${PYTHON_DEPS} )" +DEPEND=" + ${COMMON_DEPEND} + X? ( x11-base/xorg-proto ) + dvb? ( virtual/linuxtv-dvb-headers ) + nvenc? ( media-libs/nv-codec-headers ) + wayland? ( dev-libs/wayland-protocols )" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig + cli? ( dev-python/docutils ) + wayland? ( dev-util/wayland-scanner )" + +pkg_setup() { + use lua && lua-single_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + [[ ${PV} == 9999 ]] || sed -i "s/UNKNOWN/${HASH_MPV::11}/" VERSION || die + + sed -i "s/'rst2html/&.py/" meson.build || die +} + +src_configure() { + if use !debug; then + if use test; then + einfo "Skipping -DNDEBUG due to USE=test" + else + append-cppflags -DNDEBUG # treated specially + fi + fi + + if use raspberry-pi; then + append-cflags -I"${ESYSROOT}"/opt/vc/include + append-ldflags -L"${ESYSROOT}"/opt/vc/lib + fi + + mpv_feature_multi() { + local use set + for use in ${1} ${2}; do + use ${use} || set=disabled + done + echo -D${3-${2}}=${set-enabled} + } + + local emesonargs=( + $(meson_use cli cplayer) + $(meson_use libmpv) + $(meson_use test tests) + + $(meson_feature cli html-build) + $(meson_feature cli manpage-build) + -Dpdf-build=disabled + + -Dbuild-date=false + + # misc options + $(meson_feature archive libarchive) + $(meson_feature bluray libbluray) + $(meson_feature cdda) + -Dcplugins=enabled + $(meson_feature dvb dvbin) + $(meson_feature dvd dvdnav) + $(meson_feature gamepad sdl2-gamepad) + $(meson_feature iconv) + $(meson_feature javascript) + -Dlibavdevice=enabled + $(meson_feature lcms lcms2) + -Dlua=$(usex lua "${ELUA}" disabled) + $(meson_feature rubberband) + -Dsdl2=$(use gamepad || use sdl && echo enabled || echo disabled) #857156 + $(meson_feature uchardet) + -Dvapoursynth=disabled # only available in overlays + $(meson_feature vector) + $(meson_feature zimg) + $(meson_feature zlib) + + # audio output + $(meson_feature alsa) + $(meson_feature coreaudio) + $(meson_feature jack) + $(meson_feature openal) + $(meson_feature pipewire) + $(meson_feature pulseaudio pulse) + $(meson_feature sdl sdl2-audio) + $(meson_feature sndio) + + # video output + $(meson_feature X x11) + $(meson_feature aqua cocoa) + $(meson_feature drm) + $(meson_feature drm gbm) + $(meson_feature jpeg) + $(meson_feature libcaca caca) + $(meson_feature libplacebo) + $(meson_feature mmal rpi-mmal) + $(meson_feature sdl sdl2-video) + -Dsixel=disabled # TODO? needs keywording/testing + $(meson_feature wayland) + $(meson_feature xv) + + -Dgl=$(use egl || use libmpv || use opengl || use raspberry-pi && + echo enabled || echo disabled) + $(meson_feature egl) + $(mpv_feature_multi egl X egl-x11) + $(mpv_feature_multi egl drm egl-drm) + $(mpv_feature_multi egl wayland egl-wayland) + $(meson_feature libmpv plain-gl) + $(mpv_feature_multi opengl X gl-x11) + $(mpv_feature_multi opengl aqua gl-cocoa) + $(meson_feature raspberry-pi rpi) + + $(meson_feature vulkan) + $(meson_feature vulkan shaderc) + + # hardware decoding + $(meson_feature nvenc cuda-hwaccel) + $(meson_feature nvenc cuda-interop) + + $(meson_feature vaapi) + $(mpv_feature_multi vaapi X vaapi-x11) + $(mpv_feature_multi 'vaapi X' egl vaapi-x-egl) + $(mpv_feature_multi 'vaapi egl' drm vaapi-drm) + $(mpv_feature_multi 'vaapi egl' wayland vaapi-wayland) + + $(meson_feature vdpau) + $(mpv_feature_multi vdpau opengl vdpau-gl-x11) + + $(mpv_feature_multi aqua opengl videotoolbox-gl) + ) + + meson_src_configure +} + +src_test() { + # https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst#debugging + edo "${BUILD_DIR}"/mpv --no-config -v --unittest=all-simple +} + +src_install() { + meson_src_install + + if use lua; then + insinto /usr/share/${PN} + doins -r TOOLS/lua + + if use cli && use lua_single_target_luajit; then + pax-mark -m "${ED}"/usr/bin/${PN} + fi + fi + + if use tools; then + dobin TOOLS/{mpv_identify.sh,umpv} + newbin TOOLS/idet.sh mpv_idet.sh + python_fix_shebang "${ED}"/usr/bin/umpv + fi + + if use cli; then + dodir /usr/share/doc/${PF}/html + mv "${ED}"/usr/share/doc/{mpv,${PF}/html}/mpv.html || die + mv "${ED}"/usr/share/doc/{mpv,${PF}/examples} || die + fi + + local GLOBIGNORE=*/*build*:*/*policy* + dodoc RELEASE_NOTES DOCS/*.{md,rst} +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "URL support" net-misc/yt-dlp +} diff --git a/media-video/mpv/mpv-9999.ebuild b/media-video/mpv/mpv-9999.ebuild index 566af4acb50c..44b6c139ad77 100644 --- a/media-video/mpv/mpv-9999.ebuild +++ b/media-video/mpv/mpv-9999.ebuild @@ -3,285 +3,254 @@ EAPI=8 -LUA_COMPAT=( lua5-{1..2} luajit ) +LUA_COMPAT=( lua5-1 luajit ) PYTHON_COMPAT=( python3_{8..11} ) -PYTHON_REQ_USE='threads(+)' +inherit edo flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg -inherit edo flag-o-matic lua-single optfeature meson pax-utils python-single-r1 toolchain-funcs xdg - -DESCRIPTION="Media player based on MPlayer and mplayer2" -HOMEPAGE="https://mpv.io/ https://github.com/mpv-player/mpv" - -if [[ ${PV} == *9999* ]]; then - EGIT_REPO_URI="https://github.com/mpv-player/mpv.git" +if [[ ${PV} == 9999 ]]; then inherit git-r3 - - DOCS=() + EGIT_REPO_URI="https://github.com/mpv-player/mpv.git" else - SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux" - - DOCS=( RELEASE_NOTES ) + HASH_MPV=c416a38ef227067ef7b81b9650a13157300cdfbe + SRC_URI="https://github.com/mpv-player/mpv/archive/${HASH_MPV}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${PN}-${HASH_MPV}" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux" fi -DOCS+=( README.md DOCS/{client-api,interface}-changes.rst ) - -# See Copyright in sources and Gentoo bug #506946. libmpv is ISC. -# See https://github.com/mpv-player/mpv/blob/6265724f3331e3dee8d9ec2b6639def5004a5fa2/Copyright which -# says other files may be BSD/MIT/ISC. -LICENSE="LGPL-2.1+ GPL-2+ BSD MIT ISC" -SLOT="0" -IUSE="+alsa aqua archive bluray cdda +cli coreaudio cplugins debug doc drm dvb - dvd +egl gamepad gbm +iconv jack javascript jpeg lcms libcaca libmpv +lua - mmal nvenc openal +opengl pipewire pulseaudio raspberry-pi rubberband sdl - selinux sndio test tools +uchardet vaapi vdpau +vector vulkan wayland +X +xv zlib zimg" - +DESCRIPTION="Media player for the command line" +HOMEPAGE="https://mpv.io/" + +LICENSE="LGPL-2.1+ GPL-2+ BSD ISC MIT" #506946 +SLOT="0/2" # soname +IUSE=" + +X +alsa aqua archive bluray cdda +cli coreaudio debug drm dvb + dvd +egl gamepad +iconv jack javascript jpeg lcms libcaca libmpv + +libplacebo +lua mmal nvenc openal opengl pipewire pulseaudio + raspberry-pi rubberband sdl selinux sndio test tools +uchardet + vaapi vdpau +vector vulkan wayland +xv zimg zlib" REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} || ( cli libmpv ) - aqua? ( opengl ) - egl? ( || ( gbm X wayland ) ) - gamepad? ( sdl ) - gbm? ( drm egl opengl ) - lcms? ( opengl ) + egl? ( || ( X drm wayland ) ) + libplacebo? ( || ( egl opengl vulkan ) ) lua? ( ${LUA_REQUIRED_USE} ) - nvenc? ( opengl ) - opengl? ( || ( aqua egl X raspberry-pi !cli ) ) - raspberry-pi? ( opengl ) - test? ( opengl ) + nvenc? ( || ( egl opengl vulkan ) ) + opengl? ( || ( X aqua ) ) + test? ( cli ) tools? ( cli ) uchardet? ( iconv ) - vaapi? ( || ( gbm X wayland ) ) + vaapi? ( || ( X egl libplacebo wayland ) ) vdpau? ( X ) - vulkan? ( || ( X wayland ) ) - wayland? ( egl ) - X? ( egl? ( opengl ) ) - xv? ( X ) - ${PYTHON_REQUIRED_USE} -" - + vulkan? ( || ( X wayland ) libplacebo ) + xv? ( X )" RESTRICT="!test? ( test )" COMMON_DEPEND=" - >=media-video/ffmpeg-4.0:0=[encode,threads,vaapi?,vdpau?] - alsa? ( >=media-libs/alsa-lib-1.0.18 ) - archive? ( >=app-arch/libarchive-3.4.0:= ) - bluray? ( >=media-libs/libbluray-0.3.0:= ) - cdda? ( dev-libs/libcdio-paranoia - dev-libs/libcdio:= ) - drm? ( x11-libs/libdrm ) + media-libs/libass:=[fontconfig] + media-video/ffmpeg:=[encode,threads,vaapi?,vdpau?] + X? ( + x11-libs/libX11 + x11-libs/libXScrnSaver + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXpresent + x11-libs/libXrandr + xv? ( x11-libs/libXv ) + ) + alsa? ( media-libs/alsa-lib ) + archive? ( app-arch/libarchive:= ) + bluray? ( media-libs/libbluray:= ) + cdda? ( + dev-libs/libcdio-paranoia:= + dev-libs/libcdio:= + ) + drm? ( + media-libs/mesa[gbm(+)] + x11-libs/libdrm + ) dvd? ( - >=media-libs/libdvdnav-4.2.0:= - >=media-libs/libdvdread-4.1.0:= + media-libs/libdvdnav + media-libs/libdvdread:= ) - egl? ( media-libs/mesa[egl(+),gbm(+)?,wayland(-)?] ) - gamepad? ( media-libs/libsdl2 ) + egl? ( media-libs/libglvnd ) + gamepad? ( media-libs/libsdl2[joystick] ) iconv? ( virtual/libiconv uchardet? ( app-i18n/uchardet ) ) jack? ( virtual/jack ) - javascript? ( >=dev-lang/mujs-1.0.0 ) + javascript? ( dev-lang/mujs:= ) jpeg? ( media-libs/libjpeg-turbo:= ) - lcms? ( >=media-libs/lcms-2.6:2 ) - >=media-libs/libass-0.12.1:=[fontconfig,harfbuzz(+)] - virtual/ttf-fonts - libcaca? ( >=media-libs/libcaca-0.99_beta18 ) + lcms? ( media-libs/lcms:2 ) + libcaca? ( media-libs/libcaca ) + libplacebo? ( + >=media-libs/libplacebo-4.202:=[opengl?,vulkan?] + egl? ( media-libs/libplacebo[opengl] ) + ) lua? ( ${LUA_DEPS} ) - openal? ( >=media-libs/openal-1.13 ) - pulseaudio? ( media-libs/libpulse ) + openal? ( media-libs/openal ) + opengl? ( media-libs/libglvnd[X?] ) pipewire? ( media-video/pipewire:= ) - raspberry-pi? ( >=media-libs/raspberrypi-userland-0_pre20160305-r1 ) - rubberband? ( >=media-libs/rubberband-1.8.0 ) + pulseaudio? ( media-libs/libpulse ) + raspberry-pi? ( media-libs/raspberrypi-userland ) + rubberband? ( media-libs/rubberband ) sdl? ( media-libs/libsdl2[sound,threads,video] ) - sndio? ( media-sound/sndio ) - vaapi? ( media-libs/libva:=[drm(+)?,X?,wayland?] ) + sndio? ( media-sound/sndio:= ) + vaapi? ( media-libs/libva:=[X?,drm(+)?,wayland?] ) vdpau? ( x11-libs/libvdpau ) vulkan? ( - >=media-libs/libplacebo-4.192.1:=[vulkan] media-libs/shaderc + media-libs/vulkan-loader[X?,wayland?] ) wayland? ( - >=dev-libs/wayland-1.6.0 - >=dev-libs/wayland-protocols-1.14 - >=x11-libs/libxkbcommon-0.3.0 - ) - X? ( - x11-libs/libX11 - x11-libs/libXScrnSaver - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXpresent - x11-libs/libXrandr - opengl? ( - x11-libs/libXdamage - virtual/opengl - ) - xv? ( x11-libs/libXv ) + dev-libs/wayland + dev-libs/wayland-protocols + x11-libs/libxkbcommon ) - zlib? ( sys-libs/zlib ) - zimg? ( >=media-libs/zimg-2.9.2 ) -" -DEPEND="${COMMON_DEPEND} - dvb? ( virtual/linuxtv-dvb-headers ) - nvenc? ( >=media-libs/nv-codec-headers-8.2.15.7 ) -" -RDEPEND="${COMMON_DEPEND} - nvenc? ( x11-drivers/nvidia-drivers[X] ) + zimg? ( media-libs/zimg ) + zlib? ( sys-libs/zlib:= )" +RDEPEND=" + ${COMMON_DEPEND} selinux? ( sec-policy/selinux-mplayer ) - tools? ( ${PYTHON_DEPS} ) -" -BDEPEND="dev-python/docutils + tools? ( ${PYTHON_DEPS} )" +DEPEND=" + ${COMMON_DEPEND} + X? ( x11-base/xorg-proto ) + dvb? ( virtual/linuxtv-dvb-headers ) + nvenc? ( media-libs/nv-codec-headers ) + wayland? ( dev-libs/wayland-protocols )" +BDEPEND=" + ${PYTHON_DEPS} virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-9999-docdir.patch -) + cli? ( dev-python/docutils ) + wayland? ( dev-util/wayland-scanner )" pkg_setup() { use lua && lua-single_pkg_setup - use tools && python-single-r1_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + [[ ${PV} == 9999 ]] || sed -i "s/UNKNOWN/${HASH_MPV::11}/" VERSION || die + + sed -i "s/'rst2html/&.py/" meson.build || die } src_configure() { - tc-export CC PKG_CONFIG AR + if use !debug; then + if use test; then + einfo "Skipping -DNDEBUG due to USE=test" + else + append-cppflags -DNDEBUG # treated specially + fi + fi if use raspberry-pi; then - append-cflags -I"${ESYSROOT}/opt/vc/include" - append-ldflags -L"${ESYSROOT}/opt/vc/lib" + append-cflags -I"${ESYSROOT}"/opt/vc/include + append-ldflags -L"${ESYSROOT}"/opt/vc/lib fi - if use debug && ! use test; then - append-cppflags -DNDEBUG - fi + mpv_feature_multi() { + local use set + for use in ${1} ${2}; do + use ${use} || set=disabled + done + echo -D${3-${2}}=${set-enabled} + } local emesonargs=( - -Dbuild-date=false $(meson_use cli cplayer) $(meson_use libmpv) $(meson_use test tests) - $(meson_feature doc html-build) - -Dmanpage-build=enabled + $(meson_feature cli html-build) + $(meson_feature cli manpage-build) -Dpdf-build=disabled - $(meson_feature cplugins) - $(meson_feature iconv) - $(meson_feature javascript) - $(meson_feature zlib) - $(meson_feature bluray libbluray) - $(meson_feature dvd dvdnav) + -Dbuild-date=false + # misc options + $(meson_feature archive libarchive) + $(meson_feature bluray libbluray) $(meson_feature cdda) - - $(meson_feature uchardet) - $(meson_feature rubberband) + -Dcplugins=enabled + $(meson_feature dvb dvbin) + $(meson_feature dvd dvdnav) + $(meson_feature gamepad sdl2-gamepad) + $(meson_feature iconv) + $(meson_feature javascript) + -Dlibavdevice=enabled $(meson_feature lcms lcms2) - - # Only available in overlays. - -Dvapoursynth=disabled - + -Dlua=$(usex lua "${ELUA}" disabled) + $(meson_feature rubberband) + -Dsdl2=$(use gamepad || use sdl && echo enabled || echo disabled) #857156 + $(meson_feature uchardet) + -Dvapoursynth=disabled # only available in overlays $(meson_feature vector) + $(meson_feature zimg) + $(meson_feature zlib) - $(meson_feature archive libarchive) - - -Dlibavdevice=enabled - - # Needed for either of the more specific audio or video options - # bug #857156 - $(meson_feature sdl sdl2) - - # Audio outputs: - $(meson_feature sdl sdl2-audio) - $(meson_feature pulseaudio pulse) + # audio output + $(meson_feature alsa) + $(meson_feature coreaudio) $(meson_feature jack) $(meson_feature openal) $(meson_feature pipewire) - -Dopensles=disabled - $(meson_feature alsa) - $(meson_feature coreaudio) + $(meson_feature pulseaudio pulse) + $(meson_feature sdl sdl2-audio) $(meson_feature sndio) - # Video outputs: - $(meson_feature sdl sdl2-video) + # video output + $(meson_feature X x11) $(meson_feature aqua cocoa) $(meson_feature drm) - $(meson_feature gbm) + $(meson_feature drm gbm) + $(meson_feature jpeg) + $(meson_feature libcaca caca) + $(meson_feature libplacebo) + $(meson_feature mmal rpi-mmal) + $(meson_feature sdl sdl2-video) + -Dsixel=disabled # TODO? needs keywording/testing $(meson_feature wayland) - $(meson_feature X x11) $(meson_feature xv) - $(meson_feature opengl gl) - $(usex opengl "$(meson_feature aqua gl-cocoa)" '-Dgl-cocoa=disabled') - $(usex opengl "$(meson_feature X gl-x11)" '-Dgl-x11=disabled') - + -Dgl=$(use egl || use libmpv || use opengl || use raspberry-pi && + echo enabled || echo disabled) $(meson_feature egl) - $(usex egl "$(meson_feature X egl-x11)" "-Degl-x11=disabled") - $(usex egl "$(meson_feature gbm egl-drm)" "-Degl-drm=disabled") - $(usex opengl "$(meson_feature wayland egl-wayland)" '-Degl-wayland=disabled') - - $(meson_feature vdpau) - $(usex vdpau "$(meson_feature opengl vdpau-gl-x11)" '-Dvdpau-gl-x11=disabled') - - $(meson_feature vaapi) # See below for vaapi-glx, vaapi-x-egl. - $(usex vaapi "$(meson_feature X vaapi-x11)" "-Dvaapi-x11=disabled") - $(usex vaapi "$(meson_feature wayland vaapi-wayland)" "-Dvaapi-wayland=disabled") - $(usex vaapi "$(meson_feature gbm vaapi-drm)" "-Dvaapi-drm=disabled") - - $(meson_feature libcaca caca) - $(meson_feature jpeg) - $(meson_feature vulkan shaderc) - $(meson_feature vulkan libplacebo) + $(mpv_feature_multi egl X egl-x11) + $(mpv_feature_multi egl drm egl-drm) + $(mpv_feature_multi egl wayland egl-wayland) + $(meson_feature libmpv plain-gl) + $(mpv_feature_multi opengl X gl-x11) + $(mpv_feature_multi opengl aqua gl-cocoa) $(meson_feature raspberry-pi rpi) - $(meson_feature mmal rpi-mmal) - -Dsixel=disabled - -Dspirv-cross=disabled - - $(usex libmpv "$(meson_feature opengl plain-gl)" "-Dplain-gl=disabled") - $(meson_feature opengl gl) $(meson_feature vulkan) - $(meson_feature gamepad sdl2-gamepad) + $(meson_feature vulkan shaderc) - # HWaccels: - # Automagic Video Toolbox HW acceleration. See Gentoo bug 577332. + # hardware decoding $(meson_feature nvenc cuda-hwaccel) $(meson_feature nvenc cuda-interop) - # TV features: - $(meson_feature dvb dvbin) + $(meson_feature vaapi) + $(mpv_feature_multi vaapi X vaapi-x11) + $(mpv_feature_multi 'vaapi X' egl vaapi-x-egl) + $(mpv_feature_multi 'vaapi egl' drm vaapi-drm) + $(mpv_feature_multi 'vaapi egl' wayland vaapi-wayland) - # Miscellaneous features: - $(meson_feature zimg) - ) - - if use lua; then - emesonargs+=( -Dlua="${ELUA}" ) - else - emesonargs+=( -Dlua=disabled ) - fi - - if use vaapi && use X; then - emesonargs+=( - $(meson_feature egl vaapi-x-egl) - ) - fi - - # Not for us - emesonargs+=( - -Duwp=disabled - -Daudiounit=disabled - -Doss-audio=disabled - -Dwasapi=disabled + $(meson_feature vdpau) + $(mpv_feature_multi vdpau opengl vdpau-gl-x11) - -Dd3d11=disabled - -Ddirect3d=disabled + $(mpv_feature_multi aqua opengl videotoolbox-gl) ) meson_src_configure } src_test() { + # https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst#debugging edo "${BUILD_DIR}"/mpv --no-config -v --unittest=all-simple } @@ -291,10 +260,10 @@ src_install() { if use lua; then insinto /usr/share/${PN} doins -r TOOLS/lua - fi - if use cli && use lua_single_target_luajit; then - pax-mark -m "${ED}"/usr/bin/${PN} + if use cli && use lua_single_target_luajit; then + pax-mark -m "${ED}"/usr/bin/${PN} + fi fi if use tools; then @@ -302,52 +271,19 @@ src_install() { newbin TOOLS/idet.sh mpv_idet.sh python_fix_shebang "${ED}"/usr/bin/umpv fi -} - -pkg_postinst() { - local rv softvol_0_18_1=0 osc_0_21_0=0 txtsubs_0_24_0=0 opengl_0_25_0=0 - - for rv in ${REPLACING_VERSIONS}; do - ver_test ${rv} -lt 0.18.1 && softvol_0_18_1=1 - ver_test ${rv} -lt 0.21.0 && osc_0_21_0=1 - ver_test ${rv} -lt 0.24.0 && txtsubs_0_24_0=1 - ver_test ${rv} -lt 0.25.0 && ! use opengl && opengl_0_25_0=1 - done - - if [[ ${softvol_0_18_1} -eq 1 ]]; then - elog "Since version 0.18.1 the software volume control is always enabled." - elog "This means that volume controls don't change the system volume," - elog "e.g. per-application volume with PulseAudio." - elog "If you want to restore the previous behaviour, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#Volume_in_0.18.1" - elog - fi - if [[ ${osc_0_21_0} -eq 1 ]]; then - elog "In version 0.21.0 the default OSC layout was changed." - elog "If you want to restore the previous layout, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#OSC_in_0.21.0" - elog + if use cli; then + dodir /usr/share/doc/${PF}/html + mv "${ED}"/usr/share/doc/{mpv,${PF}/html}/mpv.html || die + mv "${ED}"/usr/share/doc/{mpv,${PF}/examples} || die fi - if [[ ${txtsubs_0_24_0} -eq 1 ]]; then - elog "Since version 0.24.0 subtitles with .txt extension aren't autoloaded." - elog "If you want to restore the previous behaviour, please refer to" - elog - elog "https://wiki.gentoo.org/wiki/Mpv#Subtitles_with_.txt_extension_in_0.24.0" - elog - fi + local GLOBIGNORE=*/*build*:*/*policy* + dodoc RELEASE_NOTES DOCS/*.{md,rst} +} - if [[ ${opengl_0_25_0} -eq 1 ]]; then - elog "Since version 0.25.0 the 'opengl' USE flag is mapped to" - elog "the 'opengl' video output and no longer explicitly requires" - elog "X11 or Mac OS Aqua. Consider enabling the 'opengl' USE flag." - fi +pkg_postinst() { + xdg_pkg_postinst optfeature "URL support" net-misc/yt-dlp - - xdg_icon_cache_update - xdg_desktop_database_update } -- cgit v1.2.3