Skip to content

Install GstAudio-1.0.gir into ${libdir}/gir-1.0, making libgstreamer-plugins-base1.0-dev Multi-Arch: same

Simon McVittie requested to merge smcv/gst-plugins-base1.0:multiarch into master
  • 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.

  • Install GstAudio-1.0.gir into ${libdir}/gir-1.0

    This allows libgstreamer-plugins-base1.0-dev to return to being Multi-Arch: same without causing a regression similar to #1108412.

    The cost of doing this is that this particular module will not be available to static language bindings unless they search that path. For example, cppgir (#1060906) and gir-to-d (#1060909) would need workarounds.

    According to codesearch there do not appear to be any bindings in Debian that would be broken by this right now: in particular, rust-gstreamer-audio-sys doesn't currently regenerate its bindings from system GIR XML, and if it did, it could use a technique similar to #1116500 to avoid needing to hard-code the path.

    Closes: #1023591


The first three commits were meant to be part of !18 (merged), but I didn't push everything that I had intended to. Sorry!

For the last commit to be practically useful, gstreamer1.0!25 (merged) is also required. After building gst-plugins-base1.0 and gstreamer1.0 with both of those changes included, I can install their amd64 and i386 -dev packages at the same time, and build libportal for amd64 and i386 on the same system without needing to use a chroot or container. (I did turn off its Qt integration via build-profiles to avoid having to install all the Qt -dev files for i386, but that's orthogonal to its use of GStreamer.)

Merge request reports

Loading