]> git.donarmstrong.com Git - debian/debian-policy.git/commitdiff
* The minimal change in version number is so that people can test and
authorManoj Srivastava <srivasta@debian.org>
Thu, 16 Jun 2005 05:09:07 +0000 (05:09 +0000)
committerManoj Srivastava <srivasta@debian.org>
Thu, 16 Jun 2005 05:09:07 +0000 (05:09 +0000)
Author: srivasta
Date: 2001/01/18 07:44:41
   * The minimal change in version number is so that people can test and
root out the bugs in this document before we make everyone change to
this version.
* Document the Enhances relationship
* Removed the restriction that one, and exactly one, person must
maintain a package.                            closes: Bug#51879
* Fixed a typo, and added the nogroup name, in uid/gid section of
policy.                                        closes: Bug#53496
* Fixed a misstatement in policy about not needing to depend on packages
in the base system (not true -- the Essential tag is significant)
closes: Bug#53700
* Clarified update-rc.d stuff                    closes: Bug#55048
* We have already included the material for shlibdep changes, and most
of this is not relevant to policy anyway.      closes: Bug#55730
* makedev--> MAKEDEV                             closes: Bug#57154
* Added restrictions on the files in /usr/share/doc/
closes: Bug#59403
* Changed location of a paragraph about copyright files into the section
that deals with copyright files.               closes: Bug#65765
* init script configuration variables            closes: Bug#66912
* Clarifed language about packages sharing a conffile need to be marked
as conflicting                                 closes: Bug#76028

git-archimport-id: srivasta@debian.org--etch/debian-policy--devel--3.0--patch-69

debian/changelog
policy.sgml
upgrading-checklist.html

index ee56c7e0be243c4ac54e7e0ccd26abbd32fd351c..89bd2d245ded9bf02d946684044e1e731337ea46 100644 (file)
@@ -1,3 +1,31 @@
+debian-policy (3.2.1.2) unstable; urgency=low
+
+  * The minimal change in version number is so that people can test and
+    root out the bugs in this document before we make everyone change to
+    this version.
+  * Document the Enhances relationship
+  * Removed the restriction that one, and exactly one, person must
+    maintain a package.                            closes: Bug#51879
+  * Fixed a typo, and added the nogroup name, in uid/gid section of
+    policy.                                        closes: Bug#53496
+  * Fixed a misstatement in policy about not needing to depend on packages
+    in the base system (not true -- the Essential tag is significant) 
+                                                   closes: Bug#53700
+  * Clarified update-rc.d stuff                    closes: Bug#55048
+
+  * We have already included the material for shlibdep changes, and most
+    of this is not relevant to policy anyway.      closes: Bug#55730
+  * makedev--> MAKEDEV                             closes: Bug#57154
+  * Added restrictions on the files in /usr/share/doc/
+                                                   closes: Bug#59403
+  * Changed location of a paragraph about copyright files into the section
+    that deals with copyright files.               closes: Bug#65765
+  * init script configuration variables            closes: Bug#66912
+  * Clarifed language about packages sharing a conffile need to be marked
+    as conflicting                                 closes: Bug#76028
+
+ -- Manoj Srivastava <srivasta@debian.org>  Thu, 18 Jan 2001 01:43:58 -0600
+
 debian-policy (3.2.1.1) unstable; urgency=low
 
   * Don't compress version.ent in the doc directory (it gets bigger!)
index 8a4dfc56a67ed92028c3baa67ee55afaa0463371..54a1173e46b20ba9e8b538aebd856b6dd179b270 100644 (file)
                <p>
                  must not require 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),
+                 declare a "Depends", "Recommends", or
+                 "Build-Depends" relationship on a non-main package),
                </p>
              </item>
              <item>
        
        <sect1>
          <heading>The maintainer of a package</heading>
-         
-         <p>
-           Every package should have exactly one maintainer at a
-           time. This person is responsible that the license of the
-           package's software complies with the policy of the
-           distribution this package is included in.</p>
-         
+        <p>
+           Every package must have a maintainer (the maintainer may
+           be one person or a group of people reachable from a common
+           email address, such as a mailing list).  The maintainer is
+           responsible for ensuring that the  package is placed in
+           the appropriate distribution
+         </p>
+
          <p>
            The maintainer must be specified in the
            <tt>Maintainer</tt> control field with the correct name
            making  a new changelog entry rather than "rewriting history"
            by editing old changelog entries)</p>
          
-         <p>
-           A copy of the file which will be installed in
-           <tt>/usr/share/doc/<var>package</var>/copyright</tt> should be
-           in <tt>debian/copyright</tt>.</p>
-         
          <p>
            In non-experimental packages you must only use a format for
            <tt>debian/changelog</tt> which is supported by the most
 
       <p>      
        This is done using the <tt>Depends</tt>, <tt>Recommends</tt>,
-       <tt>Suggests</tt>, <tt>Conflicts</tt>, <tt>Provides</tt> and
-       <tt>Replaces</tt> control file fields.
+       <tt>Suggests</tt>, <tt>Enhances</tt>, <tt>Conflicts</tt>,
+       <tt>Provides</tt> and <tt>Replaces</tt> control file fields.
       </p>
 
       <p>
       
       <sect>
         <heading>Binary Dependencies - <tt>Depends</tt>,
-          <tt>Recommends</tt>, <tt>Suggests</tt>, <tt>Pre-Depends</tt>
+          <tt>Recommends</tt>, <tt>Suggests</tt>, <tt>Enhances</tt>,
+          <tt>Pre-Depends</tt>
        </heading>
 
        <p>       
-         These four fields are used to declare a dependency by one
-         package on another.  They appear in the depending package's
-         control file.
+         These five fields are used to declare a dependency
+         relationship by one package on another.  They appear in the
+         depending package's control file.
        </p>
 
        <p>       
                perhaps enhance its usefulness, but that installing
                this one without them is perfectly reasonable.
              </p>
+           </item>
 
+           <tag><tt>Enhances</tt></tag>
+           <item>
+             <p>
+               This field is similar to Suggests but works in the
+               opposite direction. It is used to declare that a
+               package can enhance the functionality of another
+               package.
+             </p>
            </item>
            
            <tag><tt>Pre-Depends</tt></tag>
                each system, should use `<tt>adduser --system</tt>' to
                create the group and/or user.  <prgn>adduser</prgn>
                will check for the existence of the user or group, and
-               if necessary choose an unused id based on the ranged
+               if necessary choose an unused id based on the ranges
                specified in <tt>adduser.conf</tt>.</p></item>
            
            
            
            <tag>65534:</tag>
            <item>
-             <p>User `<tt>nobody</tt>.'</p></item>
+             <p>User `<tt>nobody</tt>.' The corresponding gid refers
+             to the group  `<tt>nogroup</tt>.'</p></item>
            
            
            <tag>65535:</tag>
             There are at least two different, yet functionally
             equivalent, ways of handling these scripts.  For the sake
             of simplicity, this document describes only the symbolic
-            link method. However, it must not be assumed that this
-            method is being used, and any manipulation of the various
-            runlevel behaviours must be performed using
-            <prgn>update-rc.d</prgn> as described below and not by
-            manually installing symlinks.  For information on the
+            link method. However, it must not be assumed by maintainer
+            scripts that this method is being used, and any automated
+            manipulation of the various runlevel behaviours by
+            maintainer scripts must be performed using `update-rc.d'
+            as described below and not by manually installing or
+            removing symlinks.  For  information on the
             implementation details of the other method, implemented in
             the <tt>file-rc</tt> package, please refer to the
             documentation of that package.</p>
            <example>
              test -f <var>program-executed-later-in-script</var> || exit 0
            </example></p>
+
+         <p>
+           Often there are some values in the `<tt>init.d</tt>'
+           scripts that a system administrator will frequently want
+           to change. While the scripts are frequently conffiles,
+           modifying them requires that the administrator merge in
+           their changes each time the package is upgraded and the
+           conffile changes. To ease the burden on the system
+           administrator, such configurable values should not be
+           placed directly in the script.  Instead, they should be
+           placed in a file in `<tt>/etc/default</tt>', which
+           typically will have the same base name as the
+           `<tt>init.d</tt>' script. This extra file can be sourced
+           by the script when the script runs. It must contain only
+           variable settings and comments.
+         </p>
+
+         <p>
+           To ensure that vital configurable values are always
+           available, the `<tt>init.d</tt>' script should set default
+           values for each of the shell variables it uses before
+           sourcing the <tt>/etc/default/</tt> file. Also, since the
+           `<tt>/etc/default/</tt>' file is often a conffile, the
+           `<tt>init.d</tt>' script must behave sensibly without
+           failing if it is deleted.
+         </p>
+
        </sect1>
        
        <sect1>
            nameserver a <tt>HUP</tt> signal (causing it to reload its
            configuration); this way the user can say
            <tt>/etc/init.d/bind reload</tt> to reload the name
-           server.</p>
+           server.  The script has one configurable value, which can
+           be used to pass parameters to the named program at
+           startup.
+         </p>
          
          <p>
            <example>
              # &lt;rob@mars.org&gt;, edited by iwj and cs
              
              test -x /usr/sbin/named || exit 0
+
+              # Source defaults file.
+              PARAMS=''
+              if [ -f /etc/default/bind ]; then
+                . /etc/default/bind
+              fi
+      
              
              case "$1" in
              start)
              echo -n "Starting domain name service: named"
-             start-stop-daemon --start --quiet --exec /usr/sbin/named
+             start-stop-daemon --start --quiet --exec /usr/sbin/named \
+                               -- $PARAMS
              echo "."
              ;;
              stop)
              echo -n "Restarting domain name service: named"
              start-stop-daemon --stop --quiet  \
              --pidfile /var/run/named.pid --exec /usr/sbin/named
-             start-stop-daemon --start --verbose --exec /usr/sbin/named
+             start-stop-daemon --start --verbose --exec /usr/sbin/named \
+                               -- $PARAMS
              echo "."
              ;;
              force-reload|reload)
              esac
              
              exit 0
-           </example></p>
-         
+           </example>
+         </p>
+
+         <p>
+           Complementing the above init script is a file
+           '<tt>/etc/default/bind</tt>', which contains configurable
+           parameters used by the script.
+         </p>
+         <p>
+           <example>
+             # Specified parameters to pass to named. See named(8).
+              # You may uncomment the following line, and edit to taste.
+              #PARAMS="-u nobody"
+           </example>
+         </p>
+
          <p>
            Another example on which to base your <tt>/etc/init.d</tt>
            scripts is in <tt>/etc/init.d/skeleton</tt>.</p>
        <p>
          If a package needs any special device files that are not
          included in the base system, it must call
-         <prgn>makedev</prgn> in the <tt>postinst</tt> script,
+         <prgn>MAKEDEV</prgn> in the <tt>postinst</tt> script,
          after asking the user for permission to do so.</p>
        
        <p>
        <sect1>
          <heading>Sharing configuration files</heading>
          <p>
-           Packages that are not tagged as <em>conflicting</em> with
-           each other must not specify the same file as
-           <tt>conffile</tt>.</p>
+           Packages which specify the same file as
+           `<tt>conffile</tt>' must be tagged as <em>conflicting</em>
+           with each other.
+           </p>
 
          <p>
            The maintainer scripts must not alter the conffile of
          <tt>/usr/bin/sensible-editor</tt> does.</p>
 
        <p>
-         Since the Debian base system already provides an editor and
-         a pager program, it is not required for a package to depend on
+         It is not required for a package to depend on
          `editor' and `pager', nor is it required for a package to
-         provide such virtual packages.</p></sect>
+         provide such virtual packages.
+         <footnote>
+           <p>
+             The Debian base system already provides an editor and
+             a pager program, 
+           </p>
+         </footnote>
+       </p>
+
+      </sect>
       
       
       <sect id="web-appl">
          in the binary package.  However, you don't need to install
          the instructions for building and installing the package, of
          course!</p>
+
+       <p>
+         Files in <tt>/usr/share/doc</tt> should not be referenced by
+         any program, and the system administrator should be able to
+         delete them without causing any programs to break. Any files
+         that are referenced by programs but are also useful as
+         standalone documentation should be installed under
+         <tt>/usr/share/&lt;package$gt;/</tt> and symlinked in
+         <tt>/usr/share/doc/&lt;package$gt;/</tt>. 
+       </p>
+
       </sect>
       
       <sect id="usrdoc">
          compared to the upstream one.  It should name the original
          authors of the package and the Debian maintainer(s) who were
          involved with its creation.</p>
+
+       <p>
+         A copy of the file which will be installed in
+         <tt>/usr/share/doc/<var>package</var>/copyright</tt> should be
+         in <tt>debian/copyright</tt>.</p>
+       
        
        <p>
          /usr/share/doc/&lt;package-name&gt; may be a symbolic link to a
          relationship on the second.  These rules are important
          because copyrights must be extractable by mechanical
          means.</p>
-       
+
        <p>
          Packages distributed under the UCB BSD license, the Artistic
          license, the GNU GPL, and the GNU LGPL should refer to the
index 8784dbe4020f15d7c33a05c3507b73c966e63e0f..91a344bb160f722a2e51826efd216d55284bf756 100644 (file)
@@ -6,10 +6,10 @@
     Author           : Manoj Srivastava ( srivasta@tiamat.datasync.com ) 
     Created On       : Thu Oct 29 20:54:48 1998
     Created On Node  : tiamat.datasync.com
-    Last Modified By : Julian Gilbey
-    Last Modified On : Mon Jun 19 20:06:50 2000
-    Last Machine Used: polya.maths.qmw.ac.uk
-    Update Count     : 11
+    Last Modified By : Manoj Srivastava
+    Last Modified On : Thu Jan 18 01:32:14 2001
+    Last Machine Used: glaurung.green-gryphon.com
+    Update Count     : 14
     Status           : Unknown, Use with caution!
     HISTORY          : 
     Description      : 
@@ -44,10 +44,24 @@ Manual.
 <h2>The checklist</h2>
 
 <pre>
+3.2.1.1                    Jan 01
+
+  Policy Manual:
+     - If your package has a daemon startup script in /etc/init.d/,
+       and that script has parameters a system administrator may need,
+       you need to modify the script to read values from a conffile
+       placed in /etc/default/ directory. This conffile maybe sourced
+       by the init.d script to determine the sonfigurable values (and
+       the conffile may contain only variable settings and comments).
+     - Files in /usr/share/doc may not be referenced by any
+       program. If such files are needed, they must be placed in
+       /usr/share/package-name/, and symbolic links created as required
+       in /usr/share/doc/package-name/
+
 3.2.1.0                    Aug 00
 
   Policy Manual:
-     - A package of priority standard or hihger may provide two
+     - A package of priority standard or higher may provide two
        binaries, one compiled with support for the X Window System,
        and the other without.
      -