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 <s...@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 <s...@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 via email to