File PKGBUILD of Package mpv-build-git

# Maintainer: Gustavo Alvarez <sl1pkn07@gmail.com>

pkgname=mpv-build-git
pkgver=v0.27.0.548.g3c4667c862
pkgrel=1
pkgdesc="Video player based on MPlayer/mplayer2 (uses statically linked ffmpeg). (GIT version)"
arch=('x86_64')
depends=(
  'gcc-libs'
  'glibc'
  'bash'
  'fribidi' 'libfribidi.so'
  'fontconfig' 'libfontconfig.so'
  'freetype2' 'libfreetype.so'
  'harfbuzz' 'libharfbuzz.so'
  'libunibreak'
  'gnutls'
  'jack' 'libjack.so'
  'lcms2' 'liblcms2.so'
  'libarchive' 'libarchive.so'
  'libbluray' 'libbluray.so'
  'libdvdread'
  'libdvdnav'
  'libbs2b' 'libbs2b.so'
  'libcaca'
  'libcdio'
  'libcdio-paranoia'
  'dav1d' 'libdav1d.so'
  'libdovi' 'libdovi.so'
  'libgme'
  'libmysofa'
  'libpulse' 'libpulse.so'
  'shaderc' 'libshaderc_shared.so'
  'libsixel'
  'libsoxr'
  'libssh' 'libssh.so'
  'libva' 'libva.so' 'libva-drm.so' 'libva-wayland.so' 'libva-x11.so'
  'libvdpau'
  'libxkbcommon' 'libxkbcommon.so'
  'libx11'
  'libxcb'
  'libxext'
  'libxpresent'
  'libxrandr'
  'libxss'
  'libxv'
  'zimg' 'libzimg.so'
  'luajit'
  'mujs'
  'openal' 'libopenal.so'
  'rubberband' 'librubberband.so'
  'libpipewire' 'libpipewire-0.3.so'
  'sdl2'
  'sndio' 'libsndio.so'
  'uchardet'
  'v4l-utils'
  'davs2'
  'alsa-lib' 'libasound.so'
  'libglvnd' 'libEGL.so' 'libGL.so'
  'glslang'
  'libdrm'
  'bzip2' 'libbz2.so'
  'libunwind'
  'xz' 'liblzma.so'
  'libmysofa' 'libmysofa.so'
  'wayland' 'libwayland-client.so' 'libwayland-cursor.so' 'libwayland-egl.so'
  'libjpeg-turbo' 'libjpeg.so'
  'vulkan-icd-loader' 'libvulkan.so'
  'libdisplay-info' 'libdisplay-info.so'
  'mesa'
  'zlib' 'libz.so'
  'python'
  'hicolor-icon-theme'
)

license=('GPL2' 'GPL3' 'LGPL3' 'LGPL2.1' 'BSD')
url='http://mpv.io'
makedepends=(
  'git'
  'meson'
  'python-docutils'
  'nasm'
  'ladspa'
  'vulkan-headers'
  'ffnvcodec-headers'
  'wayland-protocols'
  'python-mako'
  'python-jinja'
  'python-markupsafe'
  'nuklear'
  'glad'
  'jbigkit'
  'xxhash'
)
optdepends=(
  'nvidia-utils: for hardware accelerated video decoding with CUDA'
  'youtube-dl: Another way to view youtuve videos with mpv'
  'yt-dlp: Another way to view youtuve videos with mpv'
  'zsh-completions: Additional completion definitions for Zsh users'
  'bash-completion: Additional completion definitions for Bash users'
)
provides=(
  'mpv'
  'libmpv.so'
)
conflicts=('mpv')
options=('!emptydirs' '!lto' '!debug')
source=("mpv-build.tar.xz"
        "mpv-${pkgver}.tar.xz"
        "ffmpeg-git.tar.xz"
        "libass-git.tar.xz"
        'fast_float-git.tar.xz'
        'libplacebo-git.tar.xz')
sha512sums=('SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP')
backup=('etc/mpv/encoding-profiles.conf')

if [ -f /usr/lib/libvapoursynth.so ]; then
  depends+=('vapoursynth')
fi
if [ -f /usr/lib/libavisynth.so.*.*.* ]; then
  depends+=('avisynthplus')
fi

prepare() {
  cd mpv-build
  # use arch-meson
  sed -e 's|meson setup|arch-meson|g' \
      -e 's|-Dbuildtype=release|--auto-features disabled|g' \
      -e '/LDFLAGS=/s/^/#/' \
      -i scripts/{mpv,libplacebo}-config

  ln -s "${srcdir}/mpv-${pkgver}" ./mpv
  ln -s "${srcdir}/ffmpeg-git" ./ffmpeg
  ln -s "${srcdir}/libass-git" ./libass
  ln -s "${srcdir}/fast_float-git" ./fast_float
  ln -s "${srcdir}/libplacebo-git" ./libplacebo
  
  # Set libplacebo/ffmpeg/libass/mpv flags

  _libplacebo_options=(
    '-Dvulkan=enabled'
    '-Dlcms=enabled'
    '-Dd3d11=disabled'
    )

_ffmpeg_options=(
    '--disable-programs'
    '--disable-asm'
    '--enable-libbs2b'
    '--enable-libdav1d'
    '--enable-libgme'
    '--enable-libmysofa'
    '--enable-libsoxr'
    '--enable-libssh'
    '--enable-libjack'
    '--enable-libpulse'
    '--enable-libdavs2'
    '--enable-nonfree'
    '--enable-cuda'
    '--enable-vulkan'
    '--enable-libshaderc'
    '--disable-cuda-llvm'
    )

  _mpv_options=(
    '-Ddefault_library=shared'
    '-Dlibmpv=true'
    '-Dbuild-date=false'

    '-Dcdda=enabled'
    '-Dcplugins=enabled'
    '-Ddvbin=enabled'
    '-Ddvdnav=enabled'
    '-Diconv=enabled'
    '-Djavascript=enabled'
    '-Dlcms2=enabled'
    '-Dlibarchive=enabled'
    '-Dlibavdevice=enabled'
    '-Dlibbluray=enabled'
    '-Dlua=luajit'
    '-Drubberband=enabled'
    '-Dsdl2=enabled'
    '-Dsdl2-gamepad=enabled'
    '-Duchardet=enabled'
    '-Dzimg=enabled'
    '-Dzlib=enabled'

    '-Dalsa=enabled'
    '-Djack=enabled'
    '-Dopenal=enabled'
    '-Dpipewire=enabled'
    '-Dpulse=enabled'
    '-Dsdl2-audio=enabled'
    '-Dsndio=enabled'

    '-Dcaca=enabled'
    '-Ddrm=enabled'
    '-Degl=enabled'
    '-Degl-drm=enabled'
    '-Degl-wayland=enabled'
    '-Degl-x11=enabled'
    '-Dgbm=enabled'
    '-Dgl=enabled'
    '-Dgl-x11=enabled'
    '-Djpeg=enabled'
    '-Dsdl2-video=enabled'
    '-Dsixel=enabled'
    '-Dplain-gl=enabled'
    '-Dvdpau=enabled'
    '-Dvdpau-gl-x11=enabled'
    '-Dvaapi=enabled'
    '-Dvaapi-x11=enabled'
    '-Dvaapi-wayland=enabled'
    '-Dvaapi-drm=enabled'
    '-Dvulkan=enabled'
    '-Dwayland=enabled'
    '-Ddmabuf-wayland=enabled'
    '-Dx11=enabled'
    '-Dxv=enabled'
    '-Dcuda-hwaccel=enabled'
    '-Dcuda-interop=enabled'

    '-Dhtml-build=enabled'

    # Fix Build
    '-Dc_link_args=-lstdc++ -lglslang'
    )

if [ -f /usr/lib/libavisynth.so.*.*.* ]; then
   _ffmpeg_options+=('--enable-avisynth')
fi
if [ -f /usr/lib/libvapoursynth.so ]; then
  _ffmpeg_options+=('--enable-vapoursynth')
  _mpv_options+=('-Dvapoursynth=enabled')
fi

  (IFS=$'\n'; echo "${_libplacebo_options[*]}" > libplacebo_options )
  (IFS=$'\n'; echo "${_ffmpeg_options[*]}" > ffmpeg_options )
  (IFS=$'\n'; echo "${_mpv_options[*]}" > mpv_options )

}

build() {
  cd mpv-build
  ./build
}

package() {
  cd mpv-build
  DESTDIR="${pkgdir}" ./install

  install -Dm755 mpv/TOOLS/mpv_identify.sh "${pkgdir}/usr/bin/mpv-identify"
  install -Dm755 mpv/TOOLS/idet.sh "${pkgdir}/usr/bin/mpv-idet"
  install -Dm755 mpv/TOOLS/umpv "${pkgdir}/usr/bin/umpv"

  install -Dm644 mpv/DOCS/encoding.rst "${pkgdir}/usr/share/doc/mpv/encoding.rst"
  install -Dm644 mpv/DOCS/edl-mpv.rst "${pkgdir}/usr/share/doc/mpv/edl-mpv.rst"
  install -Dm644 mpv/DOCS/client-api-changes.rst "${pkgdir}/usr/share/doc/mpv/client-api-changes.rst"
  install -Dm644 mpv/DOCS/contribute.md "${pkgdir}/usr/share/doc/mpv/contribute.md"

  sed 's|/usr/local/etc/mpv.conf|/etc/mpv.conf|g' -i "${pkgdir}/usr/share/doc/mpv/mpv.conf"

  (cd mpv/TOOLS/lua; for i in $(find . -type f); do install -Dm644 "${i}" "${pkgdir}/usr/share/mpv/scripts/${i}"; done)

  install -Dm644 mpv/LICENSE.GPL "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.GPL"
  install -Dm644 mpv/LICENSE.LGPL "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.LGPL"
}
openSUSE Build Service is sponsored by