[GRASS-dev] version compatibility

Glynn Clements glynn at gclements.plus.com
Sat Jun 13 13:31:50 EDT 2009


William Kyngesburye wrote:

> I'm trying to figure out how to handle multiple GRASS versions.  I see  
> that G_gisinit() and G_no_gisinit() compare the version passed to it  
> with GIS_H_VERSION.  And this currently in 6.4RCx is set to an SVN  
> revision number.
> 
> Since GIS_H_VERSION gets compiled into any external software that  
> links to GRASS libraries - GDAL/GRASS plugin and QGIS - GRASS 6.4RC4 ! 
> = GRASS 6.4RC5 and I have to rebuild *everything* for it all to  
> happily coexist.  Nightmare for distribution.
> 
> When GRASS 6.4 is final, will this be set to some fixed value that  
> will not change between revisions (ie 6.4.x)?  The library API  
> shouldn't change in minor revisions, so external software shouldn't  
> have to depend on an exact version of GRASS.

If gis.h doesn't change, then GIS_H_VERSION won't change

If gis.h is changed, the API and ABI have changed, so any programs
using libgis will need to be recompiled for the new ABI.

Checking GIS_H_VERSION simply causes any programs built for a
different version to produce an unambiguous error message rather than
producing obscure errors due to ABI incompatibility.

> Users installing binaries may not update all (GRASS/GDAL/QGIS/other)  
> in a timely manner.  Packagers would otherwise have to rebuild  
> software that hasn't changed just so it works with a minor GRASS update.

Anything which changes GIS_H_VERSION isn't a minor update.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list