pesa        14/11/10 15:21:40

  Added:                qgis-1.7.0-avoid-deprecated-pyqtconfig.patch
  Log:
  Fix build with new PyQt4 buildsystem. Patch by Martin von Gagern in bug 
525700.
  
  (Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key 
0xDADED6B2671CB57D!)

Revision  Changes    Path
1.1                  
sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated-pyqtconfig.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated-pyqtconfig.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-geosciences/qgis/files/qgis-1.7.0-avoid-deprecated-pyqtconfig.patch?rev=1.1&content-type=text/plain

Index: qgis-1.7.0-avoid-deprecated-pyqtconfig.patch
===================================================================
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)




Reply via email to