[Qgis-developer] OSGEO4W vs. Mac OS X Qt version (or ~34 plugins slightly broken)

William Kyngesburye woklist at kyngchaos.com
Thu May 10 07:26:15 PDT 2012

On May 9, 2012, at 12:08 PM, Larry Shaffer wrote:

> During a recent audit of almost every PyQGIS plugin (casually studying repetitive design patterns) and helping some users on gis.stackexhange.com [0] I have come across an issue that may affect over 30 plugins (for now, only on Mac).
> From what I can gather, William Kyngesburye's Mac builds (and Unix/Linux, too?) consistently use a current, stable version of Qt, now at 4.8, while the OSGEO4W package is at 4.4 [1]. This hasn't been an issue since, I believe (and assume), the bundled Qt in Mac builds included Qt3 support. The most recent 1.7.4 Mac version appears to have a bundled Qt with no Qt3 support (is this correct?).
I haven't included Qt3Support since QGIS 1.2, when the last of the Qt3 usage was removed (I think GRASS plugin was the last holdout).

> This has caused many PyQGIS plugins to fail to launch on Mac, due to their use of a Qt3-only QAction signal of activated() in a plugin's initGui() method. Basically, the plugin does not launch (i.e. does nothing), with no error. However, for Windows users, the plugin launches fine, causing problems when trying to offer cross-platform support for plugin issues.
> Can someone else verify these findings?
> I am slightly surprised Qt3 is still supported, and think dropping its support sounds like a good idea, especially for QGIS version 1.8 or >, but certainly don't know all the details on versioning for QGIS distributions. I understand this may cause problems with the OSGEO4W package. (btw: Why is it still on Qt 4.4?)
I would assume that Qt3 usage in external plugins would require support in PyQt, but PyQt has never compiled a PyQt3 module for me, and I'm not sure if it can, or how.

> Here are the plugins I have found that use the deprecated activated() signal, including two core C++ [2]

This is odd because those plugins then should not even compile if Qt3 is missing.  And spatialquery works for me without Qt3Support.  (GRASS works, but has its own problems)

> and a ZIP archive of the particular files that I found to contain that signal [3]. Without a complete examination of each plugin, I am not entirely certain all of the signals are of QAction. I tried to include only those that appear to be. (Note: there may be more uses of Qt3 deprecated methods, etc.)
> Please correct me if I am off on my assessment of this situation, or if I am late to the discussion.
> [0] http://gis.stackexchange.com/a/22953/6725 , http://gis.stackexchange.com/a/24860/6725
> [1] http://trac.osgeo.org/osgeo4w/wiki/pkg-qt4-libs
> [2] http://dl.dropbox.com/u/4058089/qgis/plugins_contain-qt3activated.txt
> [3] http://dl.dropbox.com/u/4058089/qgis/plugins_contain-qt3activated.zip
> Regards,
> Larry Shaffer
> Dakota Cartography
> Black Hills, South Dakota
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer

William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>

"History is an illusion caused by the passage of time, and time is an illusion caused by the passage of history."

- Hitchhiker's Guide to the Galaxy

More information about the Qgis-developer mailing list