[Debian-iot-maintainers] Bug#1009769: libhoel1.4: ABI break: h_exec_query_sqlite was dropped

Andreas Metzler ametzler at bebt.de
Sun Apr 17 15:42:18 BST 2022


On 2022-04-17 Nicolas Mora <nicolas at babelouest.org> wrote:
> Hello,

> Le 2022-04-17 à 01 h 32, Andreas Metzler a écrit :

> > i.e. the symbol h_exec_query_sqlite was dropped from the library ABI.
> > This breaks all reverse dependencies built against 1.4.18, e.g. glewlwyd
> > is now broken:
> > (sid)ametzler at argenau:/dev/shm/GLEWY$ ldd -r /usr/bin/glewlwyd | tail -n1
> > undefined symbol: h_exec_query_sqlite   (/usr/bin/glewlwyd)

> Thanks,

> the symbol has changed its name, but a macro was added to make it source
> compatible:
> https://sources.debian.org/src/hoel/1.4.20-1/include/hoel.h/#L534

> Therefore the package glewlwyd-2.6.2 still builds with this new source.
> Glewlwyd 2.7.0 will use the new function h_execute_query_sqlite instead.

Hello Nicolas,

Yes, a rebuild will get a binary which works against the new
library, however (partial) upgrades from bookworm won't work.

BTW, the symbol file seems to be wrong:
| h_execute_query_sqlite at Base 1.4.15
the symbol is not available in 1.4.15, so the rebuilt glewlwyd would
depend on the libhoel1.4 (>= 1.14) instead of >= 1.18.

> What is the best approach to close this bug?

I think the first step would be to talk to upstream. One should not
break the ABI of a shraed library without need, when it must be done it
should happen properly with a soname bump.

The proper and easy fix would now be
for them to provide both symbols (Not a #define, but e.g. the deprecated
function calling the new one.)

> - Should I patch hoel package to replace the #define h_exec_query_sqlite()
> with a redefinition of h_exec_query_sqlite()?

Yeah, that is what I exactly thought upstream should do. ;-) Like

int h_exec_query_sqlite(const struct _h_connection * conn, const char * query)
       { return h_execute_query_sqlite( .... }


> - Should I re-upload glewlwyd 2.6.2 to force a rebuild?

Afaict libhoel1.4 has only got glewlwyd as reverse depends? As plan B
if upstream is unwilling you could either patch libhoel (with the
downside that it would not be cross distribution compatible) or simply
make two new sourceful uploads, with
a) let new libhoel1.4 Breaks: glewlwyd (<= 2.6.2-2~) and have a fixed
symbol file. and
b) glewlwyd Build-Depend-ing on libhoel-dev >= 1.18-2 to get the correct
 Depends on  libhoel1.4 (>= 1.18-2).

cu Andreas
-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'



More information about the Debian-iot-maintainers mailing list