[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [DebianGIS] Re: gdal



[Frank Warmerdam]
> I am pretty careful to update the soname properly to reflect
> changes in the libgdal C API.

Sounds good.

> The C++ API is essentially incompatible for every release, and I
> deliberately choose not to indicate this in the soname.

Not so good.  If this is the case, the library package name need to
change with every upstream release, and the soname with it.  If this
isn't done, all programs using the C++ ABI might crash with the
upgraded library, and such problems should be documented using package
dependencies.  Doing that require that the library package change
names.

> In fact, the current C API is still backward compatible to around
> the year 2000.  Of course there have been many additions to the API,
> as indicated in the incremented minor number.

Sounds good.

>> I suggest comparing the installed header files for the two versions,
>> and check if structs or function prototypes changed.
> 
> This sounds like alot of work to do accurately.  I wouldn't advise
> it.

Yes, it is hard for large libraries, and easier for smaller libraries.
But in some cases it is the only way to detect API changes.  For
example, I had to do this to figure out an API change in the tiff
library when programs started to crash for no apparent reason after an
upstream library upgrade.  See
<URL:http://www.asmail.be/msg0055063978.html> for that history. :/

Comparing headers normally only take a few hours using 'diff -urw',
unless the headers were reorganized completely.  Then it become really
painful, and should probably be done with the help of scripts and the
C preprocessor.. :)



Reply to: