You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment the library SONAME version is 0. To work well in a Linux environment with programs linked to the shared library, the library should change SONAME version every time a non-backwards compatible change is done. One example like this is the removal of symbols.
While working on updating sqlcipher in Debian, I discovered that several times between the current Debian release 3.4.1 and the latest version 4.5.5 backwards compatibility was broken without changing the SONAME.
To update the SONAME, the -version-info "8:6:8" statement in Makefile.in need to be updated, and the diff between the first and third number need to increase. At the moment the SONAME version is 8-8=0, while in the new version in Debian I plan to move to 9:6:8 to get 9-8=1.
Hello @petterreinholdtsen - you mentioned changes between 3.4.1 and 4.5.5 that affected backwards compatibility, could you provide some more details on what those changes were? We have historically inherited the version-info tag from SQLite, since it defines the public API.
Hello @petterreinholdtsen - you mentioned changes between 3.4.1 and
4.5.5 that affected backwards compatibility, could you provide some
more details on what those changes were?
The symbols added and removed from the library are listed in
<URL: https://salsa.debian.org/debian/sqlcipher/-/commits/master/debian/libsqlcipher1.symbols >,
for each version where I did a test build. Every symbol removal between
published versions is a potential ABI issue breaking backwards
compatibility for packages linked to the published library package. I
noticed symbol removal also for when only the last digit in the
sqlcipher version number changed.
I did not investigate API changes.
At the moment the library SONAME version is 0. To work well in a Linux environment with programs linked to the shared library, the library should change SONAME version every time a non-backwards compatible change is done. One example like this is the removal of symbols.
While working on updating sqlcipher in Debian, I discovered that several times between the current Debian release 3.4.1 and the latest version 4.5.5 backwards compatibility was broken without changing the SONAME.
To update the SONAME, the -version-info "8:6:8" statement in Makefile.in need to be updated, and the diff between the first and third number need to increase. At the moment the SONAME version is 8-8=0, while in the new version in Debian I plan to move to 9:6:8 to get 9-8=1.
https://tracker.debian.org/sqlcipher
The text was updated successfully, but these errors were encountered: