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;" +}
