GNOME Bugzilla – Bug 539310
bad libtool usage breaks soname compat
Last modified: 2008-11-17 10:09:32 UTC
Going from libgda-3.1.2 to 3.1.4, configure.in makes the following change: # Making releases: # - If interfaces have been changed or added, set GDA_CURRENT += 1 and GDA_AGE += 1, set GDA_REVISION to 0. # - If binary compatibility has been broken (e.g. removed or changed interfaces), set GDA_CURRENT += 1, GDA_REVISION and GDA_AGE to 0 # - If interfaces is the same as the previous version, set GDA_REVISION += 1 # GDA_CURRENT=3 GDA_REVISION=0 -GDA_AGE=0 +GDA_AGE=1 "Just _AGE+=1" is not one of the options for how to do things. But the effective meaning (if not the intended meaning) is clear: there have been changes to the interface. The libtool effect of that change via -version-info $(GDA_CURRENT):$(GDA_REVISION):$(GDA_AGE) is clear also: changed the install_name, an OS X concept comparable to SONAME. The result is that installing 3.1.4 gives different shared-library filenames than 3.1.2 did. If I upgrade libgda-3.1.2 to 3.1.4, everything I had compiled against the old one is hopelessly broken and requires recompiling from source.
Vivien, you did this with this commit: 2007-11-06 Vivien Malerba <malerba {at} gnome-db.org> * libgda/sqlite/gda-sqlite-provider.c: correction for bug #493360 * libgda.spec.in: corrections from Petr "Qaxi" Klíma * tests/queries/check_gdaquery.c: make sure the test is completely executed * tests/queries/basic_sql.xml: new test * tests/queries/bug_param_sql.xml: removed useless test * configure.in: set GDA_AGE to 1 Please be more careful in future. However, not that libgda 3.1.x was an unstable release likely to break in odd ways so this was not critical. Closing because it obviously can't be changed back now.