Source: gstreamer1.0 Version: 1.24.8-1 Severity: normal Tags: patch Current versions of dh_girepository generate systematic virtual package names for any package containing GObject-Introspection XML or typelibs.
For GIR XML, a module name like Gst-1.0.gir generates a Provides like gir1.2-gst-1.0-dev via ${gir:Provides}. This helps other packages to set the correct Build-Depends for what they require, even if the package might get split up later, and is also useful if you want to enable cross-compilation of GObject-Introspection and/or implement the "nogir" build-profile in the future. Similarly, for typelibs, a module name like Gst-1.0.typelib generates a Provides like gir1.2-gst-1.0 (if it doesn't match the name of the binary package, which it intentionally doesn't in the case of gstreamer1.0, because the upstream provides more than one typelib but the Debian packaging combines them into a single binary package). As a minimal change to resolve this bug report, please add ${gir:Provides} to the Provides of every binary package that contains GIR XML or typelibs. For gstreamer1.0, I believe this means libgstreamer1.0-dev and gir1.2-gstreamer-1.0 should gain ${gir:Provides}. It would also be easy and helpful to add ${gir:Depends} to the packages where it is generated (I believe this is only libgstreamer1.0-dev), and add Build-Depends on the systematic names of the GIR XML that the package depends on (according to the warnings in buildd logs, this means gir1.2-gmodule-2.0-dev, gir1.2-gobject-2.0-dev and gir1.2-gio-2.0-dev). I attach patches for this (untested, but should be right). There are other changes that could be made in order to enable cross-compiling, but those are out-of-scope for this bug report. Please see file:///usr/share/doc/gobject-introspection/README.Debian.gz for future directions. Thanks, smcv
>From 812859a39912a30d60ace8fb1858cfbe6e02e1c9 Mon Sep 17 00:00:00 2001 From: Simon McVittie <s...@debian.org> Date: Wed, 23 Oct 2024 16:42:39 +0100 Subject: [PATCH 1/3] d/control: Add ${gir:Provides} to packages with GIR XML or typelibs This allows dependent packages to (build-)depend on GStreamer introspection data via systematic names constructed from the namespace and version that they import, without needing to know precisely how GStreamer has been packaged. It also silences build-time warnings from dh_girepository. Closes: #-1 --- debian/control | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/control b/debian/control index 9aed3c7050..b488a92971 100644 --- a/debian/control +++ b/debian/control @@ -63,6 +63,7 @@ Depends: libgstreamer1.0-0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, gir1.2-gstreamer-1.0 (= ${binary:Version}) +Provides: ${gir:Provides} Suggests: gstreamer1.0-doc Description: GStreamer core development files GStreamer is a streaming media framework, based on graphs of filters @@ -99,6 +100,7 @@ Multi-Arch: same Depends: ${gir:Depends}, ${shlibs:Depends}, ${misc:Depends} +Provides: ${gir:Provides} Description: GObject introspection data for the GStreamer library This package contains introspection data for the GStreamer streaming media framework. -- 2.45.2
>From 7ad308d5f294f6e727f8005de1e60207568404c4 Mon Sep 17 00:00:00 2001 From: Simon McVittie <s...@debian.org> Date: Wed, 23 Oct 2024 16:43:42 +0100 Subject: [PATCH 2/3] d/control: Make the -dev package depend on the GIR XML that it needs Recent versions of dh_girepository can generate this dependency automatically. This also silences a build warning. --- debian/control | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/control b/debian/control index b488a92971..5d715e21df 100644 --- a/debian/control +++ b/debian/control @@ -60,6 +60,7 @@ Depends: libgstreamer1.0-0 (= ${binary:Version}), libglib2.0-dev, libunwind-dev [i386 amd64 armel armhf arm64 powerpc ppc64 ppc64el mipsel mips64el riscv64], libdw-dev [i386 amd64 armel armhf arm64 powerpc ppc64 ppc64el mipsel mips64el riscv64], + ${gir:Depends}, ${shlibs:Depends}, ${misc:Depends}, gir1.2-gstreamer-1.0 (= ${binary:Version}) -- 2.45.2
>From 8a0c68bd50593b8433733dd6b5c3007c65ee9b95 Mon Sep 17 00:00:00 2001 From: Simon McVittie <s...@debian.org> Date: Wed, 23 Oct 2024 16:45:10 +0100 Subject: [PATCH 3/3] d/control: Explicitly build-depend on the GIR XML that is needed In practice these are pulled in by libgirepository1.0-dev, but it's safer to name them explicitly. This silences warnings from dh_girepository, and is a prerequisite for potentially enabling cross-compiling in a future version. --- debian/control | 3 +++ 1 file changed, 3 insertions(+) diff --git a/debian/control b/debian/control index 5d715e21df..629bb5fc3e 100644 --- a/debian/control +++ b/debian/control @@ -8,6 +8,9 @@ Uploaders: Sebastian Dröge <sl...@debian.org>, Build-Depends: debhelper-compat (= 13), dh-exec, dh-sequence-gir, + gir1.2-gio-2.0-dev, + gir1.2-gmodule-2.0-dev, + gir1.2-gobject-2.0-dev, meson (>= 0.62), pkgconf, perl-doc, -- 2.45.2