Convert the port over to using Meson and add zimg support while here.
Index: Makefile
===================================================================
RCS file: /home/cvs/ports/multimedia/mpv/Makefile,v
retrieving revision 1.85
diff -u -p -u -p -r1.85 Makefile
--- Makefile 20 Nov 2022 07:22:59 -0000 1.85
+++ Makefile 21 Nov 2022 01:34:27 -0000
@@ -3,7 +3,7 @@ COMMENT = movie player based on MPlayer
GH_ACCOUNT = mpv-player
GH_PROJECT = mpv
GH_TAGNAME = v0.35.0
-REVISION = 0
+REVISION = 1
SHARED_LIBS += mpv 1.0 # 2.0
@@ -11,28 +11,22 @@ CATEGORIES = multimedia x11
HOMEPAGE = https://mpv.io/
-WAF = ${WRKSRC}/waf-2.0.24
-MASTER_SITES0 = https://waf.io/
-DISTFILES = ${GH_DISTFILE} ${WAF:T}:0
-EXTRACT_ONLY = ${DISTNAME}${EXTRACT_SUFX}
-
# GPLv2+
PERMIT_PACKAGE = Yes
-WANTLIB += EGL GL SDL2 X11 X11-xcb Xau Xdmcp Xext Xfixes Xinerama Xpresent
-WANTLIB += Xrandr Xrender Xss Xv Xxf86vm archive ass avcodec avdevice
-WANTLIB += avfilter avformat avresample avutil bluray c cdio cdio_cdda
-WANTLIB += cdio_paranoia drm dvdnav dvdread epoxy expat fontconfig
-WANTLIB += freetype fribidi gbm glib-2.0 graphite2 harfbuzz iconv
-WANTLIB += intl jpeg lcms2 ${MODLUA_WANTLIB} m pcre2-8 placebo postproc
-WANTLIB += pthread sndio swresample swscale udfread xcb xcb-dri2
-WANTLIB += xcb-glx xml2 z
+WANTLIB += EGL SDL2 X11 Xext Xinerama Xpresent Xrandr Xss Xv archive
+WANTLIB += ass avcodec avdevice avfilter avformat avutil bluray
+WANTLIB += c cdio cdio_cdda cdio_paranoia dvdnav iconv jpeg lcms2
+WANTLIB += ${MODLUA_WANTLIB} m placebo pthread sndio swresample
+WANTLIB += swscale z zimg
-MODULES = lang/lua \
+MODULES = devel/meson \
+ lang/lua \
lang/python
COMPILER = base-clang ports-gcc
COMPILER_LANGS = c
+
DEBUG_PACKAGES = ${BUILD_PACKAGES}
BUILD_DEPENDS = audio/ladspa \
@@ -43,10 +37,11 @@ LIB_DEPENDS = archivers/libarchive \
audio/libcdio-paranoia \
converters/libiconv \
devel/sdl2 \
- graphics/ffmpeg>=4.1.1 \
+ graphics/ffmpeg \
graphics/jpeg \
graphics/lcms2 \
graphics/libplacebo \
+ graphics/zimg \
multimedia/libass \
multimedia/libbluray \
multimedia/libdvdnav
@@ -57,69 +52,84 @@ RUN_DEPENDS = devel/desktop-file-utils
x11/gtk+3,-guic
SEPARATE_BUILD = Yes
-CONFIGURE_ARGS = --confloaddir=${SYSCONFDIR}/mpv \
- --confdir=${LOCALBASE}/share/examples/mpv \
- --mandir=${LOCALBASE}/man \
- --docdir=${LOCALBASE}/share/examples/mpv \
- --lua="${MODLUA_DEP_VERSION}obsd" \
- --enable-cdda \
- --enable-dvdnav \
- --enable-libmpv-shared \
- --enable-sdl2 \
- --enable-sndio \
- --disable-alsa \
- --disable-caca \
- --disable-cuda-hwaccel \
- --disable-egl-drm \
- --disable-gl-wayland \
- --disable-jack \
- --disable-rubberband \
- --disable-openal \
- --disable-optimize \
- --disable-pipewire \
- --disable-pulse \
- --disable-sixel \
- --disable-sdl2-audio \
- --disable-uchardet \
- --disable-vaapi \
- --disable-vaapi-drm \
- --disable-vaapi-x-egl \
- --disable-vaapi-x11 \
- --disable-vaapi-wayland \
- --disable-vapoursynth \
- --disable-vdpau \
- --disable-vdpau-gl-x11 \
- --disable-videotoolbox-gl \
- --disable-vulkan \
- --disable-wayland
-
-MAKE_ENV = CPPFLAGS="-I${LOCALBASE}/include -I${X11BASE}/include" \
- LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib" \
- LIBmpv_VERSION=${LIBmpv_VERSION}
-MAKE_FLAGS = -o "${WRKBUILD}" -t "${WRKSRC}" --destdir="${DESTDIR}"
-
-NO_TEST = Yes
-
-DO_WAF = cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MODPY_BIN} \
- ${WAF} ${MAKE_FLAGS}
-SUBST_VARS += LIBmpv_VERSION
+CONFIGURE_ARGS = -Dlua=lua${MODLUA_DEP_VERSION} \
+ -Dcdda=enabled \
+ -Ddvdnav=enabled \
+ -Dlibmpv=true \
+ -Dsdl2=enabled \
+ -Dsndio=enabled \
+ -Dalsa=disabled \
+ -Dandroid-media-ndk=disabled \
+ -Daudiounit=disabled \
+ -Dcaca=disabled \
+ -Dcocoa=disabled \
+ -Dcoreaudio=disabled \
+ -Dcuda-hwaccel=disabled \
+ -Dcuda-interop=disabled \
+ -Dd3d9-hwaccel=disabled \
+ -Dd3d11=disabled \
+ -Dd3d-hwaccel=disabled \
+ -Ddirect3d=disabled \
+ -Degl-android=disabled \
+ -Degl-angle=disabled \
+ -Degl-angle-lib=disabled \
+ -Degl-angle-win32=disabled \
+ -Degl-drm=disabled \
+ -Degl-wayland=disabled \
+ -Dgl-cocoa=disabled \
+ -Dgl-dxinterop=disabled \
+ -Dgl-dxinterop-d3d9=disabled \
+ -Dgl-win32=disabled \
+ -Dios-gl=disabled \
+ -Djack=disabled \
+ -Djavascript=disabled \
+ -Dmacos-10-11-features=disabled \
+ -Dmacos-10-12-2-features=disabled \
+ -Dmacos-10-14-features=disabled \
+ -Dmacos-cocoa-cb=disabled \
+ -Dmacos-media-player=disabled \
+ -Dmacos-touchbar=disabled \
+ -Dopenal=disabled \
+ -Dopensles=disabled \
+ -Doss-audio=disabled \
+ -Dpipewire=disabled \
+ -Dpulse=disabled \
+ -Drpi-mmal=disabled \
+ -Drubberband=disabled \
+ -Dshaderc=disabled \
+ -Dsixel=disabled \
+ -Dswift-build=disabled \
+ -Dsdl2-audio=disabled \
+ -Dspirv-cross=disabled \
+ -Duchardet=disabled \
+ -Dvaapi=disabled \
+ -Dvaapi-drm=disabled \
+ -Dvaapi-x-egl=disabled \
+ -Dvaapi-x11=disabled \
+ -Dvaapi-wayland=disabled \
+ -Dvapoursynth=disabled \
+ -Dvdpau=disabled \
+ -Dvdpau-gl-x11=disabled \
+ -Dvideotoolbox-gl=disabled \
+ -Dvulkan=disabled \
+ -Dwayland=disabled \
+ -Dwin32-internal-pthreads=disabled \
+ -Dwasapi=disabled
-post-patch:
- cp ${DISTDIR}/${WAF:T} ${WAF}
- ${SUBST_CMD} ${WRKSRC}/wscript_build.py
+CFLAGS += -I${LOCALBASE}/include
+LDFLAGS += -L${LOCALBASE}/lib
-do-configure:
- ${DO_WAF} configure ${CONFIGURE_ARGS}
+MODMESON_CONFIGURE_ENV += LDFLAGS="${LDFLAGS}"
-do-build:
- ${DO_WAF} build -v
+NO_TEST = Yes
-do-install:
- ${DO_WAF} install
+post-install:
+ mv -f ${PREFIX}/share/doc/mpv ${PREFIX}/share/examples
${INSTALL_DATA} ${WRKDIST}/TOOLS/mpv_identify.sh \
${WRKDIST}/TOOLS/umpv ${PREFIX}/share/examples/mpv
${MODPY_BIN_ADJ} ${PREFIX}/share/examples/mpv/umpv
+ mv -f ${WRKINST}${SYSCONFDIR}/mpv/* ${PREFIX}/share/examples/mpv
sed -Ei 's,(/dev/dvd|/dev/cdrom),/dev/rcd0c,g' ${PREFIX}/man/man1/mpv.1
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/multimedia/mpv/distinfo,v
retrieving revision 1.29
diff -u -p -u -p -r1.29 distinfo
--- distinfo 17 Nov 2022 06:46:46 -0000 1.29
+++ distinfo 20 Nov 2022 06:33:55 -0000
@@ -1,4 +1,2 @@
SHA256 (mpv-0.35.0.tar.gz) = 3EEciZpkVIJQwUK/H6GqdSjxtDmKJMhrgWCTmZBJ7AA=
-SHA256 (waf-2.0.24) = k5CbyoI6Z1+fQK98ZbJIh8OjwO/fQR/xl4uoJxlL3rA=
SIZE (mpv-0.35.0.tar.gz) = 3365752
-SIZE (waf-2.0.24) = 105408
Index: patches/patch-meson_build
===================================================================
RCS file: patches/patch-meson_build
diff -N patches/patch-meson_build
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-meson_build 21 Nov 2022 01:18:17 -0000
@@ -0,0 +1,30 @@
+- meson: unbreak dl check on BSDs without libdl
+ 04f765da6fb407c7ebe1833403a6049e2c9df6ce
+
+Index: meson.build
+--- meson.build.orig
++++ meson.build
+@@ -327,7 +327,7 @@ endif
+ features += {'ta-leak-report': get_option('ta-leak-report')}
+
+ libdl_dep = cc.find_library('dl', required: false)
+-features += {'libdl': libdl_dep.found() and cc.has_function('dlopen', dependencies:
libdl_dep, prefix: '#include <dlfcn.h>')}
++features += {'libdl': cc.has_function('dlopen', dependencies: libdl_dep, prefix:
'#include <dlfcn.h>')}
+ if features['libdl']
+ dependencies += libdl_dep
+ endif
+@@ -716,10 +716,11 @@ if features['sdl2-gamepad']
+ sources += files('input/sdl_gamepad.c')
+ endif
+
+-stdatomic = cc.find_library('atomic', required: get_option('stdatomic'))
+-features += {'stdatomic': stdatomic.found()}
++stdatomic_dep = cc.find_library('atomic', required: false)
++features += {'stdatomic': cc.has_header_symbol('stdatomic.h', 'atomic_int',
dependencies: stdatomic_dep,
++ required:
get_option('stdatomic'))}
+ if features['stdatomic']
+- dependencies += stdatomic
++ dependencies += stdatomic_dep
+ endif
+
+ uchardet_opt = get_option('uchardet').require(
Index: patches/patch-wscript_build_py
===================================================================
RCS file: patches/patch-wscript_build_py
diff -N patches/patch-wscript_build_py
--- patches/patch-wscript_build_py 17 Nov 2022 06:46:46 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-Index: wscript_build.py
---- wscript_build.py.orig
-+++ wscript_build.py
-@@ -673,7 +673,7 @@ def build(ctx):
- vre = '#define MPV_CLIENT_API_VERSION MPV_MAKE_VERSION\((.*), (.*)\)'
- libmpv_header = ctx.path.find_node("libmpv/client.h").read()
- major, minor = re.search(vre, libmpv_header).groups()
-- libversion = major + '.' + minor + '.0'
-+ libversion = '${LIBmpv_VERSION}' + '.0'
-
- def _build_libmpv(shared):
- features = "c "