#1134119 rapidyaml: missed transition

#1134119#5
Date:
2026-04-16 17:16:18 UTC
From:
To:
Hi Maintainer

As per Debian policy 8.1 Shared Libraries [1]:

The run-time shared library must be placed in a package whose name
changes whenever the SONAME of the shared library changes.

This was not done in the 0.2.11-1 upload (and also not in the 0.2.7-1 upload).

The effect can be seen in the autopkgtest regression of jsonnet in
testing [2].  I have copied part of the log below.

Regards
Graham


[1] https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#run-time-shared-libraries
[2] https://ci.debian.net/packages/j/jsonnet/testing/amd64/


 32s autopkgtest [09:44:27]: test command1: DISABLE_LIB_TESTS=1
JSONNET_BIN=/usr/bin/jsonnet JSONNETFMT_BIN=/usr/bin/jsonnetfmt sh
tests.sh
 32s autopkgtest [09:44:27]: test command1: [-----------------------
 32s snippet: /usr/bin/jsonnet: error while loading shared libraries:
libc4core.so.0.2.7: cannot open shared object file: No such file or
directory
 32s  [31;1mFAIL [0m  [1m(exit code) [0m:  [36m/usr/bin/jsonnet
--ext-str prefix='Happy Hour ' --ext-code brunch=true --tla-str
prefix='Happy Hour ' --tla-code brunch=true .//arith.jsonnet [0m
 32s This run's output:
 32s /usr/bin/jsonnet: error while loading shared libraries:
libc4core.so.0.2.7: cannot open shared object file: No such file or
directory
 32s Actual exit code 127, expected 0

#1134119#20
Date:
2026-05-17 15:19:08 UTC
From:
To:
Hi Graham,

The situation with rapidyaml mirrors c4core exactly.
The package name `libryml0` is correct per Debian Policy 8.1 — it must
track the embedded ELF SONAME (`libryml.so.0`), not the full versioned
filename on disk.
A CMake patch setting `SOVERSION` to the major version (as done in
Gabriel's MR [0]) ensures a stable SONAME while allowing the on-disk
library to be `libryml.so.0.11.1`.
This keeps everything consistent without unnecessary transitions:

* Versioned filename: libryml.so.0.11.1
* SONAME symlink: libryml.so.0 => libryml.so.0.11.1
* Binary package: libryml0

Renaming the runtime package on every upstream release (e.g. to
`libryml0.11.1`) would technically satisfy the policy but would create
excessive churn during the 0.x series, even when there is no ABI
break.

This bug should be closed unless new evidence of an actual SONAME
change emerges.

[0] https://salsa.debian.org/debian/rapidyaml/-/merge_requests/1

Regards,
Fukui

#1134119#25
Date:
2026-05-28 19:02:52 UTC
From:
To:
This is not true.

The ELF SONAME of libryml is:

$ objdump -p /usr/lib/x86_64-linux-gnu/libryml.so.0.10.0 | grep SONAME
  SONAME               libryml.so.0.10.0
$

cu
Adrian

#1134119#30
Date:
2026-06-20 12:08:41 UTC
From:
To:
Adrian,

[0] https://salsa.debian.org/debian/rapidyaml/-/merge_requests/1

to properly have it fix on version 0.11.1-1.

root@e17657d36880:~/rapidyaml# dpkg -s libryml0 | grep Version
Version: 0.11.1+ds-1
root@e17657d36880:~/rapidyaml# readelf -d /usr/lib/x86_64-linux-gnu/libryml.so.0.11.1 | grep SONAME
0x000000000000000e (SONAME)             Library soname: [libryml.so.0]
root@e17657d36880:~/rapidyaml#

Daichi, thanks a lot for following a long this issue.

Gabriel

#1134119#35
Date:
2026-06-26 19:30:15 UTC
From:
To:
Does upstream guarantee ABI stability between releases?

If upstream does not make such guarantees, then the upstream soname is
correct and there has to be a library transition for every new upstream
version.

cu
Adrian

#1134119#40
Date:
2026-08-16 09:36:13 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
rapidyaml, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1134119@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Gabriel Barrantes <gabriel.barrantes.dev@outlook.com> (supplier of updated rapidyaml package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sun, 26 Apr 2026 17:37:23 +0000
Source: rapidyaml
Architecture: source
Version: 0.11.1+ds-1
Distribution: unstable
Urgency: medium
Maintainer: Gabriel Barrantes <gabriel.barrantes.dev@outlook.com>
Changed-By: Gabriel Barrantes <gabriel.barrantes.dev@outlook.com>
Closes: 1134119
Changes:
 rapidyaml (0.11.1+ds-1) unstable; urgency=medium
 .
   * New upstream version
   * debian/patches:
     - Add patch to allow coinstall
     - Set proper soversion (Closes: #1134119)
     - Add missing includes to resolve compilation warnings
   * debian/gbp.conf:
     - Create config file
Checksums-Sha1:
 df123eeeaa645e934b3daa0f9f3c05367aeb49fb 1962 rapidyaml_0.11.1+ds-1.dsc
 38b6476f3f9bcf39398798b25b9aedea7a876ae8 1376668 rapidyaml_0.11.1+ds.orig.tar.xz
 92be9851e1c3d83e12b0a3c88b8bb6a19ff21c1c 4864 rapidyaml_0.11.1+ds-1.debian.tar.xz
 4326ee042c15b5d4cd286a6d046a49eb84a6922e 7535 rapidyaml_0.11.1+ds-1_source.buildinfo
Checksums-Sha256:
 8550ec34407b5d66dd154366796105ca5c8360d5e09e4b3373e7b90684370edd 1962 rapidyaml_0.11.1+ds-1.dsc
 3e89e59de36833dd666951497489bb931e8042aad2ee5a535eb319c38d4b31cc 1376668 rapidyaml_0.11.1+ds.orig.tar.xz
 4922ed4bb87bb5c9be8de017aa2d826fbb46a90e522ceb1bb5f874a32ee0d596 4864 rapidyaml_0.11.1+ds-1.debian.tar.xz
 58b67346fc6c5ae3d7d1f6bc104ecfe5b42e79f42592a387323f10f57cd0ea63 7535 rapidyaml_0.11.1+ds-1_source.buildinfo
Files:
 1c2151d320647b26c50961b1feec8a17 1962 libs optional rapidyaml_0.11.1+ds-1.dsc
 875eb5e1dae8c47b475e3a61e07381e2 1376668 libs optional rapidyaml_0.11.1+ds.orig.tar.xz
 63748ae7b8781ab9b35dd3ac55e82732 4864 libs optional rapidyaml_0.11.1+ds-1.debian.tar.xz
 cedd53e962b816cffa2a3c99bea49f7d 7535 libs optional rapidyaml_0.11.1+ds-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEErCSqx93EIPGOymuRKGv37813JB4FAmqBf/QACgkQKGv37813
JB51DRAAwWUqYZHoJYAKrFbBa9eWHr5pf1jpYGRxcU+gHkop2wtWS6eR+ZOScvwK
5ofglsicx1RH2zhJEsG748VLfSeQJIPcEwk4+9NTqfIuJYu3E7xgJyag6o/2Vfod
XBamNo1Tu/LqfCvd6ELQuhckHoqtjmNnAde5prdHOEvR/IZNxx1C1YYGS8SVMZej
R2KUP8JYbqrMDLwNSHzjNzffYawbWwuGv9zzQBmpErPECtBCVXkQABv+9ZDcEnvE
X8pcIvor4ceWZdYN7OcycbXnEqkDci754wHupVpOZpwILS8cqqMzkgbgHpGKHZGd
7fDzsdkcpF/ZBq9egX/RyasMMoHB/043u2dVSrOd/N7t/bucNNJteKp2FayfbyaQ
8qvH6nof8brlrbEkb7oB7V3QiKOJihwCa1IORpc3Nqvd9SAcgfCTDUoqbFar2m0q
DAx1mIyebpIUAjxJTgx0Af+1oNJL/5qm3po0ihIrxxG286N1t1r3RgrM9UMWr7Aa
vGJPl/BAng1fnuPYw8nbw+EGF4zH9v5szlwWrsEJ244g2hUT044+g75hNqRVj+jq
drZr6PXH0jNFSsgaGp2SsPMQjLVSfS+Jk7GVrtaYjhMXkPKkZ1oZUuDGERVuqCA7
fuBiTxVTagD05CG6G+HrMqz+NQYR0XmkJHkVHxmh1Xobh6ElC2E=
=32fj
-----END PGP SIGNATURE-----