File PKGBUILD of Package mpv
# Maintainer: Christian Hesse <mail@eworm.de>
# Maintainer: Robin Candau <antiz@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Eivind Uggedal <eivind@uggedal.com>
pkgname=mpv
epoch=1
pkgver=0.40.0
pkgrel=7
pkgdesc='a free, open source, and cross-platform media player'
arch=('x86_64')
license=('GPL-2.0-or-later AND LGPL-2.1-or-later')
url='https://mpv.io/'
depends=('alsa-lib' 'desktop-file-utils' 'ffmpeg' 'glibc' 'hicolor-icon-theme'
'jack' 'lcms2' 'libarchive' 'libass' 'libbluray' 'libcdio'
'libcdio-paranoia' 'libdisplay-info' 'libdrm' 'libdvdnav' 'libdvdread' 'libegl' 'libgl'
'libglvnd' 'libjpeg-turbo' 'libplacebo' 'libpulse' 'libsixel' 'libva'
'libvdpau' 'libx11' 'libxext' 'libxkbcommon' 'libxpresent' 'libxrandr'
'libxss' 'libxv' 'luajit' 'mesa' 'mujs' 'libpipewire' 'rubberband' 'sdl2'
'openal' 'uchardet' 'vapoursynth' 'vulkan-icd-loader' 'wayland' 'zlib')
makedepends=('git' 'meson' 'python-docutils' 'ladspa' 'wayland-protocols'
'ffnvcodec-headers' 'vulkan-headers')
optdepends=('yt-dlp: for video-sharing websites playback')
provides=('libmpv.so')
options=('!emptydirs')
validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 <sfan5@live.de>
source=("git+https://github.com/mpv-player/mpv.git#tag=v${pkgver}?signed"
'fix_wayland_clipboard_high_cpu_usage.patch')
sha256sums=('754d045dba7143b51dd6eb2d32ab3a9a483e6a337e685b581a876bc2e20eddf1'
'610227f044853fe88888d2317ead0e29c84ccffbdb7f712c3671187778b5b60e')
prepare() {
cd "${pkgname}"
# Fix high CPU usage with Wayland clipboard
# See https://github.com/mpv-player/mpv/issues/16139
# and https://github.com/mpv-player/mpv/commit/d20ded876d27497d3fe6a9494add8106b507a45c
patch -Np1 -i "${srcdir}/fix_wayland_clipboard_high_cpu_usage.patch"
patch -Np1 -i "${srcdir}/fix_wayland_inhibit_kde.patch"
# Fix build with ffmpeg 8
patch -Np1 -i "${srcdir}/ffmpeg8.patch"
}
build() {
local _meson_options=(
--auto-features auto
-Dlibmpv=true
-Dgl-x11=enabled
-Dcaca=disabled
-Dcdda=enabled
-Ddrm=enabled
-Ddvbin=enabled
-Ddvdnav=enabled
-Dlibarchive=enabled
-Dopenal=enabled
-Dsdl2=enabled
-Dsdl2-audio=enabled
-Dsdl2-video=enabled
-Dsdl2-gamepad=enabled
)
arch-meson "${pkgname}" build "${_meson_options[@]}"
meson compile -C build
}
check() {
meson test -C build
}
package() {
depends+=('libasound.so' 'libavcodec.so' 'libavdevice.so' 'libavfilter.so'
'libavformat.so' 'libavutil.so' 'libdisplay-info.so' 'libswresample.so' 'libswscale.so'
'libjack.so' 'liblcms2.so' 'libarchive.so' 'libass.so' 'libbluray.so'
'libjpeg.so' 'libplacebo.so' 'libpulse.so' 'libva.so' 'libva-drm.so'
'libva-wayland.so' 'libva-x11.so' 'libxkbcommon.so' 'librubberband.so')
meson install -C build --destdir "${pkgdir}"
# delete private entries only required for static linking
sed -i -e '/Requires.private/d' -e '/Libs.private/d' "${pkgdir}"/usr/lib/pkgconfig/mpv.pc
install -m0644 "${pkgname}"/DOCS/{encoding.rst,tech-overview.txt} \
"${pkgdir}"/usr/share/doc/mpv
install -m0644 "${pkgname}"/TOOLS/{umpv,mpv_identify.sh,stats-conv.py,idet.sh,lua/*} \
-D -t "${pkgdir}"/usr/share/mpv/scripts
}
source+=('fix_wayland_inhibit_kde.patch' 'ffmpeg8.patch')
sha256sums+=('3d3eda845b8486d7512ad2bbe242f94eaae7a34d5edafff31f3200afb82f3c91' '9596f2390a120a54d1bc48a3937d6f236feab0c4cecaae8a0d3dec59a38e29b3')
source[0]=$pkgname.tar.xz
sha256sums[0]='SKIP'