upgrading checklist: add convention to annotate with Lintian tags
[debian-policy.git] / policy / upgrading-checklist.rst
blob46835ac207ac1b0a62a42b4d791bd924b91ba05e
1 Upgrading checklist
2 ===================
4 About the checklist
5 -------------------
7 The checklist below has been created to simplify the upgrading process
8 of old packages. This list is not official or normative. It only
9 provides an indication of what has changed and whether you are likely to
10 need to make changes to your package in light of this. If you have
11 doubts about a certain topic, if you need more details, or if you think
12 some other package does not comply with policy, please refer to the
13 Policy Manual itself.
15 All of the changes from version 3.0.0 onwards indicate which section of
16 the Policy Manual discusses the issue. The section numbering should
17 still be accurate for changes back to the 2.5.0 release. Before that
18 point, the sections listed here probably no longer correspond to
19 sections in the modern Policy Manual.
21 Here is how the check list works: Check which policy version your
22 package was checked against last (indicated in the ``Standards-Version``
23 field of the source package). Then move upwards until the top and check
24 which of the items on the list might concern your package. Note which
25 sections of policy discuss this, and then check out the Policy Manual
26 for details. Once you've made all necessary changes to match the current
27 rules, update the value of ``Standards-Version`` to the current Policy
28 Manual version.
30 If an item in the list is followed by the name of a Lintian tag in
31 square brackets, it indicates that the policy requirement is covered
32 by that Lintian tag.  The lack of such an annotation does not mean
33 that no Lintian tag exists to cover the requirement.  Our coverage of
34 these annotations is quite incomplete, and patches to this checklist
35 are very welcome.
37 The sections in this checklist match the values for the
38 ``Standards-Version`` control field in omitting the minor patch version,
39 except in the two anomalous historical cases where normative
40 requirements were changed in a minor patch release.
42 Version 4.0.2
43 -------------
45 Unreleased.
47 2.2.1
48     Non-default alternative dependencies on non-free packages are
49     permitted for packages in main.
51 4.11
52     If upstream provides OpenPGP signatures, including the upstream
53     signing key as ``debian/upstream/signing-key.asc`` in the source
54     package and using the ``pgpsignurlmangle`` option in
55     ``debian/watch`` configuration to indicate how to find the upstream
56     signature for new releases is recommended.
58 4.15
59     Packages should build reproducibly when certain factors are held
60     constant; see 4.15 for the list.
62 4.15
63     Packages are recommended to build reproducibly even when build
64     paths and most environment variables are allowed to vary.
66 Version 4.0.1
67 -------------
69 Released August, 2017.
71 2.5
72     Priorities are now used only for controlling which packages are part
73     of a minimal or standard Debian installation and should be selected
74     based on functionality provided directly to users (so nearly all
75     shared libraries should have a priority of ``optional``). Packages
76     may now depend on packages with a lower priority.
78     The ``extra`` priority has been deprecated and should be treated as
79     equivalent to ``optional``. All ``extra`` priorities should be
80     changed to ``optional``. Packages with a priority of ``optional``
81     may conflict with each other (but packages that both have a priority
82     of ``standard`` or higher still may not conflict).
84 5.6.30
85     New section documenting the ``Testsuite`` field in Debian source
86     control files.
88 8.1.1
89     Shared libraries must now invoke ``ldconfig`` by means of triggers,
90     instead of maintscripts.
92 9.3.3
93     Packages are recommended to use debhelper tools instead of invoking
94     ``update-rc.d`` and ``invoke-rc.d`` directly.
96 9.3.3
97     Policy's description of how the local system administrator may
98     modify the runlevels at which a daemon is started and stopped, and
99     how init scripts may depend on other init scripts, have been
100     removed. These are now handled by LSB headers.
103     Policy's specification of the console messages that should be
104     emitted by ``init.d`` scripts has been removed. This is now defined
105     by LSB, for sysvinit, and is not expected to be followed by other
106     init systems.
109     Packages installing a Free Desktop entry must not also install a
110     Debian menu system entry.
113     The prohibition against depending on environment variables for
114     reasonable defaults is only for programs on the system PATH and only
115     for custom environment variable settings (not, say, a sane PATH).
117 Version 4.0.0
118 -------------
120 Released May, 2017.
123     ``config.sub`` and ``config.guess`` should be updated at build time
124     or replaced with the versions from autotools-dev.
127     New ``TARGET`` set of ``dpkg-architecture`` variables and new
128     ``DEB_*_ARCH_BITS`` and ``DEB_*_ARCH_ENDIAN`` variables.
130 4.9.1
131     New ``DEB_BUILD_OPTIONS`` tag, ``nodoc``, which says to suppress
132     documentation generation (but continue to build all binary packages,
133     even documentation packages, just let them be mostly empty).
136     Automatically-generated debug packages do not need to have a
137     corresponding paragraph in ``debian/control``. (This is existing
138     practice; this Policy update is just clearer about it.)
140 5.6.12
141     Colons are not permitted in upstream version numbers.
144     New ``Build-Depends-Arch`` and ``Build-Conflicts-Arch`` fields are
145     now supported.
148     The recommended package name for shared library development files is
149     now libraryname-dev or librarynameapiversion-dev, not
150     librarynamesoversion-dev.
152 9.1.1
153     The stable release of Debian supports ``/run``, so packages may now
154     assume that it exists and do not need any special dependency on a
155     version of initscripts.
157 9.3.2
158     New optional ``try-restart`` standard init script argument, which
159     (if supported) should restart the service if it is already running
160     and otherwise just report success.
162 9.3.2
163     Support for the ``status`` init script argument is recommended.
165 9.3.3.2
166     Packages must not call ``/etc/init.d`` scripts directly even as a
167     fallback, and instead must always use ``invoke-rc.d`` (which is
168     essential and shouldn't require any conditional).
170 9.11.1
171     Instructions for ``upstart`` integration removed since ``upstart``
172     is no longer maintained in Debian.
174 10.1
175     Packages may not install files in both ``/path`` and ``/usr/path``,
176     and must manage any backward-compatibility symlinks so that they
177     don't break if ``/path`` and ``/usr/path`` are the same directory.
179 10.6
180     Packages should assume device files in ``/dev`` are dynamically
181     managed and don't have to be created by the package. Packages other
182     than those whose purpose is to manage ``/dev`` must not create or
183     remove files there when a dynamic management facility is in use.
184     Named pipes and device files outside of ``/dev`` should normally be
185     created on demand via init scripts, systemd units, or similar
186     mechanisms, but may be created and removed in maintainer scripts if
187     they must be created during package installation.
189 10.9
190     Checking with the base-passwd maintainer is no longer required (or
191     desirable) when creating a new dynamic user or group in a package.
193 12.3
194     Dependencies on \*-doc packages should be at most Recommends
195     (Suggests if they only include documentation in supplemental
196     formats).
198 12.5
199     The Mozilla Public License 1.1 and 2.0 (MPL-1.1 and MPL-2.0) are now
200     included in ``/usr/share/common-licenses`` and do not need to be
201     copied verbatim in the package ``copyright`` file.
203 copyright-format
204     The ``https`` form of the copyright-format URL is now allowed and
205     preferred in the ``Format`` field.
207 perl
208     The Perl search path now includes multiarch directories. The vendor
209     directory for architecture-specific modules is now versioned to
210     support multiarch.
212 virtual
213     New ``adventure`` virtual package for implementations of the classic
214     Colossal Cave Adventure game.
216 virtual
217     New ``httpd-wsgi3`` virtual package for Python 3 WSGI-capable HTTP
218     servers. The existing ``httpd-wsgi`` virtual package is for Python 2
219     WSGI-capable HTTP servers.
221 virtual
222     New ``virtual-mysql-client``, ``virtual-mysql-client-core``,
223     ``virtual-mysql-server``, ``virtual-mysql-server-core``, and
224     ``virtual-mysql-testsuite`` virtual packages for MySQL-compatible
225     software.
227 Version 3.9.8
228 -------------
230 Released April, 2016.
233     The menu system is deprecated in favor of the FreeDesktop menu
234     standard. New requirements set for FreeDesktop menu entries.
237     New instructions for registering media type handlers with the
238     FreeDesktop system, which automatically synchronizes with mailcap
239     and therefore replaces mailcap registration for packages using
240     desktop entries.
242 Version 3.9.7
243 -------------
245 Released February, 2016.
247 10.5
248     Symbolic links must not traverse above the root directory.
250 9.2.2
251     32bit UIDs in the range 65536-4294967293 are reserved for
252     dynamically allocated user accounts.
255     Empty field values in control files are only permitted in the
256     ``debian/control`` file of a source package.
259     ``debian/rules``: required targets must not attempt network access.
261 12.3
262     recommend to ship additional documentation for package ``pkg`` in a
263     separate package ``pkg-doc`` and install it into
264     ``/usr/share/doc/pkg``.
266 Version 3.9.6
267 -------------
269 Released September, 2014.
272     The FHS is relaxed to allow a subdirectory of ``/usr/lib`` to hold a
273     mixture of architecture-independent and architecture-dependent
274     files, though directories entirely composed of
275     architecture-independent files should be located in ``/usr/share``.
278     The FHS requirement for ``/usr/local/lib64`` to exist if ``/lib64``
279     or ``/usr/lib64`` exists is removed.
282     An FHS exception has been granted for multiarch include files,
283     permitting header files to instead be installed to
284     ``/usr/include/triplet``.
286 10.1
287     Binaries must not be statically linked with the GNU C library, see
288     policy for exceptions.
291     It is clarified that signature appearing in debian/changelog should
292     be the details of the person who prepared this release of the
293     package.
295 11.5
296     The default web document root is now ``/var/www/html``
298 virtual
299     ``java1-runtime`` and ``java2-runtime`` are removed,
300     ``javaN-runtime`` and ``javaN-runtime-headless`` are added for all N
301     between 5 and 9.
303 virtual
304     Added ``httpd-wsgi`` for WSGI capable HTTP servers.
306 perl
307     Perl packages should use the ``%Config`` hash to locate module paths
308     instead of hardcoding paths in ``@INC``.
310 perl
311     Perl binary modules and any modules installed into
312     ``$Config{vendorarch}`` must depend on the relevant perlapi-\*
313     package.
315 Version 3.9.5
316 -------------
318 Released October, 2013.
321     Control data fields must not start with the hyphen character
322     (``-``), to avoid potential confusions when parsing clearsigned
323     control data files that were not properly unescaped.
325 5.4, 5.6.24
326     ``Checksums-Sha1`` and ``Checksums-Sha256`` are now mandatory in
327     ``.dsc`` files.
329 5.6.25, 5.8.1
330     The ``DM-Upload-Allowed`` field is obsolete. Permissions are now
331     granted via *dak-commands* files.
333 5.6.27
334     New section documenting the ``Package-List`` field in Debian source
335     control files.
337 5.6.28
338     New section documenting the ``Package-Type`` field in source package
339     control files.
341 5.6.29
342     New section documenting the ``Dgit`` field in Debian source control
343     files.
345 9.1.1.8
346     The exception to the FHS for the ``/selinux`` was removed.
348 10.7.3
349     Packages should remove all obsolete configuration files without
350     local changes during upgrades. The ``dpkg-maintscript-helper`` tool,
351     available from the dpkg package since *Wheezy*, can help with this.
353 10.10
354     The name of the files and directories installed by binary packages
355     must be encoded in UTF-8 and should be restricted to ASCII when
356     possible. In the system PATH, they must be restricted to ASCII.
358 11.5.2
359     Stop recommending to serve HTML documents from
360     ``/usr/share/doc/package``.
362 12.2
363     Packages distributing Info documents should use install-info's
364     trigger, and do not need anymore to depend on
365     ``dpkg (>= 1.15.4) | install-info``.
367 debconf
368     The ``escape`` capability is now documented.
370 virtual
371     ``mp3-decoder`` and ``mp3-encoder`` are removed.
373 Version 3.9.4
374 -------------
376 Released August, 2012.
379     New *tasks* archive section.
382     ``build-arch`` and ``build-indep`` are now mandatory targets in
383     ``debian/rules``.
385 5.6.26
386     New section documenting the ``Vcs-*`` fields, which are already in
387     widespread use. Note the mechanism for specifying the Git branch
388     used for packaging in the Vcs-Git field.
391     The deprecated relations < and > now must not be used.
394     New ``Built-Using`` field, which must be used to document the source
395     packages for any binaries that are incorporated into this package at
396     build time. This is used to ensure that the archive meets license
397     requirements for providing source for all binaries.
400     Policy for dependencies between shared libraries and other packages
401     has been largely rewritten to document the ``symbols`` system and
402     more clearly document handling of shared library ABI changes.
403     ``symbols`` files are now recommended over ``shlibs`` files in most
404     situations. All maintainers of shared library packages should review
405     the entirety of this section.
407 9.1.1
408     Packages must not assume the ``/run`` directory exists or is usable
409     without a dependency on ``initscripts (>= 2.88dsf-13.3)`` until the
410     stable release of Debian supports ``/run``.
413     Packages including MIME configuration can now rely on triggers and
414     do not need to call update-mime.
416 9.11
417     New section documenting general requirements for alternate init
418     systems and specific requirements for integrating with upstart.
420 12.5
421     All copyright files must be encoded in UTF-8.
423 Version 3.9.3
424 -------------
426 Released February, 2012.
429     New archive sections *education*, *introspection*, and
430     *metapackages* added.
432 5.6.8
433     The ``Architecture`` field in ``*.dsc`` files may now contain the
434     value ``any all`` for source packages building both
435     architecture-independent and architecture-dependent packages.
438     If a dependency is restricted to particular architectures, the list
439     of architectures must be non-empty.
441 9.1.1
442     ``/run`` is allowed as an exception to the FHS and replaces
443     ``/var/run``. ``/run/lock`` replaces ``/var/lock``. The FHS
444     requirements for the older directories apply to these directories as
445     well. Backward compatibility links will be maintained and packages
446     need not switch to referencing ``/run`` directly yet. Files in
447     ``/run`` should be stored in a temporary file system.
449 9.1.4
450     New section spelling out the requirements for packages that use
451     files in ``/run``, ``/var/run``, or ``/var/lock``. This generalizes
452     information previously only in 9.3.2.
455     Cron job file names must not contain ``.`` or ``+`` or they will be
456     ignored by cron. They should replace those characters with ``_``. If
457     a package provides multiple cron job files in the same directory,
458     they should each start with the package name (possibly modified as
459     above), ``-``, and then some suitable suffix.
461 9.10
462     Packages using doc-base do not need to call install-docs anymore.
464 10.7.4
465     Packages that declare the same ``conffile`` may see left-over
466     configuration files from each other even if they conflict.
468 11.8
469     The Policy rules around Motif libraries were just a special case of
470     normal rules for non-free dependencies and were largely obsolete, so
471     they have been removed.
473 12.5
474     ``debian/copyright`` is no longer required to list the Debian
475     maintainers involved in the creation of the package (although note
476     that the requirement to list copyright information is unchanged).
478 copyright-format
479     Version 1.0 of the "Machine-readable ``debian/copyright`` file"
480     specification is included.
482 mime
483     This separate document has been retired and and its (short) contents
484     merged into Policy section 9.7. There are no changes to the
485     requirements.
487 perl
488     Packages may declare an interest in the perl-major-upgrade trigger
489     to be notified of major upgrades of perl.
491 virtual
492     ``ttf-japanese-{mincho, gothic}`` is renamed to
493     ``fonts-japanese-{mincho, gothic}``.
495 Version 3.9.2
496 -------------
498 Released April, 2011.
501     Multiple clarifications throughout Policy where "installed" was used
502     and the more precise terms "unpacked" or "configured" were intended.
505     The maintainer address must accept mail from Debian role accounts
506     and the BTS. At least one human must be listed with their personal
507     email address in ``Uploaders`` if the maintainer is a shared email
508     address. The duties of a maintainer are also clearer.
511     All control fields are now classified as simple, folded, or
512     multiline, which governs whether their values must be a single line
513     or may be continued across multiple lines and whether line breaks
514     are significant.
517     Parsers are allowed to accept paragraph separation lines containing
518     whitespace, but control files should use completely empty lines.
519     Ordering of paragraphs is significant. Field names must be composed
520     of printable ASCII characters except colon and must not begin with
521     #.
523 5.6.25
524     The ``DM-Upload-Allowed`` field is now documented.
527     The system state maintainer scripts can rely upon during each
528     possible invocation is now documented. In several less-common cases,
529     this is stricter than Policy had previously documented. Packages
530     with complex maintainer scripts should be reviewed in light of this
531     new documentation.
534     The impact on system state when maintainer scripts that are part of
535     a circular dependency are run is now documented. Circular
536     dependencies are now a should not.
539     The system state when ``postinst`` and ``prerm`` scripts are run is
540     now documented, and the documentation of the special case of
541     dependency state for ``postrm`` scripts has been improved.
542     ``postrm`` scripts are required to gracefully skip actions if their
543     dependencies are not available.
545 9.1.1
546     GNU/Hurd systems are allowed ``/hurd`` and ``/servers`` directories
547     in the root filesystem.
549 9.1.1
550     Packages installing to architecture-specific subdirectories of
551     ``/usr/lib`` must use the value returned by
552     ``dpkg-architecture -qDEB_HOST_MULTIARCH``, not by
553     ``dpkg-architecture -qDEB_HOST_GNU_TYPE``; this is a path change on
554     i386 architectures and a no-op for other architectures.
556 virtual
557     ``mailx`` is now a virtual package provided by packages that install
558     ``/usr/bin/mailx`` and implement at least the POSIX-required
559     interface.
561 Version 3.9.1
562 -------------
564 Released July, 2010.
566 3.2.1
567     Date-based version components should be given as the four-digit
568     year, two-digit month, and then two-digit day, but may have embedded
569     punctuation.
572     Maintainer scripts must pass ``--package`` to ``dpkg-divert`` when
573     creating or removing diversions and must not use ``--local``.
575 4.10
576     Only ``dpkg-gencontrol`` supports variable substitution.
577     ``dpkg-genchanges`` (for ``*.changes``) and ``dpkg-source`` (for
578     ``*.dsc``) do not.
581     Architecture restrictions and wildcards are also allowed in binary
582     package relationships provided that the binary package is not
583     architecture-independent.
586     ``Conflicts`` and ``Breaks`` should only be used when there are file
587     conflicts or one package breaks the other, not just because two
588     packages provide similar functionality but don't interfere.
591     The SONAME of a library should change whenever the ABI of the
592     library changes in a way that isn't backward-compatible. It should
593     not change if the library ABI changes are backward-compatible.
594     Discourage bundling shared libraries together in one package.
597     Ada Library Information (``*.ali``) files must be installed
598     read-only.
600 8.6.1, 8.6.2, 8.6.5
601     Packages should normally not include a ``shlibs.local`` file since
602     we now have complete ``shlibs`` coverage.
604 8.6.3
605     The SONAME of a library may instead be of the form
606     ``name-major-version.so``.
608 10.2
609     Libtool ``.la`` files should not be installed for public libraries.
610     If they're required (for ``libltdl``, for instance), the
611     ``dependency_libs`` setting should be emptied. Library packages
612     historically including ``.la`` files must continue to include them
613     (with ``dependency_libs`` emptied) until all libraries that depend
614     on that library have removed or emptied their ``.la`` files.
616 10.2
617     Libraries no longer need to be built with ``-D_REENTRANT``, which
618     was an obsolete LinuxThreads requirement. Instead, say explicitly
619     that libraries should be built with threading support and to be
620     thread-safe if the library supports this.
622 10.4
623     ``/bin/sh`` scripts may assume that ``kill`` supports an argument of
624     ``-signal``, that ``kill`` and ``trap`` support the numeric signals
625     listed in the XSI extension, and that signal 13 (SIGPIPE) can be
626     trapped with ``trap``.
628 10.8
629     Use of ``/etc/logrotate.d/package`` for logrotate rules is now
630     recommended.
632 10.9
633     Control information files should be owned by ``root:root`` and
634     either mode 644 or mode 755.
636 11.4, 11.8.3, 11.8.4
637     Packages providing alternatives for ``editor``, ``pager``,
638     ``x-terminal-emulator``, or ``x-window-manager`` should also provide
639     a slave alternative for the corresponding manual page.
641 11.5
642     Cgi-bin executable files may be installed in subdirectories of
643     ``/usr/lib/cgi-bin`` and web servers should serve out executables in
644     those subdirectories.
646 12.5
647     The GPL version 1 is now included in common-licenses and should be
648     referenced from there instead of included in the ``copyright`` file.
650 Version 3.9.0
651 -------------
653 Released June, 2010.
655 4.4, 5.6.15
656     The required format for the date in a changelog entry and in the
657     Date control field is now precisely specified.
660     A control paragraph must not contain more than one instance of a
661     particular field name.
663 5.4, 5.5, 5.6.24
664     The ``Checksums-Sha1`` and ``Checksums-Sha256`` fields in ``*.dsc``
665     and ``*.changes`` files are now documented and recommended.
667 5.5, 5.6.16
668     The ``Format`` field of ``.changes`` files is now 1.8. The
669     ``Format`` field syntax for source package ``.dsc`` files allows a
670     subtype in parentheses, and it is used for a different purpose than
671     the ``Format`` field for ``.changes`` files.
673 5.6.2
674     The syntax of the ``Maintainer`` field is now must rather than
675     should.
677 5.6.3
678     The comma separating entries in ``Uploaders`` is now must rather
679     than should.
681 5.6.8, 7.1, 11.1.1
682     Architecture wildcards may be used in addition to specific
683     architectures in ``debian/control`` and ``*.dsc`` Architecture
684     fields, and in architecture restrictions in build relationships.
687     Maintainer scripts are no longer guaranteed to run with a
688     controlling terminal and must be able to fall back to noninteractive
689     behavior (debconf handles this). Maintainer scripts may abort if
690     there is no controlling terminal and no reasonable default for a
691     high-priority question, but should avoid this if possible.
693 7.3, 7.6.1
694     ``Breaks`` should be used with ``Replaces`` for moving files between
695     packages.
698     ``Breaks`` should normally be used instead of ``Conflicts`` for
699     transient issues and moving files between packages. New
700     documentation of when each should be used.
703     Use ``Conflicts`` with ``Provides`` if only one provider of a
704     virtual facility can be installed at a time.
707     All shared library development files are no longer required to be in
708     the ``-dev`` package, only be available when the ``-dev`` package is
709     installed. This allows the ``-dev`` package to be split as long as
710     it depends on the additional packages.
712 9.2.2
713     The UID range of user accounts is extended to 1000-59999.
715 9.3.2, 10.4
716     ``init.d`` scripts are a possible exception from the normal
717     requirement to use ``set -e`` in each shell script.
719 12.5
720     The UCB BSD license was removed from the list of licenses that
721     should be referenced from ``/usr/share/common-licenses/BSD``. It
722     should instead be included directly in ``debian/copyright``,
723     although it will still be in common-licenses for the time being.
725 debconf
726     ``SETTITLE`` is now documented (it has been supported for some
727     time). ``SETTITLE`` is like ``TITLE`` but takes a template instead
728     of a string to allow translation.
730 perl
731     perl-base now provides perlapi-abiname instead of a package based
732     solely on the Perl version. Perl packages must now depend on
733     perlapi-$Config{debian\_abi}, falling back on ``$Config{version}``
734     if ``$Config{debian_abi}`` is not set.
736 perl
737     Packages using ``Makefile.PL`` should use ``DESTDIR`` rather than
738     ``PREFIX`` to install into the package staging area. ``PREFIX`` only
739     worked due to a Debian-local patch.
741 Version 3.8.4
742 -------------
744 Released January, 2010.
746 9.1.1
747     An FHS exception has been granted for multiarch libraries.
748     Permitting files to instead be installed to ``/lib/triplet`` and
749     ``/usr/lib/triplet`` directories.
751 10.6
752     Packages may not contain named pipes and should instead create them
753     in postinst and remove them in prerm or postrm.
755 9.1.1
756     ``/sys`` and ``/selinux`` directories are explicitly allowed as an
757     exception to the FHS.
759 Version 3.8.3
760 -------------
762 Released August, 2009.
765     DEB\_\*\_ARCH\_CPU and DEB\_\*\_ARCH\_OS variables are now
766     documented and recommended over GNU-style variables for that
767     information.
769 5.6.8
770     Source package Architecture fields may contain *all* in combination
771     with other architectures. Clarify when *all* and *any* may be used
772     in different versions of the field.
774 5.6.14
775     The Debian archive software does not support uploading to multiple
776     distributions with one ``*.changes`` file.
778 5.6.19
779     The Binary field may span multiple lines.
781 10.2
782     Shared library packages are no longer allowed to install libraries
783     in a non-standard location and modify ``ld.so.conf``. Packages
784     should either be installed in a standard library directory or
785     packages using them should be built with RPATH.
787 11.8.7
788     Installation directories for X programs have been clarified.
789     Packages are no longer required to pre-depend on x11-common before
790     installing into ``/usr/include/X11`` and ``/usr/lib/X11``.
792 12.1
793     Manual pages are no longer required to contain only characters
794     representable in the legacy encoding for that language.
796 12.1
797     Localized man pages should either be kept up-to-date with the
798     original version or warn that they're not up-to-date, either with
799     warning text or by showing missing or changed portions in the
800     original language.
802 12.2
803     install-info is now handled via triggers so packages no longer need
804     to invoke it in maintainer scripts. Info documents should now have
805     directory sections and entries in the document. Packages containing
806     info documents should add a dependency to support partial upgrades.
808 perl
809     The requirement for Perl modules to have a versioned Depend and
810     Build-Depend on ``perl >= 5.6.0-16`` has been removed.
812 Version 3.8.2
813 -------------
815 Released June, 2009.
818     The list of archive sections has been significantly expanded. See
819     `this debian-devel-announce
820     message <http://lists.debian.org/debian-devel-announce/2009/03/msg00010.html>`__
821     for the list of new sections and rules for how to categorize
822     packages.
824 3.9.1
825     All packages must use debconf or equivalent for user prompting,
826     though essential packages or their dependencies may also fall back
827     on other methods.
829 5.6.1
830     The requirements for source package names are now explicitly spelled
831     out.
834     Legacy XFree86 servers no longer get a special exception from the
835     FHS permitting ``/etc/X11/XF86Config-4``.
837 9.1.3
838     Removed obsolete dependency requirements for packages that use
839     ``/var/mail``.
841 11.8.5
842     Speedo fonts are now deprecated. The X backend was disabled starting
843     in lenny.
845 12.5
846     The GNU Free Documentation License version 1.3 is included in
847     common-licenses and should be referenced from there.
849 Version 3.8.1
850 -------------
852 Released March, 2009.
855     Care should be taken when adding functionality to essential and such
856     additions create an obligation to support that functionality in
857     essential forever unless significant work is done.
860     Changelog files must be encoded in UTF-8.
863     Some format requirements for changelog files are now "must" instead
864     of "should."
866 4.4.1
867     Alternative changelog formats have been removed. Debian only
868     supports one changelog format for the Debian Archive.
870 4.9.1
871     New nocheck option for DEB\_BUILD\_OPTIONS indicating any build-time
872     test suite provided by the package should not be run.
875     All control files must be encoded in UTF-8.
878     ``debian/control`` allows comment lines starting with # with no
879     preceding whitespace.
882     Init scripts ending in .sh are not handled specially. They are not
883     sourced and are not guaranteed to be run by ``/bin/sh`` regardless
884     of the #! line. This brings Policy in line with the long-standing
885     behavior of the init system in Debian.
887 9.3.2
888     The start action of an init script must exit successfully and not
889     start the daemon again if it's already running.
891 9.3.2
892     ``/var/run`` and ``/var/lock`` may be mounted as temporary
893     filesystems, and init scripts must therefore create any necessary
894     subdirectories dynamically.
896 10.4
897     ``/bin/sh`` scripts may assume that local can take multiple variable
898     arguments and supports assignment.
900 11.6
901     User mailboxes may be mode 600 and owned by the user rather than
902     mode 660, owned by user, and group mail.
904 Version 3.8.0
905 -------------
907 Released June, 2008.
909 2.4, 3.7
910     The base section has been removed. contrib and non-free have been
911     removed from the section list; they are only categories. The base
912     system is now defined by priority.
915     If ``dpkg-source -x`` doesn't provide the source that will be
916     compiled, a debian/rules patch target is recommended and should do
917     whatever else is necessary.
919 4.9.1, 10.1
920     Standardized the format of DEB\_BUILD\_OPTIONS. Specified permitted
921     characters for tags, required that tags be whitespace-separated,
922     allowed packages to assume non-conflicting tags, and required
923     unknown flags be ignored.
925 4.9.1
926     Added parallel=n to the standardized DEB\_BUILD\_OPTIONS tags,
927     indicating that a package should be built using up to n parallel
928     processes if the package supports it
930 4.13
931     Debian packages should not use convenience copies of code from other
932     packages unless the included package is explicitly intended to be
933     used that way.
935 4.14
936     If dpkg-source -x doesn't produce source ready for editing and
937     building with dpkg-buildpackage, packages should include a
938     ``debian/README.source`` file explaining how to generate the patched
939     source, add a new modification, and remove an existing modification.
940     This file may also be used to document packaging a new upstream
941     release and any other complexity of the Debian build process.
943 5.6.3
944     The Uploaders field in debian/control may be wrapped.
946 5.6.12
947     An empty Debian revision is equivalent to a Debian revision of 0 in
948     a version number.
950 5.6.23
951     New Homepage field for upstream web sites.
953 6.5, 6.6, 7
954     The Breaks field declares that this package breaks another and
955     prevents installation of the breaking package unless the package
956     named in Breaks is deconfigured first. This field should not be used
957     until the dpkg in Debian stable supports it.
959 8.1, 8.2
960     Clarify which files should go into a shared library package, into a
961     separate package, or into the -dev package. Suggest -tools instead
962     of -runtime for runtime support programs, since that naming is more
963     common in Debian.
966     Files in ``/etc/cron.{hourly,daily,weekly,monthly}`` must be
967     configuration files (upgraded from should). Mention the hourly
968     directory.
970 11.8.6
971     Packages providing ``/etc/X11/Xresources`` files need not conflict
972     with ``xbase (<< 3.3.2.3a-2)``, which is long-obsolete.
974 12.1
975     Manual pages in locale-specific directories should use either the
976     legacy encoding for that directory or UTF-8. Country names should
977     not be included in locale-specific manual page directories unless
978     indicating a significant difference in the language. All characters
979     in the manual page source should be representable in the legacy
980     encoding for a locale even if the man page is encoded in UTF-8.
982 12.5
983     The Apache 2.0 license is now in common-licenses and should be
984     referenced rather than quoted in ``debian/copyright``.
986 12.5
987     Packages in contrib and non-free should state in the copyright file
988     that the package is not part of Debian GNU/Linux and briefly explain
989     why.
991 debconf
992     Underscore (``_``) is allowed in debconf template names.
994 Version 3.7.3
995 -------------
997 Released December, 2007.
999 5.6.12
1000     Package version numbers may contain tildes, which sort before
1001     anything, even the end of a part.
1003 10.4
1004     Scripts may assume that ``/bin/sh`` supports local (at a basic
1005     level) and that its test builtin (if any) supports -a and -o binary
1006     logical operators.
1009     The substitution variable ${binary:Version} should be used in place
1010     of ${Source-Version} for dependencies between packages of the same
1011     library.
1013 menu policy
1014     Substantial reorganization and renaming of sections in the Debian
1015     menu structure. Packages with menu entries should be reviewed to see
1016     if the menu section has been renamed or if one of the new sections
1017     would be more appropriate.
1019 5.6.1
1020     The Source field in a .changes file may contain a version number in
1021     parentheses.
1023 5.6.17
1024     The acceptable values for the Urgency field are low, medium, high,
1025     critical, or emergency.
1028     The shlibs file now allows an optional type field, indicating the
1029     type of package for which the line is valid. The only currently
1030     supported type is udeb, used with packages for the Debian Installer.
1032 3.9.1
1033     Packages following the Debian Configuration management specification
1034     must allow for translation of their messages by using a
1035     gettext-based system such as po-debconf.
1037 12.5
1038     GFDL 1.2, GPL 3, and LGPL 3 are now in common-licenses and should be
1039     referenced rather than quoted in debian/copyright.
1041 Version 3.7.2.2
1042 ---------------
1044 Released October, 2006.
1046 This release broke the normal rule against introducing normative changes
1047 without changing the major patch level.
1050     Maintainer scripts must not be world writeable (up from a should to
1051     a must)
1053 Version 3.7.2
1054 -------------
1056 Released April, 2006.
1058 11.5
1059     Revert the cgi-lib change.
1061 Version 3.7.1
1062 -------------
1064 Released April, 2006.
1066 10.2
1067     It is now possible to create shared libraries without relocatable
1068     code (using -fPIC) in certain exceptional cases, provided some
1069     procedures are followed, and for creating static libraries with
1070     relocatable code (again, using -fPIC). Discussion on
1071     debian-devel@lists.debian.org, getting a rough consensus, and
1072     documenting it in README.Debian constitute most of the process.
1074 11.8.7
1075     Packages should install any relevant files into the directories
1076     ``/usr/include/X11/`` and ``/usr/lib/X11/``, but if they do so, they
1077     must pre-depend on ``x11-common (>= 1:7.0.0)``
1079 Version 3.7.0
1080 -------------
1082 Released April, 2006.
1084 11.5
1085     Packages shipping web server CGI files are expected to install them
1086     in ``/usr/lib/cgi-lib/`` directories. This location change perhaps
1087     should be documented in NEWS
1089 11.5
1090     Web server packages should include a standard scriptAlias of cgi-lib
1091     to ``/usr/lib/cgi-lib``.
1093 9.1.1
1094     The version of FHS mandated by policy has been upped to 2.3. There
1095     should be no changes required for most packages, though new top
1096     level directories ``/media``, ``/srv``, etc. may be of interest.
1098 5.1, 5.6.3
1099     All fields, apart from the Uploaders field, in the control file are
1100     supposed to be a single logical line, which may be spread over
1101     multiple physical lines (newline followed by space is elided).
1102     However, any parser for the control file must allow the Uploaders
1103     field to be spread over multiple physical lines as well, to prepare
1104     for future changes.
1106 10.4
1107     When scripts are installed into a directory in the system PATH, the
1108     script name should not include an extension that denotes the
1109     scripting language currently used to implement it.
1111 9.3.3.2
1112     packages that invoke initscripts now must use invoke-rc.d to do so
1113     since it also pays attention to run levels and other local
1114     constraints.
1116 11.8.5.2, 11.8.7, etc
1117     We no longer use ``/usr/X11R6``, since we have migrated away to
1118     using Xorg paths. This means, for one thing, fonts live in
1119     ``/usr/share/fonts/X11/`` now, and ``/usr/X11R6`` is gone.
1121 Version 3.6.2
1122 -------------
1124 Released June, 2005.
1126     Recommend doc-base, and not menu, for registering package
1127     documentation.
1130     Run time support programs should live in subdirectories of
1131     ``/usr/lib/`` or ``/usr/share``, and preferably the shared lib is
1132     named the same as the package name (to avoid name collisions).
1134 11.5
1135     It is recommended that HTTP servers provide an alias /images to
1136     allow packages to share image files with the web server
1138 Version 3.6.1
1139 -------------
1141 Released August, 2003.
1143 3.10.1
1144     Prompting the user should be done using debconf. Non debconf user
1145     prompts are now deprecated.
1147 Version 3.6.0
1148 -------------
1150 Released July, 2003.
1152 Restructuring caused shifts in section numbers and bumping of the
1153 minor version number.
1155 Many packaging manual appendices that were integrated into policy
1156 sections are now empty, and replaced with links to the Policy. In
1157 particular, the appendices that included the list of control fields
1158 were updated (new fields like Closes, Changed-By were added) and the
1159 list of fields for each of control, .changes and .dsc files is now
1160 in Policy, and they're marked mandatory, recommended or optional
1161 based on the current practice and the behavior of the deb-building
1162 tool-chain.
1164 Elimination of needlessly deep section levels, primarily in the
1165 chapter Debian Archive, from which two new chapters were split out,
1166 Binary packages and Source packages. What remained was reordered
1167 properly, that is, some sects became sects etc.
1169 Several sections that were redundant, crufty or simply not designed
1170 with any sort of vision, were rearranged according to the formula
1171 that everything should be either in the same place or properly
1172 interlinked. Some things remained split up between different
1173 chapters when they talked about different aspects of files: their
1174 content, their syntax, and their placement in the file system. In
1175 particular, see the new sections about changelog files.
1177 menu policy
1178     Added Games/Simulation and Apps/Education to menu sub-policy
1180 C.2.2
1181     Debian changelogs should be UTF-8 encoded.
1183 10.2
1184     shared libraries must be linked against all libraries that they use
1185     symbols from in the same way that binaries are.
1188     build-depends-indep need not be satisfied during clean target.
1190 Version 3.5.10
1191 --------------
1193 Released May, 2003.
1195 11.8.3
1196     packages providing the x-terminal-emulator virtual package ought to
1197     ensure that they interpret the command line exactly like xterm does.
1199 11.8.4
1200     Window managers compliant with the Window Manager Specification
1201     Project may add 40 points for ranking in the alternatives
1203 Version 3.5.9
1204 -------------
1206 Released March, 2003.
1208 3.4.2
1209     The section describing the Description: package field once again has
1210     full details of the long description format.
1213     Clarified that if a package has non-build-essential
1214     build-dependencies, it should have them listed in the Build-Depends
1215     and related fields (i.e. it's not merely optional).
1217 9.3.2
1218     When asked to restart a service that isn't already running, the init
1219     script should start the service.
1221 12.6
1222     If the purpose of a package is to provide examples, then the example
1223     files can be installed into ``/usr/share/doc/package`` (rather than
1224     ``/usr/share/doc/package/examples``).
1226 Version 3.5.8
1227 -------------
1229 Released November, 2002.
1231 12.7
1232     It is no longer necessary to keep a log of changes to the upstream
1233     sources in the copyright file. Instead, all such changes should be
1234     documented in the changelog file.
1237     Build-Depends, Build-Conflicts, Build-Depends-Indep, and
1238     Build-Conflicts-Indep must also be satisfied when the clean target
1239     is called.
1241 menu policy
1242     A new Apps/Science menu section is available
1244 debconf policy
1245     debconf specification cleared up, various changes.
1247 12.1
1248     It is no longer recommended to create symlinks from nonexistent
1249     manual pages to undocumented(7). Missing manual pages for programs
1250     are still a bug.
1252 Version 3.5.7
1253 -------------
1255 Released August, 2002.
1257     Packages no longer have to ask permission to call MAKEDEV in
1258     postinst, merely notifying the user ought to be enough.
1260 2.2.4
1261     cryptographic software may now be included in the main archive.
1264     task packages are no longer permitted; tasks are now created by a
1265     special Tasks: field in the control file.
1267 11.8.4
1268     window managers that support netwm can now add 20 points when they
1269     add themselves as an alternative for ``/usr/bin/x-window-manager``
1271 10.1
1272     The default compilation options have now changed, one should provide
1273     debugging symbols in all cases, and optionally step back
1274     optimization to -O0, depending on the DEB\_BUILD\_OPTIONS
1275     environment variable.
1277 7.6, 4.8
1278     Added mention of build-arch, build-indep, etc, in describing the
1279     relationships with Build-Depends, Build-Conflicts,
1280     Build-Depends-Indep, and Build-Conflicts-Indep. May need to
1281     review the new rules.
1284     Changed rules on how, and when, to invoke ldconfig in maintainer
1285     scripts. Long rationale.
1287 *Added the last note in 3.5.6 upgrading checklist item regarding build
1288 rules, please see below*
1290 Version 3.5.6
1291 -------------
1293 Released July, 2001.
1296     Emacs and TeX are no longer mandated by policy to be priority
1297     standard packages
1299 11.5
1300     Programs that access docs need to do so via ``/usr/share/doc``, and
1301     not via ``/usr/doc/`` as was the policy previously
1303 12.3
1304     Putting documentation in ``/usr/doc`` versus ``/usr/share/doc`` is
1305     now a "serious" policy violation.
1307 11.5
1308     For web servers, one should not provide non-local access to the
1309     ``/usr/share/doc`` hierarchy. If one can't provide access controls
1310     for the http://localhost/doc/ directory, then it is preferred that
1311     one ask permission to expose that information during the install.
1314     There are new rules for build-indep/build-arch targets and there is
1315     a new Build-Depend-Indep semantic.
1317 Version 3.5.5
1318 -------------
1320 Released May, 2001.
1322 12.1
1323     Manpages should not rely on header information to have alternative
1324     manpage names available; it should only use symlinks or .so pages to
1325     do this
1327     *Clarified note in 3.5.3.0 upgrading checklist regarding examples
1328     and templates: this refers only to those examples used by scripts;
1329     see section 10.7.3 for the whole story*
1331     Included a new section 10.9.1 describing the use of
1332     dpkg-statoverride; this does not have the weight of policy
1334     Clarify Standards-Version: you don't need to rebuild your packages
1335     just to change the Standards-Version!
1337 10.2
1338     Plugins are no longer bound by all the rules of shared libraries
1340 X Windows related things:
1341     11.8.1
1342         Clarification of priority levels of X Window System related
1343         packages
1345     11.8.3
1346         Rules for defining x-terminal-emulator improved
1348     11.8.5
1349         X Font policy rewritten: you must read this if you provide fonts
1350         for the X Window System
1352     11.8.6
1353         Packages must not ship ``/usr/X11R6/lib/X11/app-defaults/``
1355     11.8.7
1356         X-related packages should usually use the regular FHS locations;
1357         imake-using packages are exempted from this
1359     11.8.8
1360         OpenMotif linked binaries have the same rules as
1361         OSF/Motif-linked ones
1363 Version 3.5.4
1364 -------------
1366 Released April, 2001.
1368 11.6
1369     The system-wide mail directory is now /var/mail, no longer
1370     /var/spool/mail. Any packages accessing the mail spool should access
1371     it via /var/mail and include a suitable Depends field;
1373 11.9; perl-policy
1374     The perl policy is now part of Debian policy proper. Perl programs
1375     and modules should follow the current Perl policy
1377 Version 3.5.3
1378 -------------
1380 Released April, 2001.
1383     Build-Depends arch syntax has been changed to be less ambiguous.
1384     This should not affect any current packages
1386 10.7.3
1387     Examples and templates files for use by scripts should now live in
1388     ``/usr/share/<package>`` or ``/usr/lib/<package>``, with symbolic
1389     links from ``/usr/share/doc/<package>/examples`` as needed
1391 Version 3.5.2
1392 -------------
1394 Released February, 2001.
1396 11.8.6
1397     X app-defaults directory has moved from
1398     ``/usr/X11R6/lib/X11/app-defaults`` to ``/etc/X11/app-defaults``
1400 Version 3.5.1
1401 -------------
1403 Released February, 2001.
1406     dpkg-shlibdeps now uses objdump, so shared libraries have to be run
1407     through dpkg-shlibdeps as well as executables
1409 Version 3.5.0
1410 -------------
1412 Released January, 2001.
1414 11.8.5
1415     Font packages for the X Window System must now declare a dependency
1416     on ``xutils (>= 4.0.2)``
1418 Version 3.2.1.1
1419 ---------------
1421 Released January, 2001.
1423 This release broke the normal rule against introducing normative changes
1424 without changing the major patch level.
1426 9.3.2
1427     Daemon startup scripts in ``/etc/init.d/`` should not contain
1428     modifiable parameters; these should be moved to a file in
1429     ``/etc/default/``
1431 12.3
1432     Files in ``/usr/share/doc`` must not be referenced by any program.
1433     If such files are needed, they must be placed in
1434     ``/usr/share/<package>/``, and symbolic links created as required in
1435     ``/usr/share/doc/<package>/``
1437     Much of the packaging manual has now been imported into the policy
1438     document
1440 Version 3.2.1
1441 -------------
1443 Released August, 2000.
1445 11.8.1
1446     A package of priority standard or higher may provide two binaries,
1447     one compiled with support for the X Window System, and the other
1448     without
1450 Version 3.2.0
1451 -------------
1453 Released August, 2000.
1455 10.1
1456     By default executables should not be built with the debugging option
1457     -g. Instead, it is recommended to support building the package with
1458     debugging information optionally.
1460 12.8
1461     Policy for packages where the upstream uses HTML changelog files has
1462     been expanded. In short, a plain text changelog file should always
1463     be generated for the upstream changes
1465     Please note that the new release of the X window system (3.2) shall
1466     probably need sweeping changes in policy
1468     Policy for packages providing the following X-based features has
1469     been codified:
1471     11.8.2
1472         X server (virtual package xserver)
1474     11.8.3
1475         X terminal emulator (virtual package x-terminal-emulator)
1477     11.8.4
1478         X window manager (virtual package x-window-manager, and
1479         ``/usr/bin/x-window-manager`` alternative, with priority
1480         calculation guidelines)
1482     12.8.5
1483         X fonts (this section has been written from scratch)
1485     11.8.6
1486         X application defaults
1488 11.8.7
1489     Policy for packages using the X Window System and FHS issues has
1490     been clarified;
1492 11.7.3
1493     No package may contain or make hard links to conffiles
1496     Noted that newer dpkg versions do not require extreme care in always
1497     creating the shared lib before the symlink, so the unpack order be
1498     correct
1500 Version 3.1.1
1501 -------------
1503 Released November, 1999.
1506     Correction to semantics of architecture lists in Build-Depends etc.
1507     Should not affect many packages
1509 Version 3.1.0
1510 -------------
1512 Released October, 1999.
1514 defunct
1515     ``/usr/doc/<package>`` has to be a symlink pointing to
1516     ``/usr/share/doc/<package>``, to be maintained by postinst and prerm
1517     scripts.
1519 7.1, 7.6
1520     Introduced source dependencies (Build-Depends, etc.)
1522 9.3.4
1523     ``/etc/rc.boot`` has been deprecated in favour of ``/etc/rcS.d``.
1524     (Packages should not be touching this directory, but should use
1525     update-rc.d instead)
1527 9.3.3
1528     update-rc.d is now the *only* allowable way of accessing the
1529     ``/etc/rc?.d/[SK]??*`` links. Any scripts which manipulate them
1530     directly must be changed to use update-rc.d instead. (This is
1531     because the file-rc package handles this information in an
1532     incompatible way.)
1534 12.7
1535     Architecture-specific examples go in ``/usr/lib/<package>/examples``
1536     with symlinks from ``/usr/share/doc/<package>/examples/*`` or from
1537     ``/usr/share/doc/<package>/examples`` itself
1539 9.1.1
1540     Updated FHS to a 2.1 draft; this reverts ``/var/state`` to
1541     ``/var/lib``
1543 9.7; mime-policy
1544     Added MIME sub-policy document
1546 12.4
1547     VISUAL is allowed as a (higher priority) alternative to EDITOR
1549 11.6
1550     Modified liblockfile description, which affects mailbox-accessing
1551     programs. Please see the policy document for details
1553 12.7
1554     If a package provides a changelog in HTML format, a text-only
1555     version should also be included. (Such a version may be prepared
1556     using ``lynx -dump -nolist``.)
1558 3.2.1
1559     Description of how to handle version numbers based on dates added
1561 Version 3.0.1
1562 -------------
1564 Released July, 1999.
1566 10.2
1567     Added the clarification that the .la files are essential for the
1568     packages using libtool's libltdl library, in which case the .la
1569     files must go in the run-time library package
1571 Version 3.0.0
1572 -------------
1574 Released June, 1999.
1577     Debian formally moves from the FSSTND to the FHS. This is a major
1578     change, and the implications of this move are probably not all
1579     known.
1582     Only 3 digits of the Standards version need be included in control
1583     files, though all four digits are still permitted.
1585 12.6
1586     The location of the GPL has changed to
1587     ``/usr/share/common-licenses``. This may require changing the
1588     copyright files to point to the correct location of the GPL and
1589     other major licenses
1591 10.2
1592     Packages that use libtool to create shared libraries must include
1593     the .la files in the -dev packages
1595 10.8
1596     Use logrotate to rotate log files
1598 now 11.8
1599     section 5.8 has been rewritten (Programs for the X Window System)
1601 9.6; menu-policy
1602     There is now an associated menu policy, in a separate document, that
1603     carries the full weight of Debian policy
1605 11.3
1606     Programs which need to modify the files ``/var/run/utmp``,
1607     ``/var/log/wtmp`` and ``/var/log/lastlog`` must be installed setgid
1608     utmp
1610 Version 2.5.0
1611 -------------
1613 Released October, 1998.
1615 *Please note that section numbers below this point may not match the
1616 current Policy Manual.*
1618 -  Rearranged the manual to create a new Section 4, Files
1620    -  Section 3.3 ("Files") was moved to Section 4. The Sections that
1621       were Section 4 and Section 5 were moved down to become Section 5
1622       and Section 6.
1624    -  What was Section 5.5 ("Log files") is now a subsection of the new
1625       Section 4 ("Files"), becoming section 4.8, placed after
1626       "Configuration files", moving the Section 4.8 ("Permissions and
1627       owners") to Section 4.9. All subsections of the old Section 5
1628       after 5.5 were moved down to fill in the number gap.
1630 -  Modified the section about changelog files to accommodate upstream
1631    changelogs which were formatted as HTML. These upstream changelog
1632    files should now be accessible as
1633    ``/usr/doc/package/changelog.html.gz``
1635 -  Symlinks are permissible to link the real, or upstream, changelog
1636    name to the Debian mandated name.
1638 -  Clarified that HTML documentation should be present in some package,
1639    though not necessarily the main binary package.
1641 -  Corrected all references to the location of the copyright files. The
1642    correct location is ``/usr/doc/package/copyright``
1644 -  Ratified the architecture specification strings to cater to the HURD.
1646 Version 2.4.1
1647 -------------
1649 Released April, 1998.
1651 Updated section 3.3.5 Symbolic links
1652     symbolic links within a toplevel directory should be relative,
1653     symbolic links between toplevel directories should be absolute (cf.,
1654     Policy Weekly Issue#6, topic 2)
1656 Updated section 4.9 Games
1657     manpages for games should be installed in ``/usr/man/man6`` (cf.,
1658     Policy Weekly Issue#6, topic 3)
1660 Updated Chapter 12 Shared Libraries
1661     ldconfig must be called in the postinst script if the package
1662     installs shared libraries (cf., Policy Weekly Issue #6,
1663     fixes:bug#20515)
1665 Version 2.4.0
1666 -------------
1668 Released January, 1998
1670 Updated section 3.3.4 Scripts
1671     -  /bin/sh may be any POSIX compatible shell
1673     -  scripts including bashisms have to specify ``/bin/bash`` as
1674        interpreter
1676     -  scripts which create files in world-writable directories (e.g.,
1677        in ``/tmp``) should use tempfile or mktemp for creating the
1678        directory
1680 Updated section 3.3.5 Symbolic Links
1681     symbolic links referencing compressed files must have the same file
1682     extension as the referenced file
1684 Updated section 3.3.6 Device files
1685     ``/dev/tty*`` serial devices should be used instead of ``/dev/cu*``
1687 Updated section 3.4.2 Writing the scripts in ``/etc/init.d``
1688     -  all ``/etc/init.d`` scripts have to provide the following
1689        options: start, stop, restart, force-reload
1691     -  the reload option is optional and must never stop and restart the
1692        service
1694 Updated section 3.5 Cron jobs
1695     cron jobs that need to be executed more often than daily should be
1696     installed into ``/etc/cron.d``
1698 Updated section 3.7 Menus
1699     removed section about how to register HTML docs to \`menu' (the
1700     corresponding section in 4.4, Web servers and applications, has been
1701     removed in policy 2.2.0.0 already, so this one was obsolete)
1703 New section 3.8 Keyboard configuration
1704     details about how the backspace and delete keys should be handled
1706 New section 3.9 Environment variables
1707     no program must depend on environment variables to get a reasonable
1708     default configuration
1710 New section 4.6 News system configuration
1711     ``/etc/news/organization`` and ``/etc/news/server`` should be
1712     supported by all news servers and clients
1714 Updated section 4.7 Programs for the X Window System
1715     -  programs requiring a non-free Motif library should be provided as
1716        foo-smotif and foo-dmotif package
1718     -  if lesstif works reliably for such program, it should be linked
1719        against lesstif and not against a non-free Motif library
1721 Updated section 4.9 Games
1722     games for X Windows have to be installed in ``/usr/games``, just as
1723     non-X games
1725 Version 2.3.0
1726 -------------
1728 Released September, 1997.
1730 -  new section \`4.2 Daemons' including rules for ``/etc/services``,
1731    ``/etc/protocols``, ``/etc/rpc``, and ``/etc/inetd.conf``
1733 -  updated section about \`Configuration files': packages may not touch
1734    other packages' configuration files
1736 -  MUAs and MTAs have to use liblockfile
1738 Version 2.2.0
1739 -------------
1741 Released July, 1997.
1743 -  added section 4.1 \`Architecture specification strings': use
1744    <arch>-linux where <arch> is one of the following: i386, alpha, arm,
1745    m68k, powerpc, sparc.
1747 -  detailed rules for ``/usr/local``
1749 -  user ID's
1751 -  editor/pager policy
1753 -  cron jobs
1755 -  device files
1757 -  don't install shared libraries as executable
1759 -  app-defaults files may not be conffiles
1761 Version 2.1.3
1762 -------------
1764 Released March, 1997.
1766 -  two programs with different functionality must not have the same name
1768 -  "Webstandard 3.0"
1770 -  "Standard for Console Messages"
1772 -  Libraries should be compiled with ``-D_REENTRANT``
1774 -  Libraries should be stripped with ``strip --strip-unneeded``
1776 Version 2.1.2
1777 -------------
1779 Released November, 1996.
1781 -  Some changes WRT shared libraries
1783 Version 2.1.1
1784 -------------
1786 Released September, 1996.
1788 -  No hard links in source packages
1790 -  Do not use ``dpkg-divert`` or ``update-alternatives`` without
1791    consultation
1793 -  Shared libraries must be installed stripped
1795 Version 2.1.0
1796 -------------
1798 Released August, 1996.
1800 -  Upstream changelog must be installed too