Install GstAudio-1.0.gir into ${libdir}/gir-1.0, making libgstreamer-plugins-base1.0-dev Multi-Arch: same
-
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.)