[qgis: 1/2] Solve build issues with SIP 4.15
Volker Fröhlich
volter at fedoraproject.org
Sat Oct 19 19:22:26 UTC 2013
commit acb30eec9efdd913199b59203f6575adac23e7bf
Author: Volker Fröhlich <volker27 at gmx.at>
Date: Sat Oct 19 21:16:32 2013 +0200
Solve build issues with SIP 4.15
qgis-2.0.1-sip-4.15.patch | 160 +++++++++++++++++++++++++++++++++++++++++++++
qgis-2.0.1-sip-8601.patch | 27 ++++++++
qgis.spec | 25 ++++++--
3 files changed, 207 insertions(+), 5 deletions(-)
---
diff --git a/qgis-2.0.1-sip-4.15.patch b/qgis-2.0.1-sip-4.15.patch
new file mode 100644
index 0000000..06c85da
--- /dev/null
+++ b/qgis-2.0.1-sip-4.15.patch
@@ -0,0 +1,160 @@
+diff -ur qgis-2.0.1/python/CMakeLists.txt qgis-2.0.1-sip/python/CMakeLists.txt
+--- qgis-2.0.1/python/CMakeLists.txt 2013-09-11 01:06:52.000000000 +0200
++++ qgis-2.0.1-sip/python/CMakeLists.txt 2013-10-19 20:49:29.597349650 +0200
+@@ -75,7 +75,7 @@
+ # core module
+ FILE(GLOB_RECURSE sip_files_core core/*.sip)
+ SET(SIP_EXTRA_FILES_DEPEND ${sip_files_core})
+-SET(SIP_EXTRA_OPTIONS ${PYQT4_SIP_FLAGS} -o -a ${CMAKE_BINARY_DIR}/python/qgis.core.api)
++SET(SIP_EXTRA_OPTIONS ${PYQT4_SIP_FLAGS} -a ${CMAKE_BINARY_DIR}/python/qgis.core.api)
+ ADD_SIP_PYTHON_MODULE(qgis.core core/core.sip qgis_core)
+
+ # additional gui includes
+@@ -90,7 +90,13 @@
+ # gui module
+ FILE(GLOB_RECURSE sip_files_gui gui/*.sip)
+ SET(SIP_EXTRA_FILES_DEPEND ${sip_files_core} ${sip_files_gui})
+-SET(SIP_EXTRA_OPTIONS ${PYQT4_SIP_FLAGS} -o -a ${CMAKE_BINARY_DIR}/python/qgis.gui.api)
++SET(SIP_EXTRA_OPTIONS ${PYQT4_SIP_FLAGS} -a ${CMAKE_BINARY_DIR}/python/qgis.gui.api)
++
++IF(UNIX AND NOT SIP_VERSION_NUM LESS 265984)
++ SET(SIP_EXTRA_OPTIONS -P ${SIP_EXTRA_OPTIONS})
++ ADD_DEFINITIONS(-Dprotected=public)
++ENDIF(UNIX AND NOT SIP_VERSION_NUM LESS 265984)
++
+ ADD_SIP_PYTHON_MODULE(qgis.gui gui/gui.sip qgis_core qgis_gui)
+
+ # additional analysis includes
+@@ -113,13 +119,13 @@
+ analysis/interpolation/*.sip
+ )
+ SET(SIP_EXTRA_FILES_DEPEND ${sip_files_core} ${sip_files_analysis})
+-SET(SIP_EXTRA_OPTIONS ${PYQT4_SIP_FLAGS} -o -a ${CMAKE_BINARY_DIR}/python/qgis.analysis.api)
++SET(SIP_EXTRA_OPTIONS ${PYQT4_SIP_FLAGS} -a ${CMAKE_BINARY_DIR}/python/qgis.analysis.api)
+ ADD_SIP_PYTHON_MODULE(qgis.analysis analysis/analysis.sip qgis_core qgis_analysis)
+
+ # network-analysis module
+ FILE(GLOB_RECURSE sip_files_network_analysis analysis/network/*.sip)
+ SET(SIP_EXTRA_FILES_DEPEND ${sip_files_core} ${sip_files_network_analysis})
+-SET(SIP_EXTRA_OPTIONS ${PYQT4_SIP_FLAGS} -o -a ${CMAKE_BINARY_DIR}/python/qgis.networkanalysis.api)
++SET(SIP_EXTRA_OPTIONS ${PYQT4_SIP_FLAGS} -a ${CMAKE_BINARY_DIR}/python/qgis.networkanalysis.api)
+ ADD_SIP_PYTHON_MODULE(qgis.networkanalysis analysis/network/networkanalysis.sip qgis_core qgis_networkanalysis)
+
+ SET(QGIS_PYTHON_DIR ${PYTHON_SITE_PACKAGES_DIR}/qgis)
+Only in qgis-2.0.1-sip/python: CMakeLists.txt.orig
+Only in qgis-2.0.1-sip/python: CMakeLists.txt.rej
+diff -ur qgis-2.0.1/python/gui/qgsmaptooltouch.sip qgis-2.0.1-sip/python/gui/qgsmaptooltouch.sip
+--- qgis-2.0.1/python/gui/qgsmaptooltouch.sip 2013-09-11 01:06:52.000000000 +0200
++++ qgis-2.0.1-sip/python/gui/qgsmaptooltouch.sip 2013-10-19 20:47:47.412374663 +0200
+@@ -24,5 +24,7 @@
+ virtual void canvasDoubleClickEvent( QMouseEvent * e );
+
+ virtual bool isTransient();
++
++ bool gestureEvent( QGestureEvent *event );
+ };
+ %End
+Only in qgis-2.0.1-sip: qgis-2.0.1
+diff -ur qgis-2.0.1/src/core/qgsmaplayerregistry.h qgis-2.0.1-sip/src/core/qgsmaplayerregistry.h
+--- qgis-2.0.1/src/core/qgsmaplayerregistry.h 2013-09-11 01:06:52.000000000 +0200
++++ qgis-2.0.1-sip/src/core/qgsmaplayerregistry.h 2013-10-19 20:47:47.410374765 +0200
+@@ -239,6 +239,11 @@
+ //! protected constructor
+ QgsMapLayerRegistry( QObject * parent = 0 );
+
++ /** debugging member
++ invoked when a connect() is made to this object
++ */
++ void connectNotify( const char * signal );
++
+ private:
+
+ static QgsMapLayerRegistry* mInstance;
+@@ -246,10 +251,6 @@
+ QMap<QString, QgsMapLayer*> mMapLayers;
+ QSet<QgsMapLayer*> mOwnedLayers;
+
+- /** debugging member
+- invoked when a connect() is made to this object
+- */
+- void connectNotify( const char * signal );
+
+
+ }; // class QgsMapLayerRegistry
+diff -ur qgis-2.0.1/src/gui/qgsattributedialog.h qgis-2.0.1-sip/src/gui/qgsattributedialog.h
+--- qgis-2.0.1/src/gui/qgsattributedialog.h 2013-09-11 01:06:52.000000000 +0200
++++ qgis-2.0.1-sip/src/gui/qgsattributedialog.h 2013-10-19 20:47:47.410374765 +0200
+@@ -59,9 +59,10 @@
+
+ void dialogDestroyed();
+
+- private:
++ protected:
+ bool eventFilter( QObject *obj, QEvent *event );
+
++ private:
+ QDialog *mDialog;
+ QString mSettingsPath;
+ // Used to sync multiple widgets for the same field
+diff -ur qgis-2.0.1/src/gui/qgsmapcanvas.h qgis-2.0.1-sip/src/gui/qgsmapcanvas.h
+--- qgis-2.0.1/src/gui/qgsmapcanvas.h 2013-09-11 01:06:52.000000000 +0200
++++ qgis-2.0.1-sip/src/gui/qgsmapcanvas.h 2013-10-19 20:47:47.411374714 +0200
+@@ -410,6 +410,11 @@
+ /// Handle pattern for implementation object
+ std::auto_ptr<CanvasProperties> mCanvasProperties;
+
++ /**debugging member
++ invoked when a connect() is made to this object
++ */
++ void connectNotify( const char * signal );
++
+ private slots:
+ void crsTransformEnabled( bool );
+
+@@ -459,11 +464,6 @@
+ the last entry in case a lot of resize events arrive in short time*/
+ QList< QPair<int, int> > mResizeQueue;
+
+- /**debugging member
+- invoked when a connect() is made to this object
+- */
+- void connectNotify( const char * signal );
+-
+ //! current layer in legend
+ QgsMapLayer* mCurrentLayer;
+
+diff -ur qgis-2.0.1/src/gui/qgsmaptooltouch.h qgis-2.0.1-sip/src/gui/qgsmaptooltouch.h
+--- qgis-2.0.1/src/gui/qgsmaptooltouch.h 2013-09-11 01:06:52.000000000 +0200
++++ qgis-2.0.1-sip/src/gui/qgsmaptooltouch.h 2013-10-19 20:47:47.412374663 +0200
+@@ -49,13 +49,14 @@
+
+ virtual bool isTransient() { return true; }
+
++ bool gestureEvent( QGestureEvent *event );
++
+ private:
+
+ //! Flag to indicate a map canvas drag operation is taking place
+ bool mDragging;
+ //! Flag to indicate a pinch gesture is taking place
+ bool mPinching;
+- bool gestureEvent( QGestureEvent *event );
+ void pinchTriggered( QPinchGesture *gesture );
+ };
+
+diff -ur qgis-2.0.1/src/gui/qgsmessagelogviewer.h qgis-2.0.1-sip/src/gui/qgsmessagelogviewer.h
+--- qgis-2.0.1/src/gui/qgsmessagelogviewer.h 2013-09-11 01:06:52.000000000 +0200
++++ qgis-2.0.1-sip/src/gui/qgsmessagelogviewer.h 2013-10-19 20:47:47.411374714 +0200
+@@ -42,10 +42,11 @@
+ public slots:
+ void logMessage( QString message, QString tag, QgsMessageLog::MessageLevel level );
+
+- private:
++ protected:
+ void showEvent( QShowEvent * );
+ void hideEvent( QHideEvent * );
+
++ private:
+ QToolButton *mButton;
+ int mCount;
+
diff --git a/qgis-2.0.1-sip-8601.patch b/qgis-2.0.1-sip-8601.patch
new file mode 100644
index 0000000..59bb8a6
--- /dev/null
+++ b/qgis-2.0.1-sip-8601.patch
@@ -0,0 +1,27 @@
+From 2301c9145afbbbb2f3f31bd751498f9893eabc1e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dra=C5=BEen=20Odoba=C5=A1i=C4=87?= <dodobasic at gmail.com>
+Date: Sun, 22 Sep 2013 22:41:20 +0200
+Subject: [PATCH 3/4] apply #8601
+
+---
+ python/gui/qgsfieldvalidator.sip | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/python/gui/qgsfieldvalidator.sip b/python/gui/qgsfieldvalidator.sip
+index 5d5de30..6237e3e 100644
+--- a/python/gui/qgsfieldvalidator.sip
++++ b/python/gui/qgsfieldvalidator.sip
+@@ -9,6 +9,8 @@ class QgsFieldValidator : QValidator
+ QgsFieldValidator( QObject *parent, const QgsField &field, QString dateFormat = "yyyy-MM-dd" );
+ ~QgsFieldValidator();
+
+- virtual State validate( QString &, int & ) const;
+- virtual void fixup( QString & ) const;
++ virtual State validate(QString & /In,Out/, int & /In,Out/) const = 0 /API=QString:2 - /;
++ virtual State validate(QString & /Constrained/, int & /In,Out/) const = 0 /API=QString: - 2/;
++ virtual void fixup(QString &input /In,Out/) const /API=QString:2 - /;
++ virtual void fixup(QString & /Constrained/) const /API=QString: - 2/;
+ };
+--
+1.8.1.4
+
diff --git a/qgis.spec b/qgis.spec
index a0952c6..d3bc09e 100644
--- a/qgis.spec
+++ b/qgis.spec
@@ -19,7 +19,7 @@
Name: qgis
Version: 2.0.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A user friendly Open Source Geographic Information System
# Update FSF address or ship a GPLv3+ license file
@@ -42,12 +42,21 @@ Source5: %{name}-mime.xml
# Fix detection problem for GRASS libraries
Patch0: %{name}-1.5.0-grass.patch
-# Drop -o option from SIP, as versions older than 4.10 don't have it
-Patch1: %{name}-2.0.0-sip410.patch
-
# Remove httplib2 from the build system
Patch2: %{name}-2.0.1-httplib2.patch
+# Compilation failure with sip 4.15
+# https://hub.qgis.org/issues/8507
+# https://github.com/qgis/QGIS/commit/6734ab443a41b5ab5a730651754d9365cf4eaf04
+# 8385386493d3b19223825ce2ac9137d6d079a1c2
+# 349a4c974fab88fdda0d612dea8defe037ec50ba
+# Drop -o option from SIP, as versions older than 4.10 don't have it
+Patch3: %{name}-2.0.1-sip-4.15.patch
+
+# sip: QgsFieldValidator::fixup has versioned and unversioned overloads
+# https://hub.qgis.org/issues/8601
+Patch4: %{name}-2.0.1-sip-8601.patch
+
# Leaving it to make life easier for ELGIS, as long as they target RHEL 5
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
@@ -162,8 +171,9 @@ Please refer to %{name}-mapserver-README.fedora for details!
%prep
%setup -q
%patch0 -p1 -b .grass~
-%patch1 -p1 -b .sip410~
%patch2 -p1 -b .httplib2~
+%patch3 -p1 -b .sip415~
+%patch4 -p1 -b .field_val_overload~
# Readme file for QGIS mapserver configuration and Lighttpd sample
install -pm0644 %{SOURCE4} .
@@ -375,6 +385,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_libexecdir}/%{name}
%changelog
+* Tue Sep 24 2013 Volker Fröhlich <volker27 at gmx.at> - 2.0.1-2
+- Patch QGIS #8507 -- QGIS trunk failed to compile with sip 4.15
+- Patch QGIS #8601 -- sip: QgsFieldValidator::fixup has versioned and
+ unversioned overloads
+
* Tue Sep 24 2013 Volker Fröhlich <volker27 at gmx.at> - 2.0.1-1
- New upstream release
More information about the scm-commits
mailing list