[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[lintian] 01/01: Add check for GObject Introspection packages that are missing binary dependencies on ${gir:Depends}. (Closes: #860801)



This is an automated email from the git hooks/post-receive script.

lamby pushed a commit to branch master
in repository lintian.

commit e248cfbb716a2692f5759b5d57041fbb0ea0bdc3
Author: Chris Lamb <lamby@debian.org>
Date:   Thu Jul 20 20:29:00 2017 +0100

    Add check for GObject Introspection packages that are missing binary dependencies on ${gir:Depends}. (Closes: #860801)
---
 checks/control-file.desc                           | 10 ++++++++
 checks/control-file.pm                             |  9 +++++++
 debian/changelog                                   |  2 ++
 .../debian/debian/control.in                       | 28 ++++++++++++++++++++++
 .../desc                                           |  5 ++++
 .../tags                                           |  1 +
 6 files changed, 55 insertions(+)

diff --git a/checks/control-file.desc b/checks/control-file.desc
index 291f0d6..d2add23 100644
--- a/checks/control-file.desc
+++ b/checks/control-file.desc
@@ -296,3 +296,13 @@ Ref: policy 5.6.8
 Info: The values of the Architecture field in debian/control must not
  be separated by anything else than spaces; that is, they must form a
  single line and are not allowed to span multiple lines.
+
+Tag: gobject-instrospection-package-missing-depends-on-gir-depends
+Severity: serious
+Certainty: certain
+Info: The package is a GObject Instrospection package but it does not specify a
+ dependency on the ${gir:Depends} substvar. Missing these dependenceis usually
+ results in the program aborting.
+ .
+ This is usually an accidental omission and/or where the maintainer omits
+ the <tt>--with=gir</tt> debhelper sequence.
diff --git a/checks/control-file.pm b/checks/control-file.pm
index 873658a..831f5b3 100644
--- a/checks/control-file.pm
+++ b/checks/control-file.pm
@@ -382,6 +382,15 @@ sub run {
         }
     }
 
+    # Check for GObject Introspection packages that are missing ${gir:Depends}
+    foreach my $bin (@package_names) {
+        next unless $bin =~ m/gir[\d\.]+-.*-[\d\.]+$/;
+        my $relation = $info->binary_relation($bin, 'all');
+        tag 'gobject-instrospection-package-missing-depends-on-gir-depends',
+          $bin
+          unless $relation->implies('${gir:Depends}');
+    }
+
     return;
 }
 
diff --git a/debian/changelog b/debian/changelog
index d707d5b..e549e03 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,8 @@ lintian (2.5.52) UNRELEASED; urgency=medium
     + [NT] Remove check for missing versioned build-depends for dpkg
       and debhlper when using Build-Profiles.  The necessary versions
       are now in oldstable.
+    + [CL] Add check for GObject Introspection packages that are missing
+      binary dependencies on ${gir:Depends}.  (Closes: #860801)
   * checks/changes-file.{desc,pm}:
     + [CL] Check for the presence of an .asc signature if an upstream
       signing key is present.  (Closes: #833585)
diff --git a/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/debian/debian/control.in b/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/debian/debian/control.in
new file mode 100644
index 0000000..3ee2521
--- /dev/null
+++ b/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/debian/debian/control.in
@@ -0,0 +1,28 @@
+Source: {$source}
+Section: introspection
+Priority: extra
+Maintainer: {$author}
+Standards-Version: {$standards_version}
+Build-Depends: {$build_depends}
+
+Package: gir1.1-missing-gir-depends-2.2
+Architecture: {$architecture}
+Depends: $\{misc:Depends\}
+Description: {$description}
+ This is a test package designed to exercise some feature or tag of
+ Lintian.  It is part of the Lintian test suite and may do very odd
+ things.  It should not be installed like a regular package.  It may
+ be an empty package.
+ .
+ This package should be tagged by Lintian.
+
+Package: gir1.1-gir-depends-present-2.2
+Architecture: {$architecture}
+Depends: $\{misc:Depends\}, $\{gir:Depends\}
+Description: {$description}: False
+ This is a test package designed to exercise some feature or tag of
+ Lintian.  It is part of the Lintian test suite and may do very odd
+ things.  It should not be installed like a regular package.  It may
+ be an empty package.
+ .
+ This package should not be tagged by Lintian.
diff --git a/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/desc b/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/desc
new file mode 100644
index 0000000..b67c33e
--- /dev/null
+++ b/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/desc
@@ -0,0 +1,5 @@
+Testname: control-file-gobject-instrospection-package-missing-gir-depends
+Version: 1.0
+Description: Check for missing binary dependencies on ${gir:Depends}
+Test-For:
+ gobject-instrospection-package-missing-depends-on-gir-depends
diff --git a/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/tags b/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/tags
new file mode 100644
index 0000000..e591a1e
--- /dev/null
+++ b/t/tests/control-file-gobject-instrospection-package-missing-gir-depends/tags
@@ -0,0 +1 @@
+E: control-file-gobject-instrospection-package-missing-gir-depends source: gobject-instrospection-package-missing-depends-on-gir-depends gir1.1-missing-gir-depends-2.2

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git


Reply to: