Hi John, John Kehayias <[email protected]> writes:
> I've managed to fix the initial problem I noted, but this would depend > on having cairo as an input so that gobject-introspection can find the > library to patch the typelib. Unfortunately, this would be a circular > dependency. This is a long standing issue with how cairo is handled > here (see, e.g., > https://gitlab.freedesktop.org/cairo/cairo/-/issues/141). > > I don't know how circular dependencies are solved in guix, so I'm not > sure what to do to fix this. gobject-introspection doesn't need cairo > to build or function, so the build depends is not really needed other > than to fix this bug. So this could be done with a separate package or > in two steps? Upstream said: --8<---------------cut here---------------start------------->8--- The Cairo API is not really introspectable, because its type system does not use GObject. We could generate the introspection data by using a filter script to turn the snake case cairo_*_t types into the expected CamelCase Cairo* types, but it's not entirely trivial, and it would still not by usable by anything. --8<---------------cut here---------------end--------------->8--- Introducing an extra dependency to the closure of gobject-introspection, we'd have applications soft-linking to potentially different versions of cairo (cairo and cairo-sans-poppler), which seems ugly. Could we move the cairo.gir file to the cairo package, and this would be picked up by gobject-introspection if at the right location? It'd differ from upstream, but that'd be cleaner. Perhaps we could contribute such fix for inclusion upstream too. -- Thanks, Maxim
