summaryrefslogtreecommitdiffstats
path: root/tags/w/weak-library-dev-dependency.tag
diff options
context:
space:
mode:
Diffstat (limited to 'tags/w/weak-library-dev-dependency.tag')
-rw-r--r--tags/w/weak-library-dev-dependency.tag21
1 files changed, 21 insertions, 0 deletions
diff --git a/tags/w/weak-library-dev-dependency.tag b/tags/w/weak-library-dev-dependency.tag
new file mode 100644
index 0000000..bdffdc8
--- /dev/null
+++ b/tags/w/weak-library-dev-dependency.tag
@@ -0,0 +1,21 @@
+Tag: weak-library-dev-dependency
+Severity: error
+Check: debian/control/prerequisite/development
+Explanation: This package seems to contain the development files for a
+ shared library, but the requirement for that shared library to be installed
+ does not include the same version.
+ .
+ A <code>-dev</code> package should normally use <code>(= ${binary:Version})</code>
+ for the prerequisite on the shared library. That will ensure that programs compile
+ and link properly. The symbolic links for the dynamic linker will also point to the
+ correct places.
+ .
+ To be sure, there are some circumstances when a weak prerequisite is warranted, for
+ example to prevent the breaking of binNMUs with architecture-independent <code>-dev</code>
+ packages. Then something like <code>(&gt;= ${source:Upstream-Version}), (&lt;&lt;
+ ${source:Upstream-Version}+1~)</code> may be the right approach, or possibly
+ <code>${source:Version}</code> instead. The goal there is to ensure that a new upstream
+ version of the library does not satisfy the prerequisite, since any minor version change
+ might break the <code>&ast;.so</code> links.
+See-Also:
+ debian-policy 8.5