[PATCH v2 3/5] qt-utils.eclass: Deprecate all qt6_* functions (but ban qt6_get_libdir)

Andreas Sturmlechner <[email protected]> Sat, 11 Jul 2026 11:57:08 +0200
Newsgroups gmane.linux.gentoo.devel
Message-ID <[email protected]>
--nextPartlmONekteTYO8lvi9ncXPlQ
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="utf-8"; protected-headers="v1"
From: Andreas Sturmlechner <[email protected]>
To: [email protected], [email protected]
Date: Sat, 11 Jul 2026 11:57:08 +0200
Message-ID: <[email protected]>
In-Reply-To: <[email protected]>
References: <[email protected]>
MIME-Version: 1.0

Deprecate all legacy qt6_* functions
In deprecated qt6_get_bindir(), EPREFIX remains hardcoded
For EAPI-9, ban qt6_get_libdir w/o direct replacement; it is too basic

Signed-off-by: Andreas Sturmlechner <[email protected]>
---
 eclass/qt-utils.eclass | 42 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/eclass/qt-utils.eclass b/eclass/qt-utils.eclass
index 6ec027db0e7a..ba425a9db777 100644
--- a/eclass/qt-utils.eclass
+++ b/eclass/qt-utils.eclass
@@ -22,6 +22,34 @@ case ${EAPI} in
 	*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
+# @FUNCTION: _qt_eapi9_banned_deprecated_func
+# @INTERNAL
+# @DESCRIPTION:
+# Banned functions are banned. Deprecated functions are ...
+_qt_eapi9_banned_deprecated_func() {
+	[[ ${EAPI} == 8 ]] && return
+
+	_deprecated_use_instead() {
+		eqawarn "QA Notice: ${1} is deprecated and will be banned after EAPI 9 -"
+		eqawarn "    use '${2}' instead."
+	}
+
+	case ${FUNCNAME[1]} in
+		qt6_get_bindir|qt6_get_libexecdir)
+			_deprecated_use_instead ${FUNCNAME[1]} "${FUNCNAME[1]/qt6/qt} 6"
+			[[ ${FUNCNAME[1]} == qt6_get_bindir ]] &&
+				eqawarn "    IMPORTANT: qt_get_bindir no longer prepends EPREFIX," &&
+				eqawarn "               which likely was wrong to begin with."
+			;;
+		qt6_get_libdir)
+			die "qt6_get_libdir is banned. 'qt_get_archdatadir 6' serves \$(qt6_get_libdir)/qt6"
+			;;
+		qt6_get_*)
+			_deprecated_use_instead ${FUNCNAME[1]} "${FUNCNAME[1]/qt6/qt} 6"
+			;;
+	esac
+}
+
 # @FUNCTION: _qt_get_check_func_call
 # @INTERNAL
 # @DESCRIPTION:
@@ -108,45 +136,57 @@ qt_get_qmldir() {
 }
 
 # @FUNCTION: qt6_get_bindir
+# @DEPRECATED
 # @DESCRIPTION:
 # Echoes the directory where Qt6 binaries are installed.
-# EPREFIX is already prepended to the returned path.
+# EPREFIX is always prepended to the returned path.
 qt6_get_bindir() {
+	_qt_eapi9_banned_deprecated_func
 	echo "${EPREFIX}$(qt_get_bindir 6)"
 }
 
 # @FUNCTION: qt6_get_headerdir
+# @DEPRECATED
 # @DESCRIPTION:
 # Echoes the directory where Qt6 headers are installed.
 qt6_get_headerdir() {
+	_qt_eapi9_banned_deprecated_func
 	qt_get_headerdir 6
 }
 
 # @FUNCTION: qt6_get_libdir
+# @DEPRECATED
 # @DESCRIPTION:
 # Echoes the directory where Qt6 libraries are installed.
 qt6_get_libdir() {
+	_qt_eapi9_banned_deprecated_func
 	echo "/usr/$(get_libdir)"
 }
 
 # @FUNCTION: qt6_get_libexecdir
+# @DEPRECATED
 # @DESCRIPTION:
 # Echoes the directory where Qt6 libexec bins are installed.
 qt6_get_libexecdir() {
+	_qt_eapi9_banned_deprecated_func
 	qt_get_libexecdir 6
 }
 
 # @FUNCTION: qt6_get_mkspecsdir
+# @DEPRECATED
 # @DESCRIPTION:
 # Echoes the directory where Qt6 mkspecs are installed.
 qt6_get_mkspecsdir() {
+	_qt_eapi9_banned_deprecated_func
 	qt_get_mkspecsdir 6
 }
 
 # @FUNCTION: qt6_get_plugindir
+# @DEPRECATED
 # @DESCRIPTION:
 # Echoes the directory where Qt6 plugins are installed.
 qt6_get_plugindir() {
+	_qt_eapi9_banned_deprecated_func
 	qt_get_plugindir 6
 }
 
-- 
2.55.0


--nextPartlmONekteTYO8lvi9ncXPlQ
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part.
Content-Transfer-Encoding: 7Bit

-----BEGIN PGP SIGNATURE-----

iQIvBAABCgCZFiEE34gXUSooizdYNDu3S5FW4z0PgBkFAmpSE3QbFIAAAAAABAAO
bWFudTIsMi41KzEuMTIsMiwyXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25z
Lm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRERjg4MTc1MTJBMjg4QjM3NTgzNDNC
Qjc0QjkxNTZFMzNEMEY4MDE5AAoJEEuRVuM9D4AZINML/0lFI0gBv4bfimtxzXM2
UkiqyyDwGBFEZr+PaKrIRMi6b5eoltBZDvPNvMMB7fetcGPUbYkvI2VcXBlANC5y
LV8oK82CthOyz1AWCtE9QPmbTpdAc+VishK28tUfB7WrJLPryykZvxnXZzx0D7R3
8RN9wOFxxmq94NnEu1eV7z2exKwaYkIMc8CEyUme23oxftMrXIHfZu+U6RyC3ViZ
n+FYiNmdC6CIbIU2ce8nqc0554RjP1RKIJ8YgaoV+zbcsWeqQadKHkehLZs7QJ6r
sZ7TdyhvNxBzExQbr3YhTpkjr6LJ62jhInzaTh796nktCBpYICSesdE5Q5zgEiP7
NV+7eu6FuMGmmVkgo/F7qaqiMpDAx3hoAGbnkHxq5xde4h5EuYIfR5H+gJJ8VK9t
EGQb/LdQJsSUKPgl7ftmlScM5BbtNkrJSP0JPF38TUubQUcpQqoLTUsvvvlcCyfA
BPy75ndo9M7X6SGOt8wuO2G6Lmx/Hm6ucfvAjeFuxdQqBg==
=bqbr
-----END PGP SIGNATURE-----

--nextPartlmONekteTYO8lvi9ncXPlQ--