git: ae9d7e1677ef - main - multimedia/mkvtoolnix: FLAVORify port for GUI/non-GUI variants

From: Thomas Zander <riggs_at_FreeBSD.org>
Date: Mon, 13 Mar 2023 14:10:32 UTC
The branch main has been updated by riggs:

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

commit ae9d7e1677ef559e26a46a935ad2dc087a8b2d83
Author:     Thomas Zander <riggs@FreeBSD.org>
AuthorDate: 2023-03-13 06:56:44 +0000
Commit:     Thomas Zander <riggs@FreeBSD.org>
CommitDate: 2023-03-13 14:10:30 +0000

    multimedia/mkvtoolnix: FLAVORify port for GUI/non-GUI variants
    
    Implements the suggestions from the ports-committers mailing list:
    * Use FLAVOR instead of slave port for the non-GUI variant
    * Call non-GUI variant "nogui" instead of "nox11"
    
    Differential Revision:  https://reviews.freebsd.org/D39036
---
 MOVED                                |  1 +
 multimedia/Makefile                  |  1 -
 multimedia/mkvtoolnix-nox11/Makefile | 16 ---------------
 multimedia/mkvtoolnix/Makefile       | 39 +++++++++++++++++++++++++-----------
 4 files changed, 28 insertions(+), 29 deletions(-)

diff --git a/MOVED b/MOVED
index 80d17f5fb873..3e2353017644 100644
--- a/MOVED
+++ b/MOVED
@@ -17787,3 +17787,4 @@ databases/postgresql10-pltcl||2023-03-07|Has expired: PostgreSQL 10 has reached
 databases/postgresql10-server||2023-03-07|Has expired: PostgreSQL 10 has reached end-of-life
 audio/ximp3||2023-03-09|Has expired: Abandonware and obsolete, uses old decoder library and no ID3v2 support
 devel/libpthread-stubs||2023-03-12|No consumers left and never supported pthread stubs in libc on FreeBSD
+multimedia/mkvtoolnix-nox11|multimedia/mkvtoolnix@nogui|2023-03-13|Converted to flavor
diff --git a/multimedia/Makefile b/multimedia/Makefile
index 7474c3b6441a..7875ba189f9b 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -227,7 +227,6 @@
     SUBDIR += mkclean
     SUBDIR += mkvalidator
     SUBDIR += mkvtoolnix
-    SUBDIR += mkvtoolnix-nox11
     SUBDIR += mkxvcd
     SUBDIR += mlt6
     SUBDIR += mlt6-qt5
diff --git a/multimedia/mkvtoolnix-nox11/Makefile b/multimedia/mkvtoolnix-nox11/Makefile
deleted file mode 100644
index c2cff977e8b3..000000000000
--- a/multimedia/mkvtoolnix-nox11/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-PORTNAME=	mkvtoolnix-nox11
-PORTREVISION=	1
-CATEGORIES=	lang
-
-MAINTAINER=	riggs@FreeBSD.org
-COMMENT=	Tools to extract from/get info about/create Matroska media streams (no X11)
-
-MASTERDIR=	${.CURDIR}/../mkvtoolnix
-
-CONFLICTS=	mkvtoolnix
-
-OPTIONS_EXCLUDE=GUI
-
-SFX=		-nox11
-
-.include "${MASTERDIR}/Makefile"
diff --git a/multimedia/mkvtoolnix/Makefile b/multimedia/mkvtoolnix/Makefile
index 4441bcface4a..e42efcb78a51 100644
--- a/multimedia/mkvtoolnix/Makefile
+++ b/multimedia/mkvtoolnix/Makefile
@@ -1,10 +1,9 @@
 PORTNAME=	mkvtoolnix
 PORTVERSION=	74.0.0
-PORTREVISION?=	2
+PORTREVISION?=	3
 CATEGORIES=	multimedia audio
 MASTER_SITES=	https://www.bunkus.org/videotools/mkvtoolnix/sources/ \
 		https://mkvtoolnix.download/sources/
-PKGNAMESUFFIX=	${SFX}
 
 MAINTAINER=	riggs@FreeBSD.org
 COMMENT=	Tools to extract from/get info about/create Matroska media streams
@@ -27,15 +26,19 @@ LIB_DEPENDS=	libvorbis.so:audio/libvorbis \
 		libcmark.so:textproc/cmark \
 		libgmp.so:math/gmp
 
-USES=		compiler:c++17-lang iconv localbase pkgconfig qmake:no_env qt:5 tar:xz
-USE_QT=		buildtools:build concurrent core linguisttools:build multimedia svg
+FLAVORS=	qt5 nogui
+FLAVOR?=	${FLAVORS:[1]}
+nogui_PKGNAMESUFFIX=	-nogui
+nogui_CONFLICTS_INSTALL=mkvtoolnix
+qt5_CONFLICTS_INSTALL=	mkvtoolnix-nogui
 
-CONFLICTS?=	mkvtoolnix-nox11
+USES=		${_USES_${FLAVOR}}
+USE_QT=		${_USE_QT_${FLAVOR}}
 
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--with-boost=${LOCALBASE} \
 		--with-docbook-xsl-root=${PREFIX}/share/xsl/docbook \
-		--disable-qt6
+		--disable-qt6 ${_CONFIGURE_ARGS_${FLAVOR}}
 MAKE_ENV=	V=1
 MAKE_CMD=	rake -v
 MAKEFILE=	Rakefile
@@ -47,8 +50,24 @@ BINARY_ALIAS=	qmake=${QMAKE} \
 		rcc=${RCC} \
 		uic=${UIC}
 
-OPTIONS_DEFINE=	DVDREAD FLAC GUI NLS MANTRANS
-OPTIONS_DEFAULT=	FLAC GUI
+# Flavor handling
+_USES_qt5=		compiler:c++17-lang desktop-file-utils iconv localbase \
+			pkgconfig qmake:no_env qt:5 shared-mime-info tar:xz
+_USE_QT_qt5=		buildtools:build concurrent core dbus declarative gui \
+			linguisttools:build multimedia network svg widgets
+_PLIST_SUB_qt5=		GUI=
+_CONFIGURE_ARGS_nogui=	--disable-gui
+_USES_nogui=		compiler:c++17-lang iconv localbase pkgconfig qmake:no_env \
+			qt:5 tar:xz
+_USE_QT_nogui=		buildtools:build concurrent core linguisttools:build \
+			multimedia svg
+_PLIST_SUB_nogui=	GUI="@comment "
+
+PLIST_SUB+=		${_PLIST_SUB_${FLAVOR}}
+
+# Options handling
+OPTIONS_DEFINE=	DVDREAD FLAC NLS MANTRANS
+OPTIONS_DEFAULT=	FLAC
 OPTIONS_SUB=	yes
 
 DVDREAD_DESC=		Support reading DVD chapters via libdvdread
@@ -61,10 +80,6 @@ FLAC_CONFIGURE_WITH=	flac
 NLS_USES=	gettext
 NLS_CONFIGURE_WITH=	gettext
 
-GUI_DESC=	Build and install GUI application (Qt 5)
-GUI_USES=	desktop-file-utils shared-mime-info
-GUI_USE=	QT=dbus,declarative,gui,network,widgets
-
 MANTRANS_DESC=		Build and install manpage translations
 MANTRANS_BUILD_DEPENDS=	po4a:textproc/po4a