[lintian] 02/07: gir: Allow a Provides on the canonical name for typelib packages
This is an automated email from the git hooks/post-receive script.
lamby pushed a commit to branch master
in repository lintian.
commit e5a28eb3220087a98905f6612247d53e5709f4c7
Author: Simon McVittie <smcv@debian.org>
Date: Sat Nov 11 14:04:20 2017 +0000
gir: Allow a Provides on the canonical name for typelib packages
It's OK for closely related typelibs to be grouped together, as was done
for packages like GLib, GTK+ and Tracker, as long as they are expected
to bump introspection ABI version at the same time. The new mini-policy
version in gobject-introspection/1.54.1-3 recommends that they have
a Provides on all the package names that would have been used if they
were separated (for example gir1.2-gtk-3.0 Provides gir1.2-gdk-3.0 and
gir1.2-gdkx11-3.0). If this is done, we can detect it and suppress the
typelib-package-name-does-not-match tag.
Signed-off-by: Simon McVittie <smcv@debian.org>
---
checks/gir.desc | 15 ++++++++++-----
checks/gir.pm | 3 ++-
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/checks/gir.desc b/checks/gir.desc
index 611b4ac..b154d6a 100644
--- a/checks/gir.desc
+++ b/checks/gir.desc
@@ -48,11 +48,16 @@ Certainty: possible
Info: GObject-Introspection binary typelibs (<tt>Foo-23.typelib</tt>)
should normally be made available in a package named gir1.2-foo-23.
.
- Please ignore and override this tag if the typelib is deliberately shipped
- in a package whose name does not match the typelib's machine-readable name.
- For example, <tt>gir1.2-glib-2.0</tt> is named for the <tt>GLib-2.0</tt>
- typelib, but also contains the <tt>GObject-2.0</tt> and <tt>Gio-2.0</tt>
- typelibs; this is unconventional, but is allowed.
+ If multiple typelibs are shipped in the same package, then that package
+ should have versioned <tt>Provides</tt> for the names that would have been
+ used for separate packages. This arrangement should only be used if the
+ included typelibs' versions are expected to remain the same at all times.
+ .
+ For example, <tt>gir1.2-gtk-3.0</tt> is named for the <tt>Gtk-3.0</tt>
+ typelib, but also contains the <tt>Gdk-3.0</tt> and <tt>GdkX11-3.0</tt>
+ typelibs. It should have versioned <tt>Provides</tt> entries for
+ <tt>gir1.2-gdk-3.0 (= ${binary:Version})</tt>
+ and <tt>gir1.2-gdkx11-3.0 (= ${binary:Version})</tt> to indicate this.
Ref: /usr/share/doc/gobject-introspection/policy.txt
Tag: typelib-section-not-introspection
diff --git a/checks/gir.pm b/checks/gir.pm
index b64d195..5001ea0 100644
--- a/checks/gir.pm
+++ b/checks/gir.pm
@@ -121,7 +121,8 @@ sub _run_binary {
foreach my $typelib (@typelibs) {
my $expected = 'gir1.2-' . lc($typelib->basename);
$expected =~ s/\.typelib$//;
- if ($pkg ne $expected) {
+ if ($pkg ne $expected
+ and not $info->relation('provides')->implies($expected)) {
tag('typelib-package-name-does-not-match', $typelib, $expected);
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git
Reply to: