[qgis] 03/03: Add patch to fix QSpatiaLite provider build failure with Qt5.

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Sat Mar 12 16:59:00 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch qt5
in repository qgis.

commit fe2d4c6129832af92067e1b0122abc91c702ad9c
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Sat Mar 12 02:27:09 2016 +0100

    Add patch to fix QSpatiaLite provider build failure with Qt5.
    
    Re-enable QSpatiaLite provider.
---
 debian/changelog                     |  1 +
 debian/patches/qt5-qspatialite.patch | 90 ++++++++++++++++++++++++++++++++++++
 debian/patches/series                |  1 +
 debian/rules                         |  2 +-
 4 files changed, 93 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index 5007916..02ccbd8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ qgis (2.14.0+dfsg0-4~exp1) UNRELEASED; urgency=medium
   * Update branch in gbp.conf.
   * Switch from Qt4 to Qt5.
   * Add patch to fix globe plugin build failure with Qt5.
+  * Add patch to fix QSpatiaLite provider build failure with Qt5.
 
  -- Bas Couwenberg <sebastic at debian.org>  Fri, 08 May 2015 23:40:06 +0200
 
diff --git a/debian/patches/qt5-qspatialite.patch b/debian/patches/qt5-qspatialite.patch
new file mode 100644
index 0000000..4f775f0
--- /dev/null
+++ b/debian/patches/qt5-qspatialite.patch
@@ -0,0 +1,90 @@
+Description: Add support for Qt5 to qspatialite provider.
+ .
+ The detachFromResultSet() changes in qsql_spatialite.{cpp,h} are taken
+ from https://code.qt.io/cgit/qt/qtbase.git/commit/?id=fc15a1d5e2cb064d
+ by Mark Brand <mabrand at mabrand.nl>.
+ .
+ Additionally the sqlite3 & sqlite3_stmt types need to be declared as
+ opaque pointers per http://doc.qt.io/qt-5/qmetatype.html#Q_DECLARE_METATYPE
+ .
+ For Qt5 Q_PLUGIN_METADATA() should be used instead of Q_EXPORT_PLUGIN2()
+ per http://doc.qt.io/qt-5/qtquick-porting-qt5.html#qml-plugins
+ .
+Author: Bas Couwenberg <sebastic at debian.org>
+Forwarded: https://github.com/qgis/QGIS/pull/2903
+
+--- a/src/providers/spatialite/qspatialite/qsql_spatialite.cpp
++++ b/src/providers/spatialite/qspatialite/qsql_spatialite.cpp
+@@ -60,6 +60,10 @@
+ #include <sqlite3.h>
+ #include <qgsslconnect.h>
+ 
++#if QT_VERSION >= 0x050000
++Q_DECLARE_OPAQUE_POINTER(sqlite3*)
++Q_DECLARE_OPAQUE_POINTER(sqlite3_stmt*)
++#endif
+ Q_DECLARE_METATYPE(sqlite3*)
+ Q_DECLARE_METATYPE(sqlite3_stmt*)
+ 
+@@ -325,10 +329,12 @@ QSpatiaLiteResult::~QSpatiaLiteResult()
+ void QSpatiaLiteResult::virtual_hook(int id, void *data)
+ {
+     switch (id) {
++#if QT_VERSION < 0x050000
+     case QSqlResult::DetachFromResultSet:
+         if (d->stmt)
+             sqlite3_reset(d->stmt);
+         break;
++#endif
+     default:
+         QSqlCachedResult::virtual_hook(id, data);
+     }
+@@ -485,6 +491,14 @@ QSqlRecord QSpatiaLiteResult::record() c
+     return d->rInf;
+ }
+ 
++#if QT_VERSION >= 0x050000
++void QSpatiaLiteResult::detachFromResultSet()
++{
++    if (d->stmt)
++        sqlite3_reset(d->stmt);
++}
++#endif
++
+ QVariant QSpatiaLiteResult::handle() const
+ {
+     return QVariant::fromValue(d->stmt);
+--- a/src/providers/spatialite/qspatialite/qsql_spatialite.h
++++ b/src/providers/spatialite/qspatialite/qsql_spatialite.h
+@@ -80,6 +80,9 @@ protected:
+     int numRowsAffected();
+     QVariant lastInsertId() const;
+     QSqlRecord record() const;
++#if QT_VERSION >= 0x050000
++    void detachFromResultSet();
++#endif
+     void virtual_hook(int id, void *data);
+ 
+ private:
+--- a/src/providers/spatialite/qspatialite/smain.cpp
++++ b/src/providers/spatialite/qspatialite/smain.cpp
+@@ -47,6 +47,9 @@ QT_BEGIN_NAMESPACE
+ 
+ class QSpatiaLiteDriverPlugin : public QSqlDriverPlugin
+ {
++#if QT_VERSION >= 0x050000
++    Q_PLUGIN_METADATA(IID "org.qgis.QSpatiaLiteDriverPlugin")
++#endif
+ public:
+     QSpatiaLiteDriverPlugin();
+ 
+@@ -75,7 +78,9 @@ QStringList QSpatiaLiteDriverPlugin::key
+     return l;
+ }
+ 
++#if QT_VERSION < 0x050000
+ Q_EXPORT_STATIC_PLUGIN(QSpatiaLiteDriverPlugin)
+ Q_EXPORT_PLUGIN2(qspatialite, QSpatiaLiteDriverPlugin)
++#endif
+ 
+ QT_END_NAMESPACE
diff --git a/debian/patches/series b/debian/patches/series
index 6d09889..d7a00db 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,3 +6,4 @@ occurred-typo.patch
 number-typo.patch
 globe-adapt-to-osgearth-2.7.patch
 qt5-globe-plugin.patch
+qt5-qspatialite.patch
diff --git a/debian/rules b/debian/rules
index d69b866..e3dc3ba 100755
--- a/debian/rules
+++ b/debian/rules
@@ -60,7 +60,7 @@ CMAKE_OPTS := \
 	-DPEDANTIC=TRUE \
 	-DENABLE_QT5=TRUE \
 	-DWITH_BINDINGS=FALSE \
-	-DWITH_QSPATIALITE=FALSE \
+	-DWITH_QSPATIALITE=TRUE \
 	-DWITH_SERVER=FALSE \
 	-DWITH_SERVER_PLUGINS=TRUE \
 	-DSERVER_SKIP_ECW=TRUE \

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/qgis.git



More information about the Pkg-grass-devel mailing list