Files
marfrit-packages/arch/mpv-fourier/PKGBUILD
T
test0r 8275642583
build and publish packages / distcc-avahi-aarch64 (push) Successful in 32s
build and publish packages / lmcp-any (push) Successful in 10s
build and publish packages / lmcp-debian (push) Successful in 5s
build and publish packages / claude-his-any (push) Successful in 7s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 13m39s
build and publish packages / claude-his-debian (push) Successful in 7s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 11s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 1m12s
mpv-fourier pkgrel=8 + workflow: clear corrupt pacman cache before reinstall
Run #73 hit:
  warning: ffmpeg-v4l2-request-fourier-... is up to date -- reinstalling
  File /var/cache/pacman/pkg/ffmpeg-v4l2-request-fourier-...pkg.tar.xz
  is corrupted (invalid or corrupted package (checksum)).

The corrupt cached file is left over from the ccache misadventure
that interrupted earlier builds mid-download. Pacman doesn't auto-
redownload corrupt cached files in this code path. Add a targeted rm
of cached ffmpeg-v4l2-request-fourier-*.pkg.tar.* before the install
so the next pacman -S downloads fresh.

Yak shave count for mpv-fourier-aarch64 to actually run: 6
(pkgrel→4 to outrank stock, [marfrit] config, ffmpeg-v4l2-request
explicit dep, conflict-prompt acceptance, pipefail-friendly printf,
cache rm).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 18:26:07 +00:00

105 lines
3.7 KiB
Bash

# Maintainer: Markus Fritsche <fritsche.markus@gmail.com>
#
# mpv-fourier — mpv with the fourier-umbrella patches. The first patch
# slot exists for the vo_dmabuf_wayland plane-semantics fix per
# marfrit/dmabuf-modifier-triage#1: mpv currently constructs the
# zwp_linux_buffer_params_v1 wl_protocol message with internally
# inconsistent plane semantics on V4L2 stateless decoder dmabufs (per-
# plane fds combined with single-allocation offset for plane 1), causing
# KWin to read the UV chroma plane past-EOF and render solid dark green
# on ohm (RK3566 + hantro G1 + Mali-G52). The patch is not yet written —
# this scaffold prepares the shipping path for when iter1 lands.
#
# Build configuration mirrors stock arch's mpv PKGBUILD (which builds
# successfully). Key detail: --auto-features auto is required because
# arch-meson defaults to --auto-features enabled, which makes mpv's
# platform-specific features (win32-threads, etc.) required and fails
# the build on Linux.
#
# Campaign: ~/src/dmabuf-modifier-triage/ (Phase 0 closed 2026-05-08)
# Upstream: https://github.com/mpv-player/mpv
pkgname=mpv-fourier
_upstreampkg=mpv
epoch=1
pkgver=0.41.0
pkgrel=8
pkgdesc='mpv with fourier-umbrella patches (vo_dmabuf_wayland plane-semantics fix slot)'
arch=('aarch64')
url='https://mpv.io/'
license=('GPL-2.0-or-later AND LGPL-2.1-or-later')
depends=(
alsa-lib desktop-file-utils ffmpeg-v4l2-request-fourier 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
vulkan-headers
)
optdepends=('yt-dlp: for video-sharing websites playback')
provides=("${_upstreampkg}=${pkgver}" 'libmpv.so')
conflicts=("${_upstreampkg}")
replaces=("${_upstreampkg}")
options=('!emptydirs')
source=(
"${_upstreampkg}-${pkgver}.tar.gz::https://github.com/mpv-player/${_upstreampkg}/archive/v${pkgver}/${_upstreampkg}-${pkgver}.tar.gz"
)
sha256sums=(
'ee21092a5ee427353392360929dc64645c54479aefdb5babc5cfbb5fad626209'
)
prepare() {
cd "${_upstreampkg}-${pkgver}"
# Patch slot — iter1 of dmabuf-modifier-triage will produce the actual
# vo_dmabuf_wayland.c plane-semantics fix and add it as 0001-... here.
# When the patch lands, add it to source=() above + sha256sums=() and
# uncomment the patch -p1 below.
#
# patch -p1 < "${srcdir}/0001-vo_dmabuf_wayland-plane-semantics.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-audio=enabled
-Dsdl2-video=enabled
-Dsdl2-gamepad=enabled
)
arch-meson "${_upstreampkg}-${pkgver}" build "${_meson_options[@]}"
meson compile -C build
}
package() {
meson install -C build --destdir "${pkgdir}"
# Drop private linkage entries (they only matter for static linking).
sed -i -e '/Requires.private/d' -e '/Libs.private/d' \
"${pkgdir}/usr/lib/pkgconfig/mpv.pc"
install -m0644 "${_upstreampkg}-${pkgver}/DOCS/encoding.rst" \
"${_upstreampkg}-${pkgver}/DOCS/tech-overview.txt" \
-t "${pkgdir}/usr/share/doc/mpv/"
install -m0644 "${_upstreampkg}-${pkgver}"/TOOLS/{umpv,mpv_identify.sh,stats-conv.py,idet.sh,lua/*} \
-D -t "${pkgdir}/usr/share/mpv/scripts/"
}