Incorporate maintainer script updates from Jonathan Nieder's review
Clarify and in some cases fix the summaries of what maintainer scripts
can rely upon based on a comprehensive review from Jonathan Nieder,
and include a wording fix from Ben Finney.
Add detailed breakdown of what maintainer scripts can assume
For each possible action in a maintainer script, state what the
maintainer script can assume in that case. Remove references to
using Pre-Depends for controlling what's available during package
removal. Be clear that no postrm actions can rely on dependencies
being available. Remove references saying that prerm can rely on
dependencies being configured.
Alternatives should have slave alternatives for manual pages
Require that the alternatives for editor, pager, x-terminal-emulator,
and x-window-manager have slave alternatives pointing to the appropriate
manual page.
Revise the section discussing version numbers based on dates
State the important requirement (year, month, date, all numeric)
and confine the discussion just to the date portion of the version
number. Don't require that Debian packages avoid punctuation in
the date, but caution against use of -.
Update the wording of the proposed patch based on suggestions from
Raphael Hertzog and Steve Langasek. Remove the footnote discussing
shared libraries without versioning information, since they're not
Policy-compliant in other ways and are all weird special cases.
Rephrase the footnote about shared library file naming conventions.
Add a reference to the deb-symbols man page.
Overhaul the documentation of shared library SONAMEs
Provide much more background information about shared library
versioning and how the different symlinks are used. Clearly
require the SONAME and corresponding binary package name to be
changed if the library ABI changes. Add more cautions to the
practice of bundling multiple shared libraries together in one
package. Clarify that the shared library section does not
apply to private libraries and loadable modules.
Architecture restrictions are supported for binary packages
Document architecture restrictions for binary relationship fields
as well as build relationships, with their limitation that they're
only valid in source package control files and are used to generate
the fields in the binary package.
Introduce control information files, which refer to the members of
the control.tar.gz part of the .deb, and change terminology to be
consistent about that term, control files, and control fields.
Breaks/Conflicts should not be used unless necessary
State explicitly that Breaks and Conflicts should only be used where
needed, and should not be used if two packages merely provide similar
functionality.
Remove obsolete -D_REENTRANT requirement, ask for thread support
Remove the obsolete requirement that libraries be built with
-D_REENTRANT, as this no longer does anything significant in current
versions of glibc. Instead, state directly that libraries should be
built with threading support and to be thread-safe if this is
supported.
Remove the instructions for how to create shlibs.local files and the
encouragement to do so if one runs into errors with dpkg-shlibdeps, since
the archive coverage for shlibs is now complete and writing a shlibs.local
file is unlikely to be an appropriate solution to one's problem.
* Revise the footnote discussing shlibs creation to not talk about the
switch to objdump as if it were a new innovation and to explicitly
mention the NEEDED attribute as the source of dependency information.
Also fix markup, formatting, indentation, and phrasing in multiple
places.
Russ Allbery [Wed, 30 Jun 2010 18:02:54 +0000 (11:02 -0700)]
Rewrite requirements around libtool .la file handling
State that .la files should normally not be included in Debian
packages, with special exceptions for libraries loaded by libltdl and
for .la files on which other .la files may depend. State that
dependency_libs should be emptied if the .la files have to be
retained. Exclude non-public libraries and loadable modules from
these requirements.
Russ Allbery [Tue, 29 Jun 2010 17:43:06 +0000 (10:43 -0700)]
Clarify the banned dependencies between main and non-main
* Add Pre-Depends and Build-Depends-Indep to the relationships not
allowed from main to contrib or non-free and mention that such
relationships are okay if the non-free package is only an
alternative. Thanks, Raphael Geissert. (Closes: #587279)
Russ Allbery [Sat, 26 Jun 2010 22:32:01 +0000 (15:32 -0700)]
Further minor updates around the Format field description
Be clear which control files consist of a single paragraph and use
consistent terminology. Be more consistent about <file> markup. Use
an SGML entity for the .changes file version to avoid repeating it.
Russ Allbery [Tue, 22 Jun 2010 17:07:18 +0000 (10:07 -0700)]
Further revisions to the Format update
Drop historical information about the version changes in .changes
files. It doesn't seem useful at this point. Specify the format
of Format for source packages separately since referring to the
version format with exceptions and additions is more confusing and
it's not really a version in the same sense. Add the full list of
supported source package formats in a footnote. Add a bit more
explanation for how the source package format is used.
Charles Plessy [Sat, 29 May 2010 03:49:34 +0000 (12:49 +0900)]
Clarification of the Format field in control files -- patch for #547272.
The Format field has a different meaning for Debian source control files and
Debian changes files. This patch :
- documents the use and syntax of the Format field for these two types
of control files.
- Specifies the format 1.8 of Debian changes files, adds descriptions for
the Checksums-Sha1 and Checksums-Sha256 files, and provides some history
for the Closes, Changed-By and Maintainer fields.