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 <b...@debian.org> 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

Reply via email to