dev-db/kdb: USE=mysql DEPENDs on dev-db/mysql-connector-c
authorAndreas Sturmlechner <asturm@gentoo.org>
Thu, 4 Oct 2018 21:20:11 +0000 (23:20 +0200)
committerAndreas Sturmlechner <asturm@gentoo.org>
Thu, 4 Oct 2018 21:36:41 +0000 (23:36 +0200)
- Switch away from virtual/mysql
- Add one runtime fix
- Find postgresql-11

Closes: https://bugs.gentoo.org/665834
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Package-Manager: Portage-2.3.50, Repoman-2.3.11

dev-db/kdb/files/kdb-3.1.0-crashfix.patch [new file with mode: 0644]
dev-db/kdb/files/kdb-3.1.0-fix-loading-objdata.patch [new file with mode: 0644]
dev-db/kdb/files/kdb-3.1.0-postgresql-11.patch [new file with mode: 0644]
dev-db/kdb/kdb-3.1.0-r2.ebuild [new file with mode: 0644]

diff --git a/dev-db/kdb/files/kdb-3.1.0-crashfix.patch b/dev-db/kdb/files/kdb-3.1.0-crashfix.patch
new file mode 100644 (file)
index 0000000..dcc114d
--- /dev/null
@@ -0,0 +1,29 @@
+From 386375b6dd9841fdb24a56dcd637be38fcb4c175 Mon Sep 17 00:00:00 2001
+From: Jaroslaw Staniek <staniek@kde.org>
+Date: Tue, 27 Mar 2018 00:20:34 +0200
+Subject: Fix crash in KDbConnection::recordCount(KDbTableSchema)
+
+FIXED-IN:3.1.1
+---
+ src/KDbConnection.cpp | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/src/KDbConnection.cpp b/src/KDbConnection.cpp
+index e53bb33..d416d12 100644
+--- a/src/KDbConnection.cpp
++++ b/src/KDbConnection.cpp
+@@ -3420,10 +3420,8 @@ int KDbConnection::recordCount(const KDbTableSchema& tableSchema)
+ {
+     //! @todo does not work with non-SQL data sources
+     int count = -1; // will be changed only on success of querySingleNumber()
+-    const tristate result
+-        = querySingleNumber(KDbEscapedString("SELECT COUNT(*) FROM ")
+-                                + tableSchema.connection()->escapeIdentifier(tableSchema.name()),
+-                            &count);
++    const tristate result = querySingleNumber(
++        KDbEscapedString("SELECT COUNT(*) FROM ") + escapeIdentifier(tableSchema.name()), &count);
+     if (~result) {
+         count = 0;
+     }
+-- 
+cgit v0.11.2
diff --git a/dev-db/kdb/files/kdb-3.1.0-fix-loading-objdata.patch b/dev-db/kdb/files/kdb-3.1.0-fix-loading-objdata.patch
new file mode 100644 (file)
index 0000000..7bf0100
--- /dev/null
@@ -0,0 +1,27 @@
+From a00f37b024e1a0888de3266af9acff99e6f21aa2 Mon Sep 17 00:00:00 2001
+From: Jaroslaw Staniek <staniek@kde.org>
+Date: Tue, 1 May 2018 23:29:06 +0200
+Subject: Fix loading object data for given type and ID
+
+FIXED-IN:3.1.1
+
+CCBUG:393705
+---
+ src/KDbConnection.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/KDbConnection.cpp b/src/KDbConnection.cpp
+index d416d12..690752d 100644
+--- a/src/KDbConnection.cpp
++++ b/src/KDbConnection.cpp
+@@ -2188,7 +2188,7 @@ tristate KDbConnection::loadObjectData(int type, int id, KDbObject* object)
+         }
+     } else {
+         if (true != querySingleRecord(KDbEscapedString("SELECT o_id, o_type, o_name, o_caption, o_desc "
+-                                                       "FROM kexi__objects WHERE o_type=%1 AND o_id=%1")
++                                                       "FROM kexi__objects WHERE o_type=%1 AND o_id=%2")
+                                           .arg(d->driver->valueToSql(KDbField::Integer, type))
+                                           .arg(d->driver->valueToSql(KDbField::Integer, id)),
+                                       &data))
+-- 
+cgit v0.11.2
diff --git a/dev-db/kdb/files/kdb-3.1.0-postgresql-11.patch b/dev-db/kdb/files/kdb-3.1.0-postgresql-11.patch
new file mode 100644 (file)
index 0000000..050335a
--- /dev/null
@@ -0,0 +1,24 @@
+From 675d51d86b377992aacdb8253cb7c3b8a80474c0 Mon Sep 17 00:00:00 2001
+From: Pino Toscano <pino@kde.org>
+Date: Tue, 22 May 2018 18:37:53 +0200
+Subject: cmake: find PostgreSQL 11
+
+---
+ cmake/modules/FindPostgreSQL.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/modules/FindPostgreSQL.cmake b/cmake/modules/FindPostgreSQL.cmake
+index 039c380..56e6e56 100644
+--- a/cmake/modules/FindPostgreSQL.cmake
++++ b/cmake/modules/FindPostgreSQL.cmake
+@@ -86,7 +86,7 @@ set(PostgreSQL_LIBRARY_DIR_MESSAGE "Set the PostgreSQL_LIBRARY_DIR cmake cache e
+ set(PostgreSQL_ROOT_DIR_MESSAGE "Set the PostgreSQL_ROOT system variable to where PostgreSQL is found on the machine E.g C:/Program Files/PostgreSQL/8.4")
+ set(PostgreSQL_KNOWN_VERSIONS ${PostgreSQL_ADDITIONAL_VERSIONS}
+-    "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0")
++    "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0")
+ # Define additional search paths for root directories.
+ foreach (suffix ${PostgreSQL_KNOWN_VERSIONS} )
+-- 
+cgit v0.11.2
diff --git a/dev-db/kdb/kdb-3.1.0-r2.ebuild b/dev-db/kdb/kdb-3.1.0-r2.ebuild
new file mode 100644 (file)
index 0000000..e39c39e
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_6 )
+
+inherit kde5 python-any-r1
+
+DESCRIPTION="Database connectivity and creation framework for various vendors"
+[[ ${KDE_BUILD_TYPE} != live ]] && SRC_URI="mirror://kde/stable/${PN}/src/${P}.tar.xz"
+
+LICENSE="LGPL-2+"
+SLOT="5/4"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug mysql postgres sqlite"
+
+RDEPEND="
+       $(add_frameworks_dep kcoreaddons)
+       $(add_qt_dep qtgui)
+       $(add_qt_dep qtnetwork)
+       $(add_qt_dep qtwidgets)
+       $(add_qt_dep qtxml)
+       dev-libs/icu:=
+       mysql? ( dev-db/mysql-connector-c:= )
+       postgres? (
+               $(add_qt_dep qtnetwork)
+               dev-db/postgresql:*
+       )
+       sqlite? ( dev-db/sqlite:3 )
+"
+DEPEND="${RDEPEND}
+       ${PYTHON_DEPS}
+       dev-qt/linguist-tools:5
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-crashfix.patch"
+       "${FILESDIR}/${P}-fix-loading-objdata.patch"
+       "${FILESDIR}/${P}-postgresql-11.patch"
+)
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+       kde5_pkg_setup
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DKDB_DEBUG_GUI=$(usex debug)
+               $(cmake-utils_use_find_package mysql MySQL)
+               $(cmake-utils_use_find_package postgres PostgreSQL)
+               $(cmake-utils_use_find_package sqlite Sqlite)
+       )
+
+       kde5_src_configure
+}