summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD278
1 files changed, 159 insertions, 119 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 0beb91d17be0..c4c8f354caac 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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