← Back to team overview

kicad-developers team mailing list archive

Re: libngspice versioning by libtool


Am 30.07.21 um 14:53 schrieb Holger Vogt:
> Ah, and what is the versioning now? The API has not changed, it was 
> however not described correctly in sharedspice.h, which now (ngspice-35) 
> will be fixed.

So you have changed the internal behavior of one or more symbols?

This is of course a modification of the API. From the commit message
that I wrote for ngspice:

>      Existing symbols behave now different or existing symbols were removed.
>      --> Increase 'current' by 1, set 'revision' to 0, set 'age' to 0 (c+1,r=0,a=0)
>      !!!Note!!!
>      The ABI version is also affected by this (needs a bump too, the library
>      isn't backward compatible any more.

So libngspice normally would need to get a bump of the current version.
Existing source projects aren't able to get built against the new
library version without the modifications to the source and would fail
already at configure time because the API version of the new library
isn't matching.
Now the fun begins because also the header files would need to go into a
new different folder than the old ones in most of the cases.

You can try to avoid such hassle by introducing a wrapper function that
is basically the old symbol call that is internally redirecting to the
new symbol.
By this you "only" introduce a new symbol and from an outside view the
library is behaving the same as before.

That's what other libraries always try to do because introducing a new
API version has a lot of necessary required following steps, especially
outside the library. If ever possible this is to get avoided.


Follow ups