Andreas Tille wrote:
> Interestingly the missing symbols are mentioned in some warnings higher up in 
> the changelog!

As per the build log, those warnings were:

Selecting previously unselected package libhtscodecs2:amd64.
Preparing to unpack .../44-libhtscodecs2_1.2.2-1_amd64.deb ...
Unpacking libhtscodecs2:amd64 (1.2.2-1) ...
[…]
cram/cram_io.c:1725:23: warning: implicit declaration of function 
'tok3_decode_names'; did you mean 'decode_names'? 
[-Wimplicit-function-declaration]
1725 |         uint8_t *cp = tok3_decode_names(b->data, b->comp_size, &out_len);
     |                       ^~~~~~~~~~~~~~~~~
     |                       decode_names
[…]

These function names (tok3_decode_names() et al) appeared in htscodecs 1.3.0 in 
response to [1]. Probably the underlying problem here is that you need to 
update the requirement on the external libhtscodecs to ensure htslib 1.16 is 
built against htscodecs 1.3.0.


Perhaps separately, what is the reason for [2]?

        Commit 2905146ffe547dd98617e32d8b834f4c802a7f77
        Fix build options to make sure symbols will remain in library

It would appear from the resulting additions to debian/libhts3.symbols that 
removing -fvisibility=hidden from DEB_CFLAGS_MAINT_APPEND has caused large 
numbers of HTSlib's non-HTSLIB_EXPORT-marked internal functions to be added to 
your libhts3.symbols file. Adding these to libhts3.symbols doesn't seem very 
correct (they are not part of the ABI), and I expect the upstream HTSlib 
maintainers will be extremely uninterested in any future complaints that 
non-exported symbols have changed or disappeared.

Cheers,

    John


[1] https://github.com/samtools/htscodecs/issues/36
[2] 
https://salsa.debian.org/med-team/htslib/-/commit/2905146ffe547dd98617e32d8b834f4c802a7f77

Reply via email to