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

Bug#747439: lintian: warn about Pre-Depends: multiarch-support in debian/control



Package: lintian
Version: 2.5.22.1
Severity: wishlist
Tags: patch

Dear lintian maintainers,

It would be nice if lintian could start bugging people about
"Pre-Depends: multiarch-support" in their debian/control file. At some
point multiarch-support should be removed from eglibc, but this cannot
be done as long as there still are dependencies on it. So we need to get
rid of these dependencies. Unfortunately we might still need them in
jessie, so just removing might be a bit too early. What would help
though is converting "Pre-Depends: multiarch-support" into "Pre-Depends:
${misc:Pre-Depends}" if the package in question uses dh_makeshlibs. Then
debhelper can be told to stop inserting that Pre-Dependency and all
affected packages will automatically drop it during their next build (or
binNMU). This way, removing multiarch-support becomes feasible for
jessie+1 and packages that use ${misc:Pre-Depends} keep being
backportable to wheezy and jessie.

Patch attached.

Helmut
diff -Nru lintian-2.5.22.1/checks/control-file.desc lintian-2.5.22.1+nmu1/checks/control-file.desc
--- lintian-2.5.22.1/checks/control-file.desc	2014-03-30 11:56:39.000000000 +0200
+++ lintian-2.5.22.1+nmu1/checks/control-file.desc	2014-05-08 19:09:19.000000000 +0200
@@ -221,3 +221,13 @@
  packages which would provide different functionality, would be empty or not be
  built at all under the stage1 or stage2 profiles must be marked as not being
  generated with the Build-Profiles field.
+
+Tag: pre-depends-directly-on-multiarch-support
+Severity: pedantic
+Certainty: possible
+Info: The control file mentions multiarch-support in a Pre-Depends line.
+ Usually multiarch-support is inserted into Pre-Depends via ${misc:Pre-Depends}
+ by dh_makeshlibs. In order to be able to remove the multiarch-support package
+ from glibc without updating every package, Pre-Depends: ${misc:Pre-Depends}
+ should be used instead. Then multiarch-support can be removed by a change
+ in debhelper followed by a binNMU of all affected packages.
diff -Nru lintian-2.5.22.1/checks/control-file.pm lintian-2.5.22.1+nmu1/checks/control-file.pm
--- lintian-2.5.22.1/checks/control-file.pm	2014-03-30 11:56:39.000000000 +0200
+++ lintian-2.5.22.1+nmu1/checks/control-file.pm	2014-05-08 19:01:43.000000000 +0200
@@ -342,6 +342,18 @@
           if (($k eq 'stage1' || $k eq 'stage2') && $v == 0);
     }
 
+    # find binary packages that Pre-Depend on multiarch-support without going
+    # via ${misc:Pre-Depends}
+    if ($info->source_field('build-depends') =~ /debhelper/) {
+        for my $bin (@package_names) {
+            my $raw = $info->binary_field($bin, 'pre-depends');
+            next unless $raw;
+            if($raw =~ /multiarch-support/) {
+                tag 'pre-depends-directly-on-multiarch-support', 'Package', $bin;
+            }
+        }
+    }
+
     return;
 }
 
diff -Nru lintian-2.5.22.1/debian/changelog lintian-2.5.22.1+nmu1/debian/changelog
--- lintian-2.5.22.1/debian/changelog	2014-03-30 21:11:37.000000000 +0200
+++ lintian-2.5.22.1+nmu1/debian/changelog	2014-05-08 18:48:01.000000000 +0200
@@ -1,3 +1,10 @@
+lintian (2.5.22.1+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Add check for Pre-Depends: multiarch-support.
+
+ -- Helmut Grohne <helmut@subdivi.de>  Thu, 08 May 2014 18:47:50 +0200
+
 lintian (2.5.22.1) unstable; urgency=medium
 
   * checks/ocaml.{desc,pm}:

Reply to: