commit:     4446ae516b507898be988ff2feca78cf2aa511c6
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 12 21:37:37 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Dec 13 09:43:34 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4446ae51

dev-db/sqlitestudio: add Qt6-based 4.0.0_pre20251207 w/o KEYWORDS

Bug: https://bugs.gentoo.org/953925
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-db/sqlitestudio/Manifest                       |   1 +
 ...sqlitestudio-4.0.0_pre20251207-fix-python.patch |  13 ++
 ...estudio-4.0.0_pre20251207-missing-headers.patch |  26 +++
 .../sqlitestudio-4.0.0_pre20251207.ebuild          | 175 +++++++++++++++++++++
 4 files changed, 215 insertions(+)

diff --git a/dev-db/sqlitestudio/Manifest b/dev-db/sqlitestudio/Manifest
index 632f49e64582..ebefc84bb708 100644
--- a/dev-db/sqlitestudio/Manifest
+++ b/dev-db/sqlitestudio/Manifest
@@ -1 +1,2 @@
 DIST sqlitestudio-3.4.17.tar.gz 16696859 BLAKE2B 
6b1d4660c7b4ed4880df3c7e2e68d7b52edb46d7e19a751d49825c08a477adc02646729418e3a8b1fd6e5bc8192cc35197a23aa7e9142e4c2ebd184c049ee1eb
 SHA512 
2fab60c9a695022998ad7848b0ece614170070fd9603fb559a942692fb644204aa4437cf33b18f66bbcfe36f82bdfddb7e1d5c934e2946a3e56f537171798f4a
+DIST sqlitestudio-4.0.0_pre20251207-bac238cc.tar.gz 17654915 BLAKE2B 
fb93d688076cc27752b5578f764e4e99ee89bd7ff49ac2c06b4cc7fb3018835df1675aa053bad5eee06b6db40fae20535b63e6a4076213a05e4592d2faafdace
 SHA512 
50fbe053ae9bc93019a71c9d4be4671e7c3b49e77eab7e341f6b7e2254fd9b2541b556e5e7eec0737ce39da2219ddb2b10bfdcb7637c789027370f7d8b59b0a9

diff --git 
a/dev-db/sqlitestudio/files/sqlitestudio-4.0.0_pre20251207-fix-python.patch 
b/dev-db/sqlitestudio/files/sqlitestudio-4.0.0_pre20251207-fix-python.patch
new file mode 100644
index 000000000000..ddb88534257e
--- /dev/null
+++ b/dev-db/sqlitestudio/files/sqlitestudio-4.0.0_pre20251207-fix-python.patch
@@ -0,0 +1,13 @@
+diff --git a/Plugins/ScriptingPython/ScriptingPython.pro 
b/Plugins/ScriptingPython/ScriptingPython.pro
+index 75375da..614cfe8 100644
+--- a/Plugins/ScriptingPython/ScriptingPython.pro
++++ b/Plugins/ScriptingPython/ScriptingPython.pro
+@@ -22,7 +22,7 @@ isEmpty(PYTHON_VERSION) {
+         PYTHON_VERSION = 3.9
+     }
+     linux: {
+-        LIBS += -lpython$$PYTHON_VERSION
++        #LIBS += -lpython$$PYTHON_VERSION
+     }
+ 
+     macx: {

diff --git 
a/dev-db/sqlitestudio/files/sqlitestudio-4.0.0_pre20251207-missing-headers.patch
 
b/dev-db/sqlitestudio/files/sqlitestudio-4.0.0_pre20251207-missing-headers.patch
new file mode 100644
index 000000000000..4461f0264bcb
--- /dev/null
+++ 
b/dev-db/sqlitestudio/files/sqlitestudio-4.0.0_pre20251207-missing-headers.patch
@@ -0,0 +1,26 @@
+From fba5a4e01a4d4e1114bbea21bf3ac9c27f3f8af9 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <[email protected]>
+Date: Fri, 12 Dec 2025 22:42:31 +0100
+Subject: [PATCH] Add missing QJsonValue and QUuid headers
+
+Signed-off-by: Andreas Sturmlechner <[email protected]>
+---
+ SQLiteStudio3/coreSQLiteStudio/common/utils.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp 
b/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp
+index f9b550901..dc6177456 100644
+--- a/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp
++++ b/SQLiteStudio3/coreSQLiteStudio/common/utils.cpp
+@@ -4,6 +4,8 @@
+ #include "dbobjecttype.h"
+ #include "rsa/RSA.h"
+ #include <QJsonDocument>
++#include <QJsonValue>
++#include <QUuid>
+ #include <QLine>
+ #include <QString>
+ #include <QStringConverter>
+-- 
+2.52.0
+

diff --git a/dev-db/sqlitestudio/sqlitestudio-4.0.0_pre20251207.ebuild 
b/dev-db/sqlitestudio/sqlitestudio-4.0.0_pre20251207.ebuild
new file mode 100644
index 000000000000..c51d3b59692a
--- /dev/null
+++ b/dev-db/sqlitestudio/sqlitestudio-4.0.0_pre20251207.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+COMMIT=bac238ccb0000419a66f3b2134b08d1f7a2bd076
+
+PLOCALES="af_ZA ar_SA be_BY ca_ES cs_CZ da_DK de_DE el_GR en_US es_ES fa_IR 
fi_FI fr_FR he_IL hu_HU it_IT ja_JP kaa ko_KR nl_NL no_NO pl_PL pt_BR pt_PT 
ro_RO ru_RU sk_SK sr_SP sv_SE tr_TR uk_UA vi_VN zh_CN zh_TW"
+
+# ScriptingPython says exactly 3.9
+PYTHON_COMPAT=( python3_{11..13} )
+inherit desktop plocale python-single-r1 qmake-utils xdg
+
+DESCRIPTION="Powerful cross-platform SQLite database manager"
+HOMEPAGE="https://sqlitestudio.pl";
+SRC_URI="https://github.com/pawelsalawa/sqlitestudio/archive/${COMMIT}.tar.gz 
-> ${P}-${COMMIT:0:8}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="GPL-3"
+SLOT="0"
+# KEYWORDS="~amd64 ~x86"
+IUSE="cli python tcl test"
+
+REQUIRED_USE="
+       test? ( cli )
+       python? ( ${PYTHON_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       dev-libs/openssl:=
+       dev-db/sqlite:3
+       dev-qt/qtbase:6[gui,network,widgets,xml]
+       dev-qt/qtdeclarative:6
+       dev-qt/qtsvg:6
+       cli? (
+               sys-libs/readline:=
+               sys-libs/ncurses:=
+       )
+       python? ( ${PYTHON_DEPS} )
+       tcl? ( dev-lang/tcl:0= )
+"
+DEPEND="${RDEPEND}
+       dev-qt/designer:6
+       dev-qt/qtconcurrent:6
+"
+BDEPEND="
+       dev-qt/qttools:6[linguist]
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-fix-python.patch
+       "${FILESDIR}"/${P}-missing-headers.patch
+)
+
+core_build_dir="${S}/output/build"
+plugins_build_dir="${core_build_dir}/Plugins"
+
+pkg_setup() {
+       use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       default
+
+       disable_modules() {
+               [[ $# -lt 2 ]] && die "not enough arguments"
+
+               local pro="$1"; shift
+               local modules="${@}"
+
+               sed -r -i \
+                       -e 's/('${modules// /|}')[[:space:]]*(\\?)/\2/' \
+                       ${pro} || die
+       }
+
+       use cli || disable_modules SQLiteStudio3/SQLiteStudio3.pro cli
+
+       local mod_lst=( DbSqlite2 )
+       use tcl || mod_lst+=( ScriptingTcl )
+       use python || mod_lst+=( ScriptingPython )
+       disable_modules Plugins/Plugins.pro ${mod_lst[@]}
+
+       local mylrelease="$(qt6_get_bindir)"/lrelease
+       local ts_dir_lst=$(find * -type f -name "*.qm" -printf '%h\n' | sort -u)
+       local ts_pro_lst=$(find * -type f -name "*.pro" -exec grep -l 
'TRANSLATIONS' {} \;)
+       local ts_qrc_lst=$(find * -type f -name "*.qrc" -exec grep -l '\.qm' {} 
\;)
+
+       # delete all "*.qm"
+       for ts_dir in ${ts_dir_lst[@]}; do
+               rm "${ts_dir}"/*.qm || die
+       done
+
+       lrelease_locale() {
+               for ts_dir in ${ts_dir_lst[@]}; do
+                       local ts=$(find "${ts_dir}" -type f -name "*${1}.ts" || 
continue)
+                       "${mylrelease}" "${ts}" || die "preparing ${1} locale 
failed"
+               done
+       }
+
+       rm_locale() {
+               for ts_pro in ${ts_pro_lst[@]}; do
+                       sed -i -r -e 's/[^[:space:]]*'${1}'\.ts//' \
+                               ${ts_pro} || die
+               done
+
+               for ts_qrc in ${ts_qrc_lst[@]}; do
+                       sed -i -e '/'${1}'\.qm/d' \
+                               ${ts_qrc} || die
+               done
+       }
+
+       local ts_dir_main="SQLiteStudio3/sqlitestudio/translations"
+       plocale_find_changes ${ts_dir_main} "sqlitestudio_" '.ts'
+       plocale_for_each_locale lrelease_locale
+       plocale_for_each_disabled_locale rm_locale
+
+       # prevent "multilib-strict check failed" with USE test by
+       # replacing target paths with dynamic lib dir
+       #
+       sed -i -e 's/\(target\.path = .*\/\)lib/\1'$(get_libdir)'/' \
+               SQLiteStudio3/Tests/TestUtils/TestUtils.pro || die
+}
+
+src_configure() {
+       # NOTE: QMAKE_CFLAGS_ISYSTEM option prevents
+       # build error with tcl use enabled (stdlib.h is missing)
+       # "QMAKE_CFLAGS_ISYSTEM=\"\""
+       # CONFIG+ borrowed from compile.sh of tarball
+       local myqmakeargs=(
+               "BINDIR=${EPREFIX}/usr/bin"
+               "LIBDIR=${EPREFIX}/usr/$(get_libdir)"
+               "CONFIG+=portable"
+               $(usex test 'DEFINES+=tests' '')
+       )
+
+       # Combination of kvirc ebuild and qtcompress
+       if use python; then
+               myqmakeargs+=(
+                       INCLUDEPATH+=" $(python_get_includedir)"
+                       LIBS+=" $(python_get_LIBS)"
+               )
+       fi
+
+       ## Core
+       mkdir -p "${core_build_dir}" && cd "${core_build_dir}" || die
+       eqmake6 "${myqmakeargs[@]}" "${S}/SQLiteStudio3"
+
+       ## Plugins
+       mkdir -p "${plugins_build_dir}" && cd "${plugins_build_dir}" || die
+       eqmake6 "${myqmakeargs[@]}" "${S}/Plugins"
+}
+
+src_compile() {
+       # -j1 for bug #902991; it clobbers object files in parallel
+       emake -j1 -C "${core_build_dir}"
+       emake -j1 -C "${plugins_build_dir}"
+}
+
+src_install() {
+       emake -j1 -C "${core_build_dir}" INSTALL_ROOT="${D}" install
+       emake -j1 -C "${plugins_build_dir}" INSTALL_ROOT="${D}" install
+
+       if use test; then
+               # remove test artifacts that must not be installed
+               rm -r "${ED}"/lib64 || die
+               rm -r "${ED}"/usr/share/qt6/tests || die
+       fi
+
+       doicon -s scalable "SQLiteStudio3/guiSQLiteStudio/img/${PN}.svg"
+
+       make_desktop_entry --eapi9 ${PN} -a "-- %F" -n SQLiteStudio3 -i ${PN} \
+               -c "Development;Database;Utility" -e 
"MimeType=application/x-sqlite3;"
+}

Reply via email to