On Tue, Feb 21, 2023 at 08:15:12PM +0100, László Böszörményi (GCS) wrote:
> On Tue, Feb 21, 2023 at 1:27 PM Adrian Bunk <[email protected]> wrote:
> > Looking at #1028371, should generated dependencies on python3-protobuf be
> > python3-protobuf (>= 3.21), python3-protobuf (<< 3.22)
> You mean on python3-bernhard, right?
Yes, sorry.
> > to ensure that the binary package is used with the same version
> > as the protobuf-compiler used during the build?
> Then what? It would become uninstallable when a new protobuf version
> (3.22 next time) is uploaded and built.
That's the point - an uninstallable package is better than a broken
package, especially when being uninstallability blocks upgrading
python3-protobuf for users where it is known to cause breakage.
And it ensures that the package will be rebuilt (or removed)
during protobuf transitions.
> > If yes, are other language bindings also affected by this problem?
> I still don't get your point. How does a language binding package
> version relate to the protobuf-compiler version? I don't follow the
> internals of Protobuf, but I would say it's more related to the
> library soname and its provided API version.
The problem in python3-bernhard is in a Python file generated by protoc:
$ python3 -c "import bernhard"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3/dist-packages/bernhard/__init__.py", line 20, in
<module>
from . import pb
File "/usr/lib/python3/dist-packages/bernhard/pb.py", line 36, in <module>
_descriptor.FieldDescriptor(
File "/usr/lib/python3/dist-packages/google/protobuf/descriptor.py", line
560, in __new__
_message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors should not be created directly, but only retrieved from
their parent.
$ head -2 /usr/lib/python3/dist-packages/bernhard/pb.py
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
$
> Regards,
> Laszlo/GCS
cu
Adrian