-<!doctype debiandoc system>
+<!doctype debiandoc system [
+<!-- include version information so we don't have to hard code it
+ within the document -->
+<!entity % versiondata SYSTEM "version.ent"> %versiondata;
+]>
<debiandoc>
<book>
<name>The Debian Policy mailing list</name>
<email>debian-policy@lists.debian.org</email>
</author>
- <version>version 1.20</version>
+ <version>version &version;, &date;</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>
<heading>Module Package Names</heading>
<p>
Perl module packages should be named for the primary module
- provided. The naming convention for module <tt>Foo::Bar</tt>
- is <package>libfoo-bar-perl</package>. Packages which include
- multiple modules may additionally include provides for those
- modules using the same convention.
+ provided. The naming convention is to lowercase the Perl module
+ name, prepend, <tt>lib</tt>, change all occurrences
+ of <tt>::</tt> to <tt>-</tt>, and append <tt>-perl</tt>. For
+ example:
+ <example>
+Foo::Bar libfoo-bar-perl
+Foo::Bar::Baz libfoo-bar-baz-perl
+Foo::BarBaz libfoo-barbaz-perl
+ </example>
+ Packages which include multiple modules may additionally include
+ provides for the additional modules using the same convention.
</p>
</sect>
</example>
and this one to install the results into the temporary tree:
<example>
-$(MAKE) install PREFIX=$(CURDIR)/debian/<tmp>/usr
+$(MAKE) install DESTDIR=$(CURDIR)/debian/<tmp>
</example><footnote>
<p>Replace <tmp> with the appropriate directory
(nominally just tmp)</p>
</footnote>
</p>
- <p>
- A <tt>Build-Depends</tt> on <tt>perl (>= 5.6.0-16)</tt> is
- required.
- </p>
</sect>
<sect id="module_deps">
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">
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> using
- the <tt>Config</tt> module.
+ <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>
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
</appendix>
</book>
</debiandoc>
+<!-- Local variables: -->
+<!-- indent-tabs-mode: t -->
+<!-- End: -->