Package: lintian Version: 2.5.4 Severity: wishlist Tags: patch
The attached patch makes lintian detect packages which use Numpy ABI without declaring dependency on python-numpy-abiN.
Some background information can be found in bug #643873. -- Jakub Wilk
diff --git a/checks/binaries b/checks/binaries --- a/checks/binaries +++ b/checks/binaries @@ -136,6 +136,7 @@ my $needs_depends_line = 0; my $has_perl_lib = 0; my $has_php_ext = 0; +my $uses_numpy_c_abi = 0; my %SONAME; @@ -353,6 +354,13 @@ $has_php_ext = 1; } + # Python extension using Numpy C ABI? + if ($file =~ m,usr/lib/(?:pyshared/)?python2\.\d+/.*(?<!_d)\.so$,) { + if ($strings =~ m,module compiled against ABI version %x but this version of numpy is %x,) { + $uses_numpy_c_abi = 1; + } + } + # Something other than detached debugging symbols in /usr/lib/debug paths. if ($file =~ m,^usr/lib/debug/(?:lib\d*|s?bin|usr|opt|dev|emul)/,) { if (exists($objdump->{NEEDED})) { @@ -457,6 +465,17 @@ } } +# Check for dependency on python-numpy-abiN dependency (or strict versioned +# dependency on python-numpy) +if ($uses_numpy_c_abi and $pkg ) { + tag 'missing-dependency-on-numpy-abi' + unless + $depends =~ m/(?:^|,)\s*python-numpy-abi\d+\s*(?:,|\z)/ or ( + $depends =~ m/(?:^|,)\s*python-numpy\s+\(>[>=]/ and + $depends =~ m/(?:^|,)\s*python-numpy\s+\(<[<=]/) or + $pkg eq 'python-numpy'; +} + } 1; diff --git a/checks/binaries.desc b/checks/binaries.desc --- a/checks/binaries.desc +++ b/checks/binaries.desc @@ -206,6 +206,16 @@ . echo "php:Depends=phpapi-$(php-config5 --phpapi)" > debian/substvars +Tag: missing-dependency-on-numpy-abi +Severity: serious +Certainty: possible +Info: This package includes a Python extension module, which uses Numpy via its + binary interface. Such packages must depend on python-numpy-abi<i>N</i>. + . + If the package is using debhelper, this problem is usually due to a + missing dh_numpy call in <tt>debian/rules</tt>. +Ref: /usr/share/doc/python-numpy/README.DebianMaints + Tag: debug-file-should-use-detached-symbols Severity: normal Certainty: certain