Hi all developers, I recently noticed that during the last month there was an increasing number of posts into the SpatiaLite's own mailing list about QGIS / SpatiaLite. Several users where experiencing some difficulties when using python plugins: most notably on Win/OSGeo4W, but on Ubuntu as well.
During the last days I've performed a quite thorough debugging, so I'm now ready to submit to your attention a full report about this topic. It looks like we have a "broken/missing link" into the QGIS build/release cycle :-( ======================================= a) just as a remember: SQLite/SpatiaLite aren't client/server, so the same library acts in both sql-engine and connector roles b) QGIS directly includes into its base code a "private internal copy" of sqlite/splite (after all, simply two C source are required to implement sqlite/spatialite). and I personally take care to update QGIS each time a new splite's release is available. so QGIS 1.6 and 1.7-trunk are now supporting the most recent 2.4.0-RC4. c) but on the Python's side the pyspatialite connector still continues using the nowadays obsolete v.2.3.1 (pyspatialite as well uses a "private internal copy" of sqlite/splite: unhappily, an obsolete one). Consequently several issues deriving from mismatching versions arise. and apparently nobody is taking care to update/synchronize pyspatialite and spatialite. I suppose that all this will sound really odd and puzzling for end users. After all, when you have just installed the latest QGIS (may be from OSGeo4W) you aren't surely expecting to get two mismatching versions for the same library to be shipped together, one supporting the "main" app, and the second one supporting python plugins. So I suppose we are urgently required to implement some improvement into the QGIS build/release system, so to grant that a consistent versioning state is always ensured. I'm not at all a CMake guru: and my Python skills are very superficial. Anyway I suppose that one of the following options can surely be implemented: a) put the pyspatialite sources directly into the QGIS build tree, in such a way that each time the splite's data provider is updated, the same update will surely affect the python connector b) alternatively (if python own idiosyncrasies forbid adopting the above approach), inventing something different granting an equivalent result. But I strongly feel that the pyspatialite maintenance cannot be any longer let in an uncontrolled out-of-sync state. Any useful hint, suggestions and further considerations from you are surely welcome. bye Sandro P.S.: here you can get a technical note explaining in full detail how-to build the pyspatialite connector: http://www.gaia-gis.it/spatialite-2.4.0-4/splite-python.html _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
