Sam Morris wrote:

> C.1.2 says:
>
>       If no root-command is supplied then dpkg-buildpackage will take
>       no special action to gain root privilege, so that for most
>       packages it will have to be invoked as root to start with.
>
> This is wrong according to the dpkg-buildpackage man page

True.  How about this patch?
---
 policy.sgml |  295 ++---------------------------------------------------------
 1 files changed, 9 insertions(+), 286 deletions(-)

diff --git a/policy.sgml b/policy.sgml
index c1ff4b4c..6463713d 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -10295,19 +10295,8 @@ END-INFO-DIR-ENTRY
          Various tools are provided for manipulating source packages;
          they pack and unpack sources and help build of binary
          packages and help manage the distribution of new versions.
-       </p>
-
-       <p>
-         They are introduced and typical uses described here; see
-         <manref name="dpkg-source" section="1"> for full
-         documentation about their arguments and operation.
-       </p>
-
-       <p>
-         For examples of how to construct a Debian source package,
-         and how to use those utilities that are used by Debian
-         source packages, please see the <prgn>hello</prgn> example
-         package.
+         See <manref name="dpkg-source" section="1"> for
+         documentation about their typical uses, arguments and operation.
        </p>
 
        <sect1 id="pkg-dpkg-source">
@@ -10316,46 +10305,7 @@ END-INFO-DIR-ENTRY
            packages
          </heading>
 
-         <p>
-           This program is frequently used by hand, and is also
-           called from package-independent automated building scripts
-           such as <prgn>dpkg-buildpackage</prgn>.
-         </p>
-
-         <p>
-           To unpack a package it is typically invoked with
-           <example>
-  dpkg-source -x <var>.../path/to/filename</var>.dsc
-           </example>
-         </p>
-
-          <p>
-           with the <file><var>filename</var>.tar.gz</file> and
-           <file><var>filename</var>.diff.gz</file> (if applicable) in
-           the same directory.  It unpacks into
-           <file><var>package</var>-<var>version</var></file>, and if
-           applicable
-           <file><var>package</var>-<var>version</var>.orig</file>, in
-           the current directory.
-         </p>
-
-         <p>
-           To create a packed source archive it is typically invoked:
-           <example>
-  dpkg-source -b <var>package</var>-<var>version</var>
-         </example>
-         </p>
-
-         <p>
-           This will create the <file>.dsc</file>, <file>.tar.gz</file> and
-           <file>.diff.gz</file> (if appropriate) in the current
-           directory.  <prgn>dpkg-source</prgn> does not clean the
-           source tree first - this must be done separately if it is
-           required.
-         </p>
-
-         <p>
-           See also <ref id="pkg-sourcearchives">.</p>
+         <p>See <manref name="dpkg-source" section="1">.</p>
        </sect1>
 
 
@@ -10365,57 +10315,7 @@ END-INFO-DIR-ENTRY
            control script
          </heading>
 
-         <p>
-           <prgn>dpkg-buildpackage</prgn> is a script which invokes
-           <prgn>dpkg-source</prgn>, the <file>debian/rules</file>
-           targets <tt>clean</tt>, <tt>build</tt> and
-           <tt>binary</tt>, <prgn>dpkg-genchanges</prgn> and
-           <prgn>gpg</prgn> (or <prgn>pgp</prgn>) to build a signed
-           source and binary package upload.
-         </p>
-
-         <p>
-           It is usually invoked by hand from the top level of the
-           built or unbuilt source directory.  It may be invoked with
-           no arguments; useful arguments include:
-           <taglist compact="compact">
-             <tag><tt>-uc</tt>, <tt>-us</tt></tag>
-             <item>
-               <p>
-                 Do not sign the <tt>.changes</tt> file or the
-                 source package <tt>.dsc</tt> file, respectively.</p>
-             </item>
-             <tag><tt>-p<var>sign-command</var></tt></tag>
-             <item>
-               <p>
-                 Invoke <var>sign-command</var> instead of finding
-                 <tt>gpg</tt> or <tt>pgp</tt> on the <prgn>PATH</prgn>.
-                 <var>sign-command</var> must behave just like
-                 <prgn>gpg</prgn> or <tt>pgp</tt>.</p>
-             </item>
-             <tag><tt>-r<var>root-command</var></tt></tag>
-             <item>
-               <p>
-                 When root privilege is required, invoke the command
-                 <var>root-command</var>.  <var>root-command</var>
-                 should invoke its first argument as a command, from
-                 the <prgn>PATH</prgn> if necessary, and pass its
-                 second and subsequent arguments to the command it
-                 calls.  If no <var>root-command</var> is supplied
-                 then <var>dpkg-buildpackage</var> will take no
-                 special action to gain root privilege, so that for
-                 most packages it will have to be invoked as root to
-                 start with.</p>
-             </item>
-             <tag><tt>-b</tt>, <tt>-B</tt></tag>
-             <item>
-               <p>
-                 Two types of binary-only build and upload - see
-                 <manref name="dpkg-source" section="1">.
-               </p>
-             </item>
-           </taglist>
-         </p>
+         <p>See <manref name="dpkg-buildpackage" section="1">.</p>
        </sect1>
 
        <sect1 id="pkg-dpkg-gencontrol">
@@ -10424,61 +10324,7 @@ END-INFO-DIR-ENTRY
            control files
          </heading>
 
-         <p>
-           This program is usually called from <file>debian/rules</file>
-           (see <ref id="pkg-sourcetree">) in the top level of the source
-           tree.
-         </p>
-
-         <p>
-           This is usually done just before the files and directories in the
-           temporary directory tree where the package is being built have their
-           permissions and ownerships set and the package is constructed using
-           <prgn>dpkg-deb/</prgn>
-             <footnote>
-               This is so that the control file which is produced has
-               the right permissions
-           </footnote>.
-         </p>
-
-         <p>
-           <prgn>dpkg-gencontrol</prgn> must be called after all the
-           files which are to go into the package have been placed in
-           the temporary build directory, so that its calculation of
-           the installed size of a package is correct.
-         </p>
-
-         <p>
-           It is also necessary for <prgn>dpkg-gencontrol</prgn> to
-           be run after <prgn>dpkg-shlibdeps</prgn> so that the
-           variable substitutions created by
-           <prgn>dpkg-shlibdeps</prgn> in <file>debian/substvars</file>
-           are available.
-         </p>
-
-         <p>
-           For a package which generates only one binary package, and
-           which builds it in <file>debian/tmp</file> relative to the top
-           of the source package, it is usually sufficient to call
-           <prgn>dpkg-gencontrol</prgn>.
-         </p>
-
-         <p>
-           Sources which build several binaries will typically need
-           something like:
-           <example>
-  dpkg-gencontrol -Pdebian/tmp-<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>
-           tells it which package's control file should be generated.
-         </p>
-
-         <p>
-           <prgn>dpkg-gencontrol</prgn> also adds information to the
-           list of files in <file>debian/files</file>, for the benefit of
-           (for example) a future invocation of
-           <prgn>dpkg-genchanges</prgn>.</p>
+         <p>See <manref name="dpkg-gencontrol" section="1">.</p>
        </sect1>
 
        <sect1 id="pkg-dpkg-shlibdeps">
@@ -10487,80 +10333,7 @@ END-INFO-DIR-ENTRY
            dependencies
          </heading>
 
-         <p>
-           This program is usually called from <file>debian/rules</file>
-           just before <prgn>dpkg-gencontrol</prgn> (see <ref
-           id="pkg-sourcetree">), in the top level of the source tree.
-         </p>
-
-         <p>
-           Its arguments are executables and shared libraries
-           <footnote>
-             <p>
-               They may be specified either in the locations in the
-               source tree where they are created or in the locations
-               in the temporary build tree where they are installed
-               prior to binary package creation.
-             </p>
-           </footnote> for which shared library dependencies should
-           be included in the binary package's control file.
-         </p>
-
-         <p>
-           If some of the found shared libraries should only
-           warrant a <tt>Recommends</tt> or <tt>Suggests</tt>, or if
-           some warrant a <tt>Pre-Depends</tt>, this can be achieved
-           by using the <tt>-d<var>dependency-field</var></tt> option
-           before those executable(s).  (Each <tt>-d</tt> option
-           takes effect until the next <tt>-d</tt>.)
-         </p>
-
-         <p>
-           <prgn>dpkg-shlibdeps</prgn> does not directly cause the
-           output control file to be modified.  Instead by default it
-           adds to the <file>debian/substvars</file> file variable
-           settings like <tt>shlibs:Depends</tt>.  These variable
-           settings must be referenced in dependency fields in the
-           appropriate per-binary-package sections of the source
-           control file.
-         </p>
-
-         <p>
-           For example, a package that generates an essential part
-           which requires dependencies, and optional parts that 
-           which only require a recommendation, would separate those
-           two sets of dependencies into two different fields.<footnote>
-               At the time of writing, an example for this was the
-               <package/xmms/ package, with Depends used for the xmms
-               executable, Recommends for the plug-ins and Suggests for
-               even more optional features provided by unzip.
-           </footnote>
-            It can say in its <file>debian/rules</file>:
-           <example>
-  dpkg-shlibdeps -dDepends <var>program anotherprogram ...</var> \
-                 -dRecommends <var>optionalpart anotheroptionalpart</var>
-           </example>
-           and then in its main control file <file>debian/control</file>:
-           <example>
-  <var>...</var>
-  Depends: ${shlibs:Depends}
-  Recommends: ${shlibs:Recommends}
-  <var>...</var>
-           </example>
-         </p>
-
-         <p>
-           Sources which produce several binary packages with
-           different shared library dependency requirements can use
-           the <tt>-p<var>varnameprefix</var></tt> option to override
-           the default <tt>shlibs:</tt> prefix (one invocation of
-           <prgn>dpkg-shlibdeps</prgn> per setting of this option).
-           They can thus produce several sets of dependency
-           variables, each of the form
-           <tt><var>varnameprefix</var>:<var>dependencyfield</var></tt>,
-           which can be referred to in the appropriate parts of the
-           binary package control files.
-         </p>
+         <p>See <manref name="dpkg-shlibdeps" section="1">.</p>
        </sect1>
 
 
@@ -10570,36 +10343,7 @@ END-INFO-DIR-ENTRY
            <file>debian/files</file>
          </heading>
 
-         <p>
-           Some packages' uploads need to include files other than
-           the source and binary package files.
-         </p>
-
-         <p>
-           <prgn>dpkg-distaddfile</prgn> adds a file to the
-           <file>debian/files</file> file so that it will be included in
-           the <file>.changes</file> file when
-           <prgn>dpkg-genchanges</prgn> is run.
-         </p>
-
-         <p>
-           It is usually invoked from the <tt>binary</tt> target of
-           <file>debian/rules</file>:
-           <example>
-  dpkg-distaddfile <var>filename</var> <var>section</var> <var>priority</var>
-           </example>
-           The <var>filename</var> is relative to the directory where
-           <prgn>dpkg-genchanges</prgn> will expect to find it - this
-           is usually the directory above the top level of the source
-           tree.  The <file>debian/rules</file> target should put the
-           file there just before or just after calling
-           <prgn>dpkg-distaddfile</prgn>.
-         </p>
-
-         <p>
-           The <var>section</var> and <var>priority</var> are passed
-           unchanged into the resulting <file>.changes</file> file.
-         </p>
+         <p>See <manref name="dpkg-distaddfile" section="1">.</p>
        </sect1>
 
 
@@ -10609,21 +10353,7 @@ END-INFO-DIR-ENTRY
            upload control file
          </heading>
 
-         <p>
-           This program is usually called by package-independent
-           automatic building scripts such as
-           <prgn>dpkg-buildpackage</prgn>, but it may also be called
-           by hand.
-         </p>
-
-         <p>
-           It is usually called in the top level of a built source
-           tree, and when invoked with no arguments will print out a
-           straightforward <file>.changes</file> file based on the
-           information in the source package's changelog and control
-           file and the binary and source packages which should have
-           been built.
-         </p>
+         <p>See <manref name="dpkg-genchanges" section="1">.</p>
        </sect1>
 
 
@@ -10633,14 +10363,7 @@ END-INFO-DIR-ENTRY
            representation of a changelog
          </heading>
 
-         <p>
-           This program is used internally by
-           <prgn>dpkg-source</prgn> et al.  It may also occasionally
-           be useful in <file>debian/rules</file> and elsewhere.  It
-           parses a changelog, <file>debian/changelog</file> by default,
-           and prints a control-file format representation of the
-           information in it to standard output.
-         </p>
+         <p>See <manref name="dpkg-parsechangelog" section="1">.<p>
        </sect1>
 
         <sect1 id="pkg-dpkg-architecture">
-- 
1.7.9




-- 
To UNSUBSCRIBE, email to debian-policy-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20120130185651.GC22549@burratino

Reply via email to