From 24925145398be18f7ab8cd0de44ff36c0a91f6a7 Mon Sep 17 00:00:00 2001
From: Alexander Golubev <fatzer2@gmail.com>
Date: Wed, 3 Sep 2025 08:19:38 +0300
Subject: trinity-base/kdesktop: add sak support

Also:
* move x11-misc/xscreensaver to COMMON_DEPEND

Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
---
 trinity-base/kdesktop/kdesktop-9999.ebuild | 26 +++++++++++++++++++++-----
 trinity-base/kdesktop/metadata.xml         |  3 +++
 2 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/trinity-base/kdesktop/kdesktop-9999.ebuild b/trinity-base/kdesktop/kdesktop-9999.ebuild
index eb205b19..bb9be2e6 100644
--- a/trinity-base/kdesktop/kdesktop-9999.ebuild
+++ b/trinity-base/kdesktop/kdesktop-9999.ebuild
@@ -8,13 +8,13 @@ TRINITY_MODULE_NAME="tdebase"
 TRINITY_MODULE_TYPE="core"
 TRINITY_HANDBOOK="never"
 TSM_EXTRACT_ALSO="kcheckpass/ FindXscreensaver.cmake"
-inherit trinity-meta-2
+inherit flag-o-matic trinity-meta-2
 
 DESCRIPTION="The part of TDE UI that handles icons, desktop, screensaver etc"
 if [[ ${PV} != *9999* ]] ; then
 	KEYWORDS="~amd64 ~arm64 ~x86"
 fi
-IUSE="hwlib pam +svg xscreensaver"
+IUSE="hwlib pam sak +svg xscreensaver"
 
 COMMON_DEPEND="
 	~dev-libs/dbus-1-tqt-${PV}
@@ -22,19 +22,27 @@ COMMON_DEPEND="
 	~trinity-base/libkonq-${PV}
 	x11-libs/libXrender
 	x11-libs/libXcursor
-	xscreensaver? ( x11-libs/libXScrnSaver )"
+	xscreensaver? ( x11-libs/libXScrnSaver x11-misc/xscreensaver )"
 	# Requires the desktop background settings module,
 	# so until we separate the kcontrol modules into separate ebuilds :-),
 	# there's a dep here
 DEPEND="${COMMON_DEPEND}
-	xscreensaver? ( x11-base/xorg-proto x11-misc/xscreensaver )"
+	xscreensaver? ( x11-base/xorg-proto )"
 RDEPEND="${COMMON_DEPEND}
 	~trinity-base/kcheckpass-${PV}
 	~trinity-base/kdialog-${PV}
 	~trinity-base/konqueror-${PV}
-	pam? ( trinity-base/tdebase-pam )"
+	pam? ( trinity-base/tdebase-pam )
+	sak? ( trinity-base/tdm[sak] )
+"
 
 src_configure() {
+	# cmake's BUILD_TSAK is used for both building the tsak/tdmtsak binaries
+	# and for optional support in kdesktop, so we pass it via preprocessor args
+	# rather than via proper configuration
+	# TODO: fix after https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/pulls/653
+	use sak && append-cppflags -DBUILD_TSAK
+
 	local mycmakeargs=(
 		-DWITH_XCURSOR=ON
 		-DWITH_XRENDER=ON
@@ -46,3 +54,11 @@ src_configure() {
 	)
 	trinity-meta-2_src_configure
 }
+
+pkg_postinst() {
+	if use sak; then
+		ewarn "Note that in order to use Secure Attention Key feature in"
+		ewarn "kdesktop you have to use trinity-base/tdm as your display"
+		ewarn "manager and also enable SAK support in it as well."
+	fi
+}
diff --git a/trinity-base/kdesktop/metadata.xml b/trinity-base/kdesktop/metadata.xml
index ef7d5590..85a7ea8c 100644
--- a/trinity-base/kdesktop/metadata.xml
+++ b/trinity-base/kdesktop/metadata.xml
@@ -5,4 +5,7 @@
 		<email>team-gentoo@trinitydesktop.org</email>
 		<name>Trinity Gentoo ebuilds project</name>
 	</maintainer>
+	<use>
+		<flag name="sak">Adds SAK (Secure Attention Key) feature</flag>
+	</use>
 </pkgmetadata>
-- 
cgit v1.2.3

