Improve handling of GObject-Introspection (and gi-docgen)

  • Revert "Add build-dep on gobject-introspection-bin for GIR debhelper"

    This was presumably prompted by a Lintian bug (#1063709), but gobject-introspection-bin is an implementation detail which is not meant to be depended on directly by anything except the other binary packages built by src:gobject-introspection. The correct build-dependency here is gobject-introspection (or dh-sequence-gir).

    This reverts commit 0fc620be.

    Closes: #1094613

  • d/control: Add ${gir:Depends} to -dev packages

    This ensures that they pull in all of the GIR XML modules necessary to load their own GIR XML without error (in practice this means GObject/Gio for both, and GdkPixbuf for appstreamcompose only).

  • d/control: Add ${gir:Provides} to -dev packages

    This allows dependent packages to build-depend on the GIR XML by its systematic name gir1.2-*-dev.

    Fixes Lintian tag: gir-package-name-does-not-match

  • d/control: Add gir1.2-*-dev Build-Depends as suggested by dh_girepository

    These systematic virtual package names correspond exactly to the "includes" in the upstream build system, and can be seen as "warning: Missing Build-Depends: .." when running dh_girepository.

    Build-depending on gir1.2-gdkpixbuf-2.0-dev is also an enabler for being able to implement the nogir build profile in gdk-pixbuf without breaking the build of src:appstream.

    Explicitly build-depending on these means we no longer need to build-depend on libgirepository1.0-dev, a legacy metapackage which for historical reasons cannot be multiarch-friendly.

  • d/control, d/rules: Enable gir sequence declaratively

    This makes it easier to turn it off under restricted build-profiles.

  • d/control, d/rules: Only require gi-docgen for arch-indep builds

    We don't need to install or run gi-docgen if we are only building the architecture-specific packages. This makes architecture-specific builds faster and more reliable, especially on slow or otherwise non-mainstream architectures.

  • d/control: Don't build API documentation under nodoc build-profile

    Because this source package also builds apt-config-icons-*, it can make sense to do an architecture-independent build without documentation.


Build-tested, and I verified using diffoscope that it did not result in any changes to the package other than those I intended. Not otherwise tested.

Merge request reports

Loading