On Mon, 06 Nov 2023 at 03:01:30 +0100, Samuel Thibault wrote: > gobject-introspection currently build-depends on cairo, but various > build-dependencies of cairo build-depend on gobject-introspection
Which build-dependencies of cairo specifically? Are you referring to poppler and rsvg, or are there others? > It is however easy for gobject-introspection to break these loops by > making the cairo build-dependency optional and make gir1.2-freedesktop > not provide gir1.2-cairo-1.0. That would be an "unsafe" build profile which would make an incompatible change to the contents of gir1.2-freedesktop, and those are generally discouraged. I'd prefer to break this cycle by having a smaller package that cairo and its build-dependencies can depend on, which would not contain Cairo-1.0.gir and therefore would not need to pull in gir1.2-cairo-1.0 or gir1.2-freedesktop. Also, because the gobject-introspection tools can't be run during cross-compilation, I'm trying to work towards making it possible to build packages in a build profile that drops GObject-Introspection (see #1030223). If poppler and rsvg gain the ability to do that, then I think building those packages with nogir would achieve what you want? gobject-introspection 1.78.1-2 takes a step in that direction by making dh_girepository generate gir:Depends and gir:Provides substvars for GIR XML (*.gir), so that we can eventually split the GIR XML out of the relevant -dev packages, making it possible to add a "nogir" build profile without it being "unsafe". smcv