Skip to content

d/control: Replace libgirepository1.0-dev B-D with gobject-introspection (Closes: #1116591)

  • d/control: Add Build-Depends on systematic names for gir1.2-*-dev packages

    As diagnosed by warnings from dh_girepository in the build log.

    This helps to ensure that this package remains buildable even if the other packages separate their GIR XML into a different binary package or implement the 'nogir' build-profile.

  • d/control: Replace libgirepository1.0-dev B-D with gobject-introspection

    The former is not Multi-Arch co-installable, but the latter is.

    Closes: #1116591

  • gir1.2-gst-plugins-base-1.0: Add ${gir:Provides}

    This ensures that it Provides the systematic names for all the included typelibs (GstAllocators-1.0.typelib ⇒ gir1.2-gstallocators-1.0, and so on) to make them easier to depend on correctly.

    Addresses Lintian tags: gir-missing-typelib-dependency, typelib-package-name-does-not-match

  • libgstreamer-plugins-base1.0-dev: Add ${gir:Provides}

    This adds the systematic names for the various included GIR XML files (GstAllocator-1.0.gir ⇒ gir1.2-gstallocators-1.0-dev, and so on) so that other packages can add Depends or Build-Depends on them if required. It's also a step towards being able to add the nogir build-profile in future, if desired.

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

  • libgstreamer-plugins-base1.0-dev: Add ${gir:Depends}

    This ensures that it will depend on the packages that include the necessary GIR XML to be able to parse and load the GIR XML included in this package.


I built a reference version of this source package without changes, then rebuilt with the proposed changes and compared the results with diffoscope. Not otherwise tested.

After the first two commits, the built binaries were identical. Their metadata is very slightly different, dropping a versioned dependency that in practice doesn't matter:

│ │ │ │  Package: gir1.2-gst-plugins-base-1.0
...
│ │ │ │ -Depends: gir1.2-gio-2.0, gir1.2-glib-2.0 (>= 0.9.12-4~), gir1.2-gmodule-2.0, gir1.2-gobject-2.0, gir1.2-gst-1.0 (>= 1.26.0), gir1.2-gstbase-1.0 (>= 1.26.0), libgstreamer-gl1.0-0 (>= 1.25.90), libgstreamer-plugins-base1.0-0 (>= 1.25.90)
│ │ │ │ +Depends: gir1.2-gio-2.0, gir1.2-glib-2.0, gir1.2-gmodule-2.0, gir1.2-gobject-2.0, gir1.2-gst-1.0 (>= 1.26.0), gir1.2-gstbase-1.0 (>= 1.26.0), libgstreamer-gl1.0-0 (>= 1.25.90), libgstreamer-plugins-base1.0-0 (>= 1.25.90)

This seems a good tradeoff for losing several unnecessary build-dependencies:

│ ├── Installed-Build-Depends
│ │ @@ -41,16 +41,14 @@
│ │   gcc-15-base (= 15.2.0-4),
│ │   gcc-15-x86-64-linux-gnu (= 15.2.0-4),
│ │   gcc-x86-64-linux-gnu (= 4:15.2.0-4),
│ │   gettext (= 0.23.1-2+b1),
│ │   gettext-base (= 0.23.1-2+b1),
│ │   gir1.2-freedesktop (= 1.86.0-5),
│ │   gir1.2-freedesktop-dev (= 1.86.0-5),
│ │ - gir1.2-girepository-2.0 (= 1.86.0-5),
│ │ - gir1.2-girepository-2.0-dev (= 1.86.0-5),
│ │   gir1.2-glib-2.0 (= 2.84.4-3),
│ │   gir1.2-glib-2.0-dev (= 2.84.4-3),
│ │   gir1.2-graphene-1.0 (= 1.10.8-5),
│ │   gir1.2-gstreamer-1.0 (= 1.26.6-1),
│ │   gir1.2-gudev-1.0 (= 238-7),
│ │   gir1.2-harfbuzz-0.0 (= 11.5.0-1),
│ │   gir1.2-pango-1.0 (= 1.56.3-2),
│ │ @@ -141,17 +139,15 @@
│ │   libgcc-15-dev (= 15.2.0-4),
│ │   libgcc-s1 (= 15.2.0-4),
│ │   libgdbm-compat4t64 (= 1.26-1),
│ │   libgdbm6t64 (= 1.26-1),
│ │   libgio-2.0-dev (= 2.84.4-3),
│ │   libgio-2.0-dev-bin (= 2.84.4-3),
│ │   libgirepository-1.0-1 (= 1.86.0-5),
│ │ - libgirepository-1.0-dev (= 1.86.0-5),
│ │   libgirepository-2.0-0 (= 2.84.4-3),
│ │ - libgirepository1.0-dev (= 1.86.0-5),
│ │   libgl-dev (= 1.7.0-1+b2),
│ │   libgl1 (= 1.7.0-1+b2),
│ │   libgl1-mesa-dri (= 25.2.3-1),
│ │   libgles-dev (= 1.7.0-1+b2),
│ │   libgles1 (= 1.7.0-1+b2),
│ │   libgles2 (= 1.7.0-1+b2),
│ │   libglib2.0-0t64 (= 2.84.4-3),

The remaining commits only alter metadata:

Control files of package gir1.2-gst-plugins-base-1.0: lines which differ (wdiff format)
---------------------------------------------------------------------------------------
Depends: gir1.2-gio-2.0, [-gir1.2-glib-2.0 (>= 0.9.12-4~),-] {+gir1.2-glib-2.0,+} gir1.2-gmodule-2.0, gir1.2-gobject-2.0, gir1.2-gst-1.0 (>= 1.26.0), gir1.2-gstbase-1.0 (>= 1.26.0), libgstreamer-gl1.0-0 (>= 1.25.90), libgstreamer-plugins-base1.0-0 (>= 1.25.90)
{+Provides: gir1.2-gstallocators-1.0 (= 1.26.6-1), gir1.2-gstapp-1.0 (= 1.26.6-1), gir1.2-gstaudio-1.0 (= 1.26.6-1), gir1.2-gstgl-1.0 (= 1.26.6-1), gir1.2-gstglegl-1.0 (= 1.26.6-1), gir1.2-gstglwayland-1.0 (= 1.26.6-1), gir1.2-gstglx11-1.0 (= 1.26.6-1), gir1.2-gstpbutils-1.0 (= 1.26.6-1), gir1.2-gstrtp-1.0 (= 1.26.6-1), gir1.2-gstrtsp-1.0 (= 1.26.6-1), gir1.2-gstsdp-1.0 (= 1.26.6-1), gir1.2-gsttag-1.0 (= 1.26.6-1), gir1.2-gstvideo-1.0 (= 1.26.6-1)+}

Control files of package libgstreamer-plugins-base1.0-dev: lines which differ (wdiff format)
--------------------------------------------------------------------------------------------
Depends: {+gir1.2-gio-2.0-dev, gir1.2-glib-2.0-dev, gir1.2-gmodule-2.0-dev, gir1.2-gobject-2.0-dev, gir1.2-gst-1.0-dev, gir1.2-gst-plugins-base-1.0 (= 1.26.6-1), gir1.2-gstbase-1.0-dev,+} libgstreamer-plugins-base1.0-0 (= 1.26.6-1), libgstreamer-gl1.0-0 (= 1.26.6-1), libc6-dev | libc-dev, pkgconf, libgstreamer1.0-dev (>= 1.16.2), libglib2.0-dev, liborc-0.4-dev (>= 1:0.4.24), libgl-dev, libegl-dev, libgles-dev, libx11-xcb-dev, libwayland-dev (>= 1.11), libdrm-dev (>= 2.4.55), libgbm-dev, libgudev-1.0-dev (>= [-147), gir1.2-gst-plugins-base-1.0 (= 1.26.6-1)-] {+147)+}
{+Provides: gir1.2-gstallocators-1.0-dev (= 1.26.6-1), gir1.2-gstapp-1.0-dev (= 1.26.6-1), gir1.2-gstaudio-1.0-dev (= 1.26.6-1), gir1.2-gstgl-1.0-dev (= 1.26.6-1), gir1.2-gstglegl-1.0-dev (= 1.26.6-1), gir1.2-gstglwayland-1.0-dev (= 1.26.6-1), gir1.2-gstglx11-1.0-dev (= 1.26.6-1), gir1.2-gstpbutils-1.0-dev (= 1.26.6-1), gir1.2-gstrtp-1.0-dev (= 1.26.6-1), gir1.2-gstrtsp-1.0-dev (= 1.26.6-1), gir1.2-gstsdp-1.0-dev (= 1.26.6-1), gir1.2-gsttag-1.0-dev (= 1.26.6-1), gir1.2-gstvideo-1.0-dev (= 1.26.6-1)+}
Edited by Simon McVittie

Merge request reports

Loading