<chapt> The checklist
-<sect> Version 3.9.1.0
+<sect id="3.9.3.0"> Version 3.9.3.0
<p>
-Not yet released.
+Unreleased.
</p><p><taglist>
+<tag>2.4</tag>
+ <item>New archive sections <em>education</em>, <em>introspection</em>,
+ and <em>metapackages</em> added.
+ </item>
+<tag>5.6.8</tag>
+ <item>The <tt>Architecture</tt> field in <file>*.dsc</file> files may
+ now contain the value <tt>any all</tt> for source packages building both
+ architecture-independent and architecture-dependent packages.
+ </item>
+<tag>7.1</tag>
+ <item>If a dependency is restricted to particular architectures, the
+ list of architectures must be non-empty.
+ </item>
+<tag>9.1.1</tag>
+ <item><file>/run</file> is allowed as an exception to the FHS and
+ replaces <file>/var/run</file>. <file>/run/lock</file>
+ replaces <file>/var/lock</file>. The FHS requirements for the older
+ directories apply to these directories as well. Backward compatibility
+ links will be maintained and packages need not switch to
+ referencing <file>/run</file> directly yet. Files in <file>/run</file>
+ should be stored in a temporary file system.
+ </item>
+<tag>9.1.4</tag>
+ <item>New section spelling out the requirements for packages that use
+ files in <file>/run</file>, <file>/var/run</file>,
+ or <file>/var/lock</file>. This generalizes information previously only
+ in 9.3.2.
+ </item>
+<tag>9.5</tag>
+ <item>Cron job file names must not contain <tt>.</tt> or <tt>+</tt> or
+ they will be ignored by cron. They should replace those characters
+ with <tt>_</tt>. If a package provides multiple cron job files in the
+ same directory, they should each start with the package name (possibly
+ modified as above), <tt>-</tt>, and then some suitable prefix.
+ </item>
+<tag>9.10</tag>
+ <item>Packages using doc-base do not need to call install-docs anymore.
+ </item>
+<tag>10.7.4</tag>
+ <item>Packages that declare the same <tt>conffile</tt> may see left-over
+ configuration files from each other even if they conflict.
+ </item>
+<tag>11.8</tag>
+ <item>The Policy rules around Motif libraries were just a special case
+ of normal rules for non-free dependencies and were largely obsolete, so
+ they have been removed.
+ </item>
+<tag>12.5</tag>
+ <item><file>debian/copyright</file> is no longer required to list the
+ Debian maintainers involved in the creation of the package (although
+ note that the requirement to list copyright information is unchanged).
+ </item>
+<tag>mime</tag>
+ <item>Retire this separate document and merge its (short) contents into
+ Policy section 9.7. There are no changes to the requirements.
+ </item>
+<tag>perl</tag>
+ <item>Packages may declare an interest in the <var>perl-major-upgrade</var>
+ trigger to be notified of major upgrades of perl.
+ </item>
+<tag>virtual</tag>
+ <item><tt>ttf-japanese-{mincho, gothic}</tt> is renamed to
+ <tt>fonts-japanese-{mincho, gothic}</tt>.
+ </item>
+</taglist></p>
+
+<sect id="3.9.2.0"> Version 3.9.2.0
+<p>
+
+Released April, 2011.
+
+</p><p><taglist>
+<tag>*</tag>
+ <item>Multiple clarifications throughout Policy where "installed" was
+ used and the more precise terms "unpacked" or "configured" were
+ intended.
+ </item>
+<tag>3.3</tag>
+ <item>The maintainer address must accept mail from Debian role accounts
+ and the BTS. At least one human must be listed with their personal
+ email address in <tt>Uploaders</tt> if the maintainer is a shared email
+ address. The duties of a maintainer are also clearer.
+ </item>
+<tag>5</tag>
+ <item>All control fields are now classified as simple, folded, or
+ multiline, which governs whether their values must be a single line or
+ may be continued across multiple lines and whether line breaks are
+ significant.
+ </item>
+<tag>5.1</tag>
+ <item>Parsers are allowed to accept paragraph separation lines
+ containing whitespace, but control files should use completely empty
+ lines. Ordering of paragraphs is significant. Field names must be
+ composed of printable ASCII characters except colon and must not begin
+ with #.
+ </item>
+<tag>5.6.25</tag>
+ <item>The <tt>DM-Upload-Allowed</tt> field is now documented.
+ </item>
+<tag>6.5</tag>
+ <item>The system state maintainer scripts can rely upon during each
+ possible invocation is now documented. In several less-common cases,
+ this is stricter than Policy had previously documented. Packages with
+ complex maintainer scripts should be reviewed in light of this new
+ documentation.
+ </item>
+<tag>7.2</tag>
+ <item>The impact on system state when maintainer scripts that are part
+ of a circular dependency are run is now documented. Circular
+ dependencies are now a should not.
+ </item>
+<tag>7.2</tag>
+ <item>The system state when <prgn>postinst</prgn> and <prgn>prerm</prgn>
+ scripts are run is now documented, and the documentation of the special
+ case of dependency state for <prgn>postrm</prgn> scripts has been
+ improved. <prgn>postrm</prgn> scripts are required to gracefully skip
+ actions if their dependencies are not available.
+ </item>
+<tag>9.1.1</tag>
+ <item>GNU/Hurd systems are allowed <file>/hurd</file>
+ and <file>/servers</file> directories in the root filesystem.
+ </item>
+<tag>9.1.1</tag>
+ <item>Packages installing to architecture-specific subdirectories of
+ <file>/usr/lib</file> must use the value returned by
+ <prgn>dpkg-architecture -qDEB_HOST_MULTIARCH</prgn>, not by
+ <prgn>dpkg-architecture -qDEB_HOST_GNU_TYPE</prgn>; this is a path change
+ on i386 architectures and a no-op for other architectures.
+ </item>
+<tag>virtual</tag>
+ <item><tt>mailx</tt> is now a virtual package provided by packages that
+ install <prgn>/usr/bin/mailx</prgn> and implement at least the
+ POSIX-required interface.
+ </item>
+</taglist></p>
+
+<sect id="3.9.1.0"> Version 3.9.1.0
+<p>
+
+Released July, 2010.
+
+</p><p><taglist>
+<tag>3.2.1</tag>
+ <item>Date-based version components should be given as the four-digit
+ year, two-digit month, and then two-digit day, but may have embedded
+ punctuation.
+ </item>
<tag>3.9</tag>
<item>Maintainer scripts must pass <tt>--package</tt>
to <prgn>dpkg-divert</prgn> when creating or removing diversions and
must not use <tt>--local</tt>.
</item>
+<tag>4.10</tag>
+ <item>Only <prgn>dpkg-gencontrol</prgn> supports variable substitution.
+ <prgn>dpkg-genchanges</prgn> (for <file>*.changes</file>)
+ and <prgn>dpkg-source</prgn> (for <file>*.dsc</file>) do not.
+ </item>
<tag>7.1</tag>
<item>Architecture restrictions and wildcards are also allowed in binary
package relationships provided that the binary package is not
there are file conflicts or one package breaks the other, not just
because two packages provide similar functionality but don't interfere.
</item>
+<tag>8.1</tag>
+ <item>The SONAME of a library should change whenever the ABI of the
+ library changes in a way that isn't backward-compatible. It should not
+ change if the library ABI changes are backward-compatible. Discourage
+ bundling shared libraries together in one package.
+ </item>
+<tag>8.4</tag>
+ <item>Ada Library Information (<file>*.ali</file>) files must be
+ installed read-only.
+ </item>
<tag>8.6.1, 8.6.2, 8.6.5</tag>
<item>Packages should normally not include a <file>shlibs.local</file>
file since we now have complete <file>shlibs</file> coverage.
that depend on that library have removed or emptied
their <file>.la</file> files.
</item>
+<tag>10.2</tag>
+ <item>Libraries no longer need to be built with <tt>-D_REENTRANT</tt>,
+ which was an obsolete LinuxThreads requirement. Instead, say explicitly
+ that libraries should be built with threading support and to be
+ thread-safe if the library supports this.
+ </item>
+<tag>10.4</tag>
+ <item><file>/bin/sh</file> scripts may assume that <prgn>kill</prgn>
+ supports an argument of <tt>-<var>signal</var></tt>,
+ that <prgn>kill</prgn> and <prgn>trap</prgn> support the numeric signals
+ listed in the XSI extension, and that signal 13 (SIGPIPE) can be trapped
+ with <prgn>trap</prgn>.
+ </item>
+<tag>10.8</tag>
+ <item>Use of <file>/etc/logrotate.d/<var>package</var></file> for
+ logrotate rules is now recommended.
+ </item>
+<tag>10.9</tag>
+ <item>Control information files should be owned by <tt>root:root</tt>
+ and either mode 644 or mode 755.
+ </item>
+<tag>11.4, 11.8.3, 11.8.4</tag>
+ <item>Packages providing alternatives for <prgn>editor</prgn>,
+ <prgn>pager</prgn>, <prgn>x-terminal-emulator</prgn>, or
+ <prgn>x-window-manager</prgn> should also provide a slave alternative
+ for the corresponding manual page.
+ </item>
+<tag>11.5</tag>
+ <item>Cgi-bin executable files may be installed in subdirectories
+ of <file>/usr/lib/cgi-bin</file> and web servers should serve out
+ executables in those subdirectories.
+ </item>
<tag>12.5</tag>
<item>The GPL version 1 is now included in common-licenses and should be
referenced from there instead of included in the <file>copyright</file>
</item>
</taglist></p>
-<sect> Version 3.9.0.0
+<sect id="3.9.0.0"> Version 3.9.0.0
<p>
Released June, 2010.
particular field name.
</item>
<tag>5.4, 5.5, 5.6.24</tag>
- <item>Document and recommend the <tt>Checksums-Sha1</tt>
- and <tt>Checksums-Sha256</tt> fields in <file>*.dsc</file>
- and <file>*.changes</file> files.
+ <item>The <tt>Checksums-Sha1</tt> and <tt>Checksums-Sha256</tt> fields
+ in <file>*.dsc</file> and <file>*.changes</file> files are now
+ documented and recommended.
</item>
<tag>5.5, 5.6.16</tag>
<item>The <tt>Format</tt> field of <file>.changes</file> files is now
common-licenses for the time being.
</item>
<tag>debconf</tag>
- <item>Add <tt>SETTITLE</tt> (which has been supported for some time).
- Like <tt>TITLE</tt> but takes a template instead of a string to allow
- translation.
+ <item><tt>SETTITLE</tt> is now documented (it has been supported for
+ some time). <tt>SETTITLE</tt> is like <tt>TITLE</tt> but takes a
+ template instead of a string to allow translation.
</item>
<tag>perl</tag>
<item><package>perl-base</package> now
</item>
</taglist></p>
-<sect> Version 3.8.4.0
+<sect id="3.8.4.0"> Version 3.8.4.0
<p>
Release Jan 2010.
<file>/usr/lib/triplet</file> directories.
</item>
<tag>10.6</tag>
- <item>Explicitly state that packages may not contain named pipes and
- should instead create them in postinst and remove them in prerm or postrm.
+ <item>Packages may not contain named pipes and should instead create
+ them in postinst and remove them in prerm or postrm.
</item>
<tag>9.1.1</tag>
<item><file>/sys</file> and <file>/selinux</file> directories are explicitly
</item>
</taglist></p>
-<sect> Version 3.8.3.0
+<sect id="3.8.3.0"> Version 3.8.3.0
<p>
Released Aug 2009.
</p><p><taglist>
<tag>4.9</tag>
- <item>Add DEB_*_ARCH_CPU and DEB_*_ARCH_OS variables and
- recommend them over GNU-style variables for that information.
+ <item>DEB_*_ARCH_CPU and DEB_*_ARCH_OS variables are now documented and
+ recommended over GNU-style variables for that information.
</item>
<tag>5.6.8</tag>
<item>Source package Architecture fields may contain <em/all/ in
<item>The Binary field may span multiple lines.
</item>
<tag>10.2</tag>
- <item>Remove the permission for shared library packages to
- install libraries in a non-standard location and modify <file/ld.so.conf/.
- Packages should either be installed in a standard library directory
- or packages using them should be built with RPATH.
+ <item>Shared library packages are no longer allowed to install libraries
+ in a non-standard location and modify <file/ld.so.conf/. Packages
+ should either be installed in a standard library directory or packages
+ using them should be built with RPATH.
</item>
<tag>11.8.7</tag>
- <item>Clarify installation directories for X programs and
- remove the requirement to pre-depend on x11-common before installing
- into <file>/usr/include/X11</file> and <file>/usr/lib/X11</file>.
+ <item>Installation directories for X programs have been clarified.
+ Packages are no longer required to pre-depend on x11-common before
+ installing into <file>/usr/include/X11</file>
+ and <file>/usr/lib/X11</file>.
</item>
<tag>12.1</tag>
- <item>Remove the requirement that all characters in a manual
- page be representable in the legacy encoding for that language.
+ <item>Manual pages are no longer required to contain only characters
+ representable in the legacy encoding for that language.
</item>
<tag>12.1</tag>
<item>Localized man pages should either be kept up-to-date with
</item>
</taglist></p>
-<sect> Version 3.8.2.0
+<sect id="3.8.2.0"> Version 3.8.2.0
<p>
Released Jun 2009.
</item>
</taglist></p>
-<sect> Version 3.8.1.0
+<sect id="3.8.1.0"> Version 3.8.1.0
<p>
Released Mar 2009.
<item>Changelog files must be encoded in UTF-8.
</item>
<tag>4.4</tag>
- <item>Tighten some format requirements for changelog files from a should
- to a must.
+ <item>Some format requirements for changelog files are now "must"
+ instead of "should."
</item>
<tag>4.4.1</tag>
- <item>Remove alternative changelog formats. Debian only supports one
- changelog format for the Debian Archive.
+ <item>Alternative changelog formats have been removed. Debian only
+ supports one changelog format for the Debian Archive.
</item>
<tag>4.9.1</tag>
<item>New nocheck option for DEB_BUILD_OPTIONS indicating any build-time
<item>All control files must be encoded in UTF-8.
</item>
<tag>5.2</tag>
- <item>debian/control allows comment lines starting with # with no
- preceding whitespace.
+ <item><file>debian/control</file> allows comment lines starting with #
+ with no preceding whitespace.
</item>
<tag>9.3</tag>
<item>Init scripts ending in .sh are not handled specially. They are not
</item>
</taglist></p>
-<sect> Version 3.8.0.0
+<sect id="3.8.0.0"> Version 3.8.0.0
<p>
Released Jun 2008.
<item>Underscore (_) is allowed in debconf template names.
</taglist></p>
-<sect> Version 3.7.3.0
+<sect id="3.7.3.0"> Version 3.7.3.0
<p>
Released Dec 2007.
be referenced rather than quoted in debian/copyright.
</taglist></p>
-<sect> Version 3.7.2.2
+<sect id="3.7.2.2"> Version 3.7.2.2
<p>
Released Oct 2006.
should to a must)</item>
</taglist></p>
-<sect> Version 3.7.2.0
+<sect id="3.7.2.0"> Version 3.7.2.0
<p>
Released Apr 2006.
<tag>11.5</tag> <item>Revert the cgi-lib change. </item>
</taglist></p>
-<sect> Version 3.7.1.0
+<sect id="3.7.1.0"> Version 3.7.1.0
<p>
Released Apr 2006.
they do so, they must pre-depend on <tt>x11-common (>= 1:7.0.0)</tt>
</taglist></p>
-<sect> Version 3.7.0.0
+<sect id="3.7.0.0"> Version 3.7.0.0
<p>
Released Apr 2006.
is gone.
</taglist></p>
-<sect> Version 3.6.2.0
+<sect id="3.6.2.0"> Version 3.6.2.0
<p>
Released 2005
</item>
</taglist></p>
-<sect> Version 3.6.1.0
+<sect id="3.6.1.0"> Version 3.6.1.0
<p>
Released Aug 2003.
user prompts are now deprecated.
</taglist></p>
-<sect> Version 3.6.0
+<sect id="3.6.0.0"> Version 3.6.0
<p>
Released Jul 2003.
target.
</taglist></p>
-<sect> Version 3.5.10
+<sect id="3.5.10.0"> Version 3.5.10
<p>
Released May 2003.
Project may add 40 points for ranking in the alternatives
</taglist></p>
-<sect> Version 3.5.9.0
+<sect id="3.5.9.0"> Version 3.5.9.0
<p>
Released Mar 2003.
(rather than <file>/usr/share/doc/package/examples</file>).
</taglist></p>
-<sect> Version 3.5.8.0
+<sect id="3.5.8.0"> Version 3.5.8.0
<p>
Released Nov 2002.
are still a bug.
</taglist></p>
-<sect> Version 3.5.7.0
+<sect id="3.5.7.0"> Version 3.5.7.0
<p>
Released Aug 2002.
rules, please see below
</em></p>
-<sect> Version 3.5.6.0
+<sect id="3.5.6.0"> Version 3.5.6.0
<p>
Released Jul 2001.
there is a new Build-Depend-Indep semantic.
</taglist></p>
-<sect> Version 3.5.5.0
+<sect id="3.5.5.0"> Version 3.5.5.0
<p>
Released May 2001.
</taglist></item>
</taglist></p>
-<sect> Version 3.5.4.0
+<sect id="3.5.4.0"> Version 3.5.4.0
<p> Released Apr 2001.
</p><p><taglist>
</item>
</taglist></p>
-<sect> Version 3.5.3.0
+<sect id="3.5.3.0"> Version 3.5.3.0
<p> Released Apr 2001
</p><p><taglist>
</item>
</taglist></p>
-<sect> Version 3.5.2.0
+<sect id="3.5.2.0"> Version 3.5.2.0
<p> Released Feb 2001.
</item>
</taglist></p>
-<sect> Version 3.5.1.0
+<sect id="3.5.1.0"> Version 3.5.1.0
<p> Released Feb 2001.
</item>
</taglist></p>
-<sect> Version 3.5.0.0
+<sect id="3.5.0.0"> Version 3.5.0.0
<p> Released Jan 2001.
</item>
</taglist></p>
-<sect> Version 3.2.1.1
+<sect id="3.2.1.1"> Version 3.2.1.1
<p> Released Jan 2001.
</item>
</taglist></p>
-<sect> Version 3.2.1.0
+<sect id="3.2.1.0"> Version 3.2.1.0
<p> Released Aug 00.
</item>
</taglist></p>
-<sect> Version 3.2.0.0
+<sect id="3.2.0.0"> Version 3.2.0.0
<p> Released Aug 00.
</item>
</taglist></p>
-<sect> Version 3.1.1.0
+<sect id="3.1.1.0"> Version 3.1.1.0
<p> Released Nov 1999.
</item>
</taglist></p>
-<sect> Version 3.1.0.0
+<sect id="3.1.0.0"> Version 3.1.0.0
<p> Released Oct 1999.
</item>
</taglist></p>
-<sect> Version 3.0.1.0
+<sect id="3.0.1.0"> Version 3.0.1.0
<p> Released Jul 1999.
</item>
</taglist></p>
-<sect> Version 3.0.0.0
+<sect id="3.0.0.0"> Version 3.0.0.0
<p> Released Jun 1999.
Please note that section numbers below this point may not be up to date
</em></p>
-<sect> Version 2.5.0.0
+<sect id="2.5.0.0"> Version 2.5.0.0
<p> Released Oct 1998.
</item>
</list></p>
-<sect> Version 2.4.1.0
+<sect id="2.4.1.0"> Version 2.4.1.0
<p> Released Apr 1998.
</p>
</item>
</list></p>
-<sect> Version 2.4.0.0
+<sect id="2.4.0.0"> Version 2.4.0.0
<p> Released Jan 1998
</item>
</taglist></p>
-<sect> Version 2.3.0.1, 2.3.0.0
+<sect id="2.3.0.0"> Version 2.3.0.1, 2.3.0.0
<p> Released Sep 1997.
<item>MUAs and MTAs have to use liblockfile</item>
</list></p>
-<sect> Version 2.2.0.0
+<sect id="2.2.0.0"> Version 2.2.0.0
<p> Released July 1997.
<item>app-defaults files may not be conffiles</item>
</list></p>
-<sect> Version 2.1.3.2, 2.1.3.1, 2.1.3.0
+<sect id="2.1.3.0"> Version 2.1.3.2, 2.1.3.1, 2.1.3.0
<p> Released Mar 1997.
</item>
</list></p>
-<sect> Version 2.1.2.2, 2.1.2.1, 2.1.2.0
+<sect id="2.1.2.0"> Version 2.1.2.2, 2.1.2.1, 2.1.2.0
<p> Released Nov 1996.
<item>Some changes WRT shared libraries
</list></p>
-<sect> Version 2.1.1.0
+<sect id="2.1.1.0"> Version 2.1.1.0
<p> Released Sep 1996.
<item>Shared libraries must be installed stripped </item>
</list></p>
-<sect> Version 2.1.0.0
+<sect id="2.1.0.0"> Version 2.1.0.0
<p> Released Aug 1996.