]> git.donarmstrong.com Git - debian/debian-policy.git/commitdiff
Clarify the wording about which build dependencies must be satisfied
authorRuss Allbery <rra@debian.org>
Sat, 12 Jun 2010 19:25:02 +0000 (12:25 -0700)
committerRuss Allbery <rra@debian.org>
Sat, 12 Jun 2010 19:25:02 +0000 (12:25 -0700)
* Clarify the wording around which build dependencies must be satisfied
  for different debian/rules targets and add a footnote to the
  description of the build-arch and build-indep targets explaining why
  this split does not currently work as desired.  (Closes: #328951)

debian/changelog
policy.sgml

index 7de407a9cf144d342d2ce4b739975ceb986f01c3..221e9d644b086d0d2098941b0f1d2374dd6dc87d 100644 (file)
@@ -94,6 +94,10 @@ debian-policy (3.8.5.0) UNRELEASED; urgency=low
     Kleine-König.  (Closes: #572253)
   * Explicitly state that packages may remove unmodified, obsolete
     configuration files during  upgrade.  (Closes: #470633)
+  * Clarify the wording around which build dependencies must be satisfied
+    for different debian/rules targets and add a footnote to the
+    description of the build-arch and build-indep targets explaining why
+    this split does not currently work as desired.  (Closes: #328951)
 
  -- Bill Allombert <ballombe@debian.org>  Mon, 31 May 2010 20:00:28 +0200
 
index f0ba54e35c4a6d42a3023c5542a8dc4d8eb9253c..720150d68276afb323439f73f8a6705688c866bb 100644 (file)
                A package may also provide both of the targets
                <tt>build-arch</tt> and <tt>build-indep</tt>.
                The <tt>build-arch</tt> target, if provided, should
-               perform all the configuration and compilation required
-               for producing all architecture-dependant binary packages
+               perform all the configuration and compilation required for
+               producing all architecture-dependant binary packages
                (those packages for which the body of the
-               <tt>Architecture</tt> field in <tt>debian/control</tt>
-               is not <tt>all</tt>).
-               Similarly, the <tt>build-indep</tt> target, if
-               provided, should perform all the configuration and
-               compilation required for producing all
-               architecture-independent binary packages
-               (those packages for which the body of the
-               <tt>Architecture</tt> field in <tt>debian/control</tt>
-               is <tt>all</tt>).
+               <tt>Architecture</tt> field in <tt>debian/control</tt> is
+               not <tt>all</tt>).  Similarly, the <tt>build-indep</tt>
+               target, if provided, should perform all the configuration
+               and compilation required for producing all
+               architecture-independent binary packages (those packages
+               for which the body of the <tt>Architecture</tt> field
+               in <tt>debian/control</tt> is <tt>all</tt>).
                The <tt>build</tt> target should depend on those of the
                targets <tt>build-arch</tt> and <tt>build-indep</tt> that
-               are provided in the rules file.
+               are provided in the rules file.<footnote>
+                 The intent of this split is so that binary-only builds
+                 need not install the dependencies required for
+                 the <tt>build-indep</tt> target.  However, this is not
+                 yet used in practice since <tt>dpkg-buildpackage
+                 -B</tt>, and therefore the autobuilders,
+                 invoke <tt>build</tt> rather than <tt>build-arch</tt>
+                 due to the difficulties in determining whether the
+                 optional <tt>build-arch</tt> target exists.
+               </footnote>
              </p>
 
              <p>
@@ -4847,58 +4854,44 @@ Replaces: mail-transport-agent
           The dependencies and conflicts they define must be satisfied
           (as defined earlier for binary packages) in order to invoke
           the targets in <tt>debian/rules</tt>, as follows:<footnote>
-           <p>
-             If you make "build-arch" or "binary-arch", you need
-             Build-Depends.  If you make "build-indep" or
-             "binary-indep", you need Build-Depends and
-             Build-Depends-Indep.  If you make "build" or "binary",
-             you need both.
-           </p>
            <p>
              There is no Build-Depends-Arch; this role is essentially
-              met with Build-Depends.  Anyone building the
-              <tt>build-indep</tt> and binary-indep<tt></tt> targets
-              is basically assumed to be building the whole package
-              anyway and so installs all build dependencies.  The
-              autobuilders use <tt>dpkg-buildpackage -B</tt>, which
-              calls <tt>build</tt> (not <tt>build-arch</tt>, since it
-              does not yet know how to check for its existence) and
-              <tt>binary-arch</tt>.
+             met with Build-Depends.  Anyone building the
+             <tt>build-indep</tt> and binary-indep<tt></tt> targets is
+             assumed to be building the whole package, and therefore
+             installation of all build dependencies is required.
            </p>
            <p>
-             The purpose of the original split, I recall, was so that
-             the autobuilders wouldn't need to install extra packages
-             needed only for the binary-indep targets.  But without a
-             build-arch/build-indep split, this didn't work, since
-             most of the work is done in the build target, not in the
-             binary target.
+             The autobuilders use <tt>dpkg-buildpackage -B</tt>, which
+             calls <tt>build</tt>, not <tt>build-arch</tt> since it does
+             not yet know how to check for its existence, and
+             <tt>binary-arch</tt>.  The purpose of the original split
+             between <tt>Build-Depends</tt> and
+             <tt>Build-Depends-Indep</tt> was so that the autobuilders
+             wouldn't need to install extra packages needed only for the
+             binary-indep targets.  But without a build-arch/build-indep
+             split, this didn't work, since most of the work is done in
+             the build target, not in the binary target.
            </p>
          </footnote>
-
          <taglist>
-           <tag><tt>Build-Depends</tt>, <tt>Build-Conflicts</tt></tag>
+           <tag><tt>clean</tt>, <tt>build-arch</tt>, and
+             <tt>binary-arch</tt></tag>
            <item>
-                The <tt>Build-Depends</tt> and
-               <tt>Build-Conflicts</tt> fields must be satisfied when
-               any of the following targets is invoked:
-               <tt>build</tt>, <tt>clean</tt>, <tt>binary</tt>,
-               <tt>binary-arch</tt>, <tt>build-arch</tt>,
-               <tt>build-indep</tt> and <tt>binary-indep</tt>.
+             Only the <tt>Build-Depends</tt> and <tt>Build-Conflicts</tt>
+             fields must be satisfied when these targets are invoked.
            </item>
-           <tag><tt>Build-Depends-Indep</tt>,
-             <tt>Build-Conflicts-Indep</tt></tag>
+           <tag><tt>build</tt>, <tt>build-indep</tt>, <tt>binary</tt>,
+             and <tt>binary-indep</tt></tag>
            <item>
-                The <tt>Build-Depends-Indep</tt> and
-               <tt>Build-Conflicts-Indep</tt> fields must be
-               satisfied when any of the following targets is
-               invoked: <tt>build</tt>, <tt>build-indep</tt>,
-               <tt>binary</tt> and <tt>binary-indep</tt>.
+             The <tt>Build-Depends</tt>, <tt>Build-Conflicts</tt>,
+             <tt>Build-Depends-Indep</tt>, and
+             <tt>Build-Conflicts-Indep</tt> fields must be satisfied when
+             these targets are invoked.
            </item>
          </taglist>
        </p>
-
       </sect>
-
     </chapt>