Tested yakkety with:
ii libodb-2.4 2.4.0-1build0~16.10.1
amd64 Common ODB Runtime Library
ii libodb-boost-2.4 2.4.0-1build0~16.10.1
amd64 Boost ODB runtime library
ii libodb-boost-dev 2.4.0-1build0~16.10.1
amd64 Boost ODB runtime library (development)
ii libodb-dev 2.4.0-1build0~16.10.1
amd64 Common ODB Runtime Library (development)
ii libodb-mysql-2.4 2.4.0-2
amd64 ODB Runtime Library for MySQL
ii libodb-mysql-dev 2.4.0-2
amd64 ODB Runtime Library for MySQL (development)
ii libodb-pgsql-2.4 2.4.0-1build0~16.10.1
amd64 ODB Runtime Library for PostgreSQL
ii libodb-pgsql-dev 2.4.0-1build0~16.10.1
amd64 ODB Runtime Library for PostgreSQL (development)
ii libodb-qt-2.4 2.4.0-2build0~16.10.1
amd64 Qt ODB runtime library
ii libodb-qt-dev 2.4.0-2build0~16.10.1
amd64 Qt ODB runtime library (development)
ii libodb-sqlite-2.4 2.4.0-1build0~16.10.1
amd64 ODB Runtime Library for SQLite
ii libodb-sqlite-dev 2.4.0-1build0~16.10.1
amd64 ODB Runtime Library for SQLite (development)
** Description changed:
+ Only release all packages together!
+
[Impact]
* libodb stack changes abi when build with new enough g++ (due to c++11 abi
tagging)
* things that are compiled with new abi are ok (libodb-mysql); linking
against mixed build things does not work (e.g. 3rd party apps, like odb-tests
building against new libodb-mysql and old libodb)
[Solution]
* In debian, simply binNMUs were done without bumping the ABI =/
* Whilst libodb-boost and libodb-qt do not appear to be affected, imho
it is best to rebuild them too.
[Testcase]
* download odb-tests
* autoreconf -fi
* Build and link with following configs (./configure; make clean; make)
+ ./configure --with-database=sqlite
+ ./configure --with-database=mysql
+ ./configure --with-database=pgsql
-
- There appears to be some incompatibility between libodb and libodb-mysql in
that the latter cannot resolve symbols from the former. More details are in
this odb-users mailing list thread:
+ There appears to be some incompatibility between libodb and libodb-mysql
+ in that the latter cannot resolve symbols from the former. More details
+ are in this odb-users mailing list thread:
http://www.codesynthesis.com/pipermail/odb-users/2016-May/003277.html
My suspicion (discussed in the second post of the above thread) is that
libodb is built in the C++11 mode while the rest of the ODB runtimes
(libodb-mysql and libodb-pgsql were confirmed by the users) -- C++98. I,
however, couldn't find the package build logs (neither on Ubuntu nor on
Debian) to confirm this.
** Tags removed: verification-needed
** Tags added: verification-done
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1588330
Title:
Incompatible builds of libodb and libodb-mysql
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libodb/+bug/1588330/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs