Source: libglib-object-introspection-perl Severity: normal Tags: bullseye sid
During the libffi transition, we've encountered an autopkgtest regression in pygobject that might also indicate crashes on arm64 in other bindings that use GObject-Introspection and libffi. The libffi maintainer recommended that we add some versioned Depends/Breaks to force the right things to happen. To be safe, libglib-object-introspection-perl should probably do the same. The libffi6 -> libffi7 transition involves an ABI break on arm64, and GObject-Introspection exposes libffi data structures in its own API, which are used by bindings like pygobject and libglib-object-introspection-perl. We've found that in practice, pygobject crashes on arm64 if either: (A) gobject-introspection is old (built against libffi6) and pygobject is new (built against libffi7), or (B) gobject-introspection is new (built against libffi7) and pygobject is old (built against libffi6) libglib-object-introspection-perl seems to call into GObject-Introspection's libffi-related APIs, so it probably has a similar issue, replacing pygobject with libglib-object-introspection-perl. To prevent broken partial upgrades, please make libglib-object-introspection-perl Build-Depend on libgirepository1.0-dev (>= 1.62.0-4~) and libffi-dev (>= 3.3); this will result in a runtime dependency on libgirepository-1.0-0 (>= 1.62.0-4~) and libffi7, preventing (A). Then we can add a Breaks: libglib-object-introspection-perl (<< x~) in libgirepository-1.0-0, where x is the version in which you made that change, to prevent (B). Thanks, smcv