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

Bug#816249: debian-policy: C.2.4 does not reflect current practises



Niels Thykier <niels@thykier.net> writes:

> The section C.2.4 seems to be a bit outdated.  Quote:

> """
> C.2.4 debian/tmp

> This is the canonical temporary location for the construction of
> binary packages by the binary target. The directory tmp serves as the
> root of the file system tree as it is being constructed (for example,
> by using the package's upstream makefiles install targets and
> redirecting the output there), and it also contains the DEBIAN
> subdirectory. [...]

> If several binary packages are generated from the same source tree it
> is usual to use several debian/tmpsomething directories, for example
> tmp-a or tmp-doc.

> [...]
> """

> However, the default used by debhelper is "debian/<pkg>", which covers
> up to 99% of all packages.

Thanks for pointing this out.  The (non-normative) appendices have not
gotten a lot of love.  I've applied the following patch to update this at
least somewhat:

diff --git a/policy.sgml b/policy.sgml
index aacf0cd..e086321 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -11167,12 +11167,13 @@ END-INFO-DIR-ENTRY
 	</p>
 
 	<p>
-	  In order to create a binary package you must make a
-	  directory tree which contains all the files and directories
-	  you want to have in the file system data part of the package.
-	  In Debian-format source packages this directory is usually
-	  <file>debian/tmp</file>, relative to the top of the package's
-	  source tree.
+	  In order to create a binary package, you must make a directory
+	  tree which contains all the files and directories you want to
+	  have in the file system data part of the package.  In
+	  Debian-format source packages, this directory is usually
+	  either <file>debian/tmp</file>
+	  or <file>debian/<var>pkg</var></file>, relative to the top of
+	  the package's source tree.
 	</p>
 
 	<p>
@@ -11506,7 +11507,7 @@ END-INFO-DIR-ENTRY
 	    Sources which build several binaries will typically need
 	    something like:
 	    <example>
-  dpkg-gencontrol -Pdebian/tmp-<var>pkg</var> -p<var>package</var>
+  dpkg-gencontrol -Pdebian/<var>pkg</var> -p<var>package</var>
 	    </example> The <tt>-P</tt> tells
 	    <prgn>dpkg-gencontrol</prgn> that the package is being
 	    built in a non-default directory, and the <tt>-p</tt>
@@ -11653,27 +11654,39 @@ END-INFO-DIR-ENTRY
 	  </heading>
 
 	  <p>
-	    This is the canonical temporary location for the
-	    construction of binary packages by the <tt>binary</tt>
-	    target.  The directory <file>tmp</file> serves as the root of
-	    the file system tree as it is being constructed (for
-	    example, by using the package's upstream makefiles install
-	    targets and redirecting the output there), and it also
-	    contains the <tt>DEBIAN</tt> subdirectory.  See <ref
-	    id="pkg-bincreating">.
+	    This is the default temporary location for the construction of
+	    binary packages by the <tt>binary</tt> target.  The
+	    directory <file>tmp</file> serves as the root of the file
+	    system tree as it is being constructed (for example, by using
+	    the package's upstream makefiles install targets and
+	    redirecting the output there), and it also contains
+	    the <tt>DEBIAN</tt> subdirectory.
+	    See <ref id="pkg-bincreating">.
 	  </p>
 
 	  <p>
-	    If several binary packages are generated from the same
-	    source tree it is usual to use several
-	    <file>debian/tmp<var>something</var></file> directories, for
-	    example <file>tmp-a</file> or <file>tmp-doc</file>.
+	    This is only a default and can be easily overridden.  Most
+	    packaging tools no longer use <file>debian/tmp</file>, instead
+	    preferring <file>debian/<var>pkg</var></file> for the common
+	    case of a source package building only one binary package.
+	    Such tools usually only use <file>debian/tmp</file> as a
+	    temporary staging area for built files and do not construct
+	    packages from it.
 	  </p>
 
 	  <p>
-	    Whatever <file>tmp</file> directories are created and used by
-	    <tt>binary</tt> must of course be removed by the
-	    <tt>clean</tt> target.</p></sect1>
+	    If several binary packages are generated from the same source
+	    tree, it is usual to use a separate
+	    <file>debian/<var>pkg</var></file> directory for each binary
+	    package as the temporary construction locations.
+	  </p>
+
+	  <p>
+	    Whatever temporary directories are created and used by the
+	    <tt>binary</tt> target must of course be removed by the
+	    <tt>clean</tt> target.
+	  </p>
+	</sect1>
       </sect>
 
-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: