Bug#951210: [debian-mysql] Bug#951210: libmariadb3 breaks backwards compatibility (mysql_get_timeout_value version changed: libmysqlclient_18 -> libmariadb_3)

2020-02-12 Thread ygrek
On Wed, 12 Feb 2020 23:21:10 +0200
Otto Kekäläinen  wrote:

> Upstream has had a habit of changing the symbols a bit. Luckily they
> are all tracked in packaging:
> https://salsa.debian.org/mariadb-team/mariadb-10.3/commits/buster/debian/libmariadb3.symbols
> 
> Usually upstream has been careful and wise in what symbol changes they
> make.The updated symbols should have very marginal usage. What
> binaries did you experience broke?

It is a private codebase.
I was surprised that debian would break abi compatibility in stable release, 
but idk if there is really such policy in place.

-- 



Bug#951210: [debian-mysql] Bug#951210: libmariadb3 breaks backwards compatibility (mysql_get_timeout_value version changed: libmysqlclient_18 -> libmariadb_3)

2020-02-12 Thread Otto Kekäläinen
Hello!

Upstream has had a habit of changing the symbols a bit. Luckily they
are all tracked in packaging:
https://salsa.debian.org/mariadb-team/mariadb-10.3/commits/buster/debian/libmariadb3.symbols

Usually upstream has been careful and wise in what symbol changes they
make.The updated symbols should have very marginal usage. What
binaries did you experience broke?

- Otto



Bug#951210: libmariadb3 breaks backwards compatibility (mysql_get_timeout_value version changed: libmysqlclient_18 -> libmariadb_3)

2020-02-12 Thread ygrek
Package: libmariadb3
Version: 1:10.3.22-1
Severity: normal

Dear Maintainer,

After upgrading libmariadb3 from 1:10.3.18-0+deb10u1 to
1:10.3.22-0+deb10u1 the binaries linked against it cannot run with :

  symbol mysql_get_timeout_value version libmysqlclient_18 not defined in file 
libmariadb.so.3 with link time reference

Looking at symbol changes between these versions :

```
nm --with-symbol-versions -D /usr/lib/x86_64-linux-gnu/libmariadb.so.3 > 
mariadb.old
sudo aptitude install libmariadb3
nm --with-symbol-versions -D /usr/lib/x86_64-linux-gnu/libmariadb.so.3 > 
mariadb.new
diff -u <(rg \ T mariadb.old | cuts 2 | sort) <(rg \ T mariadb.new | cuts 2 | 
sort)
```
I am getting
```
-mysql_get_timeout_value@libmariadbclient_18
-mysql_get_timeout_value@@libmysqlclient_18
-mysql_get_timeout_value_ms@libmariadbclient_18
-mysql_get_timeout_value_ms@@libmysqlclient_18
+mysql_get_timeout_value@@libmariadb_3
+mysql_get_timeout_value_ms@@libmariadb_3
```

meaning libmariadb3 upgrade is now flag day - binaries linked against it need 
to be upgraded at the same time too.

-- System Information:
Debian Release: 10.2
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'stable-updates'), (500, 'stable-debug'), 
(500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 5.3.0-0.bpo.2-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_USER, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), 
LANGUAGE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libmariadb3 depends on:
ii  libc6   2.28-10
ii  libgnutls30 3.6.7-4+deb10u2
ii  mariadb-common  1:10.3.18-0+deb10u1
ii  zlib1g  1:1.2.11.dfsg-1

libmariadb3 recommends no packages.

libmariadb3 suggests no packages.

-- no debconf information