Starting with GLib 2.79.0 and gobject-introspection 1.79.0, there is a circular dependency between the two projects. GLib depends on the introspection tools for generating the introspection data of its library components and documentation, and gobject-introspection depends on GLib (mainly: libglib, libgobject, and libgmodule) for the introspection tools.
The recommendation for distributors is to stage the build in the following way:
- build GLib with
-Dintrospection=disabled
- build gobject-introspection
- build GLib with
-Dintrospection=enabled
You don’t need to rebuild gobject-introspection.
In order to resolve the circular dependency, the plan is the following:
- port all language bindings using libgirepository-1.0 to the new libgirepository-2.0 provided by GLib
- make libgirepository-1.0 optional in gobject-introspection
- make
g-ir-scanner
depend on a smaller, embedded copy of libglib
This work may not be ready for GNOME 46.