[gdal-dev] Access SVN revision number from runtime?

Roger Bivand Roger.Bivand at nhh.no
Thu Aug 16 02:28:38 PDT 2012


On Thu, 16 Aug 2012, Even Rouault wrote:

> Selon Roger Bivand <Roger.bivand at nhh.no>:
>
>> gcore/gdal_version.h gives us the hard-wired compile-time version string.
>> GDALVersionInfo("--version") gives us the version known by the runtime. We
>> can
>> use GDALCheckVersion() to check that the two match (in rgdal/R). But is the
>> SVN
>> revision number exposed in the same way?
>
> No, the revision number is not exposed in any way.
>
>> A rgdal user on OpenSUSE has reported problems writing GTiff which 
>> turned out to stem from updates to the shared object having moved 
>> things leading to "Failure during IO": 
>> http://ssrebelious.blogspot.no/2012/08/rgdal-crash-solved.html. I think 
>> that the packagers may have been rolling their updates forward,
>
> Not sure what happened there. Sounds like some weird packaging/installation
> problem against which you cannot do much.

Right, this was my basic feeling, but given the tone of his blog, I 
thought I'd ask. Thanks gor responding so fast!

>
>> so I'd like to provide a more fine-grained GDALCheckVersion() which 
>> also accesses the SVN revision. Is this possible (or sensible)?
>
> I would advise against that. I'd go further : you should not even call 
> GDALCheckVersion() if RGDAL is only using the C API, which (in the GDAL 
> 1.x series) is forward compatible. I read your comment on the above blog 
> that you would refuse at runtime to run against GDAL 1.9.1 if RGDAL was 
> compiled against GDAL 1.9.0, but I don't think you want that. You want 
> people to be able to install bugfixes release of GDAL without requiring 
> a rebuild of all packages depending on GDAL. GDALCheckVersion() is 
> mainly usefull for authors of plugins to detect situations where they 
> have compiled their plugin against GDAL 1.x and at runtime are linking 
> against GDAL 1.y, which for plugins using the C++ API will not 
> potentially work due to C++ ABI changes.

The rgdal source is part C (for proj), part C++ for OGR/GDAL, but C++ 
written by C-minded people, so no new classes, but using C++ OGR/GDAL 
classes, things like: pDataset->~GDALDataset();. As I understand you, 
1.x.a and 1.x.b share the C++ ABI, but say 1.x.b and 1.y.a will probably 
not.

This suggests that I may use GDALCheckVersion(GDAL_VERSION_MAJOR, 
GDAL_VERSION_MINOR, NULL); to get something that might help users debug 
performance failures, but that GDAL_VERSION_REV is too fine-grained.

Best wishes,

Roger

>
>>
>> Thanks,
>>
>> Roger
>>
>> _______________________________________________
>> gdal-dev mailing list
>> gdal-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

-- 
Roger Bivand
Department of Economics, NHH Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no



More information about the gdal-dev mailing list