describe deps from -dev to shared lib packages and mention the binNMU safety issue
authorStefano Zacchiroli <zack@debian.org>
Wed, 16 May 2007 11:23:53 +0000 (11:23 +0000)
committerStefano Zacchiroli <zack@debian.org>
Wed, 16 May 2007 11:23:53 +0000 (11:23 +0000)
debian/changelog
debian/policy/chapter-libpack.xml

index 5afac0fbe9cc7885381933a4c5c2f0b3692614ff..6184ac8f2ec75fd1e3651e3b5f90efda756f65ee 100644 (file)
@@ -14,8 +14,10 @@ ocaml (3.09.3-2) UNRELEASED; urgency=low
     - mandate the compilation of *.cm[ao] with debugging information for
       libraries and forbid it for bytecode programs
     - update the Vcs-Svn info to the latest PTS documentation
+    - describe dependencies from a -dev package to its companion shared stub
+      package (if any) and suggest the usage of ${binary:Version}
 
- -- Stefano Zacchiroli <zack@debian.org>  Wed, 16 May 2007 13:09:25 +0200
+ -- Stefano Zacchiroli <zack@debian.org>  Wed, 16 May 2007 13:22:23 +0200
 
 ocaml (3.09.3-1) experimental; urgency=low
 
index 01d8c5f48b0e449aba41e340cc79d69b746eaa83..9d38b0d5f22ee31cc84ea670eab5d88636383649 100644 (file)
                 <para>
                     <filename>libxxx-ocaml-dev</filename> should provide the rest of the library package, in fact anything needed to develop programs using the library. If the library uses other libraries or C libraries, this package should depend on them.
                 </para>
+               <para>
+
+                 <filename>libxxx-ocaml-dev</filename> should depend on its
+                 companion <filename>libxxx-ocaml</filename> package (if any).
+                 The reason is that at compile time the &ocaml-name; compiler
+                 will try to load the shared library stubs, aborting the
+                 compilation in case of failure. Hence the development package
+                 is useless if the corresponding stub package is missing. To
+                 ensure compatibility the dependency among the two packages
+                 should be strictly versioned. In order for the resulting
+                 packages to be <ulink
+                   url="http://wiki.debian.org/binNMU">binNMU safe</ulink> this
+                 requirement states that the dependency should make use of a
+                 <code>${binary:Version}</code> substitution variable.
+
+                 <example>
+                   <title>Dependency from a -dev package to its companion share
+                     library stub package (if any), from the
+                     <application>pcre-ocaml</application> package</title>
+                   <programlisting>
+  Package: libpcre-ocaml
+  Architecture: any
+  Section: libs
+  Depends: ocaml-base-nox-${F:OCamlABI}, ${shlibs:Depends}, ${misc:Depends}
+  ...
+
+  Package: libpcre-ocaml-dev
+  Architecture: any
+  Section: libdevel
+  Depends: ocaml-nox-${F:OCamlABI}, libpcre3-dev (>= 4.5), <emphasis>libpcre-ocaml (= ${binary:Version})</emphasis>, ocaml-findlib (>= 1.1), ${misc:Depends}
+  ...
+                   </programlisting>
+                 </example>
+
+               </para>
                <para>
                  <filename>libxxx-ocaml-dev</filename> packages should be in <code>Section: libdevel</code>
                </para>