---------- Forwarded message ----------
From: OSGeo4W <trac_osgeo4w@osgeo.org>
Date: Sat, Oct 27, 2012 at 8:47 PM
Subject: Re: [osgeo4w] #305: sqlite/spatialite:
"sqlite3-rtree-geometry-callback" not found in the dll "sqlite3.dll"
To:
Cc: osgeo4w-trac@lists.osgeo.org
#305: sqlite/spatialite: "sqlite3-rtree-geometry-callback" not found in the dll
"sqlite3.dll"
---------------------+------------------------------------------------------
Reporter: hellik | Owner: brushtyler
Type: defect | Status: new
Priority: critical | Component: Package
Version: 1.0 | Keywords: sqlite,spatialite
---------------------+------------------------------------------------------
Comment(by brushtyler):
I've built the sqlite3.dll using mingw by {{{ ./configure
SQLITE_ENABLE_RTREE=1 --build=mingw32 --target=mingw32 }}} (though the
nmake.opt file I used the last time set SQLITE_ENABLE_RTREE=1 as well),
but running grass7-dev after copying the DLL in OSGeo4W/bin it still
raises the error.
In the traceback I see that grass7 uses python ctypes to load the DLL, so
I tried to do the same from OSGeo4W shell and using python ctypes I can
find the function within the DLL and load it.
So, are you sure the problem is not within the grass7 code?
---------- Forwarded message ----------
From: OSGeo4W <[hidden email]>
Date: Sat, Oct 27, 2012 at 8:47 PM
Subject: Re: [osgeo4w] #305: sqlite/spatialite:
"sqlite3-rtree-geometry-callback" not found in the dll "sqlite3.dll"
forwarded from the spatialite-ML:
in SpatiaLite? 3.0.1 (the version shipped with OSGeo4W) the name
of the flag is OMIT_GEOCALLBACKS, probably it was changed to
DISABLE_GEOMETRY_CALLBACKS in the last splite version.
there is absolutely no contradiction (no change) in this.
reality is much more simple: OSGeo4W doesn't uses the canonical build
scripts; it's based instead on the proprietary MSVC compiler.
and in this environment canonical ./configure scripts are nicely
unsupported at all.
./configure --enable-geocallbacks=[yes|no]
this will automatically set as appropriate an internal C flag named
OMIT_GEOCALLBACKS, and will silently set any Makefile as required.
OSGeo4W skips at all the "abstract level" handled by the ./configure
script, directly jumping to the "raw level" of Makefiles and C code;
so the canonical --enable-geocallbacks or --disable-geocallbacks
options are surely invisible from their own perspective, and they
can simply interact with the OMIT_GEOCALLBACKS flag.
So disabling the geometry callbacks in spatialite lib cannot make
grass7-dev working again.
any idea?
looks like a grass7-dev specific problem; very probably some of their
modules are still using the deprecated geo-callbacks methods, that
are now disabled by default and that will be definitely removed from
future versions of spatialite.
correcting the C code so to switch from geo-callbacks to the most
recent
VirtualSpatialIndex interface is a very simple operation, just
requiring
to rewrite the SQL queries accessing the Spatial Index.
Not at all a complex patch.