]> git.donarmstrong.com Git - debian/debian-policy.git/blobdiff - perl-policy.sgml
Perl Policy: Change perlapi provides to use an ABI version
[debian/debian-policy.git] / perl-policy.sgml
index edf8e4f609b584220126be7a1fa1b43e4e4c9fcf..58c33328fb8eec1aea378294862c3df1cc79cc5c 100644 (file)
@@ -6,13 +6,15 @@
       <title>Debian Perl Policy</title>
       <author>
        <name>Rapha&euml;l Hertzog</name>
-       <email>hertzog@debian.org</email>
       </author>
       <author>
        <name>Brendan O'Dea</name>
-       <email>bod@debian.org</email>
       </author>
-      <version>version 1.19</version>
+      <author>
+       <name>The Debian Policy mailing list</name>
+       <email>debian-policy@lists.debian.org</email>
+      </author>
+      <version>version 1.20</version>
 
       <abstract>
        This document describes the packaging of Perl within the Debian
        </p>
        <p>
          A copy of the GNU General Public License is available as
-         <tt>/usr/share/common-licences/GPL</tt> in the Debian GNU/Linux
+         <tt>/usr/share/common-licenses/GPL</tt> in the Debian GNU/Linux
          distribution or on the World Wide Web at 
          <url id="http://www.gnu.org/copyleft/gpl.html"
          name="The GNU Public Licence">.
        </p>
        <p>
          You can also obtain it by writing to the
-         Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-         Boston, MA 02111-1307, USA.
+         Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+         Boston, MA 02110-1301, USA. 
        </p>
       </copyright>
     </titlepag>
 
     <toc detail="sect">
 
+    <chapt>
+      <heading>About this document</heading>
+      <p>
+       This document is distributed as the <tt>perl-policy</tt> files
+       in the Debian package
+        <package><url name="debian-policy" id="http://packages.debian.org/debian-policy"></package>.
+       It is also available from the Debian web mirrors at
+       <tt><url name="/doc/packaging-manuals/perl-policy/"
+               id="http://www.debian.org/doc/packaging-manuals/perl-policy/"></tt>.
+      </p>
+    </chapt>
+
     <chapt id="perl">
       <heading>Perl Packaging</heading>
       <sect id="versions">
        </p>
        <p>
          The <package>perl-base</package> package must provide
-         <package>perlapi-<var>version</var></package> for all released
-         versions it is compatible with.
+         <package>perlapi-<var>abiname</var></package> for all released
+         package versions it is compatible with. The choice of
+         <var>abiname</var> is arbitrary, but if it differs from
+         <tt>$Config{version}</tt>, it must be specified in
+         <tt>$Config{debian_abi}</tt>.
        </p>
       </sect>
 
          the binary and a basic set of modules.
        </p>
        <p>
-         As Perl is currently used by such things as
-         <file>update-alternatives</file> and some package maintainer
-         scripts, it must be priority <em>required</em> and marked as
-         <em>essential</em>.
+         As Perl has been part of the essential set for some time and is
+         used without dependencies by such things as package maintainer
+         scripts, <package>perl-base</package> must be
+         priority <em>required</em> and marked as <em>essential</em>.
        </p>
        <p>
          Note that the <package>perl-base</package> package is intended
          only to provide for exceptional circumstances and the contents
-         may change.  In general only packages which form part of the
-         base system should declare a dependency on
-         <package>perl-base</package> rather than
-         <package>perl</package>.
+         may change.  In general, only packages which form part of the
+         base system should use only the facilities
+         of <package>perl-base</package> rather than declaring a
+         dependency on <package>perl</package>.
        </p>
       </sect>
 
@@ -299,12 +316,11 @@ $(MAKE) OPTIMIZE="-O2 -g -Wall"
          </example>
          and this one to install the results into the temporary tree:
          <example>
-$(MAKE) install PREFIX=$(CURDIR)/debian/tmp/usr
-         </example>
-       </p>
-       <p>
-         A <tt>Build-Depends</tt> on <tt>perl (>= 5.6.0-16)</tt> is
-         required.
+$(MAKE) install PREFIX=$(CURDIR)/debian/&lt;tmp&gt;/usr
+         </example><footnote>
+           <p>Replace &lt;tmp&gt; with the appropriate directory
+           (nominally just tmp)</p>
+         </footnote>
        </p>
       </sect>
 
@@ -325,13 +341,6 @@ $(MAKE) install PREFIX=$(CURDIR)/debian/tmp/usr
            the minimum required version, or more simply the current
            version.
          </p>
-         <p>
-           In the absence of an explicit requirement,
-           architecture-independent modules must depend on a minimum
-           <package>perl</package> or <package>perl-base</package>
-           version of <tt>5.6.0-16</tt> due to the changes in
-           <tt>@INC</tt> introduced by that version.
-         </p>
        </sect1>
 
        <sect1 id="binary_modules">
@@ -342,7 +351,9 @@ $(MAKE) install PREFIX=$(CURDIR)/debian/tmp/usr
            a minimum version of the <package>perl</package> package
            used to build the module, and must additionally depend on
            the expansion of
-           <package>perlapi-$Config{version}</package>.
+           <package>perlapi-$Config{debian_abi}</package> using
+           the <tt>Config</tt> module. If <tt>$Config{debian_abi}</tt>
+           is empty or not set, <tt>$Config{version}</tt> must be used.
          </p>
        </sect1>
 
@@ -352,15 +363,22 @@ $(MAKE) install PREFIX=$(CURDIR)/debian/tmp/usr
            Rather than hard-coding the dependencies into the control
            file, using a substitution such as <tt>${perl:Depends}</tt>
            is suggested.  This allows the dependencies to be determined
-           as build time and written to the <file>substvars</file> file
-           in the form <tt>perl:Depends=<var>deps</var></tt>.
+           at build time and written to the <file>substvars</file> file
+           in the form
+           <tt>perl:Depends=<var>deps</var></tt>.<footnote>
+             <p>Please note that dependencies caused by versioned
+             uses and on separately packaged modules are not included
+             in this variable and must be explicitly included.</p>
+           </footnote>
          </p>
          <p>
-           Packages built with <prgn>debhelper</prgn> may use <manref
-           name="dh_perl" section=1> to generate this substitution
-           automatically.  This additionally requires a versioned
-           <tt>Build-Depends</tt> (or <tt>Build-Depends-Indep</tt>)
-           on <tt>debhelper (>= 3.0.18)</tt>.
+           Packages built with <prgn>debhelper</prgn> may use
+
+           <manref name="dh_perl" section="1"> to generate this
+           substitution automatically.  This additionally requires a
+           versioned <tt>Build-Depends</tt> (or
+           <tt>Build-Depends-Indep</tt>) on <tt>debhelper (>=
+           3.0.18)</tt>.
          </p>
        </sect1>
       </sect>
@@ -394,7 +412,7 @@ $(MAKE) install PREFIX=$(CURDIR)/debian/tmp/usr
        </p>
        <p>
          As with modules, packages using <prgn>debhelper</prgn> may use
-         <manref name="dh_perl" section=1> to automatically generate
+         <manref name="dh_perl" section="1"> to automatically generate
          dependences (see <ref id="dh_perl">).
        </p>
       </sect>
@@ -463,3 +481,6 @@ perl -MExtUtils::Embed -e ldopts
     </appendix>
   </book>
 </debiandoc>
+<!-- Local variables: -->
+<!-- indent-tabs-mode: t -->
+<!-- End: -->