#1134117 c4core: missed transition

#1134117#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

#1134117#12
Date:
2026-04-26 13:49:47 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
c4core, 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 1134117@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 c4core 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 01:51:33 +0000
Source: c4core
Architecture: source
Version: 0.2.11-2
Distribution: unstable
Urgency: medium
Maintainer: Gabriel Barrantes <gabriel.barrantes.dev@outlook.com>
Changed-By: Gabriel Barrantes <gabriel.barrantes.dev@outlook.com>
Closes: 1133806 1134117
Changes:
 c4core (0.2.11-2) unstable; urgency=medium
 .
   * debian/patches:
     - Add patch to allow coinstall (Closes: #1133806)
     - Set proper soversion (Closes: #1134117)
   * debian/libc4core0.symbols: add symbols
Checksums-Sha1:
 dc33b2256aabfa85fd86fa3a703a7aa7b7867207 1766 c4core_0.2.11-2.dsc
 5a08897715073f16105674b63b8f85682e973ba4 5692 c4core_0.2.11-2.debian.tar.xz
 721c363ec816b1e658fc7c29379ba96e20e46f56 6101 c4core_0.2.11-2_source.buildinfo
Checksums-Sha256:
 c2f323fbfe0283cb853e1f18e2a1966c1433ab4ee711292d9a918abb0737183b 1766 c4core_0.2.11-2.dsc
 4f9482d883dd9a7797d9c7d3f09bd9ac6535de814cb51cc213e0eda038e8b592 5692 c4core_0.2.11-2.debian.tar.xz
 4eb02d137e4003e09fec85edc0c20e27b055d0fa261ec9d1ad4aeeddab71da24 6101 c4core_0.2.11-2_source.buildinfo
Files:
 e05519da3b20f80005269142bbf77855 1766 libs optional c4core_0.2.11-2.dsc
 2a847fb923cfffd71fc9d9a00cbc6421 5692 libs optional c4core_0.2.11-2.debian.tar.xz
 bf0b77b554007a9206add88a82dc0fbe 6101 libs optional c4core_0.2.11-2_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEQGIgyLhVKAI3jM5BH1x6i0VWQxQFAmnuDKgQHGJhZ2VAZGVi
aWFuLm9yZwAKCRAfXHqLRVZDFOvlC/4j4xAZubL72sH/voOpZoE4Fek+xA6MIhSJ
vTZ1dTDMNwtPa5VY4hf9YDCh6/3sk6AMihj1PfsLVhBqYKfHOw6U65vtn+60jvSw
X+QoxIrRJ+4VcBBF/CIP9QQpQ5tKFTU2wKGh/KiUc8ELlrY2AevbUmCynEUhiteJ
B25bR1tlPFjEni4k3q7+plx2YdgE3q99vmHrv8HGUWKXDtiF4rIz9qojyDxjX88Z
QfudRJVQn1ynHkX/YaS3B8hfirPrbySX3pwynnyHtnxRIL5hh1TqNcVjCEidylBz
bQta5PNgo5p/AQSwcUZJUmZLUVuk2R8C77jSPeqS2+mLSzlPYbO9uolG6R4NB1FI
QQtgbVTJmHteEiww3kNFF8da8qYDfBPMqDqVrYvo+FPAk+g6INzqviawQ6MCqb0V
Tluz9RNgM5A6tPsane6JYixC7W/UPzoUsp9X4txh/KoBwvVUHNE8hi5IAq6zYBSU
2Ao/hQHKfo2fixFSvYpOwbTboPuRe4M=
=j9T7
-----END PGP SIGNATURE-----

#1134117#17
Date:
2026-04-29 09:46:56 UTC
From:
To:
I can see the SONAME in libc4core0_0.2.11-2 has changed from
libc4core.so.0 to libc4core.so.0.2.11, great!

However, the name of the binary package libc4core0 still needs to be changed.

I'll quote again from Debian policy 8.1 Shared Libraries [1] (emphasis mine):

The run-time shared library **must** be placed in a package whose name
changes whenever the SONAME of the shared library changes.
... the run-time shared library and its SONAME symlink **should** be
placed in a package named librarynamesoversion ...

My understanding is the name of the run-time shared library **must**
change when the SONAME changes, and its name  **should** should match
the soversion.  There is also a Lintian warning [2] about this.

Regards
Graham


[1] https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#run-time-shared-libraries
[2] https://lintian.debian.org/tags/package-name-doesnt-match-sonames.html

#1134117#26
Date:
2026-05-09 21:02:21 UTC
From:
To:
On unstable I am getting:

root@c5bea899c560:/# apt update && apt install -y libc4core0 binutils
root@c5bea899c560:/# readelf -d /usr/lib/x86_64-linux-gnu/libc4core.so.0.2.11 | grep SONAME
 0x000000000000000e (SONAME)             Library soname: [libc4core.so.0]

Soname is matching major version everywhere (I think), am I wrong?

Gabriel

#1134117#31
Date:
2026-05-15 06:53:59 UTC
From:
To:
Hi Graham,

The SONAME in 0.2.11-2 is libc4core.so.0, as Gabriel confirmed by readelf
on the installed package on unstable.

The three relevant names are all consistent:

Versioned filename: libc4core.so.0.2.11 (file on disk)
SONAME symlink: libc4core.so.0 -> libc4core.so.0.2.11
Binary package: libc4core0 (soversion = 0)

The SONAME has not changed to libc4core.so.0.2.11.
That is the versioned filename on disk, not the ELF SONAME.
The patch in 0.2.11-2 correctly set SOVERSION to the major version only, so
the SONAME is
now stable at libc4core.so.0 and the package name libc4core0 matches it
exactly, satisfying Policy 8.1.

Unless there is further comment or new evidence to the contrary, this bug
should be closed.

Regards,
Fukui

#1134117#44
Date:
2026-05-28 21:18:13 UTC
From:
To:
c4core (0.2.11-2) unstable; urgency=medium
...
  * debian/patches:
...
    - Set proper soversion (Closes: #1134117)
...
 -- Gabriel Barrantes <gabriel.barrantes.dev@outlook.com>  Sun, 26 Apr 2026 01:51:33 +0000


This is likely wrong:

The fundamental requirement is that the SONAME changes whenever the ABI
changes in a not backwards-compatible way.

When upstream does not guarantee ABI stability between releases,
then the SONAME must change with every release.

cu
Adrian

#1134117#49
Date:
2026-07-21 05:22:15 UTC
From:
To:
Hi Adrian,

After asking upstream some questions to clarify their ABI policy, I now
have a different view on this issue.
You are correct: we should think again about forcing the SOVERSION to 0 in
0.2.11-2, because upstream does not guarantee ABI stability between 0.x
releases.

I recently reached out to the upstream maintainer (jpmag) to clarify their
versioning policy, and they confirmed the following:

* Current 0.x series: ABI compatibility is explicitly not preserved between
releases (e.g., between 0.2.7 and 0.2.11), and breaks are expected on every
release by design until 0.6.0.

* Future releases (0.6.0+): Upstream intends to stabilize the SONAME/ABI
across patch releases (breaking only at the minor 0.x level), as committed
in upstream issue #177.
Because the ABI changes with every release in the current series, we should
drop the artificial "Set proper soversion" patch introduced in 0.2.11-2.
We will allow upstream's build system to natively set the full-version
SONAME (e.g., libc4core.so.0.2.11) and rename the binary package
accordingly (to libc4core0.2.11) to comply with Debian Policy 8.1.

We should continue tracking the full SONAME per release until upstream
implements patch-level stability in 0.6.0, at which point we can transition
to a minor-version naming scheme.
I am preparing the updated package now and working to coordinate the
necessary rebuilds for jsonnet and libryml0.
Once the updated package is ready, I will share with you since I have no
upload rights for this package.

Regards,
Fukui

#1134117#54
Date:
2026-07-29 15:56:55 UTC
From:
To:
Hi,

Following up to my last message, the updated package (0.6.0-1) is ready.

Upstream released 0.6.0 with the SONAME policy they committed to in
#177( https://github.com/biojppm/c4core/pull/177 ). For the 0.x series,
SOVERSION now tracks major.minor (libc4core.so.0.6), which ensures
stability across patch releases going forward. I've updated the
packaging accordingly.

Draft package is up for review at mentors.debian.net:
https://mentors.debian.net/package/c4core/

or via dget:
dget -x https://mentors.debian.net/debian/pool/main/c/c4core/c4core_0.6.0-1.dsc

As I have no upload rights, I'd appreciate a sponsor to review
and upload. Once this lands, I'll follow up on rebuilding jsonnet and
libryml0 against the new SONAME.

Regards,
Fukui

#1134117#59
Date:
2026-08-16 14:10:07 UTC
From:
To:
Hi,

Gentle reminder on this.
The 0.6.0-1 draft has been up on mentors.debian.net for a couple of weeks:

https://mentors.debian.net/package/c4core/

I am happy to address any review comments if you or anyone else has
a chance to take a look. Let me know if anything's unclear or needs
changing.

Regards,
Fukui

#1134117#64
Date:
2026-08-24 16:28:51 UTC
From:
To:
Hello, I'm sponsoring (so it clears new queue), but please note that you don't likely need the old binary around in oldlibs, you can just remove it in a future upload
thanks!

G.

#1134117#69
Date:
2026-08-25 08:10:19 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
c4core, 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 1134117@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Fukui Daichi <a.dog.will.talk@akane.waseda.jp> (supplier of updated c4core 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: Fri, 10 Jul 2026 10:45:22 +0900
Source: c4core
Binary: libc4core-dev libc4core0 libc4core0.6 libc4core0.6-dbgsym
Architecture: source amd64
Version: 0.6.0-1
Distribution: unstable
Urgency: medium
Maintainer: Gabriel Barrantes <gabriel.barrantes.dev@outlook.com>
Changed-By: Fukui Daichi <a.dog.will.talk@akane.waseda.jp>
Description:
 libc4core-dev - low-latency, low-level C++ library (development files)
 libc4core0 - transitional dummy package for libc4core
 libc4core0.6 - low-latency, low-level C++ library
Closes: 1134117
Changes:
 c4core (0.6.0-1) unstable; urgency=medium
 .
   * New upstream release (Closes: #1134117).
   * d/patches:
     - Drop 0006-Soversion.patch to restore upstream SONAME versioning.
     - Drop multiarch install-dir patches as they are applied upstream.
   * d/control:
     - Rename runtime package to libc4core0.6 to match upstream SONAME.
     - Add transitional libc4core0 package.
     - Update libc4core-dev dependency.
   * Rename libc4core0.install to libc4core0.6.install.
   * Rename and update symbols file for libc4core0.6.
   * Remove obsolete lintian override for SONAME mismatch.
     All changes above are to restore upstream SONAME versioning.
   * d/control:
     - Bump Standards-Version to 4.7.4.
     - Drop redundant Priority and Rules-Requires-Root fields.
   * d/rules: Remove trailing whitespace.
   * d/patches: Add headers or update headers to comply with DEP-3
   * d/copyright: Refresh d/copyright for the 0.6.0 source tree.
Checksums-Sha1:
 4aeeee571fd6e80aead52b9ce8434d13ee3aff30 1967 c4core_0.6.0-1.dsc
 270431cfb5d282329131caff25a9fc24875eed8d 1267992 c4core_0.6.0.orig.tar.xz
 f5a3fea8af1542f851b76f98e3a753e6dae56973 7712 c4core_0.6.0-1.debian.tar.xz
 0c0d472fa89088a2ab128203a1bb9e089540ba19 7312 c4core_0.6.0-1_amd64.buildinfo
 3c1b1375ca62f6a8eddfa9b27b5af8306f047ed3 85472 libc4core-dev_0.6.0-1_amd64.deb
 05b08a478ff630b2a8f7329b1c1ee72077d6ef43 66148 libc4core0.6-dbgsym_0.6.0-1_amd64.deb
 550bc695552d1c3339d47fe7cf87186b3fcb6af6 17004 libc4core0.6_0.6.0-1_amd64.deb
 1fb65b9b6cc45da6c8b4cacb93c284b7a380ea39 4776 libc4core0_0.6.0-1_amd64.deb
Checksums-Sha256:
 b29a95321e1c0e946999f27f4b0271d6d856bb90dca76b7a65efb51387839a94 1967 c4core_0.6.0-1.dsc
 54574d93003f097b7f71c29fa0003189c289be02135cbf2f0d5b80f0010e75c4 1267992 c4core_0.6.0.orig.tar.xz
 92e36b0e5b4be92e96b828b3e61fbd4f17afb9140e82a100fed829a887282290 7712 c4core_0.6.0-1.debian.tar.xz
 9f0ffb38483e20330632b2aa2974f3abb000c4d12020510e0d7e26fe4843926c 7312 c4core_0.6.0-1_amd64.buildinfo
 fbc1d9f4958b7e0d698bbcbc8def2507ee88f3e8a400e4a09559a9aba6cfd146 85472 libc4core-dev_0.6.0-1_amd64.deb
 d9bb25ebc67fb534b842cca30b306b7554e7ea000a121e4c1f0d03c95be55089 66148 libc4core0.6-dbgsym_0.6.0-1_amd64.deb
 d1cefa0770c4c48d23a997cd1bc1f06f3f4ebc852311ef2a2c6f193ad68d65b3 17004 libc4core0.6_0.6.0-1_amd64.deb
 db19178ba1c1fce795917b022414eab0a35c5be4afa35df53fb7572f6361e8ef 4776 libc4core0_0.6.0-1_amd64.deb
Files:
 146bcbc51e6f77f9aadece75d5de9181 1967 libs optional c4core_0.6.0-1.dsc
 5248fd27f2653ae8a7293cd7a9f0e6dc 1267992 libs optional c4core_0.6.0.orig.tar.xz
 f7f86c565501f7e5bb13e66e475fc51a 7712 libs optional c4core_0.6.0-1.debian.tar.xz
 cc7c740b0237be636b6a06c20b39d8e6 7312 libs optional c4core_0.6.0-1_amd64.buildinfo
 1361b73590bf325c1608779af25acdb2 85472 libdevel optional libc4core-dev_0.6.0-1_amd64.deb
 c881b79334856eb6b4d1c56f58f30e1f 66148 debug optional libc4core0.6-dbgsym_0.6.0-1_amd64.deb
 f3eb7af362f9a48e3b00ad34a6d38cd9 17004 libs optional libc4core0.6_0.6.0-1_amd64.deb
 8d8fa9e7b2c7040e74b807e8d797918c 4776 oldlibs optional libc4core0_0.6.0-1_amd64.deb
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEkpeKbhleSSGCX3/w808JdE6fXdkFAmqMcREACgkQ808JdE6f
Xdl0kA/+OlR/3ikYZ0Yw5vcCLymFgBZK+T9b2qM1EUX7waEe5Q5z1EGwjZxdlcE/
08PZ5wz0vOTrihMoMVS/hvC9H1wyiWrqFn4DlLTpX5xhjkSlNRtJFK+jg6mKLaX6
pPqBWxaOr6oOU6TQG8/j1O9k9eSFScpLHtSKAi538z/3riXZB8a8e9dE3ZbIbd2c
pfXgKKvoaswSCwVrDDIUNibtMFzng3tZAIPNcIRisck/TTK5zvdzL4Rh8hWM4Ao3
qW3IjWwxfULbGRbvCeWsxBl1dQ7xReP/FJBWUpUWkAFpEitpRVOcXsVbKmbAKOci
GOI6T1oJMHs9ANMMhhnKUVKi9X1AL3IwGWipySAJQkhwChaQdsjXrthwZeOL11Sw
1RKdjbqP335RDCU+ZkFs70bNewCibcEopj4IesVf7WIz6BueFSv9TqYx6mIDYJWy
VE+4VkUYG6VrFjq8CZJyRWHmzMi9/WemIEb4C3dN3agLq2wxWzl23lirEHjOTyXi
jT+i+pwu3so/8cZsn8q9zj6wD9xOwkk5dkTiorh2u/CP6+XDrwk5WNsHUNsQTkYa
qrV55wh5wsZKYwds6cnV6xCZVRtT7o2zmqvrYOyofEINaKtAkEwfCjbEyHtxFwe7
/SLp7tT3zWmgnCVAnsBiQ9OzYy7IlwZJPLX9GAOlqCWxV8jHxoM=
=7+DZ
-----END PGP SIGNATURE-----