Bug#1055437: gobject-introspection: Please provide a build profile to avoid build-dep loops through cairo

Simon McVittie smcv at debian.org
Mon Nov 6 10:00:59 GMT 2023


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



More information about the pkg-gnome-maintainers mailing list