1 <?xml version='1.0' encoding='utf-8'?>
2 <!-- -*- DocBook -*- -->
3 <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
4 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
7 <appendix id="upgrading-checklist">
8 <title>Upgrading checklist</title>
11 <title>About the checklist</title>
14 The checklist below has been created to simplify the upgrading
15 process of old packages. This list is not official or normative.
16 It only provides an indication of what has changed and whether you
17 are likely to need to make changes to your package in light of this.
18 If you have doubts about a certain topic, if you need more details,
19 or if you think some other package does not comply with policy,
20 please refer to the Policy Manual itself.
23 All of the changes from version 3.0.0 onwards indicate which section
24 of the Policy Manual discusses the issue. The section numbering
25 should still be accurate for changes back to the 2.5.0 release.
26 Before that point, the sections listed here probably no longer
27 correspond to sections in the modern Policy Manual.
30 Here is how the check list works: Check which policy version your
31 package was checked against last (indicated in the
32 <literal>Standards-Version</literal> field of the source package).
33 Then move upwards until the top and check which of the items on the
34 list might concern your package. Note which sections of policy
35 discuss this, and then check out the Policy Manual for details.
36 Once you've made all necessary changes to match the current rules,
37 update the value of <literal>Standards-Version</literal> to the
38 current Policy Manual version.
41 The sections in this checklist match the values for the
42 <literal>Standards-Version</literal> control field in omitting the
43 minor patch version, except in the two anomalous historical cases
44 where normative requirements were changed in a minor patch release.
48 <section id="s-4.0.2">
49 <title>Version 4.0.2</title>
60 If upstream provides OpenPGP signatures, including the
61 upstream signing key as
62 <filename>debian/upstream/signing-key.asc</filename> in the
63 source package and using the
64 <literal>pgpsignurlmangle</literal> option in
65 <filename>debian/watch</filename> configuration to indicate
66 how to find the upstream signature for new releases is
74 <section id="s-4.0.1">
75 <title>Version 4.0.1</title>
78 Released August, 2017.
86 Priorities are now used only for controlling which packages
87 are part of a minimal or standard Debian installation and
88 should be selected based on functionality provided directly to
89 users (so nearly all shared libraries should have a priority
90 of <literal>optional</literal>). Packages may now depend on
91 packages with a lower priority.
94 The <literal>extra</literal> priority has been deprecated and
95 should be treated as equivalent to
96 <literal>optional</literal>. All <literal>extra</literal>
97 priorities should be changed to <literal>optional</literal>.
98 Packages with a priority of <literal>optional</literal> may
99 conflict with each other (but packages that both have a
100 priority of <literal>standard</literal> or higher still may
109 New section documenting the <literal>Testsuite</literal> field in
110 Debian source control files.
118 Shared libraries must now invoke
119 <command>ldconfig</command> by means of triggers, instead
128 Packages are recommended to use debhelper tools instead of
129 invoking <command>update-rc.d</command> and
130 <command>invoke-rc.d</command> directly.
138 Policy's description of how the local system administrator
139 may modify the runlevels at which a daemon is started and
140 stopped, and how init scripts may depend on other init
141 scripts, have been removed. These are now handled by LSB
150 Policy's specification of the console messages that should
151 be emitted by <literal>init.d</literal> scripts has been
152 removed. This is now defined by LSB, for sysvinit, and is
153 not expected to be followed by other init systems.
161 Packages installing a Free Desktop entry must not also
162 install a Debian menu system entry.
170 The prohibition against depending on environment variables for
171 reasonable defaults is only for programs on the system PATH and
172 only for custom environment variable settings (not, say, a
180 <section id="s-4.0.0">
181 <title>Version 4.0.0</title>
192 <command>config.sub</command> and
193 <command>config.guess</command> should be updated at build
194 time or replaced with the versions from <systemitem
195 role="package">autotools-dev</systemitem>.
203 New <literal>TARGET</literal> set of
204 <command>dpkg-architecture</command> variables and new
205 <literal>DEB_*_ARCH_BITS</literal> and
206 <literal>DEB_*_ARCH_ENDIAN</literal> variables.
214 New <literal>DEB_BUILD_OPTIONS</literal> tag,
215 <literal>nodoc</literal>, which says to suppress documentation
216 generation (but continue to build all binary packages, even
217 documentation packages, just let them be mostly empty).
225 Automatically-generated debug packages do not need to have a
226 corresponding paragraph in
227 <filename>debian/control</filename>. (This is existing
228 practice; this Policy update is just clearer about it.)
236 Colons are not permitted in upstream version numbers.
244 New <literal>Build-Depends-Arch</literal> and
245 <literal>Build-Conflicts-Arch</literal> fields are now
254 The recommended package name for shared library development
255 files is now <replaceable>libraryname</replaceable>-dev or
256 <replaceable>libraryname</replaceable><replaceable>apiversion</replaceable>-dev,
258 <replaceable>libraryname</replaceable><replaceable>soversion</replaceable>-dev.
266 The stable release of Debian supports
267 <filename>/run</filename>, so packages may now assume that it
268 exists and do not need any special dependency on a version of
277 New optional <literal>try-restart</literal> standard init
278 script argument, which (if supported) should restart the
279 service if it is already running and otherwise just report
288 Support for the <literal>status</literal> init script argument
297 Packages must not call <filename>/etc/init.d</filename>
298 scripts directly even as a fallback, and instead must always
299 use <command>invoke-rc.d</command> (which is essential and
300 shouldn't require any conditional).
308 Instructions for <command>upstart</command> integration
309 removed since <command>upstart</command> is no longer
310 maintained in Debian.
318 Packages may not install files in both
319 <filename>/<replaceable>path</replaceable></filename> and
320 <filename>/usr/<replaceable>path</replaceable></filename>, and
321 must manage any backward-compatibility symlinks so that they
323 <filename>/<replaceable>path</replaceable></filename> and
324 <filename>/usr/<replaceable>path</replaceable></filename> are
333 Packages should assume device files in
334 <filename>/dev</filename> are dynamically managed and don't
335 have to be created by the package. Packages other than those
336 whose purpose is to manage <filename>/dev</filename> must not
337 create or remove files there when a dynamic management
338 facility is in use. Named pipes and device files outside of
339 <filename>/dev</filename> should normally be created on demand
340 via init scripts, systemd units, or similar mechanisms, but
341 may be created and removed in maintainer scripts if they must
342 be created during package installation.
350 Checking with the base-passwd maintainer is no longer required
351 (or desirable) when creating a new dynamic user or group in a
360 Dependencies on *-doc packages should be at most Recommends
361 (Suggests if they only include documentation in supplemental
370 The Mozilla Public License 1.1 and 2.0 (MPL-1.1 and MPL-2.0)
372 <filename>/usr/share/common-licenses</filename> and do not
373 need to be copied verbatim in the package
374 <filename>copyright</filename> file.
379 <term>copyright-format</term>
382 The <literal>https</literal> form of the copyright-format URL
383 is now allowed and preferred in the <literal>Format</literal>
392 The Perl search path now includes multiarch directories. The
393 vendor directory for architecture-specific modules is now
394 versioned to support multiarch.
402 New <literal>adventure</literal> virtual package for
403 implementations of the classic Colossal Cave Adventure game.
411 New <literal>httpd-wsgi3</literal> virtual package for Python
412 3 WSGI-capable HTTP servers. The existing
413 <literal>httpd-wsgi</literal> virtual package is for Python 2
414 WSGI-capable HTTP servers.
422 New <literal>virtual-mysql-client</literal>,
423 <literal>virtual-mysql-client-core</literal>,
424 <literal>virtual-mysql-server</literal>,
425 <literal>virtual-mysql-server-core</literal>, and
426 <literal>virtual-mysql-testsuite</literal> virtual packages
427 for MySQL-compatible software.
434 <section id="s-3.9.8.0">
435 <title>Version 3.9.8</title>
438 Released April, 2016.
446 The menu system is deprecated in favor of the FreeDesktop menu
447 standard. New requirements set for FreeDesktop menu entries.
455 New instructions for registering media type handlers with the
456 FreeDesktop system, which automatically synchronizes with
457 mailcap and therefore replaces mailcap registration for
458 packages using desktop entries.
465 <section id="s-3.9.7.0">
466 <title>Version 3.9.7</title>
469 Released February, 2016.
477 Symbolic links must not traverse above the root directory.
485 32bit UIDs in the range 65536-4294967293 are reserved for
486 dynamically allocated user accounts.
494 Empty field values in control files are only permitted in the
495 <filename>debian/control</filename> file of a source package.
503 <filename>debian/rules</filename>: required targets must not
504 attempt network access.
512 recommend to ship additional documentation for package
513 <command>pkg</command> in a separate package
514 <command>pkg-doc</command> and install it into
515 <filename>/usr/share/doc/pkg</filename>.
522 <section id="s-3.9.6.0">
523 <title>Version 3.9.6</title>
526 Released September, 2014.
534 The FHS is relaxed to allow a subdirectory of
535 <filename>/usr/lib</filename> to hold a mixture of
536 architecture-independent and architecture-dependent files,
537 though directories entirely composed of
538 architecture-independent files should be located in
539 <filename>/usr/share</filename>.
547 The FHS requirement for <filename>/usr/local/lib64</filename>
548 to exist if <filename>/lib64</filename> or
549 <filename>/usr/lib64</filename> exists is removed.
557 An FHS exception has been granted for multiarch include files,
558 permitting header files to instead be installed to
559 <filename>/usr/include/triplet</filename>.
567 Binaries must not be statically linked with the GNU C library,
568 see policy for exceptions.
576 It is clarified that signature appearing in debian/changelog
577 should be the details of the person who prepared this release
586 The default web document root is now
587 <filename>/var/www/html</filename>
595 <literal>java1-runtime</literal> and
596 <literal>java2-runtime</literal> are removed,
597 <literal>javaN-runtime</literal> and
598 <literal>javaN-runtime-headless</literal> are added for all N
607 Added <literal>httpd-wsgi</literal> for WSGI capable HTTP
616 Perl packages should use the <literal>%Config</literal> hash
617 to locate module paths instead of hardcoding paths in
618 <literal>@INC</literal>.
626 Perl binary modules and any modules installed into
627 <literal>$Config{vendorarch}</literal> must depend on the
628 relevant <systemitem role="package">perlapi-*</systemitem>
636 <section id="s-3.9.5.0">
637 <title>Version 3.9.5</title>
640 Released October, 2013.
648 Control data fields must not start with the hyphen character
649 (<literal>-</literal>), to avoid potential confusions when
650 parsing clearsigned control data files that were not properly
656 <term>5.4, 5.6.24</term>
659 <literal>Checksums-Sha1</literal> and
660 <literal>Checksums-Sha256</literal> are now mandatory in
661 <filename>.dsc</filename> files.
666 <term>5.6.25, 5.8.1</term>
669 The <literal>DM-Upload-Allowed</literal> field is obsolete.
670 Permissions are now granted via
671 <emphasis>dak-commands</emphasis> files.
679 New section documenting the <literal>Package-List</literal>
680 field in Debian source control files.
688 New section documenting the <literal>Package-Type</literal>
689 field in source package control files.
697 New section documenting the <literal>Dgit</literal> field in
698 Debian source control files.
706 The exception to the FHS for the <filename>/selinux</filename>
715 Packages should remove all obsolete configuration files
716 without local changes during upgrades. The
717 <command>dpkg-maintscript-helper</command> tool, available
718 from the <systemitem role="package">dpkg</systemitem> package
719 since <emphasis>Wheezy</emphasis>, can help with this.
727 The name of the files and directories installed by binary
728 packages must be encoded in UTF-8 and should be restricted to
729 ASCII when possible. In the system PATH, they must be
738 Stop recommending to serve HTML documents from
739 <filename>/usr/share/doc/<replaceable>package</replaceable></filename>.
747 Packages distributing Info documents should use <systemitem
748 role="package">install-info</systemitem>'s trigger, and do not
749 need anymore to depend on <literal>dpkg (>= 1.15.4) |
750 install-info</literal>.
758 The <literal>escape</literal> capability is now documented.
766 <literal>mp3-decoder</literal> and
767 <literal>mp3-encoder</literal> are removed.
774 <section id="s-3.9.4.0">
775 <title>Version 3.9.4</title>
778 Released August, 2012.
786 New <emphasis>tasks</emphasis> archive section.
794 <literal>build-arch</literal> and
795 <literal>build-indep</literal> are now mandatory targets in
796 <filename>debian/rules</filename>.
804 New section documenting the <literal>Vcs-*</literal> fields,
805 which are already in widespread use. Note the mechanism for
806 specifying the Git branch used for packaging in the Vcs-Git
815 The deprecated relations < and > now must not be used.
823 New <literal>Built-Using</literal> field, which must be used
824 to document the source packages for any binaries that are
825 incorporated into this package at build time. This is used to
826 ensure that the archive meets license requirements for
827 providing source for all binaries.
835 Policy for dependencies between shared libraries and other
836 packages has been largely rewritten to document the
837 <literal>symbols</literal> system and more clearly document
838 handling of shared library ABI changes.
839 <filename>symbols</filename> files are now recommended over
840 <filename>shlibs</filename> files in most situations. All
841 maintainers of shared library packages should review the
842 entirety of this section.
850 Packages must not assume the <filename>/run</filename>
851 directory exists or is usable without a dependency on
852 <literal>initscripts (>= 2.88dsf-13.3)</literal> until the
853 stable release of Debian supports <filename>/run</filename>.
861 Packages including MIME configuration can now rely on triggers
862 and do not need to call update-mime.
870 New section documenting general requirements for alternate
871 init systems and specific requirements for integrating with
880 All copyright files must be encoded in UTF-8.
887 <section id="s-3.9.3.0">
888 <title>Version 3.9.3</title>
891 Released February, 2012.
899 New archive sections <emphasis>education</emphasis>,
900 <emphasis>introspection</emphasis>, and
901 <emphasis>metapackages</emphasis> added.
909 The <literal>Architecture</literal> field in
910 <filename>*.dsc</filename> files may now contain the value
911 <literal>any all</literal> for source packages building both
912 architecture-independent and architecture-dependent packages.
920 If a dependency is restricted to particular architectures, the
921 list of architectures must be non-empty.
929 <filename>/run</filename> is allowed as an exception to the
930 FHS and replaces <filename>/var/run</filename>.
931 <filename>/run/lock</filename> replaces
932 <filename>/var/lock</filename>. The FHS requirements for the
933 older directories apply to these directories as well.
934 Backward compatibility links will be maintained and packages
935 need not switch to referencing <filename>/run</filename>
936 directly yet. Files in <filename>/run</filename> should be
937 stored in a temporary file system.
945 New section spelling out the requirements for packages that
946 use files in <filename>/run</filename>,
947 <filename>/var/run</filename>, or
948 <filename>/var/lock</filename>. This generalizes information
949 previously only in 9.3.2.
957 Cron job file names must not contain <literal>.</literal> or
958 <literal>+</literal> or they will be ignored by cron. They
959 should replace those characters with <literal>_</literal>. If
960 a package provides multiple cron job files in the same
961 directory, they should each start with the package name
962 (possibly modified as above), <literal>-</literal>, and then
963 some suitable suffix.
971 Packages using doc-base do not need to call install-docs anymore.
979 Packages that declare the same <literal>conffile</literal> may
980 see left-over configuration files from each other even if they
989 The Policy rules around Motif libraries were just a special
990 case of normal rules for non-free dependencies and were
991 largely obsolete, so they have been removed.
999 <filename>debian/copyright</filename> is no longer required to
1000 list the Debian maintainers involved in the creation of the
1001 package (although note that the requirement to list copyright
1002 information is unchanged).
1007 <term>copyright-format</term>
1010 Version 1.0 of the "Machine-readable
1011 <filename>debian/copyright</filename> file" specification is
1020 This separate document has been retired and and its (short)
1021 contents merged into Policy section 9.7. There are no changes
1022 to the requirements.
1030 Packages may declare an interest in the
1031 <replaceable>perl-major-upgrade</replaceable> trigger to be
1032 notified of major upgrades of perl.
1037 <term>virtual</term>
1040 <literal>ttf-japanese-{mincho, gothic}</literal> is renamed to
1041 <literal>fonts-japanese-{mincho, gothic}</literal>.
1048 <section id="s-3.9.2.0">
1049 <title>Version 3.9.2</title>
1052 Released April, 2011.
1060 Multiple clarifications throughout Policy where "installed"
1061 was used and the more precise terms "unpacked" or "configured"
1070 The maintainer address must accept mail from Debian role
1071 accounts and the BTS. At least one human must be listed with
1072 their personal email address in <literal>Uploaders</literal>
1073 if the maintainer is a shared email address. The duties of a
1074 maintainer are also clearer.
1082 All control fields are now classified as simple, folded, or
1083 multiline, which governs whether their values must be a single
1084 line or may be continued across multiple lines and whether
1085 line breaks are significant.
1093 Parsers are allowed to accept paragraph separation lines
1094 containing whitespace, but control files should use completely
1095 empty lines. Ordering of paragraphs is significant. Field
1096 names must be composed of printable ASCII characters except
1097 colon and must not begin with #.
1105 The <literal>DM-Upload-Allowed</literal> field is now
1114 The system state maintainer scripts can rely upon during each
1115 possible invocation is now documented. In several less-common
1116 cases, this is stricter than Policy had previously documented.
1117 Packages with complex maintainer scripts should be reviewed in
1118 light of this new documentation.
1126 The impact on system state when maintainer scripts that are
1127 part of a circular dependency are run is now documented.
1128 Circular dependencies are now a should not.
1136 The system state when <command>postinst</command> and
1137 <command>prerm</command> scripts are run is now documented,
1138 and the documentation of the special case of dependency state
1139 for <command>postrm</command> scripts has been improved.
1140 <command>postrm</command> scripts are required to gracefully
1141 skip actions if their dependencies are not available.
1149 GNU/Hurd systems are allowed <filename>/hurd</filename> and
1150 <filename>/servers</filename> directories in the root
1159 Packages installing to architecture-specific subdirectories of
1160 <filename>/usr/lib</filename> must use the value returned by
1161 <command>dpkg-architecture -qDEB_HOST_MULTIARCH</command>, not
1162 by <command>dpkg-architecture -qDEB_HOST_GNU_TYPE</command>;
1163 this is a path change on i386 architectures and a no-op for
1164 other architectures.
1169 <term>virtual</term>
1172 <literal>mailx</literal> is now a virtual package provided by
1173 packages that install <command>/usr/bin/mailx</command> and
1174 implement at least the POSIX-required interface.
1181 <section id="s-3.9.1.0">
1182 <title>Version 3.9.1</title>
1185 Released July, 2010.
1193 Date-based version components should be given as the
1194 four-digit year, two-digit month, and then two-digit day, but
1195 may have embedded punctuation.
1203 Maintainer scripts must pass <literal>--package</literal> to
1204 <command>dpkg-divert</command> when creating or removing
1205 diversions and must not use <literal>--local</literal>.
1213 Only <command>dpkg-gencontrol</command> supports variable
1214 substitution. <command>dpkg-genchanges</command> (for
1215 <filename>*.changes</filename>) and
1216 <command>dpkg-source</command> (for
1217 <filename>*.dsc</filename>) do not.
1225 Architecture restrictions and wildcards are also allowed in
1226 binary package relationships provided that the binary package
1227 is not architecture-independent.
1235 <literal>Conflicts</literal> and <literal>Breaks</literal>
1236 should only be used when there are file conflicts or one
1237 package breaks the other, not just because two packages
1238 provide similar functionality but don't interfere.
1246 The SONAME of a library should change whenever the ABI of the
1247 library changes in a way that isn't backward-compatible. It
1248 should not change if the library ABI changes are
1249 backward-compatible. Discourage bundling shared libraries
1250 together in one package.
1258 Ada Library Information (<filename>*.ali</filename>) files
1259 must be installed read-only.
1264 <term>8.6.1, 8.6.2, 8.6.5</term>
1267 Packages should normally not include a
1268 <filename>shlibs.local</filename> file since we now have
1269 complete <filename>shlibs</filename> coverage.
1277 The SONAME of a library may instead be of the form
1278 <literal><replaceable>name</replaceable>-<replaceable>major-version</replaceable>.so</literal>.
1286 Libtool <filename>.la</filename> files should not be installed
1287 for public libraries. If they're required (for
1288 <literal>libltdl</literal>, for instance), the
1289 <literal>dependency_libs</literal> setting should be emptied.
1290 Library packages historically including
1291 <filename>.la</filename> files must continue to include them
1292 (with <literal>dependency_libs</literal> emptied) until all
1293 libraries that depend on that library have removed or emptied
1294 their <filename>.la</filename> files.
1302 Libraries no longer need to be built with
1303 <literal>-D_REENTRANT</literal>, which was an obsolete
1304 LinuxThreads requirement. Instead, say explicitly that
1305 libraries should be built with threading support and to be
1306 thread-safe if the library supports this.
1314 <filename>/bin/sh</filename> scripts may assume that
1315 <command>kill</command> supports an argument of
1316 <literal>-<replaceable>signal</replaceable></literal>, that
1317 <command>kill</command> and <command>trap</command> support
1318 the numeric signals listed in the XSI extension, and that
1319 signal 13 (SIGPIPE) can be trapped with
1320 <command>trap</command>.
1329 <filename>/etc/logrotate.d/<replaceable>package</replaceable></filename>
1330 for logrotate rules is now recommended.
1338 Control information files should be owned by
1339 <literal>root:root</literal> and either mode 644 or mode 755.
1344 <term>11.4, 11.8.3, 11.8.4</term>
1347 Packages providing alternatives for <command>editor</command>,
1348 <command>pager</command>,
1349 <command>x-terminal-emulator</command>, or
1350 <command>x-window-manager</command> should also provide a
1351 slave alternative for the corresponding manual page.
1359 Cgi-bin executable files may be installed in subdirectories of
1360 <filename>/usr/lib/cgi-bin</filename> and web servers should
1361 serve out executables in those subdirectories.
1369 The GPL version 1 is now included in common-licenses and
1370 should be referenced from there instead of included in the
1371 <filename>copyright</filename> file.
1378 <section id="s-3.9.0.0">
1379 <title>Version 3.9.0</title>
1382 Released June, 2010.
1387 <term>4.4, 5.6.15</term>
1390 The required format for the date in a changelog entry and in
1391 the Date control field is now precisely specified.
1399 A control paragraph must not contain more than one instance of
1400 a particular field name.
1405 <term>5.4, 5.5, 5.6.24</term>
1408 The <literal>Checksums-Sha1</literal> and
1409 <literal>Checksums-Sha256</literal> fields in
1410 <filename>*.dsc</filename> and <filename>*.changes</filename>
1411 files are now documented and recommended.
1416 <term>5.5, 5.6.16</term>
1419 The <literal>Format</literal> field of
1420 <filename>.changes</filename> files is now 1.8. The
1421 <literal>Format</literal> field syntax for source package
1422 <filename>.dsc</filename> files allows a subtype in
1423 parentheses, and it is used for a different purpose than the
1424 <literal>Format</literal> field for
1425 <filename>.changes</filename> files.
1433 The syntax of the <literal>Maintainer</literal> field is now
1434 must rather than should.
1442 The comma separating entries in <literal>Uploaders</literal>
1443 is now must rather than should.
1448 <term>5.6.8, 7.1, 11.1.1</term>
1451 Architecture wildcards may be used in addition to specific
1452 architectures in <filename>debian/control</filename> and
1453 <filename>*.dsc</filename> Architecture fields, and in
1454 architecture restrictions in build relationships.
1462 Maintainer scripts are no longer guaranteed to run with a
1463 controlling terminal and must be able to fall back to
1464 noninteractive behavior (debconf handles this). Maintainer
1465 scripts may abort if there is no controlling terminal and no
1466 reasonable default for a high-priority question, but should
1467 avoid this if possible.
1472 <term>7.3, 7.6.1</term>
1475 <literal>Breaks</literal> should be used with
1476 <literal>Replaces</literal> for moving files between packages.
1484 <literal>Breaks</literal> should normally be used instead of
1485 <literal>Conflicts</literal> for transient issues and moving
1486 files between packages. New documentation of when each should
1495 Use <literal>Conflicts</literal> with
1496 <literal>Provides</literal> if only one provider of a virtual
1497 facility can be installed at a time.
1505 All shared library development files are no longer required to
1506 be in the <literal>-dev</literal> package, only be available
1507 when the <literal>-dev</literal> package is installed. This
1508 allows the <literal>-dev</literal> package to be split as long
1509 as it depends on the additional packages.
1517 The UID range of user accounts is extended to 1000-59999.
1522 <term>9.3.2, 10.4</term>
1525 <filename>init.d</filename> scripts are a possible exception
1526 from the normal requirement to use <literal>set -e</literal>
1527 in each shell script.
1535 The UCB BSD license was removed from the list of licenses that
1536 should be referenced from
1537 <filename>/usr/share/common-licenses/BSD</filename>. It
1538 should instead be included directly in
1539 <filename>debian/copyright</filename>, although it will still
1540 be in common-licenses for the time being.
1545 <term>debconf</term>
1548 <literal>SETTITLE</literal> is now documented (it has been
1549 supported for some time). <literal>SETTITLE</literal> is like
1550 <literal>TITLE</literal> but takes a template instead of a
1551 string to allow translation.
1559 <systemitem role="package">perl-base</systemitem> now provides
1561 role="package">perlapi-<replaceable>abiname</replaceable></systemitem>
1562 instead of a package based solely on the Perl version. Perl
1563 packages must now depend on <systemitem
1564 role="package">perlapi-$Config{debian_abi}</systemitem>,
1565 falling back on <literal>$Config{version}</literal> if
1566 <literal>$Config{debian_abi}</literal> is not set.
1574 Packages using <filename>Makefile.PL</filename> should use
1575 <literal>DESTDIR</literal> rather than
1576 <literal>PREFIX</literal> to install into the package staging
1577 area. <literal>PREFIX</literal> only worked due to a
1585 <section id="s-3.8.4.0">
1586 <title>Version 3.8.4</title>
1589 Released January, 2010.
1597 An FHS exception has been granted for multiarch libraries.
1598 Permitting files to instead be installed to
1599 <filename>/lib/triplet</filename> and
1600 <filename>/usr/lib/triplet</filename> directories.
1608 Packages may not contain named pipes and should instead create
1609 them in postinst and remove them in prerm or postrm.
1617 <filename>/sys</filename> and <filename>/selinux</filename>
1618 directories are explicitly allowed as an exception to the FHS.
1625 <section id="s-3.8.3.0">
1626 <title>Version 3.8.3</title>
1629 Released August, 2009.
1637 DEB_*_ARCH_CPU and DEB_*_ARCH_OS variables are now documented
1638 and recommended over GNU-style variables for that information.
1646 Source package Architecture fields may contain
1647 <emphasis>all</emphasis> in combination with other
1648 architectures. Clarify when <emphasis>all</emphasis> and
1649 <emphasis>any</emphasis> may be used in different versions of
1658 The Debian archive software does not support uploading to
1659 multiple distributions with one <filename>*.changes</filename>
1668 The Binary field may span multiple lines.
1676 Shared library packages are no longer allowed to install
1677 libraries in a non-standard location and modify
1678 <filename>ld.so.conf</filename>. Packages should either be
1679 installed in a standard library directory or packages using
1680 them should be built with RPATH.
1688 Installation directories for X programs have been clarified.
1689 Packages are no longer required to pre-depend on x11-common
1690 before installing into <filename>/usr/include/X11</filename>
1691 and <filename>/usr/lib/X11</filename>.
1699 Manual pages are no longer required to contain only characters
1700 representable in the legacy encoding for that language.
1708 Localized man pages should either be kept up-to-date with the
1709 original version or warn that they're not up-to-date, either
1710 with warning text or by showing missing or changed portions in
1711 the original language.
1719 install-info is now handled via triggers so packages no longer
1720 need to invoke it in maintainer scripts. Info documents
1721 should now have directory sections and entries in the
1722 document. Packages containing info documents should add a
1723 dependency to support partial upgrades.
1731 The requirement for Perl modules to have a versioned Depend
1732 and Build-Depend on <literal>perl >= 5.6.0-16</literal> has
1740 <section id="s-3.8.2.0">
1741 <title>Version 3.8.2</title>
1744 Released June, 2009.
1752 The list of archive sections has been significantly expanded.
1754 url="http://lists.debian.org/debian-devel-announce/2009/03/msg00010.html">this
1755 debian-devel-announce message</ulink> for the list of new
1756 sections and rules for how to categorize packages.
1764 All packages must use debconf or equivalent for user
1765 prompting, though essential packages or their dependencies may
1766 also fall back on other methods.
1774 The requirements for source package names are now explicitly
1783 Legacy XFree86 servers no longer get a special exception from
1784 the FHS permitting <filename>/etc/X11/XF86Config-4</filename>.
1792 Removed obsolete dependency requirements for packages that use
1793 <filename>/var/mail</filename>.
1801 Speedo fonts are now deprecated. The X backend was disabled
1810 The GNU Free Documentation License version 1.3 is included in
1811 common-licenses and should be referenced from there.
1818 <section id="s-3.8.1.0">
1819 <title>Version 3.8.1</title>
1822 Released March, 2009.
1830 Care should be taken when adding functionality to essential
1831 and such additions create an obligation to support that
1832 functionality in essential forever unless significant work is
1841 Changelog files must be encoded in UTF-8.
1849 Some format requirements for changelog files are now "must"
1850 instead of "should."
1858 Alternative changelog formats have been removed. Debian only
1859 supports one changelog format for the Debian Archive.
1867 New nocheck option for DEB_BUILD_OPTIONS indicating any
1868 build-time test suite provided by the package should not be
1877 All control files must be encoded in UTF-8.
1885 <filename>debian/control</filename> allows comment lines
1886 starting with # with no preceding whitespace.
1894 Init scripts ending in .sh are not handled specially. They
1895 are not sourced and are not guaranteed to be run by
1896 <command>/bin/sh</command> regardless of the #! line. This
1897 brings Policy in line with the long-standing behavior of the
1898 init system in Debian.
1906 The start action of an init script must exit successfully and
1907 not start the daemon again if it's already running.
1915 <filename>/var/run</filename> and
1916 <filename>/var/lock</filename> may be mounted as temporary
1917 filesystems, and init scripts must therefore create any
1918 necessary subdirectories dynamically.
1926 <filename>/bin/sh</filename> scripts may assume that local can
1927 take multiple variable arguments and supports assignment.
1935 User mailboxes may be mode 600 and owned by the user rather
1936 than mode 660, owned by user, and group mail.
1943 <section id="s-3.8.0.0">
1944 <title>Version 3.8.0</title>
1947 Released June, 2008.
1952 <term>2.4, 3.7</term>
1955 The base section has been removed. contrib and non-free have
1956 been removed from the section list; they are only categories.
1957 The base system is now defined by priority.
1965 If <command>dpkg-source -x</command> doesn't provide the
1966 source that will be compiled, a debian/rules patch target is
1967 recommended and should do whatever else is necessary.
1972 <term>4.9.1, 10.1</term>
1975 Standardized the format of DEB_BUILD_OPTIONS. Specified
1976 permitted characters for tags, required that tags be
1977 whitespace-separated, allowed packages to assume
1978 non-conflicting tags, and required unknown flags be ignored.
1986 Added parallel=n to the standardized DEB_BUILD_OPTIONS tags,
1987 indicating that a package should be built using up to n
1988 parallel processes if the package supports it
1996 Debian packages should not use convenience copies of code from
1997 other packages unless the included package is explicitly
1998 intended to be used that way.
2006 If dpkg-source -x doesn't produce source ready for editing and
2007 building with dpkg-buildpackage, packages should include a
2008 <filename>debian/README.source</filename> file explaining how
2009 to generate the patched source, add a new modification, and
2010 remove an existing modification. This file may also be used
2011 to document packaging a new upstream release and any other
2012 complexity of the Debian build process.
2020 The Uploaders field in debian/control may be wrapped.
2028 An empty Debian revision is equivalent to a Debian revision of
2029 0 in a version number.
2037 New Homepage field for upstream web sites.
2042 <term>6.5, 6.6, 7</term>
2045 The Breaks field declares that this package breaks another and
2046 prevents installation of the breaking package unless the
2047 package named in Breaks is deconfigured first. This field
2048 should not be used until the dpkg in Debian stable supports
2054 <term>8.1, 8.2</term>
2057 Clarify which files should go into a shared library package,
2058 into a separate package, or into the -dev package. Suggest
2059 -tools instead of -runtime for runtime support programs, since
2060 that naming is more common in Debian.
2069 <filename>/etc/cron.{hourly,daily,weekly,monthly}</filename>
2070 must be configuration files (upgraded from should). Mention
2071 the hourly directory.
2079 Packages providing <filename>/etc/X11/Xresources</filename>
2080 files need not conflict with <literal>xbase (<<
2081 3.3.2.3a-2)</literal>, which is long-obsolete.
2089 Manual pages in locale-specific directories should use either
2090 the legacy encoding for that directory or UTF-8. Country
2091 names should not be included in locale-specific manual page
2092 directories unless indicating a significant difference in the
2093 language. All characters in the manual page source should be
2094 representable in the legacy encoding for a locale even if the
2095 man page is encoded in UTF-8.
2103 The Apache 2.0 license is now in common-licenses and should be
2104 referenced rather than quoted in
2105 <filename>debian/copyright</filename>.
2113 Packages in contrib and non-free should state in the copyright
2114 file that the package is not part of Debian GNU/Linux and
2115 briefly explain why.
2120 <term>debconf</term>
2123 Underscore (_) is allowed in debconf template names.
2130 <section id="s-3.7.3.0">
2131 <title>Version 3.7.3</title>
2134 Released December, 2007.
2142 Package version numbers may contain tildes, which sort before
2143 anything, even the end of a part.
2151 Scripts may assume that <filename>/bin/sh</filename> supports
2152 local (at a basic level) and that its test builtin (if any)
2153 supports -a and -o binary logical operators.
2161 The substitution variable ${binary:Version} should be used in
2162 place of ${Source-Version} for dependencies between packages
2163 of the same library.
2168 <term>menu policy</term>
2171 Substantial reorganization and renaming of sections in the
2172 Debian menu structure. Packages with menu entries should be
2173 reviewed to see if the menu section has been renamed or if one
2174 of the new sections would be more appropriate.
2182 The Source field in a .changes file may contain a version
2183 number in parentheses.
2191 The acceptable values for the Urgency field are low, medium,
2192 high, critical, or emergency.
2200 The shlibs file now allows an optional type field, indicating
2201 the type of package for which the line is valid. The only
2202 currently supported type is udeb, used with packages for the
2211 Packages following the Debian Configuration management
2212 specification must allow for translation of their messages by
2213 using a gettext-based system such as po-debconf.
2221 GFDL 1.2, GPL 3, and LGPL 3 are now in common-licenses and
2222 should be referenced rather than quoted in debian/copyright.
2229 <section id="s-3.7.2.2">
2230 <title>Version 3.7.2.2</title>
2233 Released October, 2006.
2236 This release broke the normal rule against introducing normative
2237 changes without changing the major patch level.
2245 Maintainer scripts must not be world writeable (up from a
2253 <section id="s-3.7.2.0">
2254 <title>Version 3.7.2</title>
2257 Released April, 2006.
2265 Revert the cgi-lib change.
2272 <section id="s-3.7.1.0">
2273 <title>Version 3.7.1</title>
2276 Released April, 2006.
2284 It is now possible to create shared libraries without
2285 relocatable code (using -fPIC) in certain exceptional cases,
2286 provided some procedures are followed, and for creating static
2287 libraries with relocatable code (again, using -fPIC).
2288 Discussion on debian-devel@lists.debian.org, getting a rough
2289 consensus, and documenting it in README.Debian constitute most
2298 Packages should install any relevant files into the
2299 directories <filename>/usr/include/X11/</filename> and
2300 <filename>/usr/lib/X11/</filename>, but if they do so, they
2301 must pre-depend on <literal>x11-common (>=
2309 <section id="s-3.7.0.0">
2310 <title>Version 3.7.0</title>
2313 Released April, 2006.
2321 Packages shipping web server CGI files are expected to install
2322 them in <filename>/usr/lib/cgi-lib/</filename> directories.
2323 This location change perhaps should be documented in NEWS
2331 Web server packages should include a standard scriptAlias of
2332 cgi-lib to <filename>/usr/lib/cgi-lib</filename>.
2340 The version of FHS mandated by policy has been upped to 2.3.
2341 There should be no changes required for most packages, though
2342 new top level directories <filename>/media</filename>,
2343 <filename>/srv</filename>, etc. may be of interest.
2348 <term>5.1, 5.6.3</term>
2351 All fields, apart from the Uploaders field, in the control
2352 file are supposed to be a single logical line, which may be
2353 spread over multiple physical lines (newline followed by space
2354 is elided). However, any parser for the control file must
2355 allow the Uploaders field to be spread over multiple physical
2356 lines as well, to prepare for future changes.
2364 When scripts are installed into a directory in the system
2365 PATH, the script name should not include an extension that
2366 denotes the scripting language currently used to implement it.
2371 <term>9.3.3.2</term>
2374 packages that invoke initscripts now must use invoke-rc.d to
2375 do so since it also pays attention to run levels and other
2381 <term>11.8.5.2, 11.8.7, etc</term>
2384 We no longer use <filename>/usr/X11R6</filename>, since we
2385 have migrated away to using Xorg paths. This means, for one
2386 thing, fonts live in
2387 <filename>/usr/share/fonts/X11/</filename> now, and
2388 <filename>/usr/X11R6</filename> is gone.
2395 <section id="s-3.6.2.0">
2396 <title>Version 3.6.2</title>
2399 Released June, 2005.
2407 Recommend doc-base, and not menu, for registering package
2416 Run time support programs should live in subdirectories of
2417 <filename>/usr/lib/</filename> or
2418 <filename>/usr/share</filename>, and preferably the shared lib
2419 is named the same as the package name (to avoid name
2428 It is recommended that HTTP servers provide an alias /images
2429 to allow packages to share image files with the web server
2436 <section id="s-3.6.1.0">
2437 <title>Version 3.6.1</title>
2440 Released August, 2003.
2448 Prompting the user should be done using debconf. Non debconf
2449 user prompts are now deprecated.
2456 <section id="s-3.6.0.0">
2457 <title>Version 3.6.0</title>
2460 Released July, 2003.
2468 Restructuring causing shifts in section numbers and bumping of
2469 the minor version number:
2477 Many packaging manual appendices that were integrated into
2478 policy sections are now empty, and replaced with links to the
2479 Policy. In particular, the appendices that included the list
2480 of control fields were updated (new fields like Closes,
2481 Changed-By were added) and the list of fields for each of
2482 control, .changes and .dsc files is now in Policy, and they're
2483 marked mandatory, recommended or optional based on the current
2484 practice and the behavior of the deb-building tool-chain.
2492 Elimination of needlessly deep section levels, primarily in
2493 the chapter Debian Archive, from which two new chapters were
2494 split out, Binary packages and Source packages. What remained
2495 was reordered properly, that is, some sects became sects etc.
2503 Several sections that were redundant, crufty or simply not
2504 designed with any sort of vision, were rearranged according to
2505 the formula that everything should be either in the same place
2506 or properly interlinked. Some things remained split up
2507 between different chapters when they talked about different
2508 aspects of files: their content, their syntax, and their
2509 placement in the file system. In particular, see the new
2510 sections about changelog files.
2515 <term>menu policy</term>
2518 Added Games/Simulation and Apps/Education to menu sub-policy
2526 Debian changelogs should be UTF-8 encoded.
2534 shared libraries must be linked against all libraries that
2535 they use symbols from in the same way that binaries are.
2543 build-depends-indep need not be satisfied during clean target.
2550 <section id="s-3.5.10.0">
2551 <title>Version 3.5.10</title>
2562 packages providing the x-terminal-emulator virtual package
2563 ought to ensure that they interpret the command line exactly
2572 Window managers compliant with the Window Manager
2573 Specification Project may add 40 points for ranking in the
2581 <section id="s-3.5.9.0">
2582 <title>Version 3.5.9</title>
2585 Released March, 2003.
2593 The section describing the Description: package field once
2594 again has full details of the long description format.
2602 Clarified that if a package has non-build-essential
2603 build-dependencies, it should have them listed in the
2604 Build-Depends and related fields (i.e. it's not merely
2613 When asked to restart a service that isn't already running,
2614 the init script should start the service.
2622 If the purpose of a package is to provide examples, then the
2623 example files can be installed into
2624 <filename>/usr/share/doc/package</filename> (rather than
2625 <filename>/usr/share/doc/package/examples</filename>).
2632 <section id="s-3.5.8.0">
2633 <title>Version 3.5.8</title>
2636 Released November, 2002.
2644 It is no longer necessary to keep a log of changes to the
2645 upstream sources in the copyright file. Instead, all such
2646 changes should be documented in the changelog file.
2654 <replaceable>Build-Depends</replaceable>,
2655 <replaceable>Build-Conflicts</replaceable>,
2656 <replaceable>Build-Depends-Indep</replaceable>, and
2657 <replaceable>Build-Conflicts-Indep</replaceable> must also be
2658 satisfied when the clean target is called.
2663 <term>menu policy</term>
2666 A new Apps/Science menu section is available
2671 <term>debconf policy</term>
2674 debconf specification cleared up, various changes.
2682 It is no longer recommended to create symlinks from
2683 nonexistent manual pages to undocumented(7). Missing manual
2684 pages for programs are still a bug.
2691 <section id="s-3.5.7.0">
2692 <title>Version 3.5.7</title>
2695 Released August, 2002.
2703 Packages no longer have to ask permission to call MAKEDEV in
2704 postinst, merely notifying the user ought to be enough.
2712 cryptographic software may now be included in the main archive.
2720 task packages are no longer permitted; tasks are now created
2721 by a special Tasks: field in the control file.
2729 window managers that support netwm can now add 20 points when
2730 they add themselves as an alternative for
2731 <filename>/usr/bin/x-window-manager</filename>
2739 The default compilation options have now changed, one should
2740 provide debugging symbols in all cases, and optionally step
2741 back optimization to -O0, depending on the DEB_BUILD_OPTIONS
2742 environment variable.
2747 <term>7.6, 4.8</term>
2750 Added mention of build-arch, build-indep, etc, in describing
2751 the relationships with `Build-Depends', `Build-Conflicts',
2752 `Build-Depends-Indep', and `Build-Conflicts-Indep'. May need
2753 to review the new rules.
2761 Changed rules on how, and when, to invoke ldconfig in
2762 maintainer scripts. Long rationale.
2769 <emphasis>Added the last note in 3.5.6 upgrading checklist item
2770 regarding build rules, please see below</emphasis>
2774 <section id="s-3.5.6.0">
2775 <title>Version 3.5.6</title>
2778 Released July, 2001.
2786 Emacs and TeX are no longer mandated by policy to be priority
2795 Programs that access docs need to do so via
2796 <filename>/usr/share/doc</filename>, and not via
2797 <filename>/usr/doc/</filename> as was the policy previously
2805 Putting documentation in <filename>/usr/doc</filename> versus
2806 <filename>/usr/share/doc</filename> is now a ``serious''
2815 For web servers, one should not provide non-local access to
2816 the <filename>/usr/share/doc</filename> hierarchy. If one
2817 can't provide access controls for the http://localhost/doc/
2818 directory, then it is preferred that one ask permission to
2819 expose that information during the install.
2827 There are new rules for build-indep/build-arch targets and
2828 there is a new Build-Depend-Indep semantic.
2835 <section id="s-3.5.5.0">
2836 <title>Version 3.5.5</title>
2847 Manpages should not rely on header information to have
2848 alternative manpage names available; it should only use
2849 symlinks or .so pages to do this
2857 <emphasis>Clarified note in 3.5.3.0 upgrading checklist
2858 regarding examples and templates: this refers only to those
2859 examples used by scripts; see section 10.7.3 for the whole
2868 Included a new section 10.9.1 describing the use of
2869 dpkg-statoverride; this does not have the weight of policy
2877 Clarify Standards-Version: you don't need to rebuild your
2878 packages just to change the Standards-Version!
2886 Plugins are no longer bound by all the rules of shared
2892 <term>X Windows related things:</term>
2899 Clarification of priority levels of X Window System
2908 Rules for defining x-terminal-emulator improved
2916 X Font policy rewritten: you must read this if you
2917 provide fonts for the X Window System
2925 Packages must not ship
2926 <filename>/usr/X11R6/lib/X11/app-defaults/</filename>
2934 X-related packages should usually use the regular FHS
2935 locations; imake-using packages are exempted from this
2943 OpenMotif linked binaries have the same rules as
2944 OSF/Motif-linked ones
2954 <section id="s-3.5.4.0">
2955 <title>Version 3.5.4</title>
2958 Released April, 2001.
2966 The system-wide mail directory is now /var/mail, no longer
2967 /var/spool/mail. Any packages accessing the mail spool should
2968 access it via /var/mail and include a suitable Depends field;
2973 <term>11.9; perl-policy</term>
2976 The perl policy is now part of Debian policy proper. Perl
2977 programs and modules should follow the current Perl policy
2984 <section id="s-3.5.3.0">
2985 <title>Version 3.5.3</title>
2988 Released April, 2001.
2996 Build-Depends arch syntax has been changed to be less
2997 ambiguous. This should not affect any current packages
3005 Examples and templates files for use by scripts should now
3006 live in <filename>/usr/share/<package></filename> or
3007 <filename>/usr/lib/<package></filename>, with symbolic
3009 <filename>/usr/share/doc/<package>/examples</filename>
3017 <section id="s-3.5.2.0">
3018 <title>Version 3.5.2</title>
3021 Released February, 2001.
3029 X app-defaults directory has moved from
3030 <filename>/usr/X11R6/lib/X11/app-defaults</filename> to
3031 <filename>/etc/X11/app-defaults</filename>
3038 <section id="s-3.5.1.0">
3039 <title>Version 3.5.1</title>
3042 Released February, 2001.
3050 dpkg-shlibdeps now uses objdump, so shared libraries have to
3051 be run through dpkg-shlibdeps as well as executables
3058 <section id="s-3.5.0.0">
3059 <title>Version 3.5.0</title>
3062 Released January, 2001.
3070 Font packages for the X Window System must now declare a
3071 dependency on xutils (>= 4.0.2)
3078 <section id="s-3.2.1.1">
3079 <title>Version 3.2.1.1</title>
3082 Released January, 2001.
3085 This release broke the normal rule against introducing normative
3086 changes without changing the major patch level.
3094 Daemon startup scripts in <filename>/etc/init.d/</filename>
3095 should not contain modifiable parameters; these should be
3096 moved to a file in <filename>/etc/default/</filename>
3104 Files in <filename>/usr/share/doc</filename> must not be
3105 referenced by any program. If such files are needed, they
3107 <filename>/usr/share/<package>/</filename>, and symbolic
3108 links created as required in
3109 <filename>/usr/share/doc/<package>/</filename>
3117 Much of the packaging manual has now been imported into the
3125 <section id="s-3.2.1.0">
3126 <title>Version 3.2.1</title>
3129 Released August, 2000.
3137 A package of priority standard or higher may provide two
3138 binaries, one compiled with support for the X Window System,
3139 and the other without
3146 <section id="s-3.2.0.0">
3147 <title>Version 3.2.0</title>
3150 Released August, 2000.
3158 By default executables should not be built with the debugging
3159 option -g. Instead, it is recommended to support building the
3160 package with debugging information optionally.
3168 Policy for packages where the upstream uses HTML changelog
3169 files has been expanded. In short, a plain text changelog
3170 file should always be generated for the upstream changes
3178 Please note that the new release of the X window system (3.2)
3179 shall probably need sweeping changes in policy
3187 Policy for packages providing the following X-based features
3195 X server (virtual package xserver)
3203 X terminal emulator (virtual package x-terminal-emulator)
3211 X window manager (virtual package x-window-manager, and
3212 <filename>/usr/bin/x-window-manager</filename>
3213 alternative, with priority calculation guidelines)
3221 X fonts (this section has been written from scratch)
3229 X application defaults
3240 Policy for packages using the X Window System and FHS issues
3249 No package may contain or make hard links to conffiles
3257 Noted that newer dpkg versions do not require extreme care in
3258 always creating the shared lib before the symlink, so the
3259 unpack order be correct
3266 <section id="s-3.1.1.0">
3267 <title>Version 3.1.1</title>
3270 Released November, 1999.
3278 Correction to semantics of architecture lists in Build-Depends
3279 etc. Should not affect many packages
3286 <section id="s-3.1.0.0">
3287 <title>Version 3.1.0</title>
3290 Released October, 1999.
3295 <term>defunct</term>
3298 <filename>/usr/doc/<package></filename> has to be a
3300 <filename>/usr/share/doc/<package></filename>, to be
3301 maintained by postinst and prerm scripts.
3306 <term>7.1, 7.6</term>
3309 Introduced source dependencies (Build-Depends, etc.)
3317 <filename>/etc/rc.boot</filename> has been deprecated in
3318 favour of <filename>/etc/rcS.d</filename>. (Packages should
3319 not be touching this directory, but should use update-rc.d
3328 update-rc.d is now the <emphasis>only</emphasis> allowable way
3329 of accessing the <filename>/etc/rc?.d/[SK]??*</filename>
3330 links. Any scripts which manipulate them directly must be
3331 changed to use update-rc.d instead. (This is because the
3332 file-rc package handles this information in an incompatible
3341 Architecture-specific examples go in
3342 <filename>/usr/lib/<package>/examples</filename> with
3344 <filename>/usr/share/doc/<package>/examples/*</filename>
3346 <filename>/usr/share/doc/<package>/examples</filename>
3355 Updated FHS to a 2.1 draft; this reverts
3356 <filename>/var/state</filename> to
3357 <filename>/var/lib</filename>
3362 <term>9.7; mime-policy</term>
3365 Added MIME sub-policy document
3373 VISUAL is allowed as a (higher priority) alternative to EDITOR
3381 Modified liblockfile description, which affects
3382 mailbox-accessing programs. Please see the policy document
3391 If a package provides a changelog in HTML format, a text-only
3392 version should also be included. (Such a version may be
3393 prepared using <command>lynx -dump -nolist</command>.)
3401 Description of how to handle version numbers based on dates added
3408 <section id="s-3.0.1.0">
3409 <title>Version 3.0.1</title>
3412 Released July, 1999.
3420 Added the clarification that the .la files are essential for
3421 the packages using libtool's libltdl library, in which case
3422 the .la files must go in the run-time library package
3429 <section id="s-3.0.0.0">
3430 <title>Version 3.0.0</title>
3433 Released June, 1999.
3441 Debian formally moves from the FSSTND to the FHS. This is a
3442 major change, and the implications of this move are probably
3451 Only 3 digits of the Standards version need be included in
3452 control files, though all four digits are still permitted.
3460 The location of the GPL has changed to
3461 <filename>/usr/share/common-licenses</filename>. This may
3462 require changing the copyright files to point to the correct
3463 location of the GPL and other major licenses
3471 Packages that use libtool to create shared libraries must
3472 include the .la files in the -dev packages
3480 Use logrotate to rotate log files
3485 <term>now 11.8</term>
3488 section 5.8 has been rewritten (Programs for the X Window System)
3493 <term>9.6; menu-policy</term>
3496 There is now an associated menu policy, in a separate
3497 document, that carries the full weight of Debian policy
3505 Programs which need to modify the files
3506 <filename>/var/run/utmp</filename>,
3507 <filename>/var/log/wtmp</filename> and
3508 <filename>/var/log/lastlog</filename> must be installed setgid
3516 <section id="s-2.5.0.0">
3517 <title>Version 2.5.0</title>
3520 Released October, 1998.
3523 <emphasis>Please note that section numbers below this point may not
3524 match the current Policy Manual.</emphasis>
3530 Rearranged the manual to create a new Section 4, Files
3535 Section 3.3 ("Files") was moved to Section 4. The Sections
3536 that were Section 4 and Section 5 were moved down to become
3537 Section 5 and Section 6.
3542 What was Section 5.5 ("Log files") is now a subsection of
3543 the new Section 4 ("Files"), becoming section 4.8, placed
3544 after "Configuration files", moving the Section 4.8
3545 ("Permissions and owners") to Section 4.9. All subsections
3546 of the old Section 5 after 5.5 were moved down to fill in
3554 Modified the section about changelog files to accommodate
3555 upstream changelogs which were formatted as HTML. These
3556 upstream changelog files should now be accessible as
3557 <filename>/usr/doc/package/changelog.html.gz</filename>
3562 Symlinks are permissible to link the real, or upstream,
3563 changelog name to the Debian mandated name.
3568 Clarified that HTML documentation should be present in some
3569 package, though not necessarily the main binary package.
3574 Corrected all references to the location of the copyright files.
3575 The correct location is
3576 <filename>/usr/doc/package/copyright</filename>
3581 Ratified the architecture specification strings to cater to the
3588 <section id="s-2.4.1.0">
3589 <title>Version 2.4.1</title>
3592 Released April, 1998.
3597 <term>Updated section 3.3.5 Symbolic links</term>
3600 symbolic links within a toplevel directory should be
3601 relative, symbolic links between toplevel directories should
3602 be absolute (cf., Policy Weekly Issue#6, topic 2)
3607 <term>Updated section 4.9 Games</term>
3610 manpages for games should be installed in
3611 <filename>/usr/man/man6</filename> (cf., Policy Weekly
3617 <term>Updated Chapter 12 Shared Libraries</term>
3620 ldconfig must be called in the postinst script if the package
3621 installs shared libraries (cf., Policy Weekly Issue #6,
3629 <section id="s-2.4.0.0">
3630 <title>Version 2.4.0</title>
3633 Released January, 1998
3638 <term>Updated section 3.3.4 Scripts</term>
3643 /bin/sh may be any POSIX compatible shell
3648 scripts including bashisms have to specify
3649 <filename>/bin/bash</filename> as interpreter
3654 scripts which create files in world-writable directories
3655 (e.g., in <filename>/tmp</filename>) should use tempfile
3656 or mktemp for creating the directory
3663 <term>Updated section 3.3.5 Symbolic Links</term>
3666 symbolic links referencing compressed files must have the same
3667 file extension as the referenced file
3672 <term>Updated section 3.3.6 Device files</term>
3675 <filename>/dev/tty*</filename> serial devices should be used
3676 instead of <filename>/dev/cu*</filename>
3682 Updated section 3.4.2 Writing the scripts in
3683 <filename>/etc/init.d</filename>
3689 all <filename>/etc/init.d</filename> scripts have to
3690 provide the following options: start, stop, restart,
3696 the reload option is optional and must never stop and
3704 <term>Updated section 3.5 Cron jobs</term>
3707 cron jobs that need to be executed more often than daily
3708 should be installed into <filename>/etc/cron.d</filename>
3713 <term>Updated section 3.7 Menus</term>
3716 removed section about how to register HTML docs to `menu' (the
3717 corresponding section in 4.4, Web servers and applications,
3718 has been removed in policy 2.2.0.0 already, so this one was
3724 <term>New section 3.8 Keyboard configuration</term>
3727 details about how the backspace and delete keys should be
3733 <term>New section 3.9 Environment variables</term>
3736 no program must depend on environment variables to get a
3737 reasonable default configuration
3742 <term>New section 4.6 News system configuration</term>
3745 <filename>/etc/news/organization</filename> and
3746 <filename>/etc/news/server</filename> should be supported by
3747 all news servers and clients
3752 <term>Updated section 4.7 Programs for the X Window System</term>
3757 programs requiring a non-free Motif library should be
3758 provided as foo-smotif and foo-dmotif package
3763 if lesstif works reliably for such program, it should be
3764 linked against lesstif and not against a non-free Motif
3772 <term>Updated section 4.9 Games</term>
3775 games for X Windows have to be installed in
3776 <filename>/usr/games</filename>, just as non-X games
3783 <section id="s-2.3.0.0">
3784 <title>Version 2.3.0</title>
3787 Released September, 1997.
3793 new section `4.2 Daemons' including rules for
3794 <filename>/etc/services</filename>,
3795 <filename>/etc/protocols</filename>,
3796 <filename>/etc/rpc</filename>, and
3797 <filename>/etc/inetd.conf</filename>
3802 updated section about `Configuration files': packages may not
3803 touch other packages' configuration files
3808 MUAs and MTAs have to use liblockfile
3814 <section id="s-2.2.0.0">
3815 <title>Version 2.2.0</title>
3818 Released July, 1997.
3824 added section 4.1 `Architecture specification strings': use
3825 <arch>-linux where <arch> is one of the following:
3826 i386, alpha, arm, m68k, powerpc, sparc.
3831 detailed rules for <filename>/usr/local</filename>
3856 don't install shared libraries as executable
3861 app-defaults files may not be conffiles
3867 <section id="s-2.1.3.0">
3868 <title>Version 2.1.3</title>
3871 Released March, 1997.
3877 two programs with different functionality must not have the same
3888 "Standard for Console Messages"
3893 Libraries should be compiled with `-D_REENTRANT'
3898 Libraries should be stripped with <command>strip
3899 --strip-unneeded</command>
3905 <section id="s-2.1.2.0">
3906 <title>Version 2.1.2</title>
3909 Released November, 1996.
3915 Some changes WRT shared libraries
3921 <section id="s-2.1.1.0">
3922 <title>Version 2.1.1</title>
3925 Released September, 1996.
3931 No hard links in source packages
3936 Do not use <command>dpkg-divert</command> or
3937 <command>update-alternatives</command> without consultation
3942 Shared libraries must be installed stripped
3948 <section id="s-2.1.0.0">
3949 <title>Version 2.1.0</title>
3952 Released August, 1996.
3958 Upstream changelog must be installed too