X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=perl-policy.sgml;h=626c5144bc4124fbde9cbba8fcbedbc60405e5db;hb=bce4b938b4e603a7bceeaf2ad31d007d0a9dcb43;hp=1d26df7c40ab75eaa6cb2a1cf4e768c116aa7d0f;hpb=10f927594e0ddeffc217e675cbd16f380be2da4f;p=debian%2Fdebian-policy.git diff --git a/perl-policy.sgml b/perl-policy.sgml index 1d26df7..626c514 100644 --- a/perl-policy.sgml +++ b/perl-policy.sgml @@ -1,4 +1,8 @@ - + + %versiondata; +]> @@ -14,11 +18,11 @@ The Debian Policy mailing list debian-policy@lists.debian.org - version 1.20 + version &version;, &date; This document describes the packaging of Perl within the Debian - GNU/Linux distribution and the policy requirements for packaged + distribution and the policy requirements for packaged Perl programs and modules. @@ -40,7 +44,7 @@

A copy of the GNU General Public License is available as - /usr/share/common-licenses/GPL in the Debian GNU/Linux + /usr/share/common-licenses/GPL in the Debian distribution or on the World Wide Web at . @@ -89,8 +93,11 @@

The perl-base package must provide - perlapi-version for all released - versions it is compatible with. + perlapi-abiname for all released + package versions it is compatible with. The choice of + abiname is arbitrary, but if it differs from + $Config{version}, it must be specified in + $Config{debian_abi}.

@@ -103,18 +110,18 @@ the binary and a basic set of modules.

- As Perl is currently used by such things as - update-alternatives and some package maintainer - scripts, it must be priority required and marked as - essential. + As Perl has been part of the essential set for some time and is + used without dependencies by such things as package maintainer + scripts, perl-base must be + priority required and marked as essential.

Note that the perl-base 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 - perl-base rather than - perl. + may change. In general, only packages which form part of the + base system should use only the facilities + of perl-base rather than declaring a + dependency on perl.

@@ -190,8 +197,8 @@ package.

- Manual pages distributed with Perl packages must be installed - into the standard directories: + Manual pages distributed with packages built from the perl + source package must be installed into the standard directories: Programs @@ -210,6 +217,8 @@

+ The extensions used for manual pages distributed with module + packages are different. See .

@@ -291,10 +300,17 @@ make install Module Package Names

Perl module packages should be named for the primary module - provided. The naming convention for module Foo::Bar - is libfoo-bar-perl. 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, lib, change all occurrences + of :: to -, and append -perl. For + example: + +Foo::Bar libfoo-bar-perl +Foo::Bar::Baz libfoo-bar-baz-perl +Foo::BarBaz libfoo-barbaz-perl + + Packages which include multiple modules may additionally include + provides for the additional modules using the same convention.

@@ -313,7 +329,7 @@ $(MAKE) OPTIMIZE="-O2 -g -Wall" and this one to install the results into the temporary tree: -$(MAKE) install PREFIX=$(CURDIR)/debian/<tmp>/usr +$(MAKE) install DESTDIR=$(CURDIR)/debian/<tmp>

Replace <tmp> with the appropriate directory (nominally just tmp)

@@ -348,8 +364,9 @@ $(MAKE) install PREFIX=$(CURDIR)/debian/<tmp>/usr a minimum version of the perl package used to build the module, and must additionally depend on the expansion of - perlapi-$Config{version} using - the Config module. + perlapi-$Config{debian_abi} using + the Config module. If $Config{debian_abi} + is empty or not set, $Config{version} must be used.

@@ -446,6 +463,26 @@ perl -MExtUtils::Embed -e ldopts package must depend upon it explicitly.

+ + + Perl Package Upgrades +

+ Starting from perl 5.12.3-2, a dpkg trigger + named perl-major-upgrade will be triggered by the + postinst of the perl package during major + upgrades. Some examples of things which constitute a major upgrade + are an upgrade which would change the value of versioned + directories in @INC, or one which changes abiname. + Any package may declare an interest in the trigger, especially + packages including long-running daemons which would stop working + until restart. +

+

+ It is suggested that such packages include an appropriate section + in their postinst to handle the trigger by restarting relevant + daemons or notifying users of further action. +

+