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