open5gs fails to build on obs.osmocom.org for Debian testing & unstable
[ 142s] /usr/include/tins/ip_address.h: In member function ‘std::size_t std::hash<Tins::IPv4Address>::operator()(const Tins::IPv4Address&) const’: [ 142s] /usr/include/tins/ip_address.h:220:31: error: ‘uint32_t’ is not a member of ‘std’; did you mean ‘wint_t’? [ 142s] 220 | return std::hash<std::uint32_t>()(addr); [ 142s] | ^~~~~~~~ [ 142s] | wint_t
This comes from libtins, it has been fixed on their master:
I've asked libtins to tag a new release, so we can have it fixed in debian testing & unstable:
Also a workaround was added to open5gs (not yet in the latest release), which is why it passes on osmocom:nightly and osmocom:master:
My bug report, asking to upgrade the package on 2023-08-21:
Hm, on 2023-08-24 libtins was removed from debian testing:
I've replied to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1037629 asking to just upgrade the package instead.
- % Done changed from 50 to 60
- Debian unstable: with the error above in osmocom:latest
- Debian testing: with "nothing provides libtins" in osmocom:latest and osmocom:nightly
I've sent another mail, this time to Internet Measurement Packaging Team <email@example.com> who is listed as maintainer of the libtins debian package, asking if they don't want to just bring it back to Debian testing and upgrade it to the latest version. This would fix both errors.
I've also tried to build open5gs with libtins as bundled subproject, similar to how we already do it for the freeDiameter dependency (see subprojects). When removing libtins-dev from debian/control, it looks like the bundled version does get used during the build. However it fails later on with:
install -m0755 -d debian/open5gs-pcf/DEBIAN dpkg-shlibdeps -Tdebian/open5gs-pcf.substvars debian/open5gs-pcf/usr/bin/open5gs-pcfd install -m0755 -d debian/open5gs-bsf/DEBIAN dpkg-shlibdeps -Tdebian/open5gs-bsf.substvars debian/open5gs-bsf/usr/bin/open5gs-bsfd dpkg-shlibdeps: error: cannot continue due to the error above Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file. To help dpkg-shlibdeps find private libraries, you might need to use -l. dh_shlibdeps: error: dpkg-shlibdeps -Tdebian/open5gs-upf.substvars debian/open5gs-upf/usr/bin/open5gs-upfd returned exit code 2 install -m0755 -d debian/open5gs-sgwu/DEBIAN dpkg-shlibdeps -Tdebian/open5gs-sgwu.substvars debian/open5gs-sgwu/usr/bin/open5gs-sgwud dpkg-shlibdeps: warning: can't extract name and version from library name 'libprom.so' dpkg-shlibdeps: warning: can't extract name and version from library name 'libprom.so' dpkg-shlibdeps: warning: can't extract name and version from library name 'libprom.so' install -m0755 -d debian/open5gs-mme/DEBIAN dpkg-shlibdeps -Tdebian/open5gs-mme.substvars debian/open5gs-mme/usr/bin/open5gs-mmed
I guess if Debian maintainers won't answer soon, I'll just add a libtins package to our OBS to fix this.