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.
The best way to call the init script in a logrotate example is
debated and will be handled in another bug. In the meantime, avoid
the problem entirely by not calling the init script.
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.
Require /bin/sh support XSI extensions for kill and trap
Due to the widespread use of these extensions by scripts already in
the archive, require that /bin/sh support the XSI extensions for kill
and trap which permit kill -<signal> and use of numeric signals for
well-known signals. Also permit trapping of SIGPIPE by signal number,
since this is done by well-known portable shell scripts like libtool.
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.
Recommend that files installed in /etc/logrotate.d be named after
the package and use missingok in the example to demonstrate avoiding
errors if the package is removed but not purged.
Clarify Maintainer, make Uploaders mandatory for team maintainers
Clarify the duties of the maintainer and state that the maintainer's
e-mail address must accept non-spam BTS mail and automated mail from
the project software. Rephrase the package orphaning; this does not
only happen when someone retires from the project. Require the
Uploaders field for a team-maintained package and, in that case,
require that it contains at least one human and personal address.
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.
Russ Allbery [Mon, 21 Jun 2010 16:29:32 +0000 (09:29 -0700)]
Document debconf SETTITLE command
Document the SETTITLE command in the debconf policy. Inclusion of this
command should not pose any problems as it has been supported since 2003
(debconf version 1.3.22).
Russ Allbery [Wed, 16 Jun 2010 18:00:04 +0000 (11:00 -0700)]
Significantly rework the discussion of Breaks and Conflicts
Recommend Breaks over Conflicts for most purposes. List the places
Breaks should be used and the places Conflicts should be used. Add
Breaks to the example in Replaces, and add a footnote explaining
why Breaks is normally required along with Replaces when files are
moving between packages. Add additional discussion of conflicting
with a virtual package.
Russ Allbery [Sun, 13 Jun 2010 20:14:43 +0000 (13:14 -0700)]
Tighten requirements for maintainer-like fields
The syntax of Maintainer is a must, not a should. The comma
separator in Uploaders is a must, not a should. Now allow people
to use multi-line Uploaders fields freely. Be explicit that the
Changed-By field has the same syntax as Maintainer and be clearer
about what identity goes here.