]> git.donarmstrong.com Git - debian/debian-policy.git/commitdiff
various
authorManoj Srivastava <srivasta@debian.org>
Thu, 16 Jun 2005 05:05:15 +0000 (05:05 +0000)
committerManoj Srivastava <srivasta@debian.org>
Thu, 16 Jun 2005 05:05:15 +0000 (05:05 +0000)
Author: srivasta
Date: 1999/04/29 19:51:27
various

git-archimport-id: srivasta@debian.org--etch/debian-policy--devel--3.0--patch-24

packaging.sgml

index 97dcc2090d8b33446beed8084548a6164b6f8149..c7d6c1419ec4c2834317487ab9945f8472278c48 100644 (file)
        between <prgn>dselect</prgn> and its access method scripts.
        It does not deal with the Debian Project policy requirements,
        and it assumes familiarity with <prgn>dpkg</prgn>'s functions
-       from the system administrator's perspective.
+       from the system administrator's perspective.  This
+        package itself is maintained by a group of maintainers
+        that have no editorial powers. At the moment, the list of
+        maintainers is:
+        <enumlist>
+          <item>
+            <p>Michael Alan Dorman <email>mdorman@debian.org</email></p>
+          </item>
+          <item>
+            <p>Richard Braakman <email>dark@xs4all.nl</email></p>
+          </item>
+          <item>
+            <p>Philip Hands <email>phil@hands.com</email></p>
+          </item>
+          <item>
+            <p>Manoj Srivastava <email>srivasta@debian.org</email></p>
+          </item>
+        </enumlist>
+      </abstract>
+
 
       <copyright>
        <copyrightsummary>Copyright &copy;1996 Ian Jackson.</copyrightsummary>
        This manual describes the technical aspects of creating Debian
        binary packages (<tt>.deb</tt> files).  It documents the
        behaviour of the package management programs
-       <prgn>dpkg</prgn>, <prgn>dselect</prgn> et al. and and the way
+       <prgn>dpkg</prgn>, <prgn>dselect</prgn> et al. and the way
        they interact with packages.</p>
 
       <p>
            information in it to standard output.
          </p>
        </sect1>
+        <sect1 id="dpkgarch"><heading><prgn>dpkg-architecture</prgn> -
+           information about the build and host system 
+          </heading>
+          <p>
+            This program can be used manually, but is also invoked by
+            <tt>dpkg-buildpackage</tt> or <tt>debian/rules</tt> to set
+            to set environment or make variables which specify the build and
+            host architecture for the package building process.
+          </p>
+        </sect1>
       </sect>
        
       <sect id="sourcetree"><heading>The Debianised source tree
          tree.  They are described below.
        </p>
          
-       <sect1><heading><tt>debian/rules</tt> - the main building
+       <sect1 id="debianrules"><heading><tt>debian/rules</tt> - the main building
        script
          </heading>
 
            either as published or undocumented interfaces or for the
            package's internal use.
          </p>
+          <p>
+            The architecture we build on and build for is determined by make
+            variables via dpkg-architecture (see <ref id="dpkgarch">). You can
+            get the Debian architecture and the GNU style architecture
+            specification string for the build machine as well as the host
+            machine. Here is a list of supported make variables:
+          </p>
+         
+          <list compact="compact">
+            <item>
+              <p><tt>DEB_*_ARCH</tt> (the Debian architecture)</p>
+            </item>
+            <item>
+              <p><tt>DEB_*_GNU_TYPE</tt> (the GNU style architecture
+               specification string)</p> 
+            </item>
+            <item>
+              <p><tt>DEB_*_GNU_CPU</tt> (the CPU part of DEB_*_GNU_TYPE)</p>
+            </item>
+            <item>
+              <p><tt>DEB_*_GNU_SYSTEM</tt> (the System part of
+               DEB_*_GNU_TYPE)</p>
+          </list>
+          <p>
+            where <tt>*</tt> is either <tt>BUILD</tt> for specification of
+            the build machine or <tt>HOST</tt> for specification of the machine
+            we build for.
+          </p>
+         
+          <p>
+            Backward compatibility can be provided in the rules file
+            by setting the needed variables to suitable default
+            values, please refer to the documentation of
+            dpkg-architecture for details.
+          </p>
+          <p>
+            It is important to understand that the <tt>DEB_*_ARCH</tt>
+            string does only determine which Debian architecture we
+            build on resp. for. It should not be used to get the CPU
+            or System information, the GNU style variables should be
+            used for that.
+          </p>
        </sect1>
          
          
 
          <p>       
            This is the architecture string; it is a single word for
-           the CPU architecture.
+           the Debian architecture.
          </p>
 
          <p>       
          </p>
 
          <p>       
-           The current build architecture can be determined using <tt>dpkg
-             --print-architecture</tt>.
-           <footnote>
-             <p>
-               This actually invokes
-               <example>
-  gcc --print-libgcc-file-name
-               </example> and parses and decomposes the output and
-               looks the CPU type from the GCC configuration in a
-               table in <prgn>dpkg</prgn>.  This is so that it will
-               work if you're cross-compiling.
-             </p>
-           </footnote> This value is automatically used by
-           <prgn>dpkg-gencontrol</prgn> when building the control
-           file for a binary package for which the source control
-           information doesn't specify architecture <tt>all</tt>.
+           See <ref id="debianrules"> for information how to get the
+           architecture for the build process. 
          </p>
-
-         <p>       
-           There is a separate option,
-           <tt>--print-installation-architecture</tt>, for finding
-           out what architecture <prgn>dpkg</prgn> is willing to
-           install.  This information is also in the output of
-           <tt>dpkg --version</tt>.</p>
        </sect1>
          
        <sect1 id="f-Maintainer"><heading><tt>Maintainer</tt>
        </heading>
 
        <p>       
-         It is possible supply scripts as part of a package which
+         It is possible to supply scripts as part of a package which
          <prgn>dpkg</prgn> will run for you when your package is
          installed, upgraded or removed.
        </p>
       </sect>
 
       <sect><heading>Dependencies - <tt>Depends</tt>, <tt>Recommends</tt>,
-         <tt>tt>Sugge</tt>tt>, <tt>Pre-Depends</tt>
+         <tt>Suggests</tt>, <tt>Pre-Depends</tt>
        </heading>
 
        <p>       
       </sect1>
 
       <sect id="conflicts"><heading>Alternative packages -
-         <tt>tt>Confli</tt>tt> and <tt>Replaces</tt>
+         <tt>Conflicts</tt> and <tt>Replaces</tt>
        </heading>
 
        <p>       
          <tt>Provides</tt> control file field of another package.
          The effect is as if the package(s) which provide a
          particular virtual package name had been listed by name
-         everywhere were the virtual package name appears.
+         everywhere the virtual package name appears.
        </p>
 
        <p>       
        <p>       
          If you want to specify which of a set of real packages should be the
          default to satisfy a particular dependency on a virtual package, you
-         should list the real package as alternative before the virtual.
+         should list the real package as an alternative before the virtual.
        </p>
       </sect>
        
          <p>       
            Secondly, <tt>Replaces</tt> allows <prgn>dpkg</prgn> and
            <prgn>dselect</prgn> to resolve which package should be
-           removed when a conflict - see <ref id="conflicts">.  This
+           removed when there is a conflict - see <ref id="conflicts">.  This
            usage only takes effect when the two packages <em>do</em>
            conflict, so that the two effects do not interfere with
            each other.
        <p>       
          If neither the user nor the package maintainer has changed
          the file, it is left alone.  If one or the other has changed
-         their version, then the changed version is preferred - ie,
+         their version, then the changed version is preferred - i.e.,
          if the user edits their file, but the package maintainer
          doesn't ship a different version, the user's changes will
          stay, silently, but if the maintainer ships a new version