diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 278 |
1 files changed, 159 insertions, 119 deletions
@@ -1,122 +1,157 @@ -# Maintainer: +# Maintainer: xiota / aur.chaotic.cx # Contributor: Benjamin Landis <bmlandis2010@gmail.com> -_pkgname="mpv" -pkgname="$_pkgname-vapoursynth-git" -pkgver=0.36.0.r30.ga2dd78fbc0 +# options +if [ "${_srcinfo::1}" == "t" ] ; then + : ${_autoupdate:=false} +elif [ -z "$_pkgver" ] ; then + : ${_autoupdate:=true} +else + : ${_autoupdate:=false} +fi + +: ${_build_git:=true} + +[[ "${_build_git::1}" == "t" ]] && _pkgtype+="-git" + +# basic info +_gitname="mpv" +_pkgname="$_gitname-vapoursynth" +pkgname="$_pkgname${_pkgtype:-}" +pkgver=0.37.0.r114.g17be6e1990 pkgrel=1 -pkgdesc='A free, open source, and cross-platform media player (with Vapoursynth enabled)' -arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') -license=('GPL3') +pkgdesc='a free, open source, and cross-platform media player' url='https://github.com/mpv-player/mpv' +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') +license=('GPL-2.0-or-later') + +# main package +_main_package() { + depends=( + 'libarchive' + 'libcdio-paranoia' + 'libdvdnav' + 'libxkbcommon' + 'libxpresent' + 'libxrandr' + 'libxss' + 'luajit' + 'mujs' + 'rubberband' + 'uchardet' + 'vapoursynth' + + ## implicit + #alsa-lib + #bash + #gcc-libs + #glibc + #hicolor-icon-theme + #lcms2 + #libass + #libbluray + #libcdio + #libdrm + #libglvnd + #libjpeg-turbo + #libpipewire + #libpulse + #libva + #libvdpau + #libx11 + #libxext + #libxv + #mesa + #pipewire-jack + #vulkan-icd-loader + #wayland + #zimg + #zlib + ) + makedepends=( + 'ffnvcodec-headers' + 'git' + 'ladspa' + 'meson' + 'python-docutils' + 'vulkan-headers' + 'wayland-protocols' + ) + optdepends=( + 'yt-dlp: for video-sharing websites playback' + 'youtube-dl: for video-sharing websites playback' + ) -depends=( - 'vapoursynth' - - # extra/mpv - 'alsa-lib' - 'desktop-file-utils' - 'ffmpeg' - 'glibc' - 'hicolor-icon-theme' - 'jack' - 'lcms2' - 'libarchive' - 'libarchive.so' - 'libasound.so' - 'libass' - 'libass.so' - 'libavcodec.so' - 'libavdevice.so' - 'libavfilter.so' - 'libavformat.so' - 'libavutil.so' - 'libbluray' - 'libbluray.so' - 'libcdio' - 'libcdio-paranoia' - 'libdrm' - 'libdvdnav' - 'libdvdread' - 'libegl' - 'libgl' - 'libglvnd' - 'libjack.so' - 'libjpeg' - 'libjpeg.so' - 'liblcms2.so' - 'libpipewire' - 'libplacebo' - 'libplacebo.so' - 'libpulse' - 'libpulse.so' - 'librubberband.so' - 'libshaderc_shared.so' - 'libswresample.so' - 'libswscale.so' - 'libva' - 'libva-drm.so' - 'libva-wayland.so' - 'libva-x11.so' - 'libva.so' - 'libvdpau' - 'libx11' - 'libxext' - 'libxinerama' - 'libxkbcommon' - 'libxkbcommon.so' - 'libxpresent' - 'libxrandr' - 'libxss' - 'libxv' - 'luajit' - 'mesa' - 'mujs' - 'rubberband' - 'shaderc' - 'uchardet' - 'vulkan-icd-loader' - 'wayland' - 'zlib' -) -makedepends=( - # extra/mpv - 'ffnvcodec-headers' - 'git' - 'ladspa' - 'meson' - 'python-docutils' - 'vulkan-headers' - 'wayland-protocols' -) - -optdepends=( - 'yt-dlp: for video-sharing websites playback' - 'youtube-dl: for video-sharing websites playback' -) - -provides=( - 'libmpv.so' - 'mpv' -) -conflicts=('mpv') - -options=('!emptydirs') -validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 <sfan5@live.de> - -source=( - "$_pkgname"::"git+$url" -) -sha256sums=( - 'SKIP' -) - -pkgver() { - cd "$srcdir/$_pkgname" - - git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' + provides=("mpv=${pkgver%%.r*}") + conflicts=('mpv') + + options=('!emptydirs') + validpgpkeys=('145077D82501AA20152CACCE8D769208D5E31419') # sfan5 <sfan5@live.de> + + if [ x"$pkgname" == x"$_pkgname" ] ; then + _main_stable + else + _main_git + fi } +# stable package +_main_stable() { + : ${_pkgver:=${pkgver%%.r*}} + + depends+=( + 'ffmpeg' + 'libplacebo' + ) + + _pkgsrc="$_gitname" + source=("$_pkgsrc"::"git+$url.git#tag=v$_pkgver") + sha256sums=('SKIP') + + prepare() { + cd "$_pkgsrc" + + if [[ "${_autoupdate::1}" != "t" ]] ; then + return + fi + + local _tag=$(git tag | grep -Ev '^.*[A-Za-z]{2}.*$' | sort -V | tail -1) + _pkgver="${_tag#v}" + + if [[ "${_pkgver:?}" != "${pkgver%%.r*}" ]] ; then + git checkout -f "$_tag" + git describe --long --tags + fi + } + + pkgver() { + echo "${_pkgver:?}" + } +} + +# git package +_main_git() { + depends+=( + 'ffmpeg-git' + 'libplacebo-git' + ) + + _pkgsrc="$_gitname" + source=("$_pkgsrc"::"git+$url.git") + sha256sums=('SKIP') + + pkgver() ( + cd "$_pkgsrc" + local _pkgver=$( + git describe --long --tags --exclude='*[a-zA-Z][a-zA-Z]*' 2>/dev/null \ + | sed -E 's/^v//;s/([^-]*-g)/r\1/;s/-/./g' + ) + + echo "${_pkgver:?}" + ) +} + +# common functions build() { local _meson_options=( --auto-features auto @@ -133,7 +168,7 @@ build() { -Dvapoursynth=enabled ) - arch-meson "$_pkgname" build "${_meson_options[@]}" + arch-meson "$_pkgsrc" build "${_meson_options[@]}" meson compile -C build } @@ -143,14 +178,19 @@ check() { } package() { - meson install -C build --destdir "$pkgdir" + provides+=('libmpv.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" + sed -i -e '/Requires.private/d' -e '/Libs.private/d' "${pkgdir:?}/usr/lib/pkgconfig/mpv.pc" - install -Dm0644 "$_pkgname/DOCS"/{encoding.rst,tech-overview.txt} \ - -t "$pkgdir/usr/share/doc/mpv" + install -Dm0644 "$_pkgsrc/DOCS"/{encoding.rst,tech-overview.txt} \ + -t "${pkgdir:?}/usr/share/doc/mpv" - install -Dm0644 "$_pkgname/TOOLS/lua"/* \ - -t "$pkgdir/usr/share/mpv/scripts" + install -Dm0644 "$_pkgsrc/TOOLS/lua"/* \ + -t "${pkgdir:?}/usr/share/mpv/scripts" } + +# execute +_main_package |