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

Bug#681410: false postives for arch-dependent-file-not-in-arch-specific-directory diagnose



* Russ Allbery <rra@debian.org>, 2012-07-15, 11:56:
I noticed a lot of false positives:

E: libpython3.3-dev: arch-dependent-file-not-in-arch-specific-directory usr/lib/python3.3/config-3.3m-x86_64-linux-gnu/libpython3.3m-pic.a

Move it to /usr/lib/<multiarch-triplet>/python3.3/config-<abitag>/ and add a symlink if really needed. This will make lintian happy.

So maybe better check if the path either contains the multiarch name or the debian architecture name.
I think we should rather remove existing exceptions (for ruby and openjdk, after they are fixed) than to add more.

What (besides minor improvements in ease of maintenance of Lintian) would be gained from doing so? It looks to me like this is an arch-qualified path, so it satisfies the requirements of multiarch, and the only issue is that Lintian has to be slightly more complex to detect that.

I'm not very active at the moment, so weigh my opinion accordingly, but I always tried to apply the general principle that if Lintian *could* figure out the right thing to do, fixing Lintian rather than changing packages just to make life easier for Lintian is the right approach unless the package behavior introduces an actual bug or Policy violation. If people have do things just to make Lintian happy, it discourages people from using Lintian and paying attention to it.

Fair enough.

The attached is a patch to whitelist all uses of multiarch triplet within paths.

I didn't whitelist Debian architecture names, because they are too generic (e.g. "i386" is CPU name for various other architectures that are != i386). If someone thinks whitelisting them is a good idea, they'll have to write the code themselves. :P

(I still think that maintainers should use /usr/lib/<triplet>/<subdir>/, which is blessed by the Policy, wherever possible instead of inventing their own schemas.)

--
Jakub Wilk
diff --git a/checks/binaries b/checks/binaries
--- a/checks/binaries
+++ b/checks/binaries
@@ -229,7 +229,7 @@
     }
 
     if ($multiarch eq 'same') {
-        unless ($file =~ m,/(?:$gnu_triplet_re|$ruby_triplet_re|java-\d+-openjdk-\Q$arch\E|\.build-id)/,) {
+        unless ($file =~ m,\b$gnu_triplet_re\b|/(?:$ruby_triplet_re|java-\d+-openjdk-\Q$arch\E|\.build-id)/,) {
             tag 'arch-dependent-file-not-in-arch-specific-directory', $file;
         }
     }

Reply to: