X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=policy.sgml;h=f512315708535d5dc0691533da2f1ef7a48b8280;hb=b6ec3caac4fc2ea5938a069b60558e140766f6c5;hp=4aeae3639795ae5ee8fcc682cd9acffdc35bbe81;hpb=cbbacc3e326902ebe89005e528191681f0003409;p=debian%2Fdebian-policy.git
diff --git a/policy.sgml b/policy.sgml
index 4aeae36..f512315 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -258,7 +258,6 @@
-
@@ -488,9 +487,9 @@
In addition, the packages in main
-
- must not require a package outside of main
- for compilation or execution (thus, the package must
- not declare a "Depends", "Recommends", or
+ must not require or recommend a package outside
+ of main for compilation or execution (thus, the
+ package must not declare a "Depends", "Recommends", or
"Build-Depends" relationship on a non-main
package),
@@ -709,12 +708,13 @@
list of sections. At present, they are:
admin, cli-mono, comm, database,
devel, debug, doc, editors,
- electronics, embedded, fonts,
- games, gnome, graphics, gnu-r,
- gnustep, hamradio, haskell,
- httpd, interpreters, java, kde,
- kernel, libs, libdevel, lisp,
- localization, mail, math, misc,
+ education, electronics, embedded,
+ fonts, games, gnome, graphics,
+ gnu-r, gnustep, hamradio, haskell,
+ httpd, interpreters, introspection,
+ java, kde, kernel, libs,
+ libdevel, lisp, localization,
+ mail, math, metapackages, misc,
net, news, ocaml, oldlibs,
otherosfs, perl, php, python,
ruby, science, shells, sound,
@@ -6249,11 +6249,30 @@ install -m644 debian/shlibs.package debian/package/DEBIAN/
-
The following directories in the root filesystem are
- additionally allowed: /sys and
- /selinux. These directories
- are used as mount points to mount virtual filesystems
- to get access to kernel information.
-
+ additionally allowed: /run,
+
+ The purpose of the /run hierarchy is storage of ephemeral
+ system state, that is, state information that should
+ not be preserved across a reboot.
+ Files and directories residing in /run
+ should be stored on a temporary filesystem.
+ The /run directory is a
+ replacement for /var/run; its
+ subdirectory /run/lock is a replacement for
+ /var/lock.
+ /run/ and /run/lock/ have been introduced
+ by most distributions and are on track to be
+ endorsed by the FHS.
+ Additionally, the subdirectory /run/shm
+ is a replacement for /dev/shm.
+
+ /sys and /selinux.
+
+ The /sys and /selinux
+ directories are mount points where
+ virtual filesystems are mounted which provide access
+ to kernel information.
+
-
@@ -6762,15 +6781,17 @@ test -f program-executed-later-in-script || exit 0
- /var/run and /var/lock may be mounted
- as temporary filesystems
- For example, using the RAMRUN and RAMLOCK
- options in /etc/default/rcS.
- , so the init.d scripts must handle this
- correctly. This will typically amount to creating any required
- subdirectories dynamically when the init.d script
- is run, rather than including them in the package and relying on
- dpkg to create them.
+ Files and directories under /run, including those
+ in directories /var/run and /var/lock
+ which are symlinks or bind mounts to subdirectories of
+ /run, are normally stored on a temporary
+ filesystem and are normally not persistent across a reboot.
+ Consequently, packages cannot assume that these files or
+ directories are present at system boot time.
+ Files and directories under /run must not be
+ included in packages; such files or directories
+ must be created dynamically, for example, in the
+ init.d script.
@@ -7139,18 +7160,20 @@ Reloading description configuration...done.
-
+
Cron jobs
Packages must not modify the configuration file
/etc/crontab, and they must not modify the files in
- /var/spool/cron/crontabs.
+ /var/spool/cron/crontabs.
+
- If a package wants to install a job that has to be executed
- via cron, it should place a file with the name of the
- package in one or more of the following directories:
+ If a package wants to install a job that has to be executed via
+ cron, it should place a file named as specified
+ in [ into one or more of the following
+ directories:
/etc/cron.hourly
/etc/cron.daily
@@ -7160,7 +7183,8 @@ Reloading description configuration...done.
As these directory names imply, the files within them are
executed on an hourly, daily, weekly, or monthly basis,
respectively. The exact times are listed in
- /etc/crontab.]
+ /etc/crontab.
+
All files installed in any of these directories must be
@@ -7171,15 +7195,18 @@ Reloading description configuration...done.
If a certain job has to be executed at some other frequency or
- at a specific time, the package should install a file
- /etc/cron.d/package. This file uses the
- same syntax as /etc/crontab and is processed by
- cron automatically. The file must also be
+ at a specific time, the package should install a file in
+ /etc/cron.d with a name as specified
+ in [. This file uses the same syntax
+ as /etc/crontab and is processed
+ by cron automatically. The file must also be
treated as a configuration file. (Note that entries in the
/etc/cron.d directory are not handled by
anacron. Thus, you should only use this
directory for jobs which may be skipped if the system is not
- running.)]
+ running.)
+
+
Unlike crontab files described in the IEEE Std
1003.1-2008 (POSIX.1) available from
@@ -7222,6 +7249,30 @@ Reloading description configuration...done.
execute scripts in
/etc/cron.{hourly,daily,weekly,monthly}.
+
+
+ Cron job file names
+
+
+ The file name of a cron job file should normally match the
+ name of the package from which it comes.
+
+
+
+ If a package supplies multiple cron job files files in the
+ same directory, the file names should all start with the name
+ of the package (possibly modified as described below) followed
+ by a hyphen (-) and a suitable suffix.
+
+
+
+ A cron job file name must not include any period or plus
+ characters (. or +) characters as this will
+ cause cron to ignore the file. Underscores (_)
+ should be used instead of . and +
+ characters.
+
+
@@ -7917,11 +7982,23 @@ fname () {
Symbolic links
- In general, symbolic links within a top-level directory
- should be relative, and symbolic links pointing from one
- top-level directory into another should be absolute. (A
- top-level directory is a sub-directory of the root
- directory /.)
+ In general, symbolic links within a top-level directory should
+ be relative, and symbolic links pointing from one top-level
+ directory to or into another should be absolute. (A top-level
+ directory is a sub-directory of the root
+ directory /.) For example, a symbolic link
+ from /usr/lib/foo to /usr/share/bar
+ should be relative (../share/bar), but a symbolic
+ link from /var/run to /run should be
+ absolute.
+ This is necessary to allow top-level directories to be
+ symlinks. If linking /var/run
+ to /run were done with the relative symbolic
+ link ../run, but /var were a
+ symbolic link to /srv/disk1, the symbolic link
+ would point to /srv/run rather than the intended
+ target.
+
@@ -8174,22 +8251,6 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
Sharing configuration files
-
- Packages which specify the same file as a
- conffile must be tagged as conflicting
- with each other. (This is an instance of the general rule
- about not sharing files. Note that neither alternatives
- nor diversions are likely to be appropriate in this case;
- in particular, dpkg does not handle diverted
- conffiles well.)
-
-
-
- The maintainer scripts must not alter a conffile
- of any package, including the one the scripts
- belong to.
-
-
If two or more packages use the same configuration file
and it is reasonable for both to be installed at the same
@@ -8239,6 +8300,34 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
and which manages the shared configuration files. (The
sgml-base package is a good example.)
+
+
+ If the configuration file cannot be shared as described above,
+ the packages must be marked as conflicting with each other.
+ Two packages that specify the same file as
+ a conffile must conflict. This is an instance of the
+ general rule about not sharing files. Neither alternatives
+ nor diversions are likely to be appropriate in this case; in
+ particular, dpkg does not handle diverted
+ conffiles well.
+
+
+
+ When two packages both declare the same conffile, they
+ may see left-over configuration files from each other even
+ though they conflict with each other. If a user removes
+ (without purging) one of the packages and installs the other,
+ the new package will take over the conffile from the
+ old package. If the file was modified by the user, it will be
+ treated the same as any other locally
+ modified conffile during an upgrade.
+
+
+
+ The maintainer scripts must not alter a conffile
+ of any package, including the one the scripts
+ belong to.
+
@@ -9744,9 +9833,8 @@ END-INFO-DIR-ENTRY
In addition, the copyright file must say where the upstream
- sources (if any) were obtained. It should name the original
- authors of the package and the Debian maintainer(s) who were
- involved with its creation.
+ sources (if any) were obtained, and should name the original
+ authors.