git: a04b58b02e08 - main - multimedia/mpv: fork 0.34 into a pinned port

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Sat, 12 Nov 2022 20:26:06 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a04b58b02e081a6909089d55af5d0b30a349a7b1

commit a04b58b02e081a6909089d55af5d0b30a349a7b1
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2022-10-16 15:00:55 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2022-11-12 20:21:29 +0000

    multimedia/mpv: fork 0.34 into a pinned port
---
 multimedia/Makefile                          |   1 +
 multimedia/mpv/Makefile                      |   2 +
 multimedia/mpv034/Makefile                   | 220 +++++++++++++++++++++++++++
 multimedia/mpv034/distinfo                   |  21 +++
 multimedia/mpv034/files/patch-libmpv_mpv.def |  15 ++
 multimedia/mpv034/pkg-descr                  |   5 +
 multimedia/mpv034/pkg-plist                  |  26 ++++
 7 files changed, 290 insertions(+)

diff --git a/multimedia/Makefile b/multimedia/Makefile
index 133aeb209116..e99ae08d64d0 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -244,6 +244,7 @@
     SUBDIR += mplex
     SUBDIR += mpv
     SUBDIR += mpv-mpris
+    SUBDIR += mpv034
     SUBDIR += mpvpaper
     SUBDIR += msdl
     SUBDIR += msopenh264
diff --git a/multimedia/mpv/Makefile b/multimedia/mpv/Makefile
index 2ad311ddb982..f0da9faf5c21 100644
--- a/multimedia/mpv/Makefile
+++ b/multimedia/mpv/Makefile
@@ -51,6 +51,8 @@ CONFIGURE_ARGS=	--docdir="${EXAMPLESDIR}" \
 		--disable-vapoursynth \
 		--enable-libmpv-shared
 
+CONFLICTS_INSTALL=	${PORTNAME}034
+
 OPTIONS_DEFINE=		ARCHIVE DOCS LCMS2 MANPAGES MUJS TEST UCHARDET EXAMPLES ZIMG
 OPTIONS_DEFAULT=	ARCHIVE DVDNAV LUA MANPAGES NVDEC OPENGL UCHARDET \
 			V4L VAAPI VDPAU VULKAN WAYLAND X11 YTDLP
diff --git a/multimedia/mpv034/Makefile b/multimedia/mpv034/Makefile
new file mode 100644
index 000000000000..0902a5dc636f
--- /dev/null
+++ b/multimedia/mpv034/Makefile
@@ -0,0 +1,220 @@
+PORTNAME=	mpv
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.34.1
+CATEGORIES=	multimedia audio wayland
+MASTER_SITES=	https://waf.io/:waf
+PKGNAMESUFFIX=	034
+DISTFILES=	${WAF_RELEASE}${EXTRACT_SUFX}:waf
+
+PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES+=	b030cfe05f58.patch:-p1 # https://github.com/mpv-player/mpv/pull/9440
+PATCHFILES+=	edf0039d7621.patch:-p1 # https://github.com/mpv-player/mpv/pull/9298
+PATCHFILES+=	5319731526fb.patch:-p1 # https://github.com/mpv-player/mpv/pull/9298
+PATCHFILES+=	82390d212123.patch:-p1 # https://github.com/mpv-player/mpv/pull/9587
+PATCHFILES+=	22b0bac28e6c.patch:-p1 # https://github.com/mpv-player/mpv/pull/9587
+PATCHFILES+=	b7a71ea70671.patch:-p1 # https://github.com/mpv-player/mpv/pull/9734
+PATCHFILES+=	09343bc86e8b.patch:-p1 # https://github.com/mpv-player/mpv/pull/9734
+PATCHFILES+=	bc9805c71a67.patch:-p1 # https://github.com/mpv-player/mpv/pull/9830
+
+MAINTAINER=	multimedia@FreeBSD.org
+COMMENT=	Free and open-source general-purpose video player
+WWW=		https://mpv.io
+
+LICENSE=	GPLv2+ LGPL21+
+LICENSE_COMB=	multi
+
+BUILD_DEPENDS=	ffmpeg>=4.0.2,1:multimedia/ffmpeg
+LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
+		libass.so:multimedia/libass
+
+USES=		compiler:c11 cpe desktop-file-utils iconv jpeg localbase:ldflags \
+		pkgconfig python:build tar:bz2 waf
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	mpv-player
+
+# Keep in sync with bootstrap.py to avoid regressions
+WAF_CMD=	${WRKDIR}/${WAF_RELEASE}/waf-light
+WAF_RELEASE=	waf-2.0.20
+
+CONFIGURE_ENV=	BIN_PYTHON="${PYTHON_CMD}"
+CONFIGURE_ARGS=	--docdir="${EXAMPLESDIR}" \
+		--htmldir="${DOCSDIR}/html" \
+		--mandir="${MANPREFIX}/man" \
+		--disable-debug-build \
+		--disable-optimize \
+		--disable-pdf \
+		--disable-rubberband \
+		--disable-shaderc \
+		--disable-vapoursynth \
+		--enable-libmpv-shared
+
+CONFLICTS_INSTALL=	${PORTNAME}
+PORTSCOUT=	limit:^0\.34
+
+OPTIONS_DEFINE=		ARCHIVE DOCS LCMS2 MANPAGES MUJS TEST UCHARDET EXAMPLES ZIMG
+OPTIONS_DEFAULT=	ARCHIVE DVDNAV LUA MANPAGES NVDEC OPENGL UCHARDET \
+			V4L VAAPI VDPAU VULKAN WAYLAND X11 YTDLP
+OPTIONS_GROUP=		IN VO AO
+OPTIONS_GROUP_IN=	CDIO DVDNAV LIBBLURAY V4L
+OPTIONS_GROUP_VO=	CACA NVDEC OPENGL SIXEL VAAPI VDPAU VULKAN WAYLAND X11
+OPTIONS_GROUP_AO=	ALSA JACK OPENAL PIPEWIRE PULSEAUDIO SDL SNDIO
+OPTIONS_RADIO=		YOUTUBE
+OPTIONS_RADIO_YOUTUBE=	YTDL YTDLP
+OPTIONS_SINGLE=		LUA
+OPTIONS_SINGLE_LUA=	LUA LUAJIT LUA_NONE
+OPTIONS_SUB=		yes
+
+DVDNAV_DESC=		DVD menu navigation
+LUA_NONE_DESC=		Disable Lua scripting language support
+LUAJIT_DESC=		Use LuaJIT instead of Lua scripting language support
+MUJS_DESC=		Use MuJS for Javascript language support
+NVDEC_DESC=		NVIDIA decoder with CUDA support
+PIPEWIRE_DESC=		Pipewire sound server support
+SIXEL_DESC=		Sixel graphics support
+UCHARDET_DESC=		Guess subtitle encoding via uchardet
+VULKAN_DESC=		Vulkan output support
+YTDLP_DESC=		Install yt-dlp (youtube-dl fork)
+YTDL_DESC=		Install youtube-dl
+ZIMG_DESC=		High quality software scaling via "z" library
+IN_DESC=		Input
+VO_DESC=		Video Output
+AO_DESC=		Audio Output
+
+ALSA_LIB_DEPENDS=		libasound.so:audio/alsa-lib
+ALSA_CONFIGURE_OFF=		--disable-alsa
+
+ARCHIVE_USES=			libarchive
+ARCHIVE_CONFIGURE_ON=		--enable-libarchive
+
+CACA_LIB_DEPENDS=		libcaca.so:graphics/libcaca
+CACA_CONFIGURE_OFF=		--disable-caca
+
+CDIO_LIB_DEPENDS=		libcdio_paranoia.so:sysutils/libcdio-paranoia
+CDIO_CONFIGURE_ON=		--enable-cdda
+
+DOCS_BUILD_DEPENDS=		rst2html:textproc/py-docutils
+DOCS_CONFIGURE_ON=		--enable-html
+
+DVDNAV_LIB_DEPENDS=		libdvdnav.so:multimedia/libdvdnav \
+				libdvdread.so:multimedia/libdvdread
+DVDNAV_CONFIGURE_ON=		--enable-dvdnav
+
+JACK_LIB_DEPENDS=		libjack.so:audio/jack
+JACK_CONFIGURE_OFF=		--disable-jack
+
+LCMS2_LIB_DEPENDS=		liblcms2.so:graphics/lcms2
+LCMS2_CONFIGURE_OFF=		--disable-lcms2
+
+LIBBLURAY_LIB_DEPENDS=		libbluray.so:multimedia/libbluray
+LIBBLURAY_CONFIGURE_ON=		--enable-libbluray
+LIBBLURAY_CONFIGURE_OFF=	--disable-libbluray
+
+LUA_USES=			lua:51-52
+LUA_CONFIGURE_ON=		--lua=${LUA_VER_STR}fbsd
+
+LUAJIT_USES=			luajit
+LUAJIT_CONFIGURE_ON=		--lua=luajit
+
+LUA_NONE_CONFIGURE_ON=		--disable-lua
+
+MANPAGES_BUILD_DEPENDS=		rst2man:textproc/py-docutils
+MANPAGES_CONFIGURE_OFF=		--disable-manpage
+
+MUJS_LIB_DEPENDS=		libmujs.so:lang/mujs
+MUJS_CONFIGURE_ON=		--enable-javascript
+MUJS_CONFIGURE_OFF=		--disable-javascript
+
+NVDEC_BUILD_DEPENDS=		${LOCALBASE}/include/ffnvcodec/dynlink_loader.h:multimedia/ffnvcodec-headers
+NVDEC_CONFIGURE_OFF=		--disable-cuda-hwaccel
+
+OPENAL_CONFIGURE_ENABLE=	openal
+OPENAL_USES=			openal
+OPENAL_LDFLAGS=			${_OPENAL_LDFLAGS_${ARCH}}
+_OPENAL_LDFLAGS_i386=		-Wl,-znotext
+
+OPENGL_USES=			gl
+OPENGL_USE=			GL=egl,gbm
+OPENGL_CONFIGURE_OFF=		--disable-gl
+
+PIPEWIRE_LIB_DEPENDS=		libpipewire-0.3.so:multimedia/pipewire
+PIPEWIRE_CONFIGURE_OFF=		--disable-pipewire
+
+PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio
+PULSEAUDIO_CONFIGURE_OFF=	--disable-pulse
+
+SDL_USES=			sdl
+SDL_USE=			SDL=sdl2
+SDL_CONFIGURE_ON=		--enable-sdl2
+
+SIXEL_LIB_DEPENDS=		libsixel.so:graphics/libsixel
+SIXEL_CONFIGURE_OFF=		--disable-sixel
+
+SNDIO_LIB_DEPENDS=		libsndio.so:audio/sndio
+SNDIO_CONFIGURE_ON=		--enable-sndio
+SNDIO_CONFIGURE_OFF=		--disable-sndio
+
+TEST_CONFIGURE_ON=		--enable-tests
+
+UCHARDET_LIB_DEPENDS=		libuchardet.so:textproc/uchardet
+UCHARDET_CONFIGURE_OFF=		--disable-uchardet
+
+V4L_BUILD_DEPENDS=		${LOCALBASE}/include/linux/dvb/dmx.h:multimedia/v4l_compat
+V4L_CONFIGURE_ON=		--enable-dvbin
+
+VAAPI_LIB_DEPENDS=		libva.so:multimedia/libva
+VAAPI_CONFIGURE_OFF=		--disable-vaapi
+
+VDPAU_LIB_DEPENDS=		libvdpau.so:multimedia/libvdpau
+VDPAU_CONFIGURE_OFF=		--disable-vdpau
+
+VULKAN_BUILD_DEPENDS=		${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers
+VULKAN_LIB_DEPENDS=		libplacebo.so:graphics/libplacebo \
+				libvulkan.so:graphics/vulkan-loader
+VULKAN_CONFIGURE_OFF=		--disable-vulkan --disable-libplacebo
+
+WAYLAND_BUILD_DEPENDS=		wayland-protocols>=1.15:graphics/wayland-protocols \
+				${LOCALBASE}/include/linux/input-event-codes.h:devel/evdev-proto
+WAYLAND_LIB_DEPENDS=		libwayland-client.so:graphics/wayland \
+				libwayland-cursor.so:graphics/wayland \
+				libxkbcommon.so:x11/libxkbcommon
+WAYLAND_CONFIGURE_OFF=		--disable-wayland
+WAYLAND_IMPLIES=		OPENGL
+
+X11_USES=			gnome xorg
+X11_USE=			XORG=x11,xext,xinerama,xorgproto,xrandr,xscrnsaver,xv,xxf86vm
+X11_CONFIGURE_OFF=		--disable-x11
+
+YTDLP_RUN_DEPENDS=		yt-dlp:www/yt-dlp
+
+YTDL_RUN_DEPENDS=		youtube-dl:www/youtube_dl
+
+ZIMG_LIB_DEPENDS=		libzimg.so:graphics/sekrit-twc-zimg
+ZIMG_CONFIGURE_OFF=		--disable-zimg
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MVAAPI} && ${PORT_OPTIONS:MWAYLAND}
+CONFIGURE_ARGS+=	--enable-vaapi-wayland
+LIB_DEPENDS+=		libva-wayland.so:multimedia/libva
+.else
+CONFIGURE_ARGS+=	--disable-vaapi-wayland
+.endif
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|/pkgconfig/mpv.pc|data/pkgconfig/mpv.pc|g' \
+		${WRKSRC}/wscript_build.py
+
+post-patch-MANPAGES-on:
+	@${FIND} ${WRKSRC}/DOCS/man -name '*.rst' | ${XARGS} ${REINPLACE_CMD} \
+		-e 's|/usr/local|${PREFIX}|g'
+
+pre-install-TEST-on:
+	@(cd ${WRKSRC} && ${SETENV} ${TEST_ENV} build/mpv --unittest=all-simple)
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/mpv
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmpv.so
+
+.include <bsd.port.mk>
diff --git a/multimedia/mpv034/distinfo b/multimedia/mpv034/distinfo
new file mode 100644
index 000000000000..7ef6c96d685f
--- /dev/null
+++ b/multimedia/mpv034/distinfo
@@ -0,0 +1,21 @@
+TIMESTAMP = 1641246801
+SHA256 (waf-2.0.20.tar.bz2) = cce635c2d1a0f93b4f5b811e0452a35b8066e8ccd78632447f5be24c4c3f1a63
+SIZE (waf-2.0.20.tar.bz2) = 682619
+SHA256 (mpv-player-mpv-v0.34.1_GH0.tar.gz) = 32ded8c13b6398310fa27767378193dc1db6d78b006b70dbcbd3123a1445e746
+SIZE (mpv-player-mpv-v0.34.1_GH0.tar.gz) = 3288356
+SHA256 (b030cfe05f58.patch) = df7590e1d27e8e6c0e326781723ee87ef7c3fdf5a88438c8c29bb729a911ff74
+SIZE (b030cfe05f58.patch) = 5270
+SHA256 (edf0039d7621.patch) = 8c7e75d9e2a0ae2622fd23df8121d756fc919f7f9733edd7c59c2cc1900a3507
+SIZE (edf0039d7621.patch) = 12278
+SHA256 (5319731526fb.patch) = 29364fa31f184a5f6d59bbcceea0a7c9269ca4af08a34f93eccd283254709a68
+SIZE (5319731526fb.patch) = 6629
+SHA256 (82390d212123.patch) = b47dca6672ff2b03ee694a326978d592756fb83f23b90dd7bb8ddf7d87b3b445
+SIZE (82390d212123.patch) = 17920
+SHA256 (22b0bac28e6c.patch) = 12c49edd4e0a33130275f26703c14e013e46f316dd2b39b8e606fdc3ef60b01f
+SIZE (22b0bac28e6c.patch) = 1726
+SHA256 (b7a71ea70671.patch) = 0a4f1e8fc0f2d482fb8b919b50a30c4852af473b79da3dca34157a4f51eb6e94
+SIZE (b7a71ea70671.patch) = 8174
+SHA256 (09343bc86e8b.patch) = 2516860fba5492aaa76b44ea15d32b39d4326ca5fe8611803ed845b38b7cca70
+SIZE (09343bc86e8b.patch) = 1389
+SHA256 (bc9805c71a67.patch) = 7988418e51537391c34b415f2a629e064716bd49835af5ca660966ddcbe5a49b
+SIZE (bc9805c71a67.patch) = 1909
diff --git a/multimedia/mpv034/files/patch-libmpv_mpv.def b/multimedia/mpv034/files/patch-libmpv_mpv.def
new file mode 100644
index 000000000000..cc952d3dc4e3
--- /dev/null
+++ b/multimedia/mpv034/files/patch-libmpv_mpv.def
@@ -0,0 +1,15 @@
+--- libmpv/mpv.def.orig	2017-12-25 20:44:17 UTC
++++ libmpv/mpv.def
+@@ -1,3 +1,5 @@
++__progname
++environ
+ mpv_client_api_version
+ mpv_client_name
+ mpv_command
+@@ -43,4 +45,4 @@ mpv_terminate_destroy
+ mpv_unobserve_property
+ mpv_wait_async_requests
+ mpv_wait_event
+-mpv_wakeup
+\ No newline at end of file
++mpv_wakeup
diff --git a/multimedia/mpv034/pkg-descr b/multimedia/mpv034/pkg-descr
new file mode 100644
index 000000000000..b069ed8a5b43
--- /dev/null
+++ b/multimedia/mpv034/pkg-descr
@@ -0,0 +1,5 @@
+Mpv is based on the MPlayer and mplayer2 projects which it greatly improves.
+It supports a wide variety of video file formats, audio and video codecs, and
+subtitle types. Special input URL types are available to read input from
+a variety of sources other than disk files. Depending on platform, a variety of
+different video and audio output methods are supported.
diff --git a/multimedia/mpv034/pkg-plist b/multimedia/mpv034/pkg-plist
new file mode 100644
index 000000000000..7d8ff1f18df1
--- /dev/null
+++ b/multimedia/mpv034/pkg-plist
@@ -0,0 +1,26 @@
+bin/mpv
+%%ETCDIR%%/encoding-profiles.conf
+include/mpv/client.h
+include/mpv/opengl_cb.h
+include/mpv/render.h
+include/mpv/render_gl.h
+include/mpv/stream_cb.h
+lib/libmpv.so
+lib/libmpv.so.1
+lib/libmpv.so.1.109.0
+libdata/pkgconfig/mpv.pc
+%%MANPAGES%%man/man1/mpv.1.gz
+share/applications/mpv.desktop
+share/bash-completion/completions/mpv
+share/icons/hicolor/128x128/apps/mpv.png
+share/icons/hicolor/16x16/apps/mpv.png
+share/icons/hicolor/32x32/apps/mpv.png
+share/icons/hicolor/64x64/apps/mpv.png
+share/icons/hicolor/scalable/apps/mpv.svg
+share/icons/hicolor/symbolic/apps/mpv-symbolic.svg
+%%PORTDOCS%%%%DOCSDIR%%/html/mpv.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/input.conf
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mplayer-input.conf
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mpv.conf
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/restore-old-bindings.conf
+share/zsh/site-functions/_mpv