[Debian-med-packaging] Bug#879886: Bug#879886: libhts2: libhts2 needs to handle ABI changes

Mattia Rizzolo mattia at debian.org
Thu Oct 26 19:44:32 UTC 2017


On Thu, Oct 26, 2017 at 12:12:05PM -0700, Diane Trout wrote:
> libhts2 introduced an ABI change which broke python-pysam, and a new
> version of python-pysam needed to be released to update to the new ABI.

FTR, this is what changed between the symbols of the version 1.4.1-5 and
1.5-1:

--- 1.4.1-5
+++ dpkg-gensymbolsIEaASY
@@ -178,6 +178,7 @@
  bgzf_flush_try at Base 1.4.1
  bgzf_getc at Base 1.4.1
  bgzf_getline at Base 1.4.1
+ bgzf_hfile at Base 1.5
  bgzf_hopen at Base 1.4.1
  bgzf_index_add_block at Base 1.4.1
  bgzf_index_build_init at Base 1.4.1
@@ -395,7 +396,7 @@
  file_size at Base 1.4.1
  find_file_url at Base 1.4.1
  find_path at Base 1.4.1
- flen at Base 1.4.1
+#MISSING: 1.5# flen at Base 1.4.1
  grp_create_key at Base 1.4.1
  hclose at Base 1.4.1
  hclose_abruptly at Base 1.4.1
@@ -411,6 +412,7 @@
  hfile_plugin_init_libcurl at Base 1.4.1
  hfile_plugin_init_net at Base 1.4.1
  hfile_plugin_init_s3 at Base 1.4.1
+ hfile_set_blksize at Base 1.5
  hflush at Base 1.4.1
  hgetc2 at Base 1.4.1
  hgetdelim at Base 1.4.1
@@ -436,6 +438,7 @@
  hts_format_file_extension at Base 1.4.1
  hts_get_bgzfp at Base 1.4.1
  hts_get_format at Base 1.4.1
+ hts_get_log_level at Base 1.5
  hts_getline at Base 1.4.1
  hts_hopen at Base 1.4.1
  hts_idx_destroy at Base 1.4.1
@@ -460,6 +463,7 @@
  hts_json_fskip_value at Base 1.4.1
  hts_json_snext at Base 1.4.1
  hts_json_sskip_value at Base 1.4.1
+ hts_log at Base 1.5
  hts_md5_destroy at Base 1.4.1
  hts_md5_final at Base 1.4.1
  hts_md5_hex at Base 1.4.1
@@ -480,6 +484,7 @@
  hts_realloc_or_die at Base 1.4.1
  hts_set_cache_size at Base 1.4.1
  hts_set_fai_filename at Base 1.4.1
+ hts_set_log_level at Base 1.5
  hts_set_opt at Base 1.4.1
  hts_set_thread_pool at Base 1.4.1
  hts_set_threads at Base 1.4.1
@@ -588,7 +593,7 @@
  mfgets at Base 1.4.1
  mfmmap at Base 1.4.1
  mfopen at Base 1.4.1
- mfprintf at Base 1.4.1
+#MISSING: 1.5# mfprintf at Base 1.4.1
  mfread at Base 1.4.1
  mfrecreate at Base 1.4.1
  mfreopen at Base 1.4.1
@@ -704,13 +709,13 @@
  vcf_read at Base 1.4.1
  vcf_write at Base 1.4.1
  vcf_write_line at Base 1.4.1
- vflen at Base 1.4.1
- zfclose at Base 1.4.1
- zfeof at Base 1.4.1
- zfgets at Base 1.4.1
- zfopen at Base 1.4.1
- zfpeek at Base 1.4.1
- zfputs at Base 1.4.1
- zfseeko at Base 1.4.1
- zftello at Base 1.4.1
+#MISSING: 1.5# vflen at Base 1.4.1
+#MISSING: 1.5# zfclose at Base 1.4.1
+#MISSING: 1.5# zfeof at Base 1.4.1
+#MISSING: 1.5# zfgets at Base 1.4.1
+#MISSING: 1.5# zfopen at Base 1.4.1
+#MISSING: 1.5# zfpeek at Base 1.4.1
+#MISSING: 1.5# zfputs at Base 1.4.1
+#MISSING: 1.5# zfseeko at Base 1.4.1
+#MISSING: 1.5# zftello at Base 1.4.1
  zlib_mem_inflate at Base 1.4.1

> libhts2 probably needs a proper symbols file to make it easier to see
> when the ABI is changing. https://wiki.debian.org/UsingSymbolsFiles
> 
> Mattia Rizzolo, also suggests other methods of dealing with managing ABI
> changes.

In pysam's case, it is looking for hts_log, if you had properly checked
the symbols of your package before uploading you should have at least
tweaked the dh_shlibdeps invocation to force a version, or introduced a
.symbols file (very recommended for a case like hstlib where the symbols
seems to be simple).

But then, the ABI is broken, so just nicest symbols handling is not
enough for your case, you need
> Such as bumping soname, changing the package name and use Conflicts, or
> adding versioned Breaks against broken packages

-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
more about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debian-med-packaging/attachments/20171026/f44e3899/attachment.sig>


More information about the Debian-med-packaging mailing list