summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated-pyqtconfig.patch')
-rw-r--r--sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated-pyqtconfig.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated-pyqtconfig.patch b/sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated-pyqtconfig.patch
new file mode 100644
index 000000000000..65cabb2afe72
--- /dev/null
+++ b/sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated-pyqtconfig.patch
@@ -0,0 +1,53 @@
+Avoid relying on the deprecated pyqtconfig module.
+
+When PyQt4 is configured using configure-ng.py then no pyqtconfig module
+will be built, causing the automatic detection in the QGIS build system to
+fail.
+
+This change tries to work around the problem by extracting or guessing all
+the relevant settings. It should work reasonably well for a default
+configuration of PyQt, but may fail if PyQt overrides the defaults from sip.
+All may break if SIP v5 is used, since that version apparently won't contain
+a sipconfig module any more. But we'll tackle that once we get there.
+
+References:
+* https://bugs.gentoo.org/show_bug.cgi?id=525700
+
+2014-10-21 Martin von Gagern
+
+Index: qgis-2.4.0/cmake/FindPyQt.py
+===================================================================
+--- qgis-2.4.0.orig/cmake/FindPyQt.py
++++ qgis-2.4.0/cmake/FindPyQt.py
+@@ -30,9 +30,29 @@
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+-import PyQt4.pyqtconfig
++try:
++ import PyQt4.pyqtconfig
++ pyqtcfg = PyQt4.pyqtconfig.Configuration()
++except ImportError:
++ import PyQt4.QtCore
++ import sipconfig # won't work for SIP v5
++ import os.path
++ cfg = sipconfig.Configuration()
++ sip_dir = cfg.default_sip_dir
++ for p in (os.path.join(sip_dir, "PyQt4"), sip_dir):
++ if os.path.exists(os.path.join(p, "QtCore", "QtCoremod.sip")):
++ sip_dir = p
++ break
++ cfg = {
++ 'pyqt_version': PyQt4.QtCore.PYQT_VERSION,
++ 'pyqt_version_str': PyQt4.QtCore.PYQT_VERSION_STR,
++ 'pyqt_sip_flags': PyQt4.QtCore.PYQT_CONFIGURATION['sip_flags'],
++ 'pyqt_mod_dir': cfg.default_mod_dir,
++ 'pyqt_sip_dir': sip_dir,
++ 'pyqt_bin_dir': cfg.default_bin_dir,
++ }
++ pyqtcfg = sipconfig.Configuration([cfg])
+
+-pyqtcfg = PyQt4.pyqtconfig.Configuration()
+ print("pyqt_version:%06.0x" % pyqtcfg.pyqt_version)
+ print("pyqt_version_num:%d" % pyqtcfg.pyqt_version)
+ print("pyqt_version_str:%s" % pyqtcfg.pyqt_version_str)