From: Manoj Srivastava Date: Thu, 16 Jun 2005 08:53:23 +0000 (+0000) Subject: Synchronized with patch 102 from Manojs tree X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0659d8a99119ee90e565591c2762ba904ef5ede4;hp=60a9372ec4fa8c1a530115afb3f2dabe5b57240f;p=debian%2Fdebian-policy.git Synchronized with patch 102 from Manojs tree Synchronized with patch 102 from Manojs tree Patches applied: * srivasta@debian.org--etch/debian-policy--devel--3.0--patch-102 * [ACCEPTED 2/4/01] /var/mail and /var/spool/mail closes git-archimport-id: debian-policy@lists.debian.org--etch/debian-policy--devel--3.0--patch-102 --- diff --git a/debian/changelog b/debian/changelog index 27efcd4..72abc48 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,18 @@ +debian-policy (3.5.4.0) unstable; urgency=low + + * [ACCEPTED 2/4/01] /var/mail and /var/spool/mail closes: Bug#42052 + * [AMENDMENT 26/04/2001] include Perl Policy closes: Bug#83977 + * Also incorporates all the improvements that Julian has made to to the + grammar and flow of the policy manual. The following are mostly + Julian's fixes: + * Fixed the confusing self referential language. closes: Bug#85503 + * Correct ambiguous kanguage about declaring build dependencies. + closes: Bug#86436 + * Improved the woding of the footnote about shlibdeps. + closes: Bug#87233 + + -- Manoj Srivastava Sat, 28 Apr 2001 13:30:21 -0500 + debian-policy (3.5.3.0) unstable; urgency=low * Removed recommendation on packaging-manual diff --git a/debian/rules b/debian/rules index e02d2e9..e49cdfa 100755 --- a/debian/rules +++ b/debian/rules @@ -42,6 +42,7 @@ FILES_TO_CLEAN = debian/files debian/buildinfo debian/substvars \ version.ent policy.lout policy.lout.ld lout.li \ upgrading-checklist.txt policy.txt.gz \ menu-policy.txt.gz menu-policy.pdf.gz \ + perl-policy.txt.gz perl-policy.pdf.gz \ policy-process.txt.gz policy-process.pdf.gz \ mime-policy.txt.gz mime-policy.pdf.gz \ debconf_spec/debconf_specification.html \ @@ -50,8 +51,8 @@ FILES_TO_CLEAN = debian/files debian/buildinfo debian/substvars \ STAMPS_TO_CLEAN = stamp-policy stamp-build stamp-configure DIRS_TO_CLEAN = debian/tmp policy.html fhs \ menu-policy.html mime-policy.html \ - policy-process.html -SGML_FILES = policy menu-policy mime-policy policy-process + policy-process.html perl-policy.html +SGML_FILES = policy menu-policy mime-policy policy-process perl-policy # Location of the source dir SRCTOP := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi;) @@ -73,6 +74,7 @@ FHS_BYHAND =fhs-2.1.html.tar.gz fhs/fhs.txt POLICY_FILES =policy.txt.gz policy.sgml virtual-package-names-list.txt \ upgrading-checklist.txt libc6-migration.txt version.ent \ menu-policy.sgml menu-policy.txt.gz \ + perl-policy.sgml perl-policy.txt.gz \ mime-policy.sgml mime-policy.txt.gz \ policy-process.txt.gz policy-process.sgml \ debconf_spec/debconf_specification.html \ @@ -80,7 +82,7 @@ POLICY_FILES =policy.txt.gz policy.sgml virtual-package-names-list.txt \ BYHAND_FILES =policy.txt.gz libc6-migration.txt \ virtual-package-names-list.txt menu-policy.txt.gz \ mime-policy.txt.gz policy.ps.gz policy.pdf.gz \ - policy.html.tar.gz \ + policy.html.tar.gz perl-policy.txt.gz \ debconf_spec/debconf_specification.txt.gz \ $(FHS_BYHAND) @@ -173,6 +175,7 @@ stamp-policy: build $(install_file) debian-policy.desc $(LIBDIR)/debian-policy (tar cf - policy.html) | (cd $(DOCDIR); tar xf -) (tar cf - menu-policy.html) | (cd $(DOCDIR); tar xf -) + (tar cf - perl-policy.html) | (cd $(DOCDIR); tar xf -) (tar cf - mime-policy.html) | (cd $(DOCDIR); tar xf -) (tar cf - policy-process.html) | (cd $(DOCDIR); tar xf -) sed -e 's/#PACKAGE#/$(package)/g' debian/postinst.in > debian/postinst diff --git a/perl-policy.sgml b/perl-policy.sgml new file mode 100644 index 0000000..94ba0c2 --- /dev/null +++ b/perl-policy.sgml @@ -0,0 +1,464 @@ + + + + + + Debian Perl Policy + + Raphaël Hertzog + hertzog@debian.org + + + Brendan O'Dea + bod@debian.org + + version 1.19 + + + This document describes the packaging of Perl within the Debian + GNU/Linux distribution and the policy requirements for packaged + Perl programs and modules. + + + + + Copyright © 1999, 2001 Software in the Public Interest + +

+ This manual is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +

+

+ This is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See + the GNU General Public License for more details. +

+

+ A copy of the GNU General Public License is available as + /usr/share/common-licences/GPL in the Debian GNU/Linux + distribution or on the World Wide Web at + . +

+

+ You can also obtain it by writing to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +

+
+
+ + + + + Perl Packaging + + Versions +

+ At any given time, the package perl should + represent the current stable upstream version of Perl revision + 5 (see ). +

+

+ Only one package may contain the /usr/bin/perl + binary and that package must either be perl + or a dependency of that package (see ). +

+

+ Where possible, Perl should be compiled to provide binary + compatibility to at least the last released package version to + allow a grace period over which binary module packages may be + re-built against the new package (see ). +

+

+ The perl-base package must provide + perlapi-version for all released + versions it is compatible with. +

+
+ + + Base Package +

+ In order to provide a minimal installation of Perl for use by + applications without requiring the whole of Perl to be + installed, the perl-base package contains + 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. +

+

+ 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. +

+
+ + + Module Path +

+ Perl searches three different locations for modules, referred + to in this document as core in which modules + distributed with Perl are installed, vendor for + packaged modules and site for modules installed by + the local administrator. +

+

+ The module search path (@INC) in the Debian packages + has been ordered to include these locations in the following + order: + + site (current) + +

+ Modules installed by the local administrator for the + current version of Perl (see ). + +/usr/local/lib/perl/version +/usr/local/share/perl/version + + Where version indicates the current Perl + version ($Config{version}see the + Config module). +

+ + vendor + +

+ Packaged modules (see ). + +/usr/lib/perl5 +/usr/share/perl5 + +

+
+ core + +

+ Modules included in the core Perl distribution. + +/usr/lib/perl/version +/usr/share/perl/version + +

+
+ site (old) + +

+ site directories (as above) for modules + installed with previously released + perl packages for which the current + package is binary compatible are included if present. +

+
+ + In each of the directory pairs above, the lib + component is for binary (XS) modules, and share + for architecture-independent (pure-perl) modules. +

+
+ + + Documentation +

+ The POD files and manual pages which do not refer to programs + may be split out into a separate perl-doc + package. +

+

+ Manual pages distributed with Perl packages must be installed + into the standard directories: + + Programs + +

+ Manual pages for programs and scripts are installed into + /usr/share/man/man1 with the extension + .1. +

+ + Modules + +

+ Manual pages for modules are installed into + /usr/share/man/man3 with the extension + .3perl. +

+
+ +

+
+
+ + + Locally Installed Modules + + Site Directories +

+ The Perl packages must provide a mechanism for the local + administrator to install modules under /usr/local + but must not create or remove those directories. +

+

+ Modules should be installed to the directories described above + in as site (current), programs to + /usr/local/bin and manual pages under + /usr/local/man. +

+
+ + + Site Installation +

+ The following commands should be sufficient in the majority of + cases for the local administrator to install modules and must + create directories as required: + +perl Makefile.PL +make install + +

+
+
+ + + Packaged Modules + + Vendor Directories +

+ The installation directory for Debian modules must be + different from that for core and site + modules. +

+

+ The current Perl packaging uses the vendor + directories for this purpose, which are at present as + described in as vendor. +

+

+ No version subdirectory exists on these directories as the + dependencies for packaged modules (see ) + should ensure that all work with the current + perl package. +

+

+ The Perl distribution includes many modules available + separately from CPAN, which may have a + newer version. The intent of the @INC ordering + (described in ) is to allow such modules to be + packaged to vendor which take precedence over the + version in core. A packaged module which shadows a + core module in this way must be a newer version. +

+

+ Module packages must install manual pages into the standard + directories (see ) using the extensions + .1p and .3pm to ensure that no conflict + arises where a packaged module duplicates a core + module. +

+

+ .packlist files should not be installed. +

+
+ + + 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. +

+
+ + + Vendor Installation +

+ A module should use the following lines in the + debian/rules build + targetThe environment variable PERL_MM_OPT + may be used to pass the INSTALLDIRS=vendor option in + cases where Makefile.PL is not invoked directly + from debian/rules: + +perl Makefile.PL INSTALLDIRS=vendor +$(MAKE) OPTIMIZE="-O2 -g -Wall" + + and this one to install the results into the temporary tree: + +$(MAKE) install PREFIX=$(CURDIR)/debian/tmp/usr + +

+

+ A Build-Depends on perl (>= 5.6.0-16) is + required. +

+
+ + + Module Dependencies + + Architecture-Independent Modules +

+ Architecture-independent modules which require + core modules from the perl + package must specify a dependency on that package. +

+

+ Modules which contain explicit require + version or use version + statements must specify a dependency on + perl or perl-base with + the minimum required version, or more simply the current + version. +

+

+ In the absence of an explicit requirement, + architecture-independent modules must depend on a minimum + perl or perl-base + version of 5.6.0-16 due to the changes in + @INC introduced by that version. +

+
+ + + Binary Modules +

+ Binary modules must specify a dependency on either + perl or perl-base with + a minimum version of the perl package + used to build the module, and must additionally depend on + the expansion of + perlapi-$Config{version}. +

+
+ + + Automating Perl Dependencies +

+ Rather than hard-coding the dependencies into the control + file, using a substitution such as ${perl:Depends} + is suggested. This allows the dependencies to be determined + as build time and written to the substvars file + in the form perl:Depends=deps. +

+

+ Packages built with debhelper may use to generate this substitution + automatically. Additionally requires a + Build-Depends on debhelper (>= 3.0.18). +

+
+
+
+ + + Perl Programs + + Script Magic +

+ All packaged perl programs must start with + #!/usr/bin/perl and may append such flags as are + required. +

+
+ + + Program Dependencies +

+ Programs which require core modules from the + perl package must specify a dependency on + that package. +

+

+ Programs which contain explicit require + version or use version + statements must specify a dependency on + perl or perl-base with + the minimum required version, or more simply the current + version. +

+

+ As with modules, packages using debhelper may use + to automatically generate + dependences (see ). +

+
+
+ + + Programs Embedding Perl + + Building Embedded Programs +

+ Programs which embed a perl interpreter must declare a + Build-Depends on libperl-dev. +

+

+ The default linker options produced by + +perl -MExtUtils::Embed -e ldopts + + will link against the dynamic libperl. If programs + wish to link to the static library, then -lperl + should be changed to /usr/lib/libperl.a in those + options. +

+
+ + + Embedded Perl Dependencies +

+ Dependencies for programs linking against the shared Perl + library will be automatically created by + dpkg-shlibdeps. Note however that the shared + perl library package only suggests + perl-base and packages requiring any + core modules from the perl + package must depend upon it explicitly. +

+
+
+ + + Perl 6 +

+ The current stable upstream version at the time of this writing + is 5.6.0. There is currently work in progress on the next major + revision, although the specifications have yet to be finalised. +

+

+ It is anticipated that when Perl 6 is released it will initially + be packaged as perl6, install the binary as + /usr/bin/perl6 and use different directories for + packaged modules to perl: + +/usr/lib/perl6 +/usr/share/perl6 + + This will allow Perl 5 and 6 packages and modules (which should + be packaged as libfoo-bar-perl6), to co-exist + for as long as required. +

+

+ At some stage in the future when Perl 6 is sufficiently mature, + the package naming may be reversed such that the + perl package contains Perl 6 and the current + package becomes perl5. +

+
+
+
diff --git a/policy.sgml b/policy.sgml index df49d64..1b28837 100644 --- a/policy.sgml +++ b/policy.sgml @@ -86,9 +86,9 @@ /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or on the World Wide Web at . You can also obtain it by writing to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + name="The GNU General Public Licence">. You can also + obtain it by writing to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

@@ -4053,8 +4053,27 @@ permissions 2775 (group-writable and set-group-id) and be owned by root.staff.

+ + The system-wide mail directory +

+ The system-wide mail directory is /var/mail. This + directory is part of the base system and should not owned + by any particular mail agents. The use of the old + location /var/spool/mail is deprecated, even + though the spool may still be physically located there. + To maintain partial upgrade compatibility for systems + which have /var/spool/mail as their physical mail + spool, packages using /var/mail must depend on + either libc6 (>= 2.1.3-13), or on + base-files (>= 2.2.0), or on later + versions of either one of these packages. +

+
+ + + Users and groups @@ -5272,10 +5291,11 @@

You should follow the directions in the Debian Packaging - Manual for putting the shared library in its package, - and you must include a shlibs control area - file with details of the dependencies for packages which - use the library.

+ Manual (or other documentation of the Debian + packaging tools) for putting the shared library in its + package, and you must include a shlibs control area + file with details of the dependencies for packages which use + the library.

Shared libraries should not be installed @@ -5848,7 +5868,7 @@ - + Customized programs @@ -6038,7 +6058,7 @@

- + Mail transport, delivery and user agents

@@ -6050,10 +6070,14 @@ serious brain damage!

- The mail spool is /var/spool/mail and the interface + The mail spool is /var/mail and the interface to send a mail message is /usr/sbin/sendmail (as - per the FHS). The mail spool is part of the base system - and not part of the MTA package.

+ per the FHS). On older systems, the mail spool may be + physically located in /var/spool/mail, but all access to the + mail spool should be via the /var/mail symlink. The mail + spool is part of the base system and not part of the MTA + package. +

All Debian MUAs, MTAs, MDAs and other mailbox accessing @@ -6456,6 +6480,17 @@

+ + Perl programs and modules +

+ Perl programs and modules should follow the current Perl + policy as defined in the file found on + ftp.debian.org in + /debian/doc/package-developer/perl-policy.txt.gz + or your local mirror. In addition, it is included in the + debian-policy package. +

+
Emacs lisp programs diff --git a/upgrading-checklist.html b/upgrading-checklist.html index ffdec0f..dcb5921 100644 --- a/upgrading-checklist.html +++ b/upgrading-checklist.html @@ -7,9 +7,9 @@ Created On : Thu Oct 29 20:54:48 1998 Created On Node : tiamat.datasync.com Last Modified By : Manoj Srivastava - Last Modified On : Fri Jan 19 14:01:36 2001 + Last Modified On : Sat Apr 28 13:36:28 2001 Last Machine Used: glaurung.green-gryphon.com - Update Count : 15 + Update Count : 16 Status : Unknown, Use with caution! HISTORY : Description : @@ -44,6 +44,20 @@ Manual.

The checklist

+3.5.4.0                    Apr 01
+  Policy Manual:
+     - The system-wide mail directory is /var/mail. 
+       All access to the mail spool should be via the /var/mail
+       directory or symbolic link.
+       To maintain partial upgrade compatibility for systems
+       which have /var/spool/mail as their physical mail
+       spool, packages using /var/mail must depend on
+       either libc6 (>= 2.1.3-13), or on
+       base-files (>= 2.2.0), or on later
+       versions of either one of these packages.
+     - The perl policy is now part of Debian policy proper. Perl
+       programs and modules should follow the current Perl policy.
+
 3.5.3.0                    Apr 01
   Policy Manual:
      - Build-Depends arch syntax has been changed to be less