From acd35a7f52b016b9d7207bdfe7696e9f1d257a52 Mon Sep 17 00:00:00 2001
From: Alexander Golubev <fatzer2@gmail.com>
Date: Mon, 28 Jul 2025 15:48:28 +0300
Subject: trinity-apps/kmplayer:ebuild overhaul

Sort out dependencies, add use flags etc.

Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
---
 trinity-apps/kmplayer/kmplayer-14.1.1.ebuild | 56 ++++++++++++++++++++++-----
 trinity-apps/kmplayer/kmplayer-14.1.2.ebuild | 56 ++++++++++++++++++++++-----
 trinity-apps/kmplayer/kmplayer-9999.ebuild   | 57 +++++++++++++++++++++++-----
 trinity-apps/kmplayer/metadata.xml           |  3 ++
 4 files changed, 142 insertions(+), 30 deletions(-)

diff --git a/trinity-apps/kmplayer/kmplayer-14.1.1.ebuild b/trinity-apps/kmplayer/kmplayer-14.1.1.ebuild
index c2bced69..8c921dcb 100644
--- a/trinity-apps/kmplayer/kmplayer-14.1.1.ebuild
+++ b/trinity-apps/kmplayer/kmplayer-14.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023 The Trinity Desktop Project
+# Copyright 2023-2025 The Trinity Desktop Project
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="8"
@@ -14,7 +14,7 @@ TRINITY_LANGS="af ar be bg br bs ca csb cs cy da de el es et \
 TRINITY_DOC_LANGS="da de es et fr it nl pt ru sv"
 
 TRINITY_MODULE_TYPE="applications/multimedia"
-inherit trinity-base-2
+inherit trinity-base-2 optfeature
 
 DESCRIPTION="MPlayer - a simple media player for TDE"
 HOMEPAGE="https://trinitydesktop.org/"
@@ -24,21 +24,57 @@ SLOT="14"
 if [[ ${PV} != *9999* ]] ; then
 	KEYWORDS="~amd64 ~arm64 ~x86"
 fi
-IUSE="gstreamer koffice xine"
+IUSE="cairo expat gstreamer koffice npp xine xv +xtest"
 
-DEPEND="media-video/ffmpeg
-	media-video/mplayer
+DEPEND="
+	x11-libs/libX11
+	x11-libs/libXv
+	x11-libs/libXext
+	expat? (
+		dev-libs/expat
+	)
+	cairo? (
+		x11-libs/cairo
+	)
+	gstreamer? (
+		media-libs/gstreamer:1.0
+		media-libs/gst-plugins-base:1.0
+	)
+	npp? (
+		sys-apps/dbus
+		dev-libs/dbus-glib
+		x11-libs/gtk+:2
+		dev-libs/glib:2
+	)
+	xine? (
+		media-libs/xine-lib
+		x11-libs/libXext
+	)
 	koffice? ( ~trinity-apps/koffice-meta-${PV} )
+	"
+# TODO: shouldn't trinity-apps/koffice-meta be koffice-libs?
+# NOTE: xv dependencies are forced in <=14.1.4
+RDEPEND="${DEPEND}
+	media-video/mplayer
 	gstreamer? ( media-plugins/gst-plugins-meta )
-	xine? ( media-libs/xine-lib )"
-RDEPEND="${DEPEND}"
+"
 
 src_configure() {
 	local mycmakeargs=(
-		-DBUILD_TRANSLATIONS=ON
-		-DBUILD_KOFFICE_PLUGIN="$(usex koffice)"
-		-DBUILD_KXVPLAYER="$(usex gstreamer)"
+		-DWITH_XTEST="$(usex xtest)"
+		-DWITH_CAIRO="$(usex cairo)"
+		-DWITH_EXPAT="$(usex expat)"
+
+		-DBUILD_KGSTPLAYER="$(usex gstreamer)"
+		-DBUILD_KNPPLAYER="$(usex npp)"
 		-DBUILD_KXINEPLAYER="$(usex xine)"
+		-DBUILD_KXVPLAYER="$(usex xv)"
+
+		-DBUILD_KOFFICE_PLUGIN="$(usex koffice)"
 	)
 	trinity-base-2_src_configure
 }
+
+pkg_postinst() {
+	optfeature "broadcast recording" media-video/ffmpeg
+}
diff --git a/trinity-apps/kmplayer/kmplayer-14.1.2.ebuild b/trinity-apps/kmplayer/kmplayer-14.1.2.ebuild
index 5224b0f6..8c921dcb 100644
--- a/trinity-apps/kmplayer/kmplayer-14.1.2.ebuild
+++ b/trinity-apps/kmplayer/kmplayer-14.1.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 The Trinity Desktop Project
+# Copyright 2023-2025 The Trinity Desktop Project
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="8"
@@ -14,7 +14,7 @@ TRINITY_LANGS="af ar be bg br bs ca csb cs cy da de el es et \
 TRINITY_DOC_LANGS="da de es et fr it nl pt ru sv"
 
 TRINITY_MODULE_TYPE="applications/multimedia"
-inherit trinity-base-2
+inherit trinity-base-2 optfeature
 
 DESCRIPTION="MPlayer - a simple media player for TDE"
 HOMEPAGE="https://trinitydesktop.org/"
@@ -24,21 +24,57 @@ SLOT="14"
 if [[ ${PV} != *9999* ]] ; then
 	KEYWORDS="~amd64 ~arm64 ~x86"
 fi
-IUSE="gstreamer koffice xine"
+IUSE="cairo expat gstreamer koffice npp xine xv +xtest"
 
-DEPEND="media-video/ffmpeg
-	media-video/mplayer
+DEPEND="
+	x11-libs/libX11
+	x11-libs/libXv
+	x11-libs/libXext
+	expat? (
+		dev-libs/expat
+	)
+	cairo? (
+		x11-libs/cairo
+	)
+	gstreamer? (
+		media-libs/gstreamer:1.0
+		media-libs/gst-plugins-base:1.0
+	)
+	npp? (
+		sys-apps/dbus
+		dev-libs/dbus-glib
+		x11-libs/gtk+:2
+		dev-libs/glib:2
+	)
+	xine? (
+		media-libs/xine-lib
+		x11-libs/libXext
+	)
 	koffice? ( ~trinity-apps/koffice-meta-${PV} )
+	"
+# TODO: shouldn't trinity-apps/koffice-meta be koffice-libs?
+# NOTE: xv dependencies are forced in <=14.1.4
+RDEPEND="${DEPEND}
+	media-video/mplayer
 	gstreamer? ( media-plugins/gst-plugins-meta )
-	xine? ( media-libs/xine-lib )"
-RDEPEND="${DEPEND}"
+"
 
 src_configure() {
 	local mycmakeargs=(
-		-DBUILD_TRANSLATIONS=ON
-		-DBUILD_KOFFICE_PLUGIN="$(usex koffice)"
-		-DBUILD_KXVPLAYER="$(usex gstreamer)"
+		-DWITH_XTEST="$(usex xtest)"
+		-DWITH_CAIRO="$(usex cairo)"
+		-DWITH_EXPAT="$(usex expat)"
+
+		-DBUILD_KGSTPLAYER="$(usex gstreamer)"
+		-DBUILD_KNPPLAYER="$(usex npp)"
 		-DBUILD_KXINEPLAYER="$(usex xine)"
+		-DBUILD_KXVPLAYER="$(usex xv)"
+
+		-DBUILD_KOFFICE_PLUGIN="$(usex koffice)"
 	)
 	trinity-base-2_src_configure
 }
+
+pkg_postinst() {
+	optfeature "broadcast recording" media-video/ffmpeg
+}
diff --git a/trinity-apps/kmplayer/kmplayer-9999.ebuild b/trinity-apps/kmplayer/kmplayer-9999.ebuild
index c2bced69..d71e9567 100644
--- a/trinity-apps/kmplayer/kmplayer-9999.ebuild
+++ b/trinity-apps/kmplayer/kmplayer-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023 The Trinity Desktop Project
+# Copyright 2023-2025 The Trinity Desktop Project
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="8"
@@ -14,7 +14,7 @@ TRINITY_LANGS="af ar be bg br bs ca csb cs cy da de el es et \
 TRINITY_DOC_LANGS="da de es et fr it nl pt ru sv"
 
 TRINITY_MODULE_TYPE="applications/multimedia"
-inherit trinity-base-2
+inherit trinity-base-2 optfeature
 
 DESCRIPTION="MPlayer - a simple media player for TDE"
 HOMEPAGE="https://trinitydesktop.org/"
@@ -24,21 +24,58 @@ SLOT="14"
 if [[ ${PV} != *9999* ]] ; then
 	KEYWORDS="~amd64 ~arm64 ~x86"
 fi
-IUSE="gstreamer koffice xine"
+IUSE="cairo expat gstreamer koffice npp xine xv +xtest"
 
-DEPEND="media-video/ffmpeg
-	media-video/mplayer
+DEPEND="
+	x11-libs/libX11
+	expat? (
+		dev-libs/expat
+	)
+	cairo? (
+		x11-libs/cairo
+	)
+	gstreamer? (
+		media-libs/gstreamer:1.0
+		media-libs/gst-plugins-base:1.0
+	)
+	npp? (
+		sys-apps/dbus
+		dev-libs/dbus-glib
+		x11-libs/gtk+:2
+		dev-libs/glib:2
+	)
+	xine? (
+		media-libs/xine-lib
+		x11-libs/libXext
+	)
+	xv? (
+		x11-libs/libXv
+		x11-libs/libXext
+	)
 	koffice? ( ~trinity-apps/koffice-meta-${PV} )
+	"
+# TODO: shouldn't trinity-apps/koffice-meta be koffice-libs?
+RDEPEND="${DEPEND}
+	media-video/mplayer
 	gstreamer? ( media-plugins/gst-plugins-meta )
-	xine? ( media-libs/xine-lib )"
-RDEPEND="${DEPEND}"
+"
 
 src_configure() {
 	local mycmakeargs=(
-		-DBUILD_TRANSLATIONS=ON
-		-DBUILD_KOFFICE_PLUGIN="$(usex koffice)"
-		-DBUILD_KXVPLAYER="$(usex gstreamer)"
+		-DWITH_XTEST="$(usex xtest)"
+		-DWITH_CAIRO="$(usex cairo)"
+		-DWITH_EXPAT="$(usex expat)"
+
+		-DBUILD_KGSTPLAYER="$(usex gstreamer)"
+		-DBUILD_KNPPLAYER="$(usex npp)"
 		-DBUILD_KXINEPLAYER="$(usex xine)"
+		-DBUILD_KXVPLAYER="$(usex xv)"
+
+		-DBUILD_KOFFICE_PLUGIN="$(usex koffice)"
 	)
 	trinity-base-2_src_configure
 }
+
+pkg_postinst() {
+	optfeature "broadcast recording" media-video/ffmpeg
+}
diff --git a/trinity-apps/kmplayer/metadata.xml b/trinity-apps/kmplayer/metadata.xml
index 304846e4..0c452959 100644
--- a/trinity-apps/kmplayer/metadata.xml
+++ b/trinity-apps/kmplayer/metadata.xml
@@ -7,5 +7,8 @@
 	</maintainer>
 	<use>
 		<flag name="koffice">Enable support koffice</flag>
+		<flag name="npp">Compile the npp backend that plays xembed style browser plugins (used to be useful for playing adobe-flash content)</flag>
+		<flag name="xtest">Allow for better control over <pkg>media-video/mplayer</pkg> using <pkg>x11-libs/libXtst</pkg></flag>
+		<flag name="xv">Build XVideo backend; can be used for playback from TV cards instead of <pkg>media-video/mplayer</pkg></flag>
 	</use>
 </pkgmetadata>
-- 
cgit v1.2.3

