Hi On 2020-07-11 22:51:13 +0200, László Böszörményi (GCS) wrote: > Hi, > > On Sat, Jul 11, 2020 at 5:53 PM <[email protected]> wrote: > > * Sebastian Ramacher <[email protected]> [2020-07-11 16:54]: > > So it should work if all migrate at the same time, right? > It would work if all packages migrate at the same time. It will not > do that automatically however, as auto testing will constantly fail. > It tests with the testing version of ignition-fuel-tools and with the > unstable version of protobuf - being incompatible with each other. > I don't think a break of older protobuf libraries would help either, > but might help against partial upgrades of protobuf related packages. > > > >This could be avoided if > > >libignition-msgs-dev which contains the protobuf-generated header files > > >would have a stricter dependency on libprotobuf-dev. Since these files > > >are only compatible with the same protobuf upstream version, it would > > >need to depend on the protobuf upstream version it was built with. > That would prevent setting up the transition testing chroot, but I > don't know how our tools handle such things. I think preventing the > automatic protobuf transition to testing.
As far as I understand it, a tighter dependency would make britney
consider them as having to transition together, avoiding the issue with
the autopkgtests. It would recogince that migrating protobuf would make
ignition-msgs uninstallable, and so it would try them together.
> > There was a similar discussion in #900429 and also #910964 but no real
> > solution was proposed. It would be great if the protobuf package would
> > provide some tooling to encode the ABI information to the packages at
> > compile time.
> > What would be the way forward here? Open a bug with protobuf?
> Without too much thinking I've prepared an update which embeds an ABI
> version to the library package (see attached diff) that you can depend
> on, but I don't think that would help. It will be the same as
> depending on the named library.
Since ignition-msgs is the only package that has this issue, something
like the following should be enough:
In debian/control:
Depends: libprotobuf-dev (>= ${protobuf:Upstream-Version}), libprotobuf-dev (<
${protobuf:Upstream-Version}.1)
In debian/rules:
override_dh_gencontrol:
dh_gencontrol -- -Vprotobuf:Upstream-Version="$(shell dpkg-query -W -f
'$${Source:Upstream-Version}' libprotobuf-dev)"
(This might be a little to tight and depending on >= X.Y, < X.(Y+1)
would be enough).
But yes, depending on a protobuf-abi-$VER provided by libprotobuf-dev
could also work. It wouldn't work if provided by the shared library,
though, as they are co-installable.
Cheers
>
> Regards,
> Laszlo/GCS
> diff -Nru protobuf-3.12.3/debian/changelog protobuf-3.12.3/debian/changelog
> --- protobuf-3.12.3/debian/changelog 2020-07-08 00:47:38.000000000 +0200
> +++ protobuf-3.12.3/debian/changelog 2020-07-11 21:37:49.000000000 +0200
> @@ -1,3 +1,9 @@
> +protobuf (3.12.3-3) unstable; urgency=medium
> +
> + * Make libprotobuf provide protobuf-abi with soname version.
> +
> + -- Laszlo Boszormenyi (GCS) <[email protected]> Sat, 11 Jul 2020 21:37:49
> +0200
> +
> protobuf (3.12.3-2) unstable; urgency=medium
>
> * Upload to Sid.
> diff -Nru protobuf-3.12.3/debian/control protobuf-3.12.3/debian/control
> --- protobuf-3.12.3/debian/control 2020-05-09 20:45:17.000000000 +0200
> +++ protobuf-3.12.3/debian/control 2020-07-11 21:37:49.000000000 +0200
> @@ -65,7 +65,7 @@
> Multi-Arch: same
> Section: libs
> Depends: ${shlibs:Depends}, ${misc:Depends}
> -Breaks: libarcus3 (<< 3.3.0-2), cura-engine (<< 1:3.3.0-2.1+b1)
> +Provides: protobuf-abi-${pb:ABI}
> Description: protocol buffers C++ library
> Protocol buffers are a flexible, efficient, automated mechanism for
> serializing structured data - similar to XML, but smaller, faster, and
> diff -Nru protobuf-3.12.3/debian/rules protobuf-3.12.3/debian/rules
> --- protobuf-3.12.3/debian/rules 2020-05-09 20:45:17.000000000 +0200
> +++ protobuf-3.12.3/debian/rules 2020-07-11 21:37:49.000000000 +0200
> @@ -18,6 +18,7 @@
> endif
>
> SONAME=23
> +ABI_VERSION=$(SONAME)-0
>
> %:
> dh $@ --with autoreconf,elpa,python3
> @@ -167,3 +168,6 @@
> override_dh_installdocs-indep:
> dh_installdocs --indep
> dh_installdocs -Xprotobuf-mode.el # in protobuf-mode-el
> +
> +override_dh_gencontrol:
> + dh_gencontrol -- -Vpb:ABI=${ABI_VERSION}
--
Sebastian Ramacher
signature.asc
Description: PGP signature

