summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/ChangeLog147
-rw-r--r--doc/Makefile.am110
-rw-r--r--doc/Makefile.in93
-rw-r--r--doc/changelog58
-rw-r--r--doc/deb-old.52
-rw-r--r--doc/developer-keys.pgpbin32541 -> 0 bytes
-rw-r--r--doc/internals.sgml552
-rw-r--r--doc/lout.li1123
-rw-r--r--doc/manuals-version4
-rw-r--r--doc/obsolete/dependency-ordering.txt97
-rw-r--r--doc/obsolete/descriptions.txt112
-rw-r--r--doc/obsolete/disappear-replace.txt44
-rw-r--r--doc/obsolete/diversions.txt (renamed from doc/obsolete/diversions.text)0
-rw-r--r--doc/obsolete/dpkg.texi101
-rw-r--r--doc/obsolete/dselect-methods.txt124
-rw-r--r--doc/obsolete/essential-flag.txt43
-rw-r--r--doc/obsolete/maintainer-script-args.txt173
-rw-r--r--doc/obsolete/version-ordering.txt59
-rw-r--r--doc/obsolete/virtual-dependencies.txt105
-rw-r--r--doc/policy.sgml1619
-rw-r--r--doc/programmer.sgml3370
-rw-r--r--doc/texinfo.debian_mapping18
-rw-r--r--doc/texinfo.dtd94
-rw-r--r--doc/texinfo.texi_mapping120
24 files changed, 1102 insertions, 7066 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
new file mode 100644
index 000000000..336bc0ae7
--- /dev/null
+++ b/doc/ChangeLog
@@ -0,0 +1,147 @@
+debian-manuals (2.1.2.2) frozen unstable;
+
+ * Fixed even more typographical and grammatical errors in Policy and
+ Programmer's manual
+ * Corrected the contact email addresses again.
+ * Added a paragraph to Policy 6.3 on taking over an old package (Guy Maor)
+ * Added a paragraph to Programmer 4.2.14 on listing distributions to load
+ a package into. (Guy Maor)
+ * Further clarification of use of absolute pathnames in scripts in
+ Programmer 6.1.
+
+ -- David Morris <bweaver@worf.netins.net> Tue, 3 Dec 1996 23:28:04 -0600
+
+debian-manuals (2.1.2.1) frozen unstable;
+
+ * Many editorial and formatting revisions with suggestions from Ian Jackson,
+ Guy Maor and others
+ * correction of chiark address in Policy 6.2
+ * footnote in Programmers chapter 2 pointing to deb(5) manpage for
+ description of deb file format.
+ * addition of more dpkg examples in Programmer chapter 2
+ * Replace paragraph in Policy 4.1 outlining compiling parameters for
+ shared libraries.
+ * Added paragraph in Programmer 6.1 on paths in maintainer scripts
+ (Bug #2481)
+ * Cleaned up language and formatting of Programmer's 12.2, shlibs
+ * Corrected contact addresses for listmaster and override-change
+
+ -- David Morris <bweaver@worf.netins.net> Wed, 27 Nov 1996 08:17:16 -0600
+
+debian-manuals (2.1.2.0) frozen unstable;
+
+ * Mostly editorial changes in Policy Manual.
+ * Added summary of distribution criteria to Introduction
+ * Added section headings for copyright criteria
+ * Fixed typos (Bugs #4485, #4622)
+ * Added paragraph in Compilation Options related to use of shared and
+ static libraries. (Bug #5299)
+ * Paragraph added about where to find PGP and other export restricted
+ packages in section on Procedure
+ * Change in List administrator and in the contact address for becoming
+ a package maintainer
+ * A paragraph added related to who to contact for package maintainer changes.
+ * Changed where to send upload announcements: uploads destined for unstable,
+ frozen, or experimental go to debian-devel-changes.
+
+ * Made some mostly editorial changes to Programmers Manual.
+ * Added a recommendation to debmake in Introduction.
+ * A further interpretation of the various Distributions is added with
+ the intent of helping people decide which one to choose. (section 4.2.14)
+ * Section 12 on Shared Libraries expanded with further technical information
+ on various shlib files
+ * Section in 2.2 on format of shlib file moved to new subsection within 12.
+ * Paragraph on adding a symlink without version number added to Shared
+ Library Section (Guy Maor, Bug #5299)
+
+ -- David Morris <bweaver@worf.netins.net> Fri, 22 Nov 1996 23:41:39 -0600
+
+debian-manuals (2.1.1.0) unstable;
+
+ * Hard links are forbidden in source packages (they didn't work anyway,
+ and can't easily be made to work reliably).
+ * Do not use dpkg-divert or update-alternatives without consultation.
+
+ * Do not need to declare dependencies on Essential packages.
+ * Restrictions on Pre-Depends stated in policy manual.
+ * debian/substvars file is now almost always auto-generated.
+ * Shared libraries must be installed stripped.
+ * Essential and Pre-Depends put together in policy manual.
+
+ * Explained component-wise (file-wise) vs. package-wise dependencies.
+
+ -- Ian Jackson <ian@chiark.greenend.org.uk> Thu, 12 Sep 1996 01:00:41 +0100
+
+debian-manuals (2.1.0.0) unstable;
+
+ * Upstream changelog must be installed too (was just recommended).
+
+ * Modification to use dpkg-shlibdeps added to conversion instructions.
+ * Packages which are buggy and orphaned but which are preserved for
+ compatibility go in contrib.
+
+ * Programmers' manual source package section refers to conversion
+ instructions in policy manual.
+ * Make it clear that recommending a non-free or contrib package puts a
+ package in contrib.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Sun, 1 Sep 1996 17:47:18 +0100
+
+debian-manuals (2.0.1.0) unstable;
+
+ * varargs.h and libtermcap are obsolete - use stdarg.h and ncurses.
+ * Shared library link/library ordering corrected (aargh).
+ * When to byte-compile Elisp files.
+ * Missing final newlines not represented by dpkg-source.
+
+ * Must post upload announcements to debian-changes.
+ * Moved some sections into new `configuring and building' chapter.
+ * Typo fixes.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Sat, 31 Aug 1996 20:07:22 +0100
+
+debian-manuals (2.0.0.0) unstable;
+
+ * Footnote added OK'ing copyrights which require name changes.
+ * More detail about changelog format names.
+
+ * Problematic licence restrictions are formatted as lists.
+ * Mentioned 822-date utility as way to generate RFC822 format dates.
+ * Typos corrected.
+ * Released.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Mon, 26 Aug 1996 14:27:34 +0100
+
+debian-manuals (0.2.1.1) unstable;
+
+ * Can't overwrite directories in one package with files in another.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Sat, 24 Aug 1996 18:44:54 +0100
+
+debian-manuals (0.2.1.0) unstable;
+
+ * Policy says when and how to include original source in upload.
+
+ * Need -sa on dpkg-genchanges/dpkg-buildpackage when converting.
+
+ * Use minor patchlevel for meaning changes which don't affect packages.
+ * More verbosity about netiquette.
+ * Reorganised participation and upload policy: merged with mailing lists.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Fri, 23 Aug 1996 12:48:09 +0100
+
+debian-manuals (0.2.0.1) experimental;
+
+ * Said that system administrators' manual does not exist.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Fri, 23 Aug 1996 04:05:36 +0100
+
+debian-manuals (0.2.0.0) experimental;
+
+ * Draft releases.
+
+ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Wed, 21 Aug 1996 15:07:53 +0100
+
+Local variables:
+mode: debian-changelog
+End:
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 000000000..8c0350258
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,110 @@
+## Process this file with automake to produce a Makefile.in
+
+AUTOMAKE_OPTIONS = 1.1 foreign
+
+## Directory definitions
+
+docdir = $(prefix)/doc
+pkgdocdir = $(docdir)/@PACKAGE@
+
+## Automake variables
+
+man_MANS = deb.5 deb-old.5 deb-control.5
+pkgdoc_DATA =
+EXTRA_DIST = database-structure.fig changelog \
+ manuals-version \
+ $(SGMLFILES) $(man_MANS) \
+ texinfo.dtd \
+ texinfo.texi_mapping texinfo.debian_mapping
+
+HTMLDOCSTAMPS = internals.html-stamp
+HTMLDIRS = internals.html
+SGMLFILES = internals.sgml
+HARDCOPY = internals.ps internals.dvi
+
+CLEANFILES = $(srcdir)/manuals-version.new
+DISTCLEANFILES =
+INFOFILES = internals.info
+
+## Rules
+
+SUFFIXES = .html-stamp .sgml .ps .fig .monops
+
+.PHONY: all install-data-local uninstall-local dist-hook clean-local
+
+all: $(HTMLDOCSTAMPS) $(HARDCOPY) $(INFOFILES)
+
+$(srcdir)/manuals-version: $(top_srcdir)/debian/changelog
+ v=`dpkg-parsechangelog -l$< | sed -n 's/^Version: //p'` && \
+ echo "<!entity manuals-version \"$$v\">" >$@.new
+ echo "<!entity dpkg-version \"$(VERSION)\">" >>$@.new
+ (cmp -s $@.new $@ || mv -f $@.new $@) && rm -f $@.new
+
+internals.sgmls: internals.sgml texinfo.dtd manuals-version
+ nsgmls $< > $@ || ($(RM) $@ && false)
+
+internals.texi: internals.sgmls texinfo.texi_mapping
+ sgmlsasp $(srcdir)/texinfo.texi_mapping < $< > $@ || ($(RM) $@ && false)
+ perl -pi -e 's/printindex FN/printindex fn/' $@ || ($(RM) $@ && false)
+
+internals.ps: internals.dvi
+ dvips -t letter -o $@ $^
+
+internals.dvi: internals.texi
+ texi2dvi $^
+
+internals.info: internals.texi
+ makeinfo $^
+
+internals.html-stamp: internals.texi
+ -$(RM) -r $*.html*
+ mkdir $*.html
+ (cd $*.html && texi2html -monolithic ../$<)
+ ln -s internals.html $*.html/index.html
+ touch $@
+
+database-structure.ps: database-structure.fig
+ fig2dev -L ps -c -l _ -P <$< >ps
+ mv -f ps $@
+
+database-structure.monops: database-structure.ps
+ perl -pe 's:^/(col[0-7]) \{[01 ]*1[01 ]* setrgbcolor\}\
+ bind def$$::/$$1 {} bind def:' $< >ps
+ mv -f ps $@
+
+install-data-local: $(HTMLDOCSTAMPS)
+ $(mkinstalldirs) $(pkgdocdir)
+ $(INSTALL_DATA) $(top_srcdir)/debian/changelog $(pkgdocdir)/changelog
+ $(INSTALL_DATA) $(srcdir)/changelog $(pkgdocdir)/changelog.manuals
+ set -e; for f in $^; do \
+ g=`echo $$f | sed -e 's/-stamp$$//'`; \
+ cp -r $$g $(pkgdocdir)/`basename $$g`; \
+ done
+
+uninstall-local:
+ -$(RM) $(pkgdocdir)/changelog.manuals $(pkgdocdir)/changelog
+ -cd $(pkgdocdir) && rm -rf $(HTMLDIRS)
+
+dist-hook: $(HTMLDOCSTAMPS) $(HARDCOPY) internals.sgmls internals.texi internals.info
+ cp -p $^ $(distdir)
+ for f in `echo $^ | tr ' \t' '\n\n' | sed -ne 's:.html-stamp::gp'`; do set -e; \
+ $(RM) -r $(distdir)/`basename $$f.html`; \
+ mkdir $(distdir)/`basename $$f.html`; \
+ cp -p $$f.html/* $(distdir)/`basename $$f.html`; \
+ done
+ $(RM) -r $(distdir)/obsolete
+ cp -rp $(srcdir)/obsolete $(distdir)/
+ cp -p $(HARDCOPY) $(distdir)/
+
+maintainer-clean-local: doc-clean
+ $(RM) manuals-version
+ -$(RM) $(srcdir)/Makefile.in
+
+doc-clean:
+ -$(RM) *.{aux,cp,dvi,fn,ky,log,pg,toc,tp,vr,bak}
+ -$(RM) internals.{FN,fns,sgmls,texi,info*}
+ -$(RM) -r {packaging,internals}.{texi,html-stamp,text,ps,lout}
+ -$(RM) -r {packaging,internals}.html
+ -$(RM) manuals-version*
+
+## End of file.
diff --git a/doc/Makefile.in b/doc/Makefile.in
deleted file mode 100644
index 381f98c99..000000000
--- a/doc/Makefile.in
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (C) 1994 Ian Murdock <imurdock@debian.org>
-# Copyright (C) 1994,1995 Ian Jackson <ijackson@nyx.cs.du.edu>
-#
-# This is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2,
-# or (at your option) any later version.
-#
-# This is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public
-# License along with dpkg; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-infodir = $(prefix)/info
-mandir = $(prefix)/man
-man5dir = $(mandir)/man5
-man5 = 5
-docdir = $(prefix)/doc
-dpkgdocdir = $(docdir)/dpkg
-
-DIST = Makefile.in $(SRC) $(MAN)
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-MAKEINFO = makeinfo
-TEXI2DVI = texi2dvi
-
-SGMLDOCSTAMPS= programmer.html-stamp policy.html-stamp
-
-# Files folded into manuals
-OBSOLETEDOCS= descriptions.txt upgrades+errors.txt \
- maintainer-script-args.txt virtual-dependencies.txt \
- auto-deconfiguration.txt dependency-ordering.txt \
- disappear-replace.txt diversions.text \
- essential-flag.txt version-ordering.txt
-
-all: $(DPKGDOCS) $(SGMLDOCSTAMPS)
-
-manuals-version: changelog Makefile
- v=`dpkg-parsechangelog -lchangelog | sed -n 's/^Version: //p'` && \
- echo "<!entity manuals-version \"$$v\">" >$@.new
- d=`pwd | sed -e 's,/doc$$,,; s,^.*dpkg-\([0-9.]*\),\1,'` && \
- echo "<!entity dpkg-version \"$$d\">" >>$@.new
- mv $@.new $@
-
-%.html-stamp: %.sgml manuals-version
- rm -rf $*.html
- debiandoc2html $<
- touch $@
-
-guidelines.info: guidelines.texi
- $(MAKEINFO) $(srcdir)/guidelines.texi
-
-database-structure.ps: database-structure.fig
- fig2dev -L ps -c -l _ -P <database-structure.fig >ps
- mv ps database-structure.ps
-
-database-structure.monops: database-structure.ps
- perl -pe 's:^/(col[0-7]) \{[01 ]*1[01 ]* setrgbcolor\}\
- bind def$$:/$$1 {} bind def:' database-structure.ps >ps
- mv ps database-structure.monops
-
-clean:
- rm -f $(SGMLDOCSTAMPS)
- rm -f database-structure.ps database-structure.monops ps
- rm -f *.{aux,cp,dvi,fn,ky,log,pg,toc,tp,vr,bak}
- rm -f guidelines.info*
- rm -rf {programmer,policy}.{html*,sasp*,text*,ps*,lout*}
-
-distclean:
- rm -f Makefile *.orig *~ *.~* ./#*#
-
-install: all
- $(INSTALL_DATA) deb.5 $(man5dir)/deb.$(man5)
- $(INSTALL_DATA) deb-old.5 $(man5dir)/deb-old.$(man5)
- $(INSTALL_DATA) deb-control.5 $(man5dir)/deb-control.$(man5)
- set -e; for f in $(SGMLDOCSTAMPS) ; do \
- g=`echo $$f | sed -e 's/-stamp$$//'` ; \
- cp -r $$g $(dpkgdocdir)/$$g ; \
- done
- $(INSTALL_DATA) developer-keys.pgp $(dpkgdocdir)/.
- $(INSTALL_DATA) ../debian/changelog $(dpkgdocdir)/changelog.dpkg
- $(INSTALL_DATA) changelog $(dpkgdocdir)/changelog.manuals
diff --git a/doc/changelog b/doc/changelog
index c16a1edba..336bc0ae7 100644
--- a/doc/changelog
+++ b/doc/changelog
@@ -1,3 +1,61 @@
+debian-manuals (2.1.2.2) frozen unstable;
+
+ * Fixed even more typographical and grammatical errors in Policy and
+ Programmer's manual
+ * Corrected the contact email addresses again.
+ * Added a paragraph to Policy 6.3 on taking over an old package (Guy Maor)
+ * Added a paragraph to Programmer 4.2.14 on listing distributions to load
+ a package into. (Guy Maor)
+ * Further clarification of use of absolute pathnames in scripts in
+ Programmer 6.1.
+
+ -- David Morris <bweaver@worf.netins.net> Tue, 3 Dec 1996 23:28:04 -0600
+
+debian-manuals (2.1.2.1) frozen unstable;
+
+ * Many editorial and formatting revisions with suggestions from Ian Jackson,
+ Guy Maor and others
+ * correction of chiark address in Policy 6.2
+ * footnote in Programmers chapter 2 pointing to deb(5) manpage for
+ description of deb file format.
+ * addition of more dpkg examples in Programmer chapter 2
+ * Replace paragraph in Policy 4.1 outlining compiling parameters for
+ shared libraries.
+ * Added paragraph in Programmer 6.1 on paths in maintainer scripts
+ (Bug #2481)
+ * Cleaned up language and formatting of Programmer's 12.2, shlibs
+ * Corrected contact addresses for listmaster and override-change
+
+ -- David Morris <bweaver@worf.netins.net> Wed, 27 Nov 1996 08:17:16 -0600
+
+debian-manuals (2.1.2.0) frozen unstable;
+
+ * Mostly editorial changes in Policy Manual.
+ * Added summary of distribution criteria to Introduction
+ * Added section headings for copyright criteria
+ * Fixed typos (Bugs #4485, #4622)
+ * Added paragraph in Compilation Options related to use of shared and
+ static libraries. (Bug #5299)
+ * Paragraph added about where to find PGP and other export restricted
+ packages in section on Procedure
+ * Change in List administrator and in the contact address for becoming
+ a package maintainer
+ * A paragraph added related to who to contact for package maintainer changes.
+ * Changed where to send upload announcements: uploads destined for unstable,
+ frozen, or experimental go to debian-devel-changes.
+
+ * Made some mostly editorial changes to Programmers Manual.
+ * Added a recommendation to debmake in Introduction.
+ * A further interpretation of the various Distributions is added with
+ the intent of helping people decide which one to choose. (section 4.2.14)
+ * Section 12 on Shared Libraries expanded with further technical information
+ on various shlib files
+ * Section in 2.2 on format of shlib file moved to new subsection within 12.
+ * Paragraph on adding a symlink without version number added to Shared
+ Library Section (Guy Maor, Bug #5299)
+
+ -- David Morris <bweaver@worf.netins.net> Fri, 22 Nov 1996 23:41:39 -0600
+
debian-manuals (2.1.1.0) unstable;
* Hard links are forbidden in source packages (they didn't work anyway,
diff --git a/doc/deb-old.5 b/doc/deb-old.5
index df6a017a0..d415281dc 100644
--- a/doc/deb-old.5
+++ b/doc/deb-old.5
@@ -15,7 +15,7 @@ changed since Debian 0.93 and the new format is being phased in.
The old format is described here. Please see
.BR deb (5)
-for details of the old format.
+for details of the new format.
.SH FORMAT
The file is two lines of format information as ASCII text, followed by
two concatenated gzipped ustar files.
diff --git a/doc/developer-keys.pgp b/doc/developer-keys.pgp
deleted file mode 100644
index 84587e742..000000000
--- a/doc/developer-keys.pgp
+++ /dev/null
Binary files differ
diff --git a/doc/internals.sgml b/doc/internals.sgml
new file mode 100644
index 000000000..994abb5f3
--- /dev/null
+++ b/doc/internals.sgml
@@ -0,0 +1,552 @@
+<!doctype texinfo system "texinfo.dtd" [
+<!entity % manuals-version-def system "manuals-version">
+%manuals-version-def;
+]>
+
+<texinfo>
+
+<setfilename>internals.info</>
+
+<titlepage>
+<title>dpkg Internals Manual</title>
+<author>Klee Dienes</author>
+<date>Version &manuals-version; (dpkg &dpkg-version;)</date>
+<abstract>
+This manual describes the internal structure of the <code/dpkg/ package
+management system.
+</abstract>
+</titlepage>
+
+<chapter>Copyright
+
+<p>
+Copyright &copy;1997 Klee Dienes <samp/&lt;klee@@mit.edu&gt;/.
+
+<p>
+This manual is free software; you may redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+<p>
+This is distributed in the hope that it will be useful, but
+<em>without any warranty</em>; without even the implied warranty of
+merchantability or fitness for a particular purpose. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License with
+your Debian GNU/Linux system, in <file>/usr/doc/copyright/GPL</>, or
+with the <code/dpkg/ source package as the file <file>COPYING</>. If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.
+
+</chapter>
+
+<chapter>Build Notes
+
+<section>Automake
+
+<p>
+This chapter by Tom Lees &lt;tom&at;lpsg.demon.co.uk&gt on Tue, 4 Mar 1997
+21:34:57 +0000, with subsequent modifications by Klee Dienes &lt;klee&at;debian.org&gt;
+
+<p>
+This chapter contains general notes about the conversion to
+<code/automake/. If you plan on doing anything with <code/dpkg/, you
+should probably read all of this file first. You have been warned.
+
+<p>
+The current version of automake used is version <code/automake-1.1n/,
+which is currently a beta version. It has several significant
+advantages over the released version, including:
+
+<itemize>
+<item>it supports emacs lisp properly
+<item>It supports libtool properly
+<item>it includes the aclocal utility
+</itemize>
+
+<p>
+The <code/aclocal/ utility is a very useful program which will automatically
+build an <file/aclocal.m4/ file from the <file/configure.in/ file to include the
+appropriate macros.
+
+<p>
+<code/automake-1.1n/ can be retreived from
+<file>ftp://ftp.cygnus.com/pub/tromey</file>
+
+<p>
+This doesn't affect anything other than rebuilding the <file/Makefile.in/ files
+from the sources.
+
+<p>
+Probably the main difference which is noticable is that instead of
+using proprietary directory names, it now supports <code/configure
+--sharedstatedir/, and <code/configure --localstatedir/. To set these
+to the Debian defaults, you should use <code>./configure
+--localstatedir=/etc --sharedstatedir=/var/lib</>.
+
+<p>
+I have also customized the canonicalizing macros found in
+<code/autoconf-2.12/ to include the old way of finding the <code/dpkg/
+``architecture'', i.e. to be a bit more smart. Instead of it trying to
+determine the architecture only, I changed it to use the `host',
+`build', and `target' system types. The target CPU type is checked
+against the archtable to find the architecture on which dpkg will run.
+
+<p>
+It uses <code/gcc --print-libgcc-file-name/ to find out the build
+architecture if possible (used later to determine ELF or <code/a.out/
+format), and also uses <code/dpkg --print-architecture/ if possible to
+modify the <samp/cpu/ field before it passes on the target alias to
+config.sub. If you want to specify the architecture, you should now
+use "--target=", rather than <code/--with-arch/, which was essentially
+a hack anyway. The old <code/--with-arch/ is still there, but it is
+somewhat less functional. I have also moved the <code/DPKG_CACHED_/
+macros into dpkg.m4 to make configure.in a bit more readable.
+
+<p>
+I also converted to libtool 0.7 (which can be found in the Debian
+distribution now). Essentially, this means that all the dpkg tools can
+be compiled against a shared <samp/libdpkg/ without much hassle (in
+fact, it is the default). You do not need to install libtool to use
+this feature (it works like autoconf), and generally, it should not be
+needed much at all.
+
+<p>
+The new <samp/dist/ targets will build a distribution including all
+files built by the <code/debiandoc2html/, <code/debiandoc2ps/, etc.,
+which are included in the distribution so that people may build <code/dpkg/
+without these (especially useful to porters).
+
+<p>
+A target <samp/make debian/ has been added, which will build the
+Debian files from a working directory (does a <samp/make dist/
+first). Now all we need is a modified dpkg-source so that the
+<file/dpkg-1.4.0.8.tar.gz/ GNU-distribution file can be used as part
+of the Debian dsitribution. I'm working on this, but it doesn't work
+too well at the moment (find it in examples).
+
+<p>
+I removed the <samp/make portable/ target - it doesn't do anything useful.
+
+<p>
+I have added <samp/make uninstall/ targets to aid non-Debian users who simply
+want to try out certain Debian packages, and the "dist" targets are also
+useful to build a "distribution" of the dpkg tool. Note that since automake
+automatically includes dependencies into the Makefiles in a distribution,
+if you want to modify the C files, it would be advisable to get and install
+automake, and then re-run it in the base dpkg distribution directory, so that
+automatic dependency generation will be switched back on, and any
+dependencies which change will be taken account of. The "make maintainer-clean"
+targets will remove all files which any of the following utilities create:
+
+<itemize>
+<item>automake
+<item>autoconf
+<item>aclocal
+<item>autoheader
+<item>gettextize
+<item>libtoolize
+</itemize>
+
+<p>
+If you want to modify any of the sources, I recommend that you do the following
+first (after having installed the appropriate utilities, of course):-
+
+<itemize>
+<item>
+make maintainer-clean
+<item>
+aclocal
+<item>
+autoheader
+<item>
+autoconf
+<item>
+gettextize
+<item>
+libtoolize (do not let automake run this, as it will cause it not to
+include the libtool files in the dist targets)
+<item>
+for i in COPYING INSTALL; do ln -s /usr/share/automake/$i .; done
+<item>
+automake
+</itemize>
+
+<p>
+I have also incorporated the patches originally made by Galen
+Hazelwood to internationalize dpkg using GNU gettext - see the file
+"NOTES.intl" for more information about this.
+
+<p>
+Other minor changes are:
+
+<itemize>
+<item>
+The version number is now determined from debian/changelog, not from
+the directory name.
+<item>
+Creation of version.h now handled from configure script, not Makefile.
+<item>
+include/dpkg.h is now generated from include/dpkg.h.in by a sed
+script, inserting the appropriate directory definitions - so now it
+supports changing the dpkg directories (can install in /usr/local)
+<item>
+Updated the COPYING (1 very minor change) and INSTALL files to those
+distributed with automake-1.1l
+<item>
+Since the shared libdpkg is now installed, I also made
+include/Makefile install dpkg.h and dpkg-db.h into /usr/include by
+default
+</itemize>
+
+Questions:
+
+<itemize>
+<item>
+Should I use <samp/localstatedir/ and <samp/sharedstatedir/ instead of
+<samp/sysconfdir/ and <samp/datadir/?
+</itemize>
+
+</section>
+
+<section>Internationalization
+
+<p>
+This section by Galen Hazelwood.
+
+<p>
+Dpkg is, to say the least, generous in its error reporting. The vast
+majority of the output strings are error messages of one kind or another.
+And if you feel that you've stumbled into the Department of Redundancy
+Department, you would be absolutely correct. Many of the error messages
+in dpkg.pot are duplicates, used at different points in the program.
+
+<p>
+To avoid swamping the translators completely, I made some executive decisions
+on what kinds of strings to translate. All the strings sent to debug() are
+left alone, on the grounds that these are for dpkg developers, and not for
+the general public. Most interal error messages were very cryptic, and
+would probably confuse the translators when seen just sitting there in
+the dpkg.pot file, and are also left alone. (I did mark some of the more
+verbose ones for translation.)
+
+<p>
+If others disagree with me about the necessity of translating these strings,
+it's easy enough to just go through and mark them later.
+
+<p>
+I added the startup gettext code to the main routine in dselect, which was
+necessary as many of the strings in lib are translated. Dselect is otherwise
+unchanged.
+
+<p>
+Changes:
+
+<itemize>
+<item>
+The files in intl and po were taken from gettext 0.10.26, by way of
+the gettextize program. I altered the makefiles to remove the VERSION
+symbol, which is only used in targets which dpkg does not support.
+<item>
+aclocal.m4 was stolen from the textutils package, configure.in was
+altered to use these new tests, symbols were added to acconfig.h, and
+the two new directories were added to Makefile.in.
+<item>
+The dpkg, dpkg-deb, md5sum, split, and dselect Makefiles now look for
+headers in ../intl, and try to link with whatever i18n libraries
+configure finds. They also now define LOCALEDIR in CFLAGS.
+<item>
+include/dpkg.h has the necessary NLS boilerplate, and the only file
+which dosen't include this (md5sum/md5sum.c) had it added directly.
+<item>
+The most intrusive change is due to a disagreement between xgettext
+and the dpkg coding style. Although xgettext understands string
+constant concatenation, it can't handle the case where preprocessor
+symbols are used as well. The dpkg code uses this a lot, especially
+in cases like this:
+<example>
+ohshite("error reading from " BACKEND " pipe");
+</example>
+where BACKEND is defined as "dpkg-deb". Because xgettext can't handle
+this, I have changed this usage in all cases to something like:
+<example>
+ohshite(_("error reading from dpkg-deb pipe");
+</example>
+This isn't very kind to Ian, I know. But what can I do?
+</itemize>
+
+</section>
+
+</chapter>
+
+<chapter>Code Internals
+
+<section>Structure Definitons
+
+<subsection>versionrevision
+<p>
+<example>
+struct versionrevision @{
+ unsigned long epoch;
+ char *version;
+ char *revision;
+@};
+</example>
+
+<p>
+The <tt/versionrevision/ structure is used to store a Debian version specification
+</subsection>
+
+</section>
+
+<section>Functions
+
+<subsection>Parsing translation tables
+<p>
+Each of these tables is used to associate a set of strings with a
+corresponding set of integers.
+
+Current tables are:
+
+<p>
+<example>
+const struct namevalue booleaninfos[];
+</example>
+
+<p>
+Maps boolean strings (<code/"yes"/,<code/"no"/) to their binary values.
+
+<subsubsection><code/priorityinfos[]/
+
+<p>
+<example>
+const struct namevalue priorityinfos[];
+</example>
+
+<p>
+Maps priority strings to and from values of
+type <code/enum pkgpriority/.
+Current priority values are:
+
+<table>
+<item><code/required/</item>
+required
+<item><code/important/</item>
+important
+<item><code/standard/</item>
+standard
+<item><code/recommended/</item>
+recommended
+<item><code/optional/</item>
+optional
+<item><code/extra/</item>
+extra
+<item><code/contrib/</item>
+contrib
+<item><code/other/</item>
+other
+<item><code/unknown/</item>
+unknown
+<item><code/base/</item>
+This is obsolete, but is accepted as an alias for <code/required/.
+</table>
+</subsubsection>
+
+<subsubsection><code/statusinfos[]/
+
+<p>
+<example>
+const struct namevalue statusinfos[];
+</example>
+
+Maps package status strings to values of type <code/enum ???/.
+
+Package status strings are:
+
+"not-installed" "unpacked" "half-configured" "installed"
+"half-installed" "config-files" "postinst-failed" "removal-failed"
+</subsubsection>
+
+<subsubsection><code/eflaginfos[]/
+
+<p>
+<example>
+const struct namevalue eflaginfos[];
+</example>
+</subsubsection>
+
+<subsubsection><code/wantinfos[]/
+
+<p>
+<example>
+const struct namevalue wantinfos[];
+</example>
+</subsubsection>
+
+<subsubsection><code/nicknames[]/
+
+<p>
+<example>
+const struct nickname nicknames[];
+</example>
+
+Maps obsolete control fields to their current versions.
+
+</subsubsection>
+
+</subsection>
+
+<subsection>Parsing functions
+
+<subsubsection><code/parseerr/
+<findex/parseerr()/
+
+<p>
+<example>
+void parseerr
+(FILE *file, const char *filename, int lno,
+ FILE *warnto, int *warncount, const struct pkginfo *pigp,
+ int warnonly, const char *fmt, ...);
+</example>
+
+Report an error parsing a control data stream. Checks <var/file/ for
+error status on <var/file/, printing an error message to stderr and
+exiting with error status if an error is present on the stream.
+Formats the variable arguments according to the <code/printf/-style
+string in <var/fmt/, preceding the result with <var/filename/,
+<var/lno/, and <var/pigp/ (if not NULL). If <var/warnonly/ is 0,
+writes the result to stderr and exits with error status. Otherwise,
+increments <var/warncount/ and returns normally.
+</subsubsection>
+
+<subsubsection><code/illegal_packagename/
+<findex/illegal_packagename()/
+
+<p>
+<example>
+const char *illegal_packagename
+(const char *p, const char **ep)
+</example>
+
+Checks the package name at <var/p/ for proper syntax. Returns NULL in
+case of success, setting <var/*ep/ to point after the last character
+in the package name, including any trailing whitespace (as defined by
+isspace()). In case of error, returns the error message as a pointer
+to a static buffer.
+</subsubsection>
+
+<subsubsection><code/informativeversion/
+<findex/informativeversion()/
+
+<p>
+<example>
+int informativeversion(const struct versionrevision *version)
+</example>
+
+<p>
+Returns true if and only if the <code/versionrevision/ is non-empty;
+otherwise returns false.
+</subsubsection>
+
+<subsubsection><code/varbufversion/
+<findex/varbufversion()/
+
+<p>
+<example>
+void varbufversion
+(struct varbuf *vb,
+ const struct versionrevision *version,
+ enum versiondisplayepochwhen vdew);
+</example>
+
+Writes a human-readable representation of <var/version/ to <var/vb/.
+Possible values of <var/vdew/:
+
+<table>
+<item><tt/vdew_never/</item>
+never include epoch
+<item><tt/vdew_nonambig/</item>
+include epoch string if non-zero
+<item><tt/vdew_always/</item>
+always include epoch string
+</table>
+</subsubsection>
+
+<subsubsection><code/versiondescribe/
+<findex/versiondescribe()/
+
+<p>
+<example>
+const char *versiondescribe
+(const struct versionrevision *version,
+ enum versiondisplayepochwhen vdew);
+</example>
+
+<p>
+Return a human-readable representation of <var/version/ as a pointer
+to a static buffer. If the version structure is empty, return
+<code/"&lt;none&gt;"/. Static buffers are allocated from a set of 10
+in round-robin fashion (they will be re-used after 10 successive calls
+to <code/versiondescribe/).
+</subsubsection>
+
+<subsubsection><code/parseversion/
+<findex/parseversion()/
+
+<p>
+<example>
+const char *parseversion
+(struct versionrevision *rversion, const char *string);
+</example>
+
+<p>
+Parse the contents of <var/string/ into <var/rversion/. If
+successful, returns NULL, otherwise returns a pointer to a static
+error string.
+</subsubsection>
+
+<subsubsection><code/parsemustfield/
+<findex/parsemustfield()/
+
+<p>
+<example>
+void parsemustfield
+(FILE *file, const char *filename, int lno,
+ FILE *warnto, int *warncount,
+ const struct pkginfo *pigp, int warnonly,
+ char **value, const char *what);
+</example>
+</subsubsection>
+
+<subsubsection><code/skip_slash_dotslash/
+<findex/skip_slash_dotslash()/
+
+<p>
+<example>
+const char *skip_slash_dotslash (const char *p);
+</example>
+</subsubsection>
+
+<subsubsection><code/convert_string/
+<findex/convert_string()/
+
+<p>
+<example>
+static int convert_string
+(const char *filename, int lno, const char *what, int otherwise,
+ FILE *warnto, int *warncount, const struct pkginfo *pigp,
+ const char *startp, const struct namevalue *nvip,
+ const char **endpp)
+</example>
+</subsubsection>
+
+</subsection>
+
+</section>
+
+<contents>
+<printindex name="fn">
+
+</texinfo>
diff --git a/doc/lout.li b/doc/lout.li
deleted file mode 100644
index 04dfdb4cc..000000000
--- a/doc/lout.li
+++ /dev/null
@@ -1,1123 +0,0 @@
-00symbol 1 @DocumentLayout @TheoremCounterMarker
-00symbol 10 @DocumentLayout @FigureCounterMarker
-00symbol 11 @DocumentLayout @TablePrefixMarker
-00symbol 12 @DocumentLayout @TableCounterMarker
-00symbol 13 @PageMarker
-00symbol 14 @DocumentLayout @FootNoteCounterMarker
-00symbol 15 @DocumentLayout @Runner
-00symbol 16 @DocumentLayout @NumberMarker
-00symbol 17 @DocumentLayout listitem
-00symbol 18 @DocumentLayout @FootNote
-00symbol 19 @OptGall
-00symbol 2 @DocumentLayout @DefinitionCounterMarker
-00symbol 3 @DocumentLayout @ClaimCounterMarker
-00symbol 4 @DocumentLayout @PropositionCounterMarker
-00symbol 5 @DocumentLayout @LemmaCounterMarker
-00symbol 6 @DocumentLayout @CorollaryCounterMarker
-00symbol 7 @DocumentLayout @ExampleCounterMarker
-00symbol 8 @DocumentLayout @NumDispCounterMarker
-00symbol 9 @DocumentLayout @FigurePrefixMarker
-1&3278.policy.lout.1 0 00001 0 policy.lout
-1&3278.programmer.lout.1 0 00349 0 programmer.lout
-10&4161.policy.lout.1 0 00010 1602 policy.lout
-10&4161.programmer.lout.1 0 00350 1638 programmer.lout
-11&4334.policy.lout.1 0 00011 1720 policy.lout
-11&4334.programmer.lout.1 0 00351 1760 programmer.lout
-12&4342.policy.lout.1 0 00012 1836 policy.lout
-12&4342.programmer.lout.1 0 00352 1880 programmer.lout
-13&1655.policy.lout.1 0 00034 4442 policy.lout
-13&1655.policy.lout.10 0 00176 17809 policy.lout
-13&1655.policy.lout.11 0 00180 17809 policy.lout
-13&1655.policy.lout.12 0 00184 17809 policy.lout
-13&1655.policy.lout.13 0 00188 17809 policy.lout
-13&1655.policy.lout.14 0 00192 17809 policy.lout
-13&1655.policy.lout.15 0 00196 17809 policy.lout
-13&1655.policy.lout.16 0 00210 23905 policy.lout
-13&1655.policy.lout.17 0 00214 23905 policy.lout
-13&1655.policy.lout.18 0 00218 23905 policy.lout
-13&1655.policy.lout.19 0 00222 23905 policy.lout
-13&1655.policy.lout.2 0 00038 4442 policy.lout
-13&1655.policy.lout.20 0 00226 23905 policy.lout
-13&1655.policy.lout.21 0 00230 23905 policy.lout
-13&1655.policy.lout.22 0 00234 23905 policy.lout
-13&1655.policy.lout.23 0 00238 23905 policy.lout
-13&1655.policy.lout.24 0 00242 23905 policy.lout
-13&1655.policy.lout.25 0 00246 23905 policy.lout
-13&1655.policy.lout.26 0 00250 23905 policy.lout
-13&1655.policy.lout.27 0 00254 23905 policy.lout
-13&1655.policy.lout.28 0 00258 23905 policy.lout
-13&1655.policy.lout.29 0 00262 23905 policy.lout
-13&1655.policy.lout.3 0 00042 4442 policy.lout
-13&1655.policy.lout.30 0 00266 23905 policy.lout
-13&1655.policy.lout.31 0 00270 23905 policy.lout
-13&1655.policy.lout.32 0 00274 23905 policy.lout
-13&1655.policy.lout.33 0 00278 23905 policy.lout
-13&1655.policy.lout.34 0 00285 89259 policy.lout
-13&1655.policy.lout.35 0 00289 89259 policy.lout
-13&1655.policy.lout.36 0 00293 89259 policy.lout
-13&1655.policy.lout.37 0 00297 89259 policy.lout
-13&1655.policy.lout.38 0 00301 89259 policy.lout
-13&1655.policy.lout.39 0 00305 89259 policy.lout
-13&1655.policy.lout.4 0 00152 17809 policy.lout
-13&1655.policy.lout.40 0 00309 89259 policy.lout
-13&1655.policy.lout.41 0 00313 89259 policy.lout
-13&1655.policy.lout.42 0 00317 89259 policy.lout
-13&1655.policy.lout.43 0 00321 89259 policy.lout
-13&1655.policy.lout.5 0 00156 17809 policy.lout
-13&1655.policy.lout.6 0 00160 17809 policy.lout
-13&1655.policy.lout.7 0 00164 17809 policy.lout
-13&1655.policy.lout.8 0 00168 17809 policy.lout
-13&1655.policy.lout.9 0 00172 17809 policy.lout
-13&1655.programmer.lout.1 0 00353 6890 programmer.lout
-13&1655.programmer.lout.10 0 00354 6890 programmer.lout
-13&1655.programmer.lout.100 0 00355 117524 programmer.lout
-13&1655.programmer.lout.101 0 00356 117524 programmer.lout
-13&1655.programmer.lout.102 0 00357 117524 programmer.lout
-13&1655.programmer.lout.103 0 00358 128121 programmer.lout
-13&1655.programmer.lout.104 0 00359 128121 programmer.lout
-13&1655.programmer.lout.105 0 00360 128121 programmer.lout
-13&1655.programmer.lout.11 0 00361 15938 programmer.lout
-13&1655.programmer.lout.12 0 00362 15938 programmer.lout
-13&1655.programmer.lout.13 0 00363 15938 programmer.lout
-13&1655.programmer.lout.14 0 00364 15938 programmer.lout
-13&1655.programmer.lout.15 0 00365 18049 programmer.lout
-13&1655.programmer.lout.16 0 00366 18049 programmer.lout
-13&1655.programmer.lout.17 0 00367 18049 programmer.lout
-13&1655.programmer.lout.18 0 00368 18049 programmer.lout
-13&1655.programmer.lout.19 0 00369 18049 programmer.lout
-13&1655.programmer.lout.2 0 00370 6890 programmer.lout
-13&1655.programmer.lout.20 0 00371 18049 programmer.lout
-13&1655.programmer.lout.21 0 00372 22306 programmer.lout
-13&1655.programmer.lout.22 0 00373 22306 programmer.lout
-13&1655.programmer.lout.23 0 00374 22306 programmer.lout
-13&1655.programmer.lout.24 0 00375 22306 programmer.lout
-13&1655.programmer.lout.25 0 00376 22306 programmer.lout
-13&1655.programmer.lout.26 0 00377 22306 programmer.lout
-13&1655.programmer.lout.27 0 00378 22306 programmer.lout
-13&1655.programmer.lout.28 0 00379 25795 programmer.lout
-13&1655.programmer.lout.29 0 00380 25795 programmer.lout
-13&1655.programmer.lout.3 0 00381 6890 programmer.lout
-13&1655.programmer.lout.30 0 00382 25795 programmer.lout
-13&1655.programmer.lout.31 0 00383 25795 programmer.lout
-13&1655.programmer.lout.32 0 00384 25795 programmer.lout
-13&1655.programmer.lout.33 0 00385 25795 programmer.lout
-13&1655.programmer.lout.34 0 00386 25795 programmer.lout
-13&1655.programmer.lout.35 0 00387 31375 programmer.lout
-13&1655.programmer.lout.36 0 00388 31375 programmer.lout
-13&1655.programmer.lout.37 0 00389 31375 programmer.lout
-13&1655.programmer.lout.38 0 00390 31375 programmer.lout
-13&1655.programmer.lout.39 0 00391 31375 programmer.lout
-13&1655.programmer.lout.4 0 00392 6890 programmer.lout
-13&1655.programmer.lout.40 0 00393 31375 programmer.lout
-13&1655.programmer.lout.41 0 00394 31375 programmer.lout
-13&1655.programmer.lout.42 0 00395 31375 programmer.lout
-13&1655.programmer.lout.43 0 00396 31375 programmer.lout
-13&1655.programmer.lout.44 0 00397 36795 programmer.lout
-13&1655.programmer.lout.45 0 00398 36795 programmer.lout
-13&1655.programmer.lout.46 0 00399 47127 programmer.lout
-13&1655.programmer.lout.47 0 00400 47127 programmer.lout
-13&1655.programmer.lout.48 0 00401 47127 programmer.lout
-13&1655.programmer.lout.49 0 00402 47127 programmer.lout
-13&1655.programmer.lout.5 0 00403 6890 programmer.lout
-13&1655.programmer.lout.50 0 00404 47127 programmer.lout
-13&1655.programmer.lout.51 0 00405 47127 programmer.lout
-13&1655.programmer.lout.52 0 00406 47127 programmer.lout
-13&1655.programmer.lout.53 0 00407 47127 programmer.lout
-13&1655.programmer.lout.54 0 00408 47127 programmer.lout
-13&1655.programmer.lout.55 0 00409 47127 programmer.lout
-13&1655.programmer.lout.56 0 00410 47127 programmer.lout
-13&1655.programmer.lout.57 0 00411 47127 programmer.lout
-13&1655.programmer.lout.58 0 00412 54014 programmer.lout
-13&1655.programmer.lout.59 0 00413 54014 programmer.lout
-13&1655.programmer.lout.6 0 00414 6890 programmer.lout
-13&1655.programmer.lout.60 0 00415 54014 programmer.lout
-13&1655.programmer.lout.61 0 00416 54014 programmer.lout
-13&1655.programmer.lout.62 0 00417 54014 programmer.lout
-13&1655.programmer.lout.63 0 00418 54014 programmer.lout
-13&1655.programmer.lout.64 0 00419 54014 programmer.lout
-13&1655.programmer.lout.65 0 00420 54014 programmer.lout
-13&1655.programmer.lout.66 0 00421 54014 programmer.lout
-13&1655.programmer.lout.67 0 00422 54014 programmer.lout
-13&1655.programmer.lout.68 0 00423 54014 programmer.lout
-13&1655.programmer.lout.69 0 00424 54014 programmer.lout
-13&1655.programmer.lout.7 0 00425 6890 programmer.lout
-13&1655.programmer.lout.70 0 00426 54014 programmer.lout
-13&1655.programmer.lout.71 0 00427 54014 programmer.lout
-13&1655.programmer.lout.72 0 00428 54014 programmer.lout
-13&1655.programmer.lout.73 0 00429 54014 programmer.lout
-13&1655.programmer.lout.74 0 00430 54014 programmer.lout
-13&1655.programmer.lout.75 0 00431 54014 programmer.lout
-13&1655.programmer.lout.76 0 00432 54014 programmer.lout
-13&1655.programmer.lout.77 0 00433 89803 programmer.lout
-13&1655.programmer.lout.78 0 00434 89803 programmer.lout
-13&1655.programmer.lout.79 0 00435 89803 programmer.lout
-13&1655.programmer.lout.8 0 00436 6890 programmer.lout
-13&1655.programmer.lout.80 0 00437 89803 programmer.lout
-13&1655.programmer.lout.81 0 00438 89803 programmer.lout
-13&1655.programmer.lout.82 0 00439 89803 programmer.lout
-13&1655.programmer.lout.83 0 00440 89803 programmer.lout
-13&1655.programmer.lout.84 0 00441 89803 programmer.lout
-13&1655.programmer.lout.85 0 00442 89803 programmer.lout
-13&1655.programmer.lout.86 0 00443 89803 programmer.lout
-13&1655.programmer.lout.87 0 00444 89803 programmer.lout
-13&1655.programmer.lout.88 0 00445 111402 programmer.lout
-13&1655.programmer.lout.89 0 00446 111402 programmer.lout
-13&1655.programmer.lout.9 0 00447 6890 programmer.lout
-13&1655.programmer.lout.90 0 00448 111402 programmer.lout
-13&1655.programmer.lout.91 0 00449 111402 programmer.lout
-13&1655.programmer.lout.92 0 00450 111402 programmer.lout
-13&1655.programmer.lout.93 0 00451 111402 programmer.lout
-13&1655.programmer.lout.94 0 00452 111402 programmer.lout
-13&1655.programmer.lout.95 0 00453 111402 programmer.lout
-13&1655.programmer.lout.96 0 00454 111402 programmer.lout
-13&1655.programmer.lout.97 0 00455 116385 programmer.lout
-13&1655.programmer.lout.98 0 00456 116385 programmer.lout
-13&1655.programmer.lout.99 0 00457 117524 programmer.lout
-13&582.policy.lout.1 0 00019 2989 policy.lout
-13&582.policy.lout.10 0 00079 10050 policy.lout
-13&582.policy.lout.11 0 00085 10474 policy.lout
-13&582.policy.lout.12 0 00090 10817 policy.lout
-13&582.policy.lout.13 0 00094 11242 policy.lout
-13&582.policy.lout.14 0 00098 11585 policy.lout
-13&582.policy.lout.15 0 00106 12867 policy.lout
-13&582.policy.lout.16 0 00110 13210 policy.lout
-13&582.policy.lout.17 0 00117 14303 policy.lout
-13&582.policy.lout.18 0 00125 15546 policy.lout
-13&582.policy.lout.19 0 00129 15971 policy.lout
-13&582.policy.lout.2 0 00023 3550 policy.lout
-13&582.policy.lout.20 0 00133 16314 policy.lout
-13&582.policy.lout.21 0 00141 17466 policy.lout
-13&582.policy.lout.22 0 00146 17809 policy.lout
-13&582.policy.lout.23 0 00197 22857 policy.lout
-13&582.policy.lout.24 0 00204 23905 policy.lout
-13&582.policy.lout.25 0 00279 89259 policy.lout
-13&582.policy.lout.3 0 00025 4102 policy.lout
-13&582.policy.lout.4 0 00028 4442 policy.lout
-13&582.policy.lout.5 0 00043 6301 policy.lout
-13&582.policy.lout.6 0 00049 7245 policy.lout
-13&582.policy.lout.7 0 00057 7666 policy.lout
-13&582.policy.lout.8 0 00066 8660 policy.lout
-13&582.policy.lout.9 0 00071 9082 policy.lout
-13&582.programmer.lout.1 0 00458 3061 programmer.lout
-13&582.programmer.lout.10 0 00459 15506 programmer.lout
-13&582.programmer.lout.11 0 00460 15938 programmer.lout
-13&582.programmer.lout.12 0 00461 18049 programmer.lout
-13&582.programmer.lout.13 0 00462 21955 programmer.lout
-13&582.programmer.lout.14 0 00463 22306 programmer.lout
-13&582.programmer.lout.15 0 00464 25795 programmer.lout
-13&582.programmer.lout.16 0 00465 31375 programmer.lout
-13&582.programmer.lout.17 0 00466 36795 programmer.lout
-13&582.programmer.lout.18 0 00467 39415 programmer.lout
-13&582.programmer.lout.19 0 00468 40814 programmer.lout
-13&582.programmer.lout.2 0 00469 3634 programmer.lout
-13&582.programmer.lout.20 0 00470 42360 programmer.lout
-13&582.programmer.lout.21 0 00471 43468 programmer.lout
-13&582.programmer.lout.22 0 00472 45126 programmer.lout
-13&582.programmer.lout.23 0 00473 45559 programmer.lout
-13&582.programmer.lout.24 0 00474 45910 programmer.lout
-13&582.programmer.lout.25 0 00475 46343 programmer.lout
-13&582.programmer.lout.26 0 00476 46694 programmer.lout
-13&582.programmer.lout.27 0 00477 47127 programmer.lout
-13&582.programmer.lout.28 0 00478 54014 programmer.lout
-13&582.programmer.lout.29 0 00479 89803 programmer.lout
-13&582.programmer.lout.3 0 00480 4194 programmer.lout
-13&582.programmer.lout.30 0 00481 111402 programmer.lout
-13&582.programmer.lout.31 0 00482 116385 programmer.lout
-13&582.programmer.lout.32 0 00483 117524 programmer.lout
-13&582.programmer.lout.33 0 00484 121000 programmer.lout
-13&582.programmer.lout.34 0 00485 121351 programmer.lout
-13&582.programmer.lout.35 0 00486 121784 programmer.lout
-13&582.programmer.lout.36 0 00487 122135 programmer.lout
-13&582.programmer.lout.37 0 00488 123417 programmer.lout
-13&582.programmer.lout.38 0 00489 123768 programmer.lout
-13&582.programmer.lout.39 0 00490 124201 programmer.lout
-13&582.programmer.lout.4 0 00491 5264 programmer.lout
-13&582.programmer.lout.40 0 00492 124552 programmer.lout
-13&582.programmer.lout.41 0 00493 124985 programmer.lout
-13&582.programmer.lout.42 0 00494 125336 programmer.lout
-13&582.programmer.lout.43 0 00495 125769 programmer.lout
-13&582.programmer.lout.44 0 00496 126120 programmer.lout
-13&582.programmer.lout.45 0 00497 126553 programmer.lout
-13&582.programmer.lout.46 0 00498 126904 programmer.lout
-13&582.programmer.lout.47 0 00499 127337 programmer.lout
-13&582.programmer.lout.48 0 00500 127688 programmer.lout
-13&582.programmer.lout.49 0 00501 128121 programmer.lout
-13&582.programmer.lout.5 0 00502 5693 programmer.lout
-13&582.programmer.lout.50 0 00503 129729 programmer.lout
-13&582.programmer.lout.6 0 00504 6890 programmer.lout
-13&582.programmer.lout.7 0 00505 12936 programmer.lout
-13&582.programmer.lout.8 0 00506 13285 programmer.lout
-13&582.programmer.lout.9 0 00507 15157 programmer.lout
-13&ch-alternatives 0 00508 125769 programmer.lout
-13&ch-binarypkg 0 00051 7245 policy.lout
-13&ch-binarypkg 0 00509 5264 programmer.lout
-13&ch-conffiles 0 00510 124985 programmer.lout
-13&ch-controlfields 0 00511 39415 programmer.lout
-13&ch-conversion 0 00206 23905 policy.lout
-13&ch-descriptions 0 00512 117524 programmer.lout
-13&ch-developer 0 00143 17466 policy.lout
-13&ch-diversions 0 00513 126120 programmer.lout
-13&ch-mailinglists 0 00199 22857 policy.lout
-13&ch-maintainerscripts 0 00514 47127 programmer.lout
-13&ch-methif 0 00515 128121 programmer.lout
-13&ch-pkgcopyright 0 00030 4442 policy.lout
-13&ch-relationships 0 00516 121784 programmer.lout
-13&ch-scope 0 00027 4102 policy.lout
-13&ch-scope 0 00517 4194 programmer.lout
-13&ch-sharedlibs 0 00518 126553 programmer.lout
-13&ch-sourcepkg 0 00127 15546 policy.lout
-13&ch-sourcepkg 0 00519 12936 programmer.lout
-13&ch-sysvinit 0 00520 126904 programmer.lout
-13&ch-versions 0 00521 46343 programmer.lout
-13&last.page 0 00348 89259 policy.lout
-13&last.page 0 00522 129729 programmer.lout
-13&s-bincreating 0 00523 5264 programmer.lout
-13&s-changesfiles 0 00148 17809 policy.lout
-13&s-conflicts 0 00524 123417 programmer.lout
-13&s-controlarea 0 00525 5693 programmer.lout
-13&s-controlfile 0 00526 6890 programmer.lout
-13&s-copyrightfile 0 00084 10050 policy.lout
-13&s-depsyntax 0 00527 121784 programmer.lout
-13&s-dpkgchangelog 0 00528 18049 programmer.lout
-13&s-f-Architecture 0 00529 40814 programmer.lout
-13&s-f-Binary 0 00530 43468 programmer.lout
-13&s-f-Changes 0 00531 45559 programmer.lout
-13&s-f-Conffiles 0 00532 45559 programmer.lout
-13&s-f-Config-Version 0 00533 45559 programmer.lout
-13&s-f-Date 0 00534 45126 programmer.lout
-13&s-f-Description 0 00535 42360 programmer.lout
-13&s-f-Distribution 0 00536 45126 programmer.lout
-13&s-f-Essential 0 00537 42360 programmer.lout
-13&s-f-Filename 0 00538 45559 programmer.lout
-13&s-f-Files 0 00539 43468 programmer.lout
-13&s-f-Format 0 00540 45559 programmer.lout
-13&s-f-Installed-Size 0 00541 43468 programmer.lout
-13&s-f-Maintainer 0 00542 40814 programmer.lout
-13&s-f-Package 0 00543 39415 programmer.lout
-13&s-f-Size 0 00544 45559 programmer.lout
-13&s-f-Source 0 00545 42360 programmer.lout
-13&s-f-Standards-Version 0 00546 45126 programmer.lout
-13&s-f-Status 0 00547 45559 programmer.lout
-13&s-f-Urgency 0 00548 45126 programmer.lout
-13&s-f-Version 0 00549 40814 programmer.lout
-13&s-f-classification 0 00550 42360 programmer.lout
-13&s-instchangelog 0 00083 10050 policy.lout
-13&s-mail 0 00109 12867 policy.lout
-13&s-mscriptsinstact 0 00551 47127 programmer.lout
-13&s-replaces 0 00552 124201 programmer.lout
-13&s-sourcearchives 0 00553 25795 programmer.lout
-13&s-sourcetools 0 00554 12936 programmer.lout
-13&s-sourcetree 0 00555 15506 programmer.lout
-13&s-srcsubstvars 0 00556 22306 programmer.lout
-13&s-virtual 0 00557 123768 programmer.lout
-13&s13.1 0 00558 126904 programmer.lout
-13&s13.2 0 00559 126904 programmer.lout
-13&s13.3 0 00560 127337 programmer.lout
-13&s13.4 0 00561 127337 programmer.lout
-13&s13.5 0 00562 127337 programmer.lout
-13&s13.6 0 00563 127688 programmer.lout
-13&s14.1 0 00564 128121 programmer.lout
-13&s14.2 0 00565 128121 programmer.lout
-13&s3.1 0 00052 7245 policy.lout
-13&s3.1.1 0 00053 7245 policy.lout
-13&s3.1.1 0 00566 12936 programmer.lout
-13&s3.1.2 0 00054 7245 policy.lout
-13&s3.1.2 0 00567 12936 programmer.lout
-13&s3.1.3 0 00055 7245 policy.lout
-13&s3.1.3 0 00568 13285 programmer.lout
-13&s3.1.3.1 0 00056 7245 policy.lout
-13&s3.1.3.2 0 00060 7666 policy.lout
-13&s3.1.4 0 00061 7666 policy.lout
-13&s3.1.4 0 00569 13285 programmer.lout
-13&s3.1.5 0 00062 7666 policy.lout
-13&s3.1.5 0 00570 15157 programmer.lout
-13&s3.1.6 0 00068 8660 policy.lout
-13&s3.1.6 0 00571 15157 programmer.lout
-13&s3.1.7 0 00572 15157 programmer.lout
-13&s3.11 0 00113 13210 policy.lout
-13&s3.12 0 00119 14303 policy.lout
-13&s3.13 0 00121 14303 policy.lout
-13&s3.2 0 00069 8660 policy.lout
-13&s3.2.1 0 00070 8660 policy.lout
-13&s3.2.1 0 00573 15506 programmer.lout
-13&s3.2.2 0 00073 9082 policy.lout
-13&s3.2.2 0 00574 15938 programmer.lout
-13&s3.2.2.1 0 00575 18049 programmer.lout
-13&s3.2.3 0 00074 9082 policy.lout
-13&s3.2.3.1 0 00576 21955 programmer.lout
-13&s3.2.4 0 00081 10050 policy.lout
-13&s3.2.4.1 0 00082 10050 policy.lout
-13&s3.2.5 0 00577 22306 programmer.lout
-13&s3.2.6 0 00578 25795 programmer.lout
-13&s3.2.7 0 00087 10474 policy.lout
-13&s3.2.8 0 00088 10474 policy.lout
-13&s3.2.9 0 00089 10474 policy.lout
-13&s3.3 0 00092 10817 policy.lout
-13&s3.4 0 00093 10817 policy.lout
-13&s3.4 0 00579 31375 programmer.lout
-13&s3.4.1 0 00580 31375 programmer.lout
-13&s3.5 0 00096 11242 policy.lout
-13&s3.6 0 00097 11242 policy.lout
-13&s3.7 0 00100 11585 policy.lout
-13&s3.8 0 00101 11585 policy.lout
-13&s3.9 0 00108 12867 policy.lout
-13&s4.1 0 00128 15546 policy.lout
-13&s4.1 0 00581 39415 programmer.lout
-13&s4.2 0 00131 15971 policy.lout
-13&s4.2 0 00582 39415 programmer.lout
-13&s4.2.24 0 00583 45910 programmer.lout
-13&s4.2.6 0 00584 42360 programmer.lout
-13&s4.3 0 00132 15971 policy.lout
-13&s4.4 0 00136 16314 policy.lout
-13&s4.5 0 00137 16314 policy.lout
-13&s5.1 0 00144 17466 policy.lout
-13&s5.2 0 00145 17466 policy.lout
-13&s6.1 0 00585 47127 programmer.lout
-13&s6.3 0 00586 54014 programmer.lout
-13&s6.4 0 00587 111402 programmer.lout
-13&s6.5 0 00588 111402 programmer.lout
-13&s7.1 0 00589 117524 programmer.lout
-13&s7.2 0 00590 117524 programmer.lout
-13&s7.3 0 00591 121000 programmer.lout
-13&s8.2 0 00592 121784 programmer.lout
-13&s8.2.1 0 00593 123417 programmer.lout
-13&s8.2.2 0 00594 123417 programmer.lout
-13&s8.5.1 0 00595 124201 programmer.lout
-13&s8.5.2 0 00596 124201 programmer.lout
-13&s8.6 0 00597 124201 programmer.lout
-13&s9.1 0 00598 124985 programmer.lout
-13&s9.2 0 00599 125336 programmer.lout
-14&2495.policy.lout.1 0 00020 3340 policy.lout
-14&2495.policy.lout.10 0 00067 8961 policy.lout
-14&2495.policy.lout.11 0 00072 9302 policy.lout
-14&2495.policy.lout.12 0 00077 9617 policy.lout
-14&2495.policy.lout.13 0 00080 10353 policy.lout
-14&2495.policy.lout.14 0 00086 10696 policy.lout
-14&2495.policy.lout.15 0 00091 11121 policy.lout
-14&2495.policy.lout.16 0 00095 11464 policy.lout
-14&2495.policy.lout.17 0 00099 11889 policy.lout
-14&2495.policy.lout.18 0 00104 12434 policy.lout
-14&2495.policy.lout.19 0 00107 13089 policy.lout
-14&2495.policy.lout.2 0 00024 3982 policy.lout
-14&2495.policy.lout.20 0 00111 13514 policy.lout
-14&2495.policy.lout.21 0 00115 13870 policy.lout
-14&2495.policy.lout.22 0 00118 14525 policy.lout
-14&2495.policy.lout.23 0 00123 15113 policy.lout
-14&2495.policy.lout.24 0 00126 15850 policy.lout
-14&2495.policy.lout.25 0 00130 16193 policy.lout
-14&2495.policy.lout.26 0 00134 16618 policy.lout
-14&2495.policy.lout.27 0 00139 17033 policy.lout
-14&2495.policy.lout.28 0 00142 17688 policy.lout
-14&2495.policy.lout.29 0 00147 18113 policy.lout
-14&2495.policy.lout.3 0 00026 4322 policy.lout
-14&2495.policy.lout.30 0 00198 23079 policy.lout
-14&2495.policy.lout.31 0 00202 23472 policy.lout
-14&2495.policy.lout.32 0 00205 24209 policy.lout
-14&2495.policy.lout.33 0 00280 89481 policy.lout
-14&2495.policy.lout.4 0 00029 4743 policy.lout
-14&2495.policy.lout.5 0 00044 6521 policy.lout
-14&2495.policy.lout.6 0 00047 6813 policy.lout
-14&2495.policy.lout.7 0 00050 7546 policy.lout
-14&2495.policy.lout.8 0 00058 7886 policy.lout
-14&2495.policy.lout.9 0 00064 8228 policy.lout
-14&2495.programmer.lout.1 0 00600 3416 programmer.lout
-14&2495.programmer.lout.10 0 00601 13160 programmer.lout
-14&2495.programmer.lout.11 0 00602 13590 programmer.lout
-14&2495.programmer.lout.12 0 00603 14259 programmer.lout
-14&2495.programmer.lout.13 0 00604 14708 programmer.lout
-14&2495.programmer.lout.14 0 00605 15381 programmer.lout
-14&2495.programmer.lout.15 0 00606 15813 programmer.lout
-14&2495.programmer.lout.16 0 00607 16164 programmer.lout
-14&2495.programmer.lout.17 0 00608 18357 programmer.lout
-14&2495.programmer.lout.18 0 00609 21506 programmer.lout
-14&2495.programmer.lout.19 0 00610 22181 programmer.lout
-14&2495.programmer.lout.2 0 00611 4070 programmer.lout
-14&2495.programmer.lout.20 0 00612 22614 programmer.lout
-14&2495.programmer.lout.21 0 00613 26021 programmer.lout
-14&2495.programmer.lout.22 0 00614 30926 programmer.lout
-14&2495.programmer.lout.23 0 00615 31683 programmer.lout
-14&2495.programmer.lout.24 0 00616 36346 programmer.lout
-14&2495.programmer.lout.25 0 00617 37021 programmer.lout
-14&2495.programmer.lout.26 0 00618 38966 programmer.lout
-14&2495.programmer.lout.27 0 00619 39723 programmer.lout
-14&2495.programmer.lout.28 0 00620 40362 programmer.lout
-14&2495.programmer.lout.29 0 00621 41040 programmer.lout
-14&2495.programmer.lout.3 0 00622 4418 programmer.lout
-14&2495.programmer.lout.30 0 00623 41456 programmer.lout
-14&2495.programmer.lout.31 0 00624 41908 programmer.lout
-14&2495.programmer.lout.32 0 00625 42668 programmer.lout
-14&2495.programmer.lout.33 0 00626 43016 programmer.lout
-14&2495.programmer.lout.34 0 00627 43694 programmer.lout
-14&2495.programmer.lout.35 0 00628 44222 programmer.lout
-14&2495.programmer.lout.36 0 00629 44674 programmer.lout
-14&2495.programmer.lout.37 0 00630 45434 programmer.lout
-14&2495.programmer.lout.38 0 00631 45785 programmer.lout
-14&2495.programmer.lout.39 0 00632 46218 programmer.lout
-14&2495.programmer.lout.4 0 00633 4816 programmer.lout
-14&2495.programmer.lout.40 0 00634 46569 programmer.lout
-14&2495.programmer.lout.41 0 00635 47002 programmer.lout
-14&2495.programmer.lout.42 0 00636 47353 programmer.lout
-14&2495.programmer.lout.43 0 00637 54322 programmer.lout
-14&2495.programmer.lout.44 0 00638 90029 programmer.lout
-14&2495.programmer.lout.45 0 00639 110950 programmer.lout
-14&2495.programmer.lout.46 0 00640 111710 programmer.lout
-14&2495.programmer.lout.47 0 00641 116611 programmer.lout
-14&2495.programmer.lout.48 0 00642 117832 programmer.lout
-14&2495.programmer.lout.49 0 00643 120548 programmer.lout
-14&2495.programmer.lout.5 0 00644 5569 programmer.lout
-14&2495.programmer.lout.50 0 00645 121226 programmer.lout
-14&2495.programmer.lout.51 0 00646 121659 programmer.lout
-14&2495.programmer.lout.52 0 00647 122010 programmer.lout
-14&2495.programmer.lout.53 0 00648 122443 programmer.lout
-14&2495.programmer.lout.54 0 00649 122965 programmer.lout
-14&2495.programmer.lout.55 0 00650 123643 programmer.lout
-14&2495.programmer.lout.56 0 00651 124076 programmer.lout
-14&2495.programmer.lout.57 0 00652 124427 programmer.lout
-14&2495.programmer.lout.58 0 00653 124860 programmer.lout
-14&2495.programmer.lout.59 0 00654 125211 programmer.lout
-14&2495.programmer.lout.6 0 00655 5917 programmer.lout
-14&2495.programmer.lout.60 0 00656 125644 programmer.lout
-14&2495.programmer.lout.61 0 00657 125995 programmer.lout
-14&2495.programmer.lout.62 0 00658 126428 programmer.lout
-14&2495.programmer.lout.63 0 00659 126779 programmer.lout
-14&2495.programmer.lout.64 0 00660 127212 programmer.lout
-14&2495.programmer.lout.65 0 00661 127563 programmer.lout
-14&2495.programmer.lout.66 0 00662 127996 programmer.lout
-14&2495.programmer.lout.67 0 00663 128347 programmer.lout
-14&2495.programmer.lout.68 0 00664 130037 programmer.lout
-14&2495.programmer.lout.7 0 00665 6442 programmer.lout
-14&2495.programmer.lout.8 0 00666 7195 programmer.lout
-14&2495.programmer.lout.9 0 00667 12488 programmer.lout
-14&2521.policy.lout.1 0 00046 6521 policy.lout
-14&2521.policy.lout.2 0 00063 7886 policy.lout
-14&2521.policy.lout.3 0 00076 9302 policy.lout
-14&2521.policy.lout.4 0 00103 11889 policy.lout
-14&2521.policy.lout.5 0 00114 13514 policy.lout
-14&2521.policy.lout.6 0 00122 14525 policy.lout
-14&2521.policy.lout.7 0 00138 16618 policy.lout
-14&2521.policy.lout.8 0 00201 23079 policy.lout
-14&2521.programmer.lout.1 0 00668 4418 programmer.lout
-14&2521.programmer.lout.10 0 00669 39723 programmer.lout
-14&2521.programmer.lout.11 0 00670 41040 programmer.lout
-14&2521.programmer.lout.12 0 00671 41456 programmer.lout
-14&2521.programmer.lout.13 0 00672 42668 programmer.lout
-14&2521.programmer.lout.14 0 00673 43694 programmer.lout
-14&2521.programmer.lout.15 0 00674 44222 programmer.lout
-14&2521.programmer.lout.16 0 00675 90029 programmer.lout
-14&2521.programmer.lout.17 0 00676 117832 programmer.lout
-14&2521.programmer.lout.18 0 00677 122443 programmer.lout
-14&2521.programmer.lout.2 0 00678 5917 programmer.lout
-14&2521.programmer.lout.3 0 00679 7195 programmer.lout
-14&2521.programmer.lout.4 0 00680 13590 programmer.lout
-14&2521.programmer.lout.5 0 00681 14259 programmer.lout
-14&2521.programmer.lout.6 0 00682 18357 programmer.lout
-14&2521.programmer.lout.7 0 00683 26021 programmer.lout
-14&2521.programmer.lout.8 0 00684 31683 programmer.lout
-14&2521.programmer.lout.9 0 00685 37021 programmer.lout
-15&1954.policy.lout.2 0 00347 108761 policy.lout
-15&1954.policy.lout.3 0 00022 3460 policy.lout
-15&1954.policy.lout.4 0 00346 108668 policy.lout
-15&1954.programmer.lout.2 0 00686 130425 programmer.lout
-15&1954.programmer.lout.3 0 00687 3540 programmer.lout
-15&1954.programmer.lout.4 0 00688 130328 programmer.lout
-15&policy.lout_1 0 00021 3460 policy.lout
-15&policy.lout_10 0 00327 108668 policy.lout
-15&policy.lout_11 0 00328 108668 policy.lout
-15&policy.lout_12 0 00329 108668 policy.lout
-15&policy.lout_13 0 00330 108668 policy.lout
-15&policy.lout_14 0 00331 108668 policy.lout
-15&policy.lout_15 0 00332 108668 policy.lout
-15&policy.lout_16 0 00333 108668 policy.lout
-15&policy.lout_17 0 00334 108668 policy.lout
-15&policy.lout_18 0 00335 108668 policy.lout
-15&policy.lout_19 0 00336 108668 policy.lout
-15&policy.lout_20 0 00337 108668 policy.lout
-15&policy.lout_21 0 00338 108668 policy.lout
-15&policy.lout_22 0 00339 108668 policy.lout
-15&policy.lout_23 0 00340 108668 policy.lout
-15&policy.lout_24 0 00341 108668 policy.lout
-15&policy.lout_25 0 00342 108668 policy.lout
-15&policy.lout_26 0 00343 108668 policy.lout
-15&policy.lout_27 0 00344 108668 policy.lout
-15&policy.lout_28 0 00345 108668 policy.lout
-15&policy.lout_5 0 00322 108668 policy.lout
-15&policy.lout_6 0 00323 108668 policy.lout
-15&policy.lout_7 0 00324 108668 policy.lout
-15&policy.lout_8 0 00325 108668 policy.lout
-15&policy.lout_9 0 00326 108668 policy.lout
-15&programmer.lout_1 0 00689 3540 programmer.lout
-15&programmer.lout_10 0 00690 130328 programmer.lout
-15&programmer.lout_11 0 00691 130328 programmer.lout
-15&programmer.lout_12 0 00692 130328 programmer.lout
-15&programmer.lout_13 0 00693 130328 programmer.lout
-15&programmer.lout_14 0 00694 130328 programmer.lout
-15&programmer.lout_15 0 00695 130328 programmer.lout
-15&programmer.lout_16 0 00696 130328 programmer.lout
-15&programmer.lout_17 0 00697 130328 programmer.lout
-15&programmer.lout_18 0 00698 130328 programmer.lout
-15&programmer.lout_19 0 00699 130328 programmer.lout
-15&programmer.lout_20 0 00700 130328 programmer.lout
-15&programmer.lout_21 0 00701 130328 programmer.lout
-15&programmer.lout_22 0 00702 130328 programmer.lout
-15&programmer.lout_23 0 00703 130328 programmer.lout
-15&programmer.lout_24 0 00704 130328 programmer.lout
-15&programmer.lout_25 0 00705 130328 programmer.lout
-15&programmer.lout_26 0 00706 130328 programmer.lout
-15&programmer.lout_27 0 00707 130328 programmer.lout
-15&programmer.lout_28 0 00708 130328 programmer.lout
-15&programmer.lout_29 0 00709 130328 programmer.lout
-15&programmer.lout_30 0 00710 130328 programmer.lout
-15&programmer.lout_31 0 00711 130328 programmer.lout
-15&programmer.lout_32 0 00712 130328 programmer.lout
-15&programmer.lout_33 0 00713 130328 programmer.lout
-15&programmer.lout_34 0 00714 130328 programmer.lout
-15&programmer.lout_35 0 00715 130328 programmer.lout
-15&programmer.lout_36 0 00716 130328 programmer.lout
-15&programmer.lout_37 0 00717 130328 programmer.lout
-15&programmer.lout_38 0 00718 130328 programmer.lout
-15&programmer.lout_39 0 00719 130328 programmer.lout
-15&programmer.lout_40 0 00720 130328 programmer.lout
-15&programmer.lout_41 0 00721 130328 programmer.lout
-15&programmer.lout_42 0 00722 130328 programmer.lout
-15&programmer.lout_43 0 00723 130328 programmer.lout
-15&programmer.lout_44 0 00724 130328 programmer.lout
-15&programmer.lout_45 0 00725 130328 programmer.lout
-15&programmer.lout_46 0 00726 130328 programmer.lout
-15&programmer.lout_47 0 00727 130328 programmer.lout
-15&programmer.lout_48 0 00728 130328 programmer.lout
-15&programmer.lout_49 0 00729 130328 programmer.lout
-15&programmer.lout_5 0 00730 130328 programmer.lout
-15&programmer.lout_50 0 00731 130328 programmer.lout
-15&programmer.lout_51 0 00732 130328 programmer.lout
-15&programmer.lout_52 0 00733 130328 programmer.lout
-15&programmer.lout_53 0 00734 130328 programmer.lout
-15&programmer.lout_6 0 00735 130328 programmer.lout
-15&programmer.lout_7 0 00736 130328 programmer.lout
-15&programmer.lout_8 0 00737 130328 programmer.lout
-15&programmer.lout_9 0 00738 130328 programmer.lout
-16&1306.policy.lout.1 0 00031 4863 policy.lout
-16&1306.policy.lout.10 0 00173 20538 policy.lout
-16&1306.policy.lout.11 0 00177 20924 policy.lout
-16&1306.policy.lout.12 0 00181 21310 policy.lout
-16&1306.policy.lout.13 0 00185 21696 policy.lout
-16&1306.policy.lout.14 0 00189 22083 policy.lout
-16&1306.policy.lout.15 0 00193 22470 policy.lout
-16&1306.policy.lout.16 0 00207 24330 policy.lout
-16&1306.policy.lout.17 0 00211 25241 policy.lout
-16&1306.policy.lout.18 0 00215 25797 policy.lout
-16&1306.policy.lout.19 0 00219 26166 policy.lout
-16&1306.policy.lout.2 0 00035 5369 policy.lout
-16&1306.policy.lout.20 0 00223 26535 policy.lout
-16&1306.policy.lout.21 0 00227 31188 policy.lout
-16&1306.policy.lout.22 0 00231 35574 policy.lout
-16&1306.policy.lout.23 0 00235 39888 policy.lout
-16&1306.policy.lout.24 0 00239 44296 policy.lout
-16&1306.policy.lout.25 0 00243 48828 policy.lout
-16&1306.policy.lout.26 0 00247 53553 policy.lout
-16&1306.policy.lout.27 0 00251 53922 policy.lout
-16&1306.policy.lout.28 0 00255 59072 policy.lout
-16&1306.policy.lout.29 0 00259 64483 policy.lout
-16&1306.policy.lout.3 0 00039 5827 policy.lout
-16&1306.policy.lout.30 0 00263 69640 policy.lout
-16&1306.policy.lout.31 0 00267 74577 policy.lout
-16&1306.policy.lout.32 0 00271 79521 policy.lout
-16&1306.policy.lout.33 0 00275 84380 policy.lout
-16&1306.policy.lout.34 0 00282 89692 policy.lout
-16&1306.policy.lout.35 0 00286 90802 policy.lout
-16&1306.policy.lout.36 0 00290 91171 policy.lout
-16&1306.policy.lout.37 0 00294 94284 policy.lout
-16&1306.policy.lout.38 0 00298 97420 policy.lout
-16&1306.policy.lout.39 0 00302 100591 policy.lout
-16&1306.policy.lout.4 0 00149 18234 policy.lout
-16&1306.policy.lout.40 0 00306 103557 policy.lout
-16&1306.policy.lout.41 0 00310 106632 policy.lout
-16&1306.policy.lout.42 0 00314 107021 policy.lout
-16&1306.policy.lout.43 0 00318 107874 policy.lout
-16&1306.policy.lout.5 0 00153 18618 policy.lout
-16&1306.policy.lout.6 0 00157 19002 policy.lout
-16&1306.policy.lout.7 0 00161 19386 policy.lout
-16&1306.policy.lout.8 0 00165 19770 policy.lout
-16&1306.policy.lout.9 0 00169 20154 policy.lout
-16&1306.programmer.lout.1 0 00739 7319 programmer.lout
-16&1306.programmer.lout.10 0 00740 12093 programmer.lout
-16&1306.programmer.lout.100 0 00741 115339 programmer.lout
-16&1306.programmer.lout.101 0 00742 115716 programmer.lout
-16&1306.programmer.lout.103 0 00743 116736 programmer.lout
-16&1306.programmer.lout.104 0 00744 117113 programmer.lout
-16&1306.programmer.lout.105 0 00745 117957 programmer.lout
-16&1306.programmer.lout.106 0 00746 118510 programmer.lout
-16&1306.programmer.lout.107 0 00747 119333 programmer.lout
-16&1306.programmer.lout.108 0 00748 119895 programmer.lout
-16&1306.programmer.lout.109 0 00749 128472 programmer.lout
-16&1306.programmer.lout.11 0 00750 16289 programmer.lout
-16&1306.programmer.lout.110 0 00751 128897 programmer.lout
-16&1306.programmer.lout.111 0 00752 129326 programmer.lout
-16&1306.programmer.lout.12 0 00753 16740 programmer.lout
-16&1306.programmer.lout.13 0 00754 17134 programmer.lout
-16&1306.programmer.lout.14 0 00755 17655 programmer.lout
-16&1306.programmer.lout.15 0 00756 18482 programmer.lout
-16&1306.programmer.lout.16 0 00757 18934 programmer.lout
-16&1306.programmer.lout.17 0 00758 19391 programmer.lout
-16&1306.programmer.lout.18 0 00759 19785 programmer.lout
-16&1306.programmer.lout.19 0 00760 20295 programmer.lout
-16&1306.programmer.lout.2 0 00761 7769 programmer.lout
-16&1306.programmer.lout.20 0 00762 20689 programmer.lout
-16&1306.programmer.lout.21 0 00763 22739 programmer.lout
-16&1306.programmer.lout.22 0 00764 23133 programmer.lout
-16&1306.programmer.lout.23 0 00765 23585 programmer.lout
-16&1306.programmer.lout.24 0 00766 24042 programmer.lout
-16&1306.programmer.lout.25 0 00767 24494 programmer.lout
-16&1306.programmer.lout.26 0 00768 24949 programmer.lout
-16&1306.programmer.lout.27 0 00769 25343 programmer.lout
-16&1306.programmer.lout.28 0 00770 26656 programmer.lout
-16&1306.programmer.lout.29 0 00771 27266 programmer.lout
-16&1306.programmer.lout.3 0 00772 8219 programmer.lout
-16&1306.programmer.lout.30 0 00773 27876 programmer.lout
-16&1306.programmer.lout.31 0 00774 28486 programmer.lout
-16&1306.programmer.lout.32 0 00775 29096 programmer.lout
-16&1306.programmer.lout.33 0 00776 29706 programmer.lout
-16&1306.programmer.lout.34 0 00777 30316 programmer.lout
-16&1306.programmer.lout.35 0 00778 31808 programmer.lout
-16&1306.programmer.lout.36 0 00779 32297 programmer.lout
-16&1306.programmer.lout.37 0 00780 32930 programmer.lout
-16&1306.programmer.lout.38 0 00781 33423 programmer.lout
-16&1306.programmer.lout.39 0 00782 33897 programmer.lout
-16&1306.programmer.lout.4 0 00783 9538 programmer.lout
-16&1306.programmer.lout.40 0 00784 34561 programmer.lout
-16&1306.programmer.lout.41 0 00785 35006 programmer.lout
-16&1306.programmer.lout.42 0 00786 35438 programmer.lout
-16&1306.programmer.lout.43 0 00787 35913 programmer.lout
-16&1306.programmer.lout.44 0 00788 37146 programmer.lout
-16&1306.programmer.lout.45 0 00789 38453 programmer.lout
-16&1306.programmer.lout.46 0 00790 47478 programmer.lout
-16&1306.programmer.lout.47 0 00791 47952 programmer.lout
-16&1306.programmer.lout.48 0 00792 48460 programmer.lout
-16&1306.programmer.lout.49 0 00793 48968 programmer.lout
-16&1306.programmer.lout.5 0 00794 10035 programmer.lout
-16&1306.programmer.lout.50 0 00795 49491 programmer.lout
-16&1306.programmer.lout.51 0 00796 50017 programmer.lout
-16&1306.programmer.lout.52 0 00797 50541 programmer.lout
-16&1306.programmer.lout.53 0 00798 51161 programmer.lout
-16&1306.programmer.lout.54 0 00799 51919 programmer.lout
-16&1306.programmer.lout.55 0 00800 52384 programmer.lout
-16&1306.programmer.lout.56 0 00801 52890 programmer.lout
-16&1306.programmer.lout.57 0 00802 53412 programmer.lout
-16&1306.programmer.lout.58 0 00803 54447 programmer.lout
-16&1306.programmer.lout.59 0 00804 55188 programmer.lout
-16&1306.programmer.lout.6 0 00805 10427 programmer.lout
-16&1306.programmer.lout.60 0 00806 55654 programmer.lout
-16&1306.programmer.lout.61 0 00807 56119 programmer.lout
-16&1306.programmer.lout.62 0 00808 56626 programmer.lout
-16&1306.programmer.lout.63 0 00809 57149 programmer.lout
-16&1306.programmer.lout.64 0 00810 57637 programmer.lout
-16&1306.programmer.lout.65 0 00811 58159 programmer.lout
-16&1306.programmer.lout.66 0 00812 58681 programmer.lout
-16&1306.programmer.lout.68 0 00813 59607 programmer.lout
-16&1306.programmer.lout.69 0 00814 59231 programmer.lout
-16&1306.programmer.lout.7 0 00815 10819 programmer.lout
-16&1306.programmer.lout.70 0 00816 62563 programmer.lout
-16&1306.programmer.lout.71 0 00817 65519 programmer.lout
-16&1306.programmer.lout.72 0 00818 65895 programmer.lout
-16&1306.programmer.lout.73 0 00819 71553 programmer.lout
-16&1306.programmer.lout.75 0 00820 77587 programmer.lout
-16&1306.programmer.lout.76 0 00821 77211 programmer.lout
-16&1306.programmer.lout.77 0 00822 81659 programmer.lout
-16&1306.programmer.lout.78 0 00823 85731 programmer.lout
-16&1306.programmer.lout.79 0 00824 90154 programmer.lout
-16&1306.programmer.lout.8 0 00825 11309 programmer.lout
-16&1306.programmer.lout.81 0 00826 92505 programmer.lout
-16&1306.programmer.lout.82 0 00827 92129 programmer.lout
-16&1306.programmer.lout.83 0 00828 96157 programmer.lout
-16&1306.programmer.lout.84 0 00829 99809 programmer.lout
-16&1306.programmer.lout.85 0 00830 100270 programmer.lout
-16&1306.programmer.lout.86 0 00831 100680 programmer.lout
-16&1306.programmer.lout.87 0 00832 101098 programmer.lout
-16&1306.programmer.lout.88 0 00833 101474 programmer.lout
-16&1306.programmer.lout.89 0 00834 104492 programmer.lout
-16&1306.programmer.lout.9 0 00835 11701 programmer.lout
-16&1306.programmer.lout.90 0 00836 107554 programmer.lout
-16&1306.programmer.lout.91 0 00837 111835 programmer.lout
-16&1306.programmer.lout.92 0 00838 112421 programmer.lout
-16&1306.programmer.lout.93 0 00839 112859 programmer.lout
-16&1306.programmer.lout.94 0 00840 113488 programmer.lout
-16&1306.programmer.lout.96 0 00841 114161 programmer.lout
-16&1306.programmer.lout.97 0 00842 114537 programmer.lout
-16&1306.programmer.lout.99 0 00843 114963 programmer.lout
-16&1655.policy.lout.1 0 00033 4863 policy.lout
-16&1655.policy.lout.10 0 00175 20538 policy.lout
-16&1655.policy.lout.11 0 00179 20924 policy.lout
-16&1655.policy.lout.12 0 00183 21310 policy.lout
-16&1655.policy.lout.13 0 00187 21696 policy.lout
-16&1655.policy.lout.14 0 00191 22083 policy.lout
-16&1655.policy.lout.15 0 00195 22470 policy.lout
-16&1655.policy.lout.16 0 00209 24330 policy.lout
-16&1655.policy.lout.17 0 00213 25241 policy.lout
-16&1655.policy.lout.18 0 00217 25797 policy.lout
-16&1655.policy.lout.19 0 00221 26166 policy.lout
-16&1655.policy.lout.2 0 00037 5369 policy.lout
-16&1655.policy.lout.20 0 00225 26535 policy.lout
-16&1655.policy.lout.21 0 00229 31188 policy.lout
-16&1655.policy.lout.22 0 00233 35574 policy.lout
-16&1655.policy.lout.23 0 00237 39888 policy.lout
-16&1655.policy.lout.24 0 00241 44296 policy.lout
-16&1655.policy.lout.25 0 00245 48828 policy.lout
-16&1655.policy.lout.26 0 00249 53553 policy.lout
-16&1655.policy.lout.27 0 00253 53922 policy.lout
-16&1655.policy.lout.28 0 00257 59072 policy.lout
-16&1655.policy.lout.29 0 00261 64483 policy.lout
-16&1655.policy.lout.3 0 00041 5827 policy.lout
-16&1655.policy.lout.30 0 00265 69640 policy.lout
-16&1655.policy.lout.31 0 00269 74577 policy.lout
-16&1655.policy.lout.32 0 00273 79521 policy.lout
-16&1655.policy.lout.33 0 00277 84380 policy.lout
-16&1655.policy.lout.34 0 00284 89692 policy.lout
-16&1655.policy.lout.35 0 00288 90802 policy.lout
-16&1655.policy.lout.36 0 00292 91171 policy.lout
-16&1655.policy.lout.37 0 00296 94284 policy.lout
-16&1655.policy.lout.38 0 00300 97420 policy.lout
-16&1655.policy.lout.39 0 00304 100591 policy.lout
-16&1655.policy.lout.4 0 00151 18234 policy.lout
-16&1655.policy.lout.40 0 00308 103557 policy.lout
-16&1655.policy.lout.41 0 00312 106632 policy.lout
-16&1655.policy.lout.42 0 00316 107021 policy.lout
-16&1655.policy.lout.43 0 00320 107874 policy.lout
-16&1655.policy.lout.5 0 00155 18618 policy.lout
-16&1655.policy.lout.6 0 00159 19002 policy.lout
-16&1655.policy.lout.7 0 00163 19386 policy.lout
-16&1655.policy.lout.8 0 00167 19770 policy.lout
-16&1655.policy.lout.9 0 00171 20154 policy.lout
-16&1655.programmer.lout.1 0 00844 7319 programmer.lout
-16&1655.programmer.lout.10 0 00845 12093 programmer.lout
-16&1655.programmer.lout.100 0 00846 118510 programmer.lout
-16&1655.programmer.lout.101 0 00847 119333 programmer.lout
-16&1655.programmer.lout.102 0 00848 119895 programmer.lout
-16&1655.programmer.lout.103 0 00849 128472 programmer.lout
-16&1655.programmer.lout.104 0 00850 128897 programmer.lout
-16&1655.programmer.lout.105 0 00851 129326 programmer.lout
-16&1655.programmer.lout.11 0 00852 16289 programmer.lout
-16&1655.programmer.lout.12 0 00853 16740 programmer.lout
-16&1655.programmer.lout.13 0 00854 17134 programmer.lout
-16&1655.programmer.lout.14 0 00855 17655 programmer.lout
-16&1655.programmer.lout.15 0 00856 18482 programmer.lout
-16&1655.programmer.lout.16 0 00857 18934 programmer.lout
-16&1655.programmer.lout.17 0 00858 19391 programmer.lout
-16&1655.programmer.lout.18 0 00859 19785 programmer.lout
-16&1655.programmer.lout.19 0 00860 20295 programmer.lout
-16&1655.programmer.lout.2 0 00861 7769 programmer.lout
-16&1655.programmer.lout.20 0 00862 20689 programmer.lout
-16&1655.programmer.lout.21 0 00863 22739 programmer.lout
-16&1655.programmer.lout.22 0 00864 23133 programmer.lout
-16&1655.programmer.lout.23 0 00865 23585 programmer.lout
-16&1655.programmer.lout.24 0 00866 24042 programmer.lout
-16&1655.programmer.lout.25 0 00867 24494 programmer.lout
-16&1655.programmer.lout.26 0 00868 24949 programmer.lout
-16&1655.programmer.lout.27 0 00869 25343 programmer.lout
-16&1655.programmer.lout.28 0 00870 26656 programmer.lout
-16&1655.programmer.lout.29 0 00871 27266 programmer.lout
-16&1655.programmer.lout.3 0 00872 8219 programmer.lout
-16&1655.programmer.lout.30 0 00873 27876 programmer.lout
-16&1655.programmer.lout.31 0 00874 28486 programmer.lout
-16&1655.programmer.lout.32 0 00875 29096 programmer.lout
-16&1655.programmer.lout.33 0 00876 29706 programmer.lout
-16&1655.programmer.lout.34 0 00877 30316 programmer.lout
-16&1655.programmer.lout.35 0 00878 31808 programmer.lout
-16&1655.programmer.lout.36 0 00879 32297 programmer.lout
-16&1655.programmer.lout.37 0 00880 32930 programmer.lout
-16&1655.programmer.lout.38 0 00881 33423 programmer.lout
-16&1655.programmer.lout.39 0 00882 33897 programmer.lout
-16&1655.programmer.lout.4 0 00883 9538 programmer.lout
-16&1655.programmer.lout.40 0 00884 34561 programmer.lout
-16&1655.programmer.lout.41 0 00885 35006 programmer.lout
-16&1655.programmer.lout.42 0 00886 35438 programmer.lout
-16&1655.programmer.lout.43 0 00887 35913 programmer.lout
-16&1655.programmer.lout.44 0 00888 37146 programmer.lout
-16&1655.programmer.lout.45 0 00889 38453 programmer.lout
-16&1655.programmer.lout.46 0 00890 47478 programmer.lout
-16&1655.programmer.lout.47 0 00891 47952 programmer.lout
-16&1655.programmer.lout.48 0 00892 48460 programmer.lout
-16&1655.programmer.lout.49 0 00893 48968 programmer.lout
-16&1655.programmer.lout.5 0 00894 10035 programmer.lout
-16&1655.programmer.lout.50 0 00895 49491 programmer.lout
-16&1655.programmer.lout.51 0 00896 50017 programmer.lout
-16&1655.programmer.lout.52 0 00897 50541 programmer.lout
-16&1655.programmer.lout.53 0 00898 51161 programmer.lout
-16&1655.programmer.lout.54 0 00899 51919 programmer.lout
-16&1655.programmer.lout.55 0 00900 52384 programmer.lout
-16&1655.programmer.lout.56 0 00901 52890 programmer.lout
-16&1655.programmer.lout.57 0 00902 53412 programmer.lout
-16&1655.programmer.lout.58 0 00903 54447 programmer.lout
-16&1655.programmer.lout.59 0 00904 55188 programmer.lout
-16&1655.programmer.lout.6 0 00905 10427 programmer.lout
-16&1655.programmer.lout.60 0 00906 55654 programmer.lout
-16&1655.programmer.lout.61 0 00907 56119 programmer.lout
-16&1655.programmer.lout.62 0 00908 56626 programmer.lout
-16&1655.programmer.lout.63 0 00909 57149 programmer.lout
-16&1655.programmer.lout.64 0 00910 57637 programmer.lout
-16&1655.programmer.lout.65 0 00911 58159 programmer.lout
-16&1655.programmer.lout.66 0 00912 58681 programmer.lout
-16&1655.programmer.lout.67 0 00913 59231 programmer.lout
-16&1655.programmer.lout.68 0 00914 59607 programmer.lout
-16&1655.programmer.lout.69 0 00915 62563 programmer.lout
-16&1655.programmer.lout.7 0 00916 10819 programmer.lout
-16&1655.programmer.lout.70 0 00917 65519 programmer.lout
-16&1655.programmer.lout.71 0 00918 65895 programmer.lout
-16&1655.programmer.lout.72 0 00919 71553 programmer.lout
-16&1655.programmer.lout.73 0 00920 77211 programmer.lout
-16&1655.programmer.lout.74 0 00921 77587 programmer.lout
-16&1655.programmer.lout.75 0 00922 81659 programmer.lout
-16&1655.programmer.lout.76 0 00923 85731 programmer.lout
-16&1655.programmer.lout.77 0 00924 90154 programmer.lout
-16&1655.programmer.lout.78 0 00925 92129 programmer.lout
-16&1655.programmer.lout.79 0 00926 92505 programmer.lout
-16&1655.programmer.lout.8 0 00927 11309 programmer.lout
-16&1655.programmer.lout.80 0 00928 96157 programmer.lout
-16&1655.programmer.lout.81 0 00929 99809 programmer.lout
-16&1655.programmer.lout.82 0 00930 100270 programmer.lout
-16&1655.programmer.lout.83 0 00931 100680 programmer.lout
-16&1655.programmer.lout.84 0 00932 101098 programmer.lout
-16&1655.programmer.lout.85 0 00933 101474 programmer.lout
-16&1655.programmer.lout.86 0 00934 104492 programmer.lout
-16&1655.programmer.lout.87 0 00935 107554 programmer.lout
-16&1655.programmer.lout.88 0 00936 111835 programmer.lout
-16&1655.programmer.lout.89 0 00937 112421 programmer.lout
-16&1655.programmer.lout.9 0 00938 11701 programmer.lout
-16&1655.programmer.lout.90 0 00939 112859 programmer.lout
-16&1655.programmer.lout.91 0 00940 113488 programmer.lout
-16&1655.programmer.lout.92 0 00941 114161 programmer.lout
-16&1655.programmer.lout.93 0 00942 114537 programmer.lout
-16&1655.programmer.lout.94 0 00943 114963 programmer.lout
-16&1655.programmer.lout.95 0 00944 115339 programmer.lout
-16&1655.programmer.lout.96 0 00945 115716 programmer.lout
-16&1655.programmer.lout.97 0 00946 116736 programmer.lout
-16&1655.programmer.lout.98 0 00947 117113 programmer.lout
-16&1655.programmer.lout.99 0 00948 117957 programmer.lout
-16&2521.policy.lout.1 0 00048 7015 policy.lout
-16&2521.policy.lout.2 0 00065 8430 policy.lout
-16&2521.policy.lout.3 0 00078 9820 policy.lout
-16&2521.policy.lout.4 0 00105 12637 policy.lout
-16&2521.policy.lout.5 0 00116 14073 policy.lout
-16&2521.policy.lout.6 0 00124 15316 policy.lout
-16&2521.policy.lout.7 0 00140 17236 policy.lout
-16&2521.policy.lout.8 0 00203 23675 policy.lout
-16&2521.programmer.lout.1 0 00949 5026 programmer.lout
-16&2521.programmer.lout.10 0 00950 40574 programmer.lout
-16&2521.programmer.lout.11 0 00951 41668 programmer.lout
-16&2521.programmer.lout.12 0 00952 42120 programmer.lout
-16&2521.programmer.lout.13 0 00953 43228 programmer.lout
-16&2521.programmer.lout.14 0 00954 44434 programmer.lout
-16&2521.programmer.lout.15 0 00955 44886 programmer.lout
-16&2521.programmer.lout.16 0 00956 111162 programmer.lout
-16&2521.programmer.lout.17 0 00957 120760 programmer.lout
-16&2521.programmer.lout.18 0 00958 123177 programmer.lout
-16&2521.programmer.lout.2 0 00959 6652 programmer.lout
-16&2521.programmer.lout.3 0 00960 12698 programmer.lout
-16&2521.programmer.lout.4 0 00961 14470 programmer.lout
-16&2521.programmer.lout.5 0 00962 14919 programmer.lout
-16&2521.programmer.lout.6 0 00963 21717 programmer.lout
-16&2521.programmer.lout.7 0 00964 31137 programmer.lout
-16&2521.programmer.lout.8 0 00965 36557 programmer.lout
-16&2521.programmer.lout.9 0 00966 39177 programmer.lout
-17&1655.policy.lout.1 0 00032 5108 policy.lout
-17&1655.policy.lout.10 0 00174 20784 policy.lout
-17&1655.policy.lout.11 0 00178 21170 policy.lout
-17&1655.policy.lout.12 0 00182 21556 policy.lout
-17&1655.policy.lout.13 0 00186 21943 policy.lout
-17&1655.policy.lout.14 0 00190 22330 policy.lout
-17&1655.policy.lout.15 0 00194 22717 policy.lout
-17&1655.policy.lout.16 0 00208 24559 policy.lout
-17&1655.policy.lout.17 0 00212 25470 policy.lout
-17&1655.policy.lout.18 0 00216 26026 policy.lout
-17&1655.policy.lout.19 0 00220 26395 policy.lout
-17&1655.policy.lout.2 0 00036 5614 policy.lout
-17&1655.policy.lout.20 0 00224 28715 policy.lout
-17&1655.policy.lout.21 0 00228 33368 policy.lout
-17&1655.policy.lout.22 0 00232 37754 policy.lout
-17&1655.policy.lout.23 0 00236 42068 policy.lout
-17&1655.policy.lout.24 0 00240 46476 policy.lout
-17&1655.policy.lout.25 0 00244 51008 policy.lout
-17&1655.policy.lout.26 0 00248 53782 policy.lout
-17&1655.policy.lout.27 0 00252 56374 policy.lout
-17&1655.policy.lout.28 0 00256 61524 policy.lout
-17&1655.policy.lout.29 0 00260 66935 policy.lout
-17&1655.policy.lout.3 0 00040 6072 policy.lout
-17&1655.policy.lout.30 0 00264 72092 policy.lout
-17&1655.policy.lout.31 0 00268 77029 policy.lout
-17&1655.policy.lout.32 0 00272 81973 policy.lout
-17&1655.policy.lout.33 0 00276 86832 policy.lout
-17&1655.policy.lout.34 0 00283 89921 policy.lout
-17&1655.policy.lout.35 0 00287 91031 policy.lout
-17&1655.policy.lout.36 0 00291 92683 policy.lout
-17&1655.policy.lout.37 0 00295 95796 policy.lout
-17&1655.policy.lout.38 0 00299 98932 policy.lout
-17&1655.policy.lout.39 0 00303 102103 policy.lout
-17&1655.policy.lout.4 0 00150 18479 policy.lout
-17&1655.policy.lout.40 0 00307 105069 policy.lout
-17&1655.policy.lout.41 0 00311 106861 policy.lout
-17&1655.policy.lout.42 0 00315 107250 policy.lout
-17&1655.policy.lout.43 0 00319 108104 policy.lout
-17&1655.policy.lout.5 0 00154 18863 policy.lout
-17&1655.policy.lout.6 0 00158 19247 policy.lout
-17&1655.policy.lout.7 0 00162 19631 policy.lout
-17&1655.policy.lout.8 0 00166 20015 policy.lout
-17&1655.policy.lout.9 0 00170 20399 policy.lout
-17&1655.programmer.lout.1 0 00967 7568 programmer.lout
-17&1655.programmer.lout.10 0 00968 12344 programmer.lout
-17&1655.programmer.lout.100 0 00969 118744 programmer.lout
-17&1655.programmer.lout.101 0 00970 119567 programmer.lout
-17&1655.programmer.lout.102 0 00971 120129 programmer.lout
-17&1655.programmer.lout.103 0 00972 128723 programmer.lout
-17&1655.programmer.lout.104 0 00973 129148 programmer.lout
-17&1655.programmer.lout.105 0 00974 129577 programmer.lout
-17&1655.programmer.lout.11 0 00975 16539 programmer.lout
-17&1655.programmer.lout.12 0 00976 16990 programmer.lout
-17&1655.programmer.lout.13 0 00977 17384 programmer.lout
-17&1655.programmer.lout.14 0 00978 17905 programmer.lout
-17&1655.programmer.lout.15 0 00979 18732 programmer.lout
-17&1655.programmer.lout.16 0 00980 19184 programmer.lout
-17&1655.programmer.lout.17 0 00981 19641 programmer.lout
-17&1655.programmer.lout.18 0 00982 20035 programmer.lout
-17&1655.programmer.lout.19 0 00983 20545 programmer.lout
-17&1655.programmer.lout.2 0 00984 8018 programmer.lout
-17&1655.programmer.lout.20 0 00985 20939 programmer.lout
-17&1655.programmer.lout.21 0 00986 22989 programmer.lout
-17&1655.programmer.lout.22 0 00987 23383 programmer.lout
-17&1655.programmer.lout.23 0 00988 23835 programmer.lout
-17&1655.programmer.lout.24 0 00989 24292 programmer.lout
-17&1655.programmer.lout.25 0 00990 24744 programmer.lout
-17&1655.programmer.lout.26 0 00991 25199 programmer.lout
-17&1655.programmer.lout.27 0 00992 25593 programmer.lout
-17&1655.programmer.lout.28 0 00993 27014 programmer.lout
-17&1655.programmer.lout.29 0 00994 27624 programmer.lout
-17&1655.programmer.lout.3 0 00995 8468 programmer.lout
-17&1655.programmer.lout.30 0 00996 28234 programmer.lout
-17&1655.programmer.lout.31 0 00997 28844 programmer.lout
-17&1655.programmer.lout.32 0 00998 29454 programmer.lout
-17&1655.programmer.lout.33 0 00999 30064 programmer.lout
-17&1655.programmer.lout.34 0 01000 30674 programmer.lout
-17&1655.programmer.lout.35 0 01001 32057 programmer.lout
-17&1655.programmer.lout.36 0 01002 32546 programmer.lout
-17&1655.programmer.lout.37 0 01003 33179 programmer.lout
-17&1655.programmer.lout.38 0 01004 33672 programmer.lout
-17&1655.programmer.lout.39 0 01005 34146 programmer.lout
-17&1655.programmer.lout.4 0 01006 9787 programmer.lout
-17&1655.programmer.lout.40 0 01007 34811 programmer.lout
-17&1655.programmer.lout.41 0 01008 35256 programmer.lout
-17&1655.programmer.lout.42 0 01009 35688 programmer.lout
-17&1655.programmer.lout.43 0 01010 36163 programmer.lout
-17&1655.programmer.lout.44 0 01011 37396 programmer.lout
-17&1655.programmer.lout.45 0 01012 38703 programmer.lout
-17&1655.programmer.lout.46 0 01013 47728 programmer.lout
-17&1655.programmer.lout.47 0 01014 48202 programmer.lout
-17&1655.programmer.lout.48 0 01015 48710 programmer.lout
-17&1655.programmer.lout.49 0 01016 49218 programmer.lout
-17&1655.programmer.lout.5 0 01017 10284 programmer.lout
-17&1655.programmer.lout.50 0 01018 49741 programmer.lout
-17&1655.programmer.lout.51 0 01019 50267 programmer.lout
-17&1655.programmer.lout.52 0 01020 50791 programmer.lout
-17&1655.programmer.lout.53 0 01021 51411 programmer.lout
-17&1655.programmer.lout.54 0 01022 52169 programmer.lout
-17&1655.programmer.lout.55 0 01023 52634 programmer.lout
-17&1655.programmer.lout.56 0 01024 53140 programmer.lout
-17&1655.programmer.lout.57 0 01025 53662 programmer.lout
-17&1655.programmer.lout.58 0 01026 54697 programmer.lout
-17&1655.programmer.lout.59 0 01027 55438 programmer.lout
-17&1655.programmer.lout.6 0 01028 10676 programmer.lout
-17&1655.programmer.lout.60 0 01029 55904 programmer.lout
-17&1655.programmer.lout.61 0 01030 56369 programmer.lout
-17&1655.programmer.lout.62 0 01031 56876 programmer.lout
-17&1655.programmer.lout.63 0 01032 57399 programmer.lout
-17&1655.programmer.lout.64 0 01033 57887 programmer.lout
-17&1655.programmer.lout.65 0 01034 58409 programmer.lout
-17&1655.programmer.lout.66 0 01035 58931 programmer.lout
-17&1655.programmer.lout.67 0 01036 59463 programmer.lout
-17&1655.programmer.lout.68 0 01037 61134 programmer.lout
-17&1655.programmer.lout.69 0 01038 64090 programmer.lout
-17&1655.programmer.lout.7 0 01039 11068 programmer.lout
-17&1655.programmer.lout.70 0 01040 65751 programmer.lout
-17&1655.programmer.lout.71 0 01041 68773 programmer.lout
-17&1655.programmer.lout.72 0 01042 74431 programmer.lout
-17&1655.programmer.lout.73 0 01043 77443 programmer.lout
-17&1655.programmer.lout.74 0 01044 79672 programmer.lout
-17&1655.programmer.lout.75 0 01045 83744 programmer.lout
-17&1655.programmer.lout.76 0 01046 87816 programmer.lout
-17&1655.programmer.lout.77 0 01047 90386 programmer.lout
-17&1655.programmer.lout.78 0 01048 92361 programmer.lout
-17&1655.programmer.lout.79 0 01049 94380 programmer.lout
-17&1655.programmer.lout.8 0 01050 11558 programmer.lout
-17&1655.programmer.lout.80 0 01051 98032 programmer.lout
-17&1655.programmer.lout.81 0 01052 100041 programmer.lout
-17&1655.programmer.lout.82 0 01053 100502 programmer.lout
-17&1655.programmer.lout.83 0 01054 100912 programmer.lout
-17&1655.programmer.lout.84 0 01055 101330 programmer.lout
-17&1655.programmer.lout.85 0 01056 103032 programmer.lout
-17&1655.programmer.lout.86 0 01057 106050 programmer.lout
-17&1655.programmer.lout.87 0 01058 109112 programmer.lout
-17&1655.programmer.lout.88 0 01059 112068 programmer.lout
-17&1655.programmer.lout.89 0 01060 112654 programmer.lout
-17&1655.programmer.lout.9 0 01061 11950 programmer.lout
-17&1655.programmer.lout.90 0 01062 113092 programmer.lout
-17&1655.programmer.lout.91 0 01063 113721 programmer.lout
-17&1655.programmer.lout.92 0 01064 114393 programmer.lout
-17&1655.programmer.lout.93 0 01065 114769 programmer.lout
-17&1655.programmer.lout.94 0 01066 115195 programmer.lout
-17&1655.programmer.lout.95 0 01067 115572 programmer.lout
-17&1655.programmer.lout.96 0 01068 115949 programmer.lout
-17&1655.programmer.lout.97 0 01069 116969 programmer.lout
-17&1655.programmer.lout.98 0 01070 117346 programmer.lout
-17&1655.programmer.lout.99 0 01071 118191 programmer.lout
-18&2521.policy.lout.1 0 00045 6641 policy.lout
-18&2521.policy.lout.2 0 00059 8006 policy.lout
-18&2521.policy.lout.3 0 00075 9423 policy.lout
-18&2521.policy.lout.4 0 00102 12010 policy.lout
-18&2521.policy.lout.5 0 00112 13635 policy.lout
-18&2521.policy.lout.6 0 00120 14646 policy.lout
-18&2521.policy.lout.7 0 00135 16739 policy.lout
-18&2521.policy.lout.8 0 00200 23200 policy.lout
-18&2521.programmer.lout.1 0 01072 4542 programmer.lout
-18&2521.programmer.lout.10 0 01073 39848 programmer.lout
-18&2521.programmer.lout.11 0 01074 41165 programmer.lout
-18&2521.programmer.lout.12 0 01075 41317 programmer.lout
-18&2521.programmer.lout.13 0 01076 42793 programmer.lout
-18&2521.programmer.lout.14 0 01077 43819 programmer.lout
-18&2521.programmer.lout.15 0 01078 43998 programmer.lout
-18&2521.programmer.lout.16 0 01079 90530 programmer.lout
-18&2521.programmer.lout.17 0 01080 120385 programmer.lout
-18&2521.programmer.lout.18 0 01081 122568 programmer.lout
-18&2521.programmer.lout.2 0 01082 6041 programmer.lout
-18&2521.programmer.lout.3 0 01083 8851 programmer.lout
-18&2521.programmer.lout.4 0 01084 13715 programmer.lout
-18&2521.programmer.lout.5 0 01085 13928 programmer.lout
-18&2521.programmer.lout.6 0 01086 21165 programmer.lout
-18&2521.programmer.lout.7 0 01087 26146 programmer.lout
-18&2521.programmer.lout.8 0 01088 34393 programmer.lout
-18&2521.programmer.lout.9 0 01089 37766 programmer.lout
-19&@DocumentBody.28 0 00281 89602 policy.lout
-19&@DocumentBody.28 0 01090 130162 programmer.lout
-2&3336.policy.lout.1 0 00002 171 policy.lout
-2&3336.policy.lout.2 0 00013 1953 policy.lout
-2&3336.programmer.lout.1 0 01091 175 programmer.lout
-2&3336.programmer.lout.2 0 01092 2001 programmer.lout
-3&3391.policy.lout.1 0 00003 348 policy.lout
-3&3391.policy.lout.2 0 00014 2130 policy.lout
-3&3391.programmer.lout.1 0 01093 356 programmer.lout
-3&3391.programmer.lout.2 0 01094 2182 programmer.lout
-4&3445.policy.lout.1 0 00004 515 policy.lout
-4&3445.policy.lout.2 0 00015 2297 policy.lout
-4&3445.programmer.lout.1 0 01095 527 programmer.lout
-4&3445.programmer.lout.2 0 01096 2353 programmer.lout
-5&3500.policy.lout.1 0 00005 694 policy.lout
-5&3500.policy.lout.2 0 00016 2476 policy.lout
-5&3500.programmer.lout.1 0 01097 710 programmer.lout
-5&3500.programmer.lout.2 0 01098 2536 programmer.lout
-6&3554.policy.lout.1 0 00006 861 policy.lout
-6&3554.policy.lout.2 0 00017 2643 policy.lout
-6&3554.programmer.lout.1 0 01099 881 programmer.lout
-6&3554.programmer.lout.2 0 01100 2707 programmer.lout
-7&3609.policy.lout.1 0 00007 1036 policy.lout
-7&3609.policy.lout.2 0 00018 2818 policy.lout
-7&3609.programmer.lout.1 0 01101 1060 programmer.lout
-7&3609.programmer.lout.2 0 01102 2886 programmer.lout
-8&1400.policy.lout.1 0 00008 1207 policy.lout
-8&1400.programmer.lout.1 0 01103 1235 programmer.lout
-9&4153.policy.lout.1 0 00009 1485 policy.lout
-9&4153.programmer.lout.1 0 01104 1517 programmer.lout
diff --git a/doc/manuals-version b/doc/manuals-version
index 1020fd06f..db2968290 100644
--- a/doc/manuals-version
+++ b/doc/manuals-version
@@ -1,2 +1,2 @@
-<!entity manuals-version "2.1.1.0">
-<!entity dpkg-version "1.4.0">
+<!entity manuals-version "">
+<!entity dpkg-version "1.4.1">
diff --git a/doc/obsolete/dependency-ordering.txt b/doc/obsolete/dependency-ordering.txt
deleted file mode 100644
index f3f679408..000000000
--- a/doc/obsolete/dependency-ordering.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-To: Debian developers list <debian-devel@pixar.com>
-Subject: Note about the default for virtal package dependencies
-
-As I wrote some time ago (see below), ordering is significant in the
-Depends and Recommended fields - in the absence of other information
-dselect will suggest to the user that they select the first named
-package in a list of options.
-
-However, there is no way to specify the `order' of several packages
-which all Provide the same thing, when that thing is listed as a
-Dependency.
-
-Eg, if we have:
- Package: glibcdoc
- Recommended: info-browser
-
- Package: info
- Provides: info-browser
-
- Package: emacs
- Provides: info-browser
-
-then (if emacs and info are both in the same Class) dselect's choice
-will be essentially random.
-
-It is important to think about this problem, and to consider whether
-to list one the the packages explicitly.
-
-For example,
- Package: glibcdoc
- Recommended: info | info-browser
-
-will do the same as the above, except that it will ensure that `info'
-is the package which dselect will suggest to the user they also select
-if the user has neither it nor Emacs and asks to select glibcdoc.
-
-This is not necessary if one of the packages has a more fundamental
-Class - see the details below.
-
-Ian.
-
-------- Start of forwarded message -------
-To: Debian developers list <debian-devel@pixar.com>
-Subject: Ordering is significant in Depends: and Recommends:
-
-For dselect, the ordering of alternative packages in a Depends: or
-Recommended: line is significant.
-
-When an unsatisfied dependency (Depends or Recommended) or a conflict
-is detected dselect will go into a `recursive package list', where the
-user gets to choose how to resolve the problem.
-
-Usually dselect will suggest to the user that they select the package
-with the most `fundamental' class (eg, it will prefer Base packages to
-Optional ones), or the one that they `most wanted' to select in some
-sense.
-
-However, in the absence of other information dselect will prefer
-packages listed earlier in the unsatisfied entry in the Depends or
-Recommended field.
-
-NB: this doesn't apply to constructions of the form:
- Package: auctex
- Depends: emacs, tex
-which specifies that auctex depends on *both* emacs and tex. In this
-case dselect will suggest to the user that they select both packages.
-
-It applies to constructions of the form:
- Package: a2gs
- Recommended: gs_x | gs_both | gs_svga
-Here, dselect will prefer gs_x because it is listed earlier. (In the
-future I may make it more clever - it may be able to notice, to
-continue the example, that the dependencies of gs_x are not yet
-satisfied while those of gs_svga, are, and thus prefer the latter, or
-in a different situation to notice that gs_both has extra dependencies
-which are satisfied, and thus prefer it to gs_x and gs_svga. More
-thought is needed in this area.)
-
-One final example. In the more complicated construction:
- Package: trn
- Depends: smail | sendmail, inn | inewsinn
-dselect will prefer smail because it is a Standard package, and
-Sendmail is only Optional, and will prefer inewsinn because it is
-Recommended and inn is only Optional. So, the default (if none of the
-other packages were selected) would be to select smail and inewsinn.
-
-However, if inewsinn were moved to Optional this would change, and inn
-would be preferred whenever the issue arose after the change.
-
-Optional fields have the same structure as Depends and Recommended
-fields, but they will not arrange for the packages they list to be
-suggested for selection, though they will be offered to the user.
-
-Ian M: can this go in an appendix to the Guidelines ?
-
-Ian.
-------- End of forwarded message -------
diff --git a/doc/obsolete/descriptions.txt b/doc/obsolete/descriptions.txt
deleted file mode 100644
index fdc302b1a..000000000
--- a/doc/obsolete/descriptions.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-To: Debian developers list <debian-devel@pixar.com>
-Subject: Package maintainers please look at your Description fields.
-
-dselect will be much more useful when more packages are more
-informative in the Description they provide in their control file.
-
-So, when you next release a package, could you please check whether
-the `control' file has a good description of the package, formatted as
-described below ?
-
-A small amount of effort here on the part of package maintainers will
-improve the looks of things quite a bit, I think.
-
-BTW, a number of packages have been indenting continuation lines in
-their Description fields thus:
- Description: gnomovision
- Gnomovision is ....
- further blurb ...
-Please don't do this. According to the scheme described below (which
-I've now implemented), dselect interprets the extra indentation to
-mean `preformatted' text, and doesn't wordwrap it.
-
-Ian.
-
-
-The format of the Description field is as follows:
-
-Description: <single line synopsis>
- <extended description over several lines>
-
-The extended description has several kinds of line:
-
- - those starting with a single space are part of a paragraph.
-Successive lines of this form will be word-wrapped when displayed.
-The leading space will usually be stripped off.
-
- - those starting with two or more spaces. These will be displayed
-verbatim. If the display cannot be panned horizontally the displaying
-program will linewrap them `hard' (ie, without taking account of word
-breaks). If it can they will be allowed to trail off to the right.
-None, one or two initial spaces may be deleted, but the number of
-spaces deleted from each line will be the same (so that you can have
-indenting work right, for example).
-
- - those containing a single space followed by a single full stop
-character. These are rendered as blank lines. This is the ONLY way
-to get a blank line - see below.
-
- - those containing a space, a full stop and some more characters.
-These are for future expansion. Don't use them.
-
-IMPORTANT and not so important TIPS:
-
-* ALWAYS START EXTENDED DESCRIPTION LINES WITH AT LEAST ONE WHITESPACE
-CHARACTER. Fields in the control file and in the Packages file are
-separated by field names starting in the first column, just as in
-RFC822. Forgetting the whitespace will cause dpkg-deb (>=0.93.23) to
-produce a syntax error when trying to build the package. If you force
-it to build anyway dpkg will refuse to install the resulting mess.
-
-* DO NOT INCLUDE ANY COMPLETELY EMPTY LINES. These separate different
-records in the Packages file, and are forbidden in control files. See
-the previous paragraph for what happens if you get this wrong.
-
-* The single line synopsis should be kept brief - certainly under 80
-characters. My current working half-dselect displays the first 49
-characters if you're using an 80-column terminal.
-
-* Don't include the package name in the synopsis line. The display
-software knows how to display this already, and you don't need to
-state it.
-
-* The extended description should describe what the package does, and
-what component it forms of any larger subsystem of which it is a part.
-
-* Put important information first, both in the synopis and extended
-description. Sometimes only the first part of the synopsis or of the
-description will be displayed. You can assume that there will usually
-be a way to see the whole extended description.
-
-* You may include information about dependencies and so forth in the
-extended description, if you wish.
-
-* Don't use tab characters. Their effect is not predictable.
-
-Example control file for Smail:
-
-Package: smail
-Version: 3.1.29.1
-Package_Revision: 8
-Maintainer: Ian Jackson <iwj10@cus.cam.ac.uk>
-Recommended: pine | elm | emacs | mh | mailx
-Optional: metamail
-Depends: cron
-Conflicts: sendmail
-Description: Electronic mail transport system.
- Smail is the recommended mail transport agent (MTA) for Debian.
- .
- An MTA is the innards of the mail system - it takes messages from
- user-friendly mailer programs and arranges for them to be delivered
- locally or passed on to other systems as required.
- .
- In order to make use of it you must have one or more user level
- mailreader programs such as elm, pine, mailx or Emacs (which has Rmail
- and VM as mailreaders) installed. If you wish to send messages other
- than just to other users of your system you must also have appropriate
- networking support, in the form of IP or UUCP.
-
---
-Ian Jackson, at home. ijackson@nyx.cs.du.edu or iwj10@cus.cam.ac.uk
-+44 1223 575512 Escoerea on IRC. http://www.cl.cam.ac.uk/users/iwj10/
-2 Lexington Close, Cambridge, CB4 3LS, England. Urgent: iwj@cam-orl.co.uk
diff --git a/doc/obsolete/disappear-replace.txt b/doc/obsolete/disappear-replace.txt
deleted file mode 100644
index 8335a0ea4..000000000
--- a/doc/obsolete/disappear-replace.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-From ian Tue Apr 18 23:30:04 1995
-X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
- [nil nil nil nil nil nil nil nil nil nil nil nil "^To:" nil nil nil nil nil nil nil]
- nil)
-X-VM-Summary-Format: "%3n %a %2d %3m %-19.19F %s\n"
-X-VM-Labels: nil
-X-VM-VHeader: ("Resent-" "From:" "Sender:" "To:" "Apparently-To:" "Cc:" "Subject:" "Date:") nil
-X-VM-Bookmark: 5
-To: Debian developers list <debian-devel@pixar.com>
-Subject: Handling of base packages
-
-I propose to implement the following scheme to enable obsolete base
-packages to disappear, and to allow files in the base packages to move
-between one package and another.
-
-1. When a package is installed, and contains files that are already
-marked as belonging to some other package, the older package will have
-the files that have been overwritten removed from its file list.
-
-2. When a package ceases to contain any files due to the action of
-point 1 above, its postrm script is run with the argument `disappear'
-(in place of `remove', `purge' or whatever). It will then be moved
-into the `purge ok not-installed' state, so that it will cease to
-appear in dpkg and dselect lists. Its conffiles will be ignored,
-*not* purged. The prerm will *not* be run as the packaging system
-doesn't know what files are in a package until it unpacks it.
-
-This will all happen during the `unpack' phase of the replacing
-package.
-
-3. If a base system package which is being installed conflicts with
-another base system package which is currently installed on the
-system, the currently installed one will be removed first (the prerm
-will be run with `replace <package> <version>' as arguments, then the
-package will be removed, then the postrm will be run, likewise with
-`replace'). If the replacement fails the removal will be aborted,
-involving running the old packages' scripts with `abort-replace'.
-
-4. Base system packages may not be removed except under 2. or 3.
-above. (There will be a --force-remove-base flag to allow foolhardy
-users to go ahead anyway.)
-
-Ian.
-
diff --git a/doc/obsolete/diversions.text b/doc/obsolete/diversions.txt
index ade33af5f..ade33af5f 100644
--- a/doc/obsolete/diversions.text
+++ b/doc/obsolete/diversions.txt
diff --git a/doc/obsolete/dpkg.texi b/doc/obsolete/dpkg.texi
deleted file mode 100644
index b9530d6a5..000000000
--- a/doc/obsolete/dpkg.texi
+++ /dev/null
@@ -1,101 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename dpkg.info
-@settitle The @code{dpkg} Package Maintenance System
-@c %**end of header
-
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
-* dpkg: (dpkg). The @code{dpkg} package maintenance system.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@setchapternewpage off
-
-@ifinfo
-This file documents the @code{dpkg} package maintenance system.
-
-Copyright (C) 1994 Ian A. Murdock
-
-Permission is granted to make and distribute verbatim copies of this
-document provided the copyright notice and this permission notice are
-preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a copying permission
-notice identical to this one, except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-document under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this document
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by The Debian Linux Association.
-@end ifinfo
-
-@titlepage
-@title The @code{dpkg} Package Maintenance System
-@author Ian A. Murdock
-@page
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1994 Ian A. Murdock
-
-Permission is granted to make and distribute verbatim copies of this
-document provided the copyright notice and this permission notice are
-preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-document under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this document
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by The Debian Linux Association.
-@end titlepage
-
-@node Top, Overview, (dir), (dir)
-
-@top Introduction
-@menu
-* Overview:: An overview of the @code{dpkg} package
- maintenance system.
-* Installation:: How to install a package with @code{dpkg}.
-* Removal:: How to remove a package with @code{dpkg}.
-* Information:: How to obtain information about both
- installed and not-yet-installed packages.
-* Extension:: How to extend @code{dpkg} to support new
- package formats.
-* Guidelines:: Guidelines for creating and maintaining
- packages for Debian GNU/Linux.
-@end menu
-
-@node Overview
-@chapter Overview
-
-@node Installation
-@chapter Package Installation
-
-@node Removal
-@chapter Package Removal
-
-@node Information
-@chapter Package Information
-
-@node Guidelines
-@chapter Debian GNU/Linux Guidelines
-
-@node Extension
-@chapter How to Extend @code{dpkg} to Support New Package Formats
-
-@bye
diff --git a/doc/obsolete/dselect-methods.txt b/doc/obsolete/dselect-methods.txt
deleted file mode 100644
index d90e73058..000000000
--- a/doc/obsolete/dselect-methods.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-From ian Sun May 14 18:21:53 +0100 1995
-To: Debian developers list <debian-devel@pixar.com>
-Subject: dselect installation method scripts
-
-Below is a (somewhat amended) repost of the posting I made a little
-while ago about the interface between dselect and the installation
-scripts it can run to extract packages.
-
-Carl Streeter has some hard disk scripts that look fairly good (I
-haven't tested them). Anyone else looking to write such scripts
-should see his code (Carl, can you upload them please ?).
-
-Howevever, there are a few points to note:
- * Each set of scripts can support several `options' as they're called
-- this saves having different code for the CD-ROM, hard disk, &c
-methods.
- * You have to supply a /usr/[local]/lib/dpkg/methods/<method>/names
-file listing the options - see below.
-
-dselect *will* look in /usr/local/lib/dpkg/methods as well as
-/usr/lib. Put your scripts there until you send them to me for
-inclusion in dpkg.
-
-Details if the installation method handling is below, and in
-method-scripts.txt; an example `test' method that just shows you how
-to write a `names' file and how dselect reacts is available as:
-
-ab2022c57a1198838034c5f87ea501b1 dselect-example-test-method.tar
--rw-rw-r-- 1 ian ian 10240 May 14 18:19 dselect-example-test-method.tar
-
-NB that the code in dselect to select and call installation scripts is
-ALPHA !
-
-Ian.
-
-Each `installation method' will have three scripts:
-
- * Setup installation parameters.
- * Update list of available packages.
- * Unpack.
-
-Which set of scripts is to be used is selectable by the user, from the
-`[S]etup' menu option. Basically, the user hits `Setup', gets
-presented with a menu of choices and picks one.
-
-This (a) sets that `choice' to be the default installation method and
-(b) runs the `setup' script for that choice.
-
-The setup script should prompt the user for parameters like the site
-to NFS-mount or FTP from, the directory to use, or the directory or
-filesystem where the .deb files can be found, or the tape or floppy
-device to install from. It should store the responses under
-/var/lib/dpkg/methods - see below.
-
-The update script should obtain a list of available packages if
-possible (this is the Packages file from the FTP sites), and copy it
-to /var/lib/dpkg/available. Be careful not to overwrite the available
-file if something goes wrong - I'd suggest copying to `available.new'
-and renaming. If no available list is available :-) it should print a
-message saying so.
-
-The unpack script should feed all the available .deb files to
- dpkg --unpack --no-also-select
-(the --auto option may also be useful here). In the future there will
-be a mechanism to allow (for example) a floppy-based installation
-scheme to tell the user which packages are still to be processed; in
-the meantime you should just keep going until the user says `stop'.
-
-If any of these scripts needs to display a message for the user, it
-should wait for the user to hit `return' before exiting so that
-dselect doesn't immediately rewrite the screen.
-
-If a script gives a non-zero exit status dselect will print a message
-about it and prompt the user for an acknowledgement. If it exits with
-a zero exit status then dselect will immediately go back into curses
-and any message that the script printed just before exiting will not
-be visible.
-
-The scripts will be kept in /usr/lib/dpkg/methods/. Each method
-should have a directory under methods, containing:
- `names' - a list of `user-visible options', see below.
- `setup', `update', `unpack' - executable programs.
- `desc.<option>' - description file.
-
-A method may provide several options on the `main menu' with different
-behaviour. For example, there might be a generic get-packages-by-FTP
-method which might provide entries in the main menu for installation
-directly from one of the Debian mirror sites as well as for
-installation from a user-specified site.
-
-The `setup', `update' and `unpack' will be invoked with three
-arguments.
-
-The first argument is the directory with the dpkg status information,
-usually /var/lib/dpkg. They should $1/methods/<method-name> to store
-their data (remember that the user can give a --admindir option to
-dselect).
-
-The second and third argument are the name of the method and the
-option within that method, respectively. This information is provided
-by dselect (from the user's choice of installation option).
-
-`names' will be formatted as a list of lines, each containing:
- <sequence> <option> <summary>
-
-<sequence> is a two-digit number that will be used much like rc.d
-prefixes to control the order in the main menu. If in doubt use 50.
-
-<option> is a name which will be passed to `setup', `update' and
-`unpack' as their third argument (see above).
-
-<summary> is the menu entry string.
-
-Each option may have an extended description in `desc.<option>'. This
-should be formatted like a Description: field entry *shifted one
-character to the left*.
-
-/var/lib/dpkg/methods will exist, and a method may use a
-/var/lib/dpkg/methods/<method> directory or file (or <method>.* files)
-to store its state.
-
-<method> and <option> must follow the rules for C identifiers.
-
--- Ian Jackson 14th May 1995
diff --git a/doc/obsolete/essential-flag.txt b/doc/obsolete/essential-flag.txt
deleted file mode 100644
index 34e821135..000000000
--- a/doc/obsolete/essential-flag.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-From ian Thu Jul 6 21:14:08 +0100 1995
-X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
- [nil nil nil nil nil nil nil nil nil nil nil nil "^To:" nil nil nil nil nil nil nil]
- nil)
-In-Reply-To: <m0sTw2a-00063aC@mongo.pixar.com>
-References: <m0sTw2a-00063aC@mongo.pixar.com>
-To: debian-devel@pixar.com
-Subject: Re: non-uninstallable packages
-
-Bruce Perens writes ("non-uninstallable packages"):
-> Assume that a package, such as one in the base, is supposed to be
-> non-uninstallable because it is a critical system component. We should
-> specify that in an unambiguous form, rather than indicating it by
-> specifying "Class: base" in the control file.
->
-> I suggest yet another control file field, called "Flags: ". This is
-> followed by a comma-delimited set of flags. An example might be:
-> Flags: no-uninstall
->
-> Another alternative would be to add control-file fields for each flag.
-> In this case, the field would appear as:
-> Allow-uninstall: no
-> ...and the default would be "yes".
-
-I think you're right. Bill spotted that we were trying to overload
-the `Class' field.
-
-I don't think there's any need for a generic `Flags:' field; a simple
-extra field is fine, unless we're going to have an awful lot of
-boolean flags applying to packages (any attribute with a value is
-better handled using a field of its own anyway).
-
-I propose to call the new field `Essential', with allowable values
-`yes' and `no' and a default of `no'.
-
-This will be clearer all round, I think, than attempting to describe
-dpkg behaviour in the field name.
-
-If I don't have to make an emergency bugfix release of dpkg first this
-will be in the next version. I'll modify dselect too.
-
-Ian.
-
diff --git a/doc/obsolete/maintainer-script-args.txt b/doc/obsolete/maintainer-script-args.txt
deleted file mode 100644
index a1cd3c75c..000000000
--- a/doc/obsolete/maintainer-script-args.txt
+++ /dev/null
@@ -1,173 +0,0 @@
-Richard Kettlewell has asked me to document this, so here is a brief
-summary. More documentation will probably have to wait until someone
-has time ...
-
-... hmm, it has turned out not to be so brief, and I've spent the last
-hour or so writing it. Perhaps someone can use it as the basis for a
-spec or a manpage or something.
-
-In all cases version numbers are <version>-<revision>, if the package
-has both, or just <version>. `upgrade' is used even when the new
-version number looks lower than the old.
-
-*** SUMMARY - listing of possible scripts with arguments:
-
- <new preinst> install
- <new preinst> install <old-version>
- <new preinst> upgrade <old-version>
- <old preinst> abort-upgrade <new-version>
-
- <postinst> configure
- <old postinst> abort-upgrade <new version>
- <conflictor's postinst> abort-remove in-favour <package> <new version>
- <deconfigured's postinst> abort-deconfigure \
- in-favour <package-being-installed-but-failed> <version>
- removing <conflicting-package> <version>
-
- <prerm> remove
- <old prerm> upgrade <new version>
- <new prerm> failed-upgrade <old-vppersion>
- <conflictor's prerm> remove in-favour <package> <new version>
- <deconfigured's prerm> deconfigure \
- in-favour <package-being-installed> <version> \
- removing <conflicting-package> <version>
-
- <postrm> remove
- <postrm> purge
- <old postrm> upgrade <new-version>
- <new postrm> failed-upgrade <old-version>
- <new postrm> abort-install
- <new postrm> abort-install <old-version>
- <new postrm> abort-upgrade <old-version>
- <disappearer's postrm> disappear <overwriter> <new version>
-
-*** INSTALLATION (unpack):
-
-The procedure on installation/upgrade/overwrite/disappear (ie, when
-running dpkg --unpack, or the unpack stage of dpkg --install) is as
-follows. In each case if an error occurs the actions in are general
-run backwards - this means that the maintainer scripts are run with
-different arguments in reverse order. These are the `error unwind'
-calls listed below.
-
-1a. If a version the package is already installed, call
- <old prerm> upgrade <new version>
-1b. If this gives an error (ie, a non-zero exit status), dpkg will
-attempt instead:
- <new prerm> failed-upgrade <old-version>
- ... error unwind, for both the above cases:
- <old postinst> abort-upgrade <new version>
-
-2. If a `conflicting' package is being removed at the same time:
-2a. If any packages depended on that conflicting package and
---auto-deconfigure is specified, call, for each such package:
- <deconfigured's prerm> deconfigure \
- in-favour <package-being-installed> <version> \
- removing <conflicting-package> <version>
- ... error unwind:
- <deconfigured's postinst> abort-deconfigure \
- in-favour <package-being-installed-but-failed> <version>
- removing <conflicting-package> <version>
-The deconfigured packages are marked as requiring configuration, so
-that if --install is used they will be configured again if possible.
-2b. To prepare for removal of the conflicting package, call:
- <conflictor's prerm> remove in-favour <package> <new version>
- ... error unwind:
- <conflictor's postinst> abort-remove in-favour <package> <new version>
-
-3a. If the package is being upgraded, call
- <new preinst> upgrade <old-version>
-3b. otherwise, if the package had some configuration files from a
-previous version installed (ie, it is in the conffiles-only state):
- <new preinst> install <old-version>
-3c. otherwise (ie, the package was completely purged):
- <new preinst> install
- ... error unwind versions, respectively:
- <new postrm> abort-upgrade <old-version>
- <new postrm> abort-install <old-version>
- <new postrm> abort-install
-
-4. The new package's files are unpacked, overwriting any that may be
-on the system already, for example any from the old package or from
-another package (backups of the old files are left around, and if
-anything goes wrong dpkg will attempt to put them back as part of the
-error unwind).
-
-5a. If the package is being upgraded, call
- <old postrm> upgrade <new-version>
-5b. If this fails, dpkg will attempt:
- <new postrm> failed-upgrade <old-version>
- ... error unwind, for both cases:
- <old preinst> abort-upgrade <new-version>
-
-This is the point of no return - if dpkg gets this far, it won't back
-off past this point if an error occurs. This will leave the package
-in a fairly bad state, which will require a successful reinstallation
-to clear up, but it's when dpkg starts doing things that are
-irreversible.
-
-6. Any files which were in the old version of the package but not in
- the new are removed.
-7. The new file list replaces the old.
-8. The new maintainer scripts replace the old.
-
-9. Any packages all of whose files have been overwritten during the
-installation, and which aren't required for dependencies, are
-considered to have been removed. For each such package,
-9a. dpkg calls:
- <disappearer's postrm> disappear <overwriter> <new version>
-9b. The package's maintainer scripts are removed.
-9c. It is noted in the status database as being in a sane state,
-namely not installed (any conffiles it may have are ignored).
-Note that disappearing packages don't have their prerm called, because
-dpkg doesn't know in advance that the package is going to vanish.
-
-10. Any files in the package we're unpacking that are also listed in
-the file lists of other packages are removed from those lists. (This
-will lobotomise the file list of the `conflicting' package if there is
-one.)
-
-11. The backup files made at 4. are deleted.
-12. The new package's status is now sane, and recorded as `unpacked'.
-
-Here is another point of no return - if the conflicting package's
-removal fails we don't unwind the rest of the installation; the
-conflicting package is left in a half-removed limbo.
-
-13. If there was a conflicting package we go and do the removal
-actions, starting from point 2. of the removal, below.
-
-
-*** CONFIGURATION:
-
-When we configure a package (this happens with dpkg --install, or with
---configure), we first update the conffiles and then call:
- <postinst> configure
-(I'm planning to make available as an argument the version of the most
-recent successfully-configured version of the package.)
-
-No attempt is made to unwind after errors during configuration.
-
-
-*** REMOVAL:
-
-1. <prerm> remove
-
-2. The package's files are removed (except conffiles).
-
-3. <postrm> remove
-
-4. All the maintainer scripts except the postrm are removed.
-
-If we aren't purging the package we stop here. Note that packages
-which have no postrm and no conffiles are automatically purged when
-removed, as there is no difference except for the dpkg status.
-
-5. The conffiles and any backup files (~-files, #*# files, %-files,
-.dpkg-{old,new,tmp}, &c &c &c) are removed.
-
-6. <postrm> purge
-
-7. The package's file list is removed.
-
-No attempt is made to unwind after errors during removal.
diff --git a/doc/obsolete/version-ordering.txt b/doc/obsolete/version-ordering.txt
deleted file mode 100644
index 7bbda6304..000000000
--- a/doc/obsolete/version-ordering.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-(This has been edited to conform to the intent in dpkg 1.0.16.
- When recent versions of dpkg compare versions they break the Version
- into an upstream version and debian revision first, by splitting the
- Version at the last hyphen. The revisions are only considered if the
- upstream versions compare equal.)
-
-To: debian-devel@pixar.com
-Subject: Re: dpkg 0.93.8 released
-
-[...]
-Well, here is what I came up with after a bit of thought and testing.
-I propose the following algorithm for comparing version numbers:
-
- forever {
- remove initial non-digit substring from string a
- remove initial non-digit substring from string b
- compare initial non-digit substrings lexically,
- counting letters as coming before punctuation
- if (they differ) return the answer
- remove initial digit substring from string a
- remove initial digit substring from string b
- compare initial digit substrings numerically
- if (they differ) return the answer
- if (both strings are now empty)
- the version numbers are the same, stop
- if (one string is now empty)
- it is the `lesser', return the answer
- }
-
-This will have the desired results:
- 2.1 < 2.7 < 2.7a < 2.7a-2 < 2.15
-
-An implementation in Perl is attached below.
-
-Ian.
-
-#!/usr/bin/perl --
-
-if (@ARGV) {
- print &compare(@ARGV),"\n";
-} else {
- while(<>) { chop; chop($x=<>); print &compare($_,$x),"\n"; }
-}
-
-sub compare {
- local ($a,$b) = @_;
- do {
- $a =~ s/^\D*//; $ad= $&; $ad =~ s/\W/ /g;
- $b =~ s/^\D*//; $bd= $&; $bd =~ s/\W/ /g;
-print "\t[$ad|$a] [$bd|$b]\n";
- $cm = $ad cmp $bd; return $cm if $cm;
- $a =~ s/^\d*//; $ad= $&;
- $b =~ s/^\d*//; $bd= $&;
-print "\t<$ad|$a> <$bd|$b>\n";
- $cm = $ad <=> $bd; return $cm if $cm;
- } while (length($a) && length($b));
-print "\t{$a} {$b}\n";
- return length($a) cmp length($b);
-}
diff --git a/doc/obsolete/virtual-dependencies.txt b/doc/obsolete/virtual-dependencies.txt
deleted file mode 100644
index 1f45eb7a0..000000000
--- a/doc/obsolete/virtual-dependencies.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-To: Debian users list <debian-user@pixar.com>
-Subject: dpkg 0.93.36: dselect does virtual packages
-
-This release contains virtual package support in the C parts of the
-system, which at the moment includes dselect and dpkg-deb.
-
-It works as I outlined in a mail to debian-devel a little while ago.
-
-Package maintainers: please start adding `Provides:' fields to your
-packages. dselect will use and understand them; dpkg-deb will check
-the syntax of the Provides field instead of warning you about it.
-dpkg will not understand the new field and will ignore it.
-
-When almost all the packages have Provides: fields in place we can
-start replacing old-style Recommended: fields.
-
-Note that we can't change Depends: fields since they're also
-interpreted by dpkg, which doesn't know about Provides (yet).
-
-[...]
---------------------
-
-From: iwj10@cus.cam.ac.uk (Ian Jackson)
-To: debian-devel@pixar.com
-Subject: `virtual' packages in Depends, Conflicts &c
-Date: Fri, 31 Mar 95 15:44 BST
-
-We're starting to have a problem with package name changes and
-multiple packages providing the same service.
-
-I liked the idea (put forward by [Bruce Perens]) of having `virtual'
-packages; it seems that it would solve many of these problems straight
-away.
-
-What I'm proposing to do is as follows:
-
-Depends, Conflicts, Recommended and Optional lines will now be able to
-contain `virtual' package names as well as real package names.
-
-Virtual packages are in the same namespace as real packages, and may
-have the same name. The meaning of a virtual package in a
-dependency/conflicts list is exactly that of listing all the real
-packages which state that they are an instantiation of that virtual
-package.
-
-This is done with a new Provides field in the control file, with a
-syntax much like the Conflicts field.
-
-The idea is that we can have something like:
- Package: elm
- Depends: mta
-
- Package: smail
- Provides: mta
- Conflicts: mta
-
- Package: sendmail
- Provides: mta
- Conflicts: mta
-&c. The result is equivalent to elm having said
- Depends: smail | sendmail
-
-(There'll be a special case to say that a package may conflict with a
-virtual package which it provides - clearly ...)
-
-If there are both a real and a virtual package of the same name then
-the dependency may be satisfied (or the conflict caused) by either the
-real package or any of the virtual packages which provide it. This is
-so that, for example, supposing we have
- Package: lout
- Optional: ghostview
-(this is a fictional example - the Lout package shouldn't mention
-ghostview), and someone else comes up with a nice PostScript
-previewer, then they can just say
- Package: marvelpostview
- Provides: ghostview
-and all will work in the interim (until, say, the Lout maintainer
-changes things).
-
-If a dependency or a conflict has a version number attached then only
-real packages will be considered to see whether the relationship is
-satisfied (or prohibited, for a conflict) - it is assumed that a real
-package which provides virtual package is not of the `right' version.
-If there is demand I could arrange that a package which provides a
-virtual package may mention a version number, eg.
- Provides: mta (2.0)
-though I tbink this is unlikely to be helpful.
-
-If you want to specify which of a set of real packages should be the
-default to satisfy a particular dependency on a virtual package, you
-can simply list the real package as alternative before the virtual
-one. E.g.:
- Package: xbaseR6
- Recommended: xsvga | x-server
- Provides: x-base, xr6shlib
-
- Package: xsvga
- Recommended: x-base
- Provides: x-server
-
- Package: x8514
- Recommended: x-base
- Provides: x-server
-
-Ian.
diff --git a/doc/policy.sgml b/doc/policy.sgml
deleted file mode 100644
index 112d51d30..000000000
--- a/doc/policy.sgml
+++ /dev/null
@@ -1,1619 +0,0 @@
-<!doctype debiandoc system [
-<!entity % manuals-version-def system "manuals-version">
-%manuals-version-def;
-]>
-
-<!--
- Debian Linux package policy manual.
- Copyright (C)1996 Ian Jackson; released under the terms of the GNU
- General Public License, version 2 or (at your option) any later.
- -->
-
-<book>
-
-<title>Debian policy manual
-<author>Ian Jackson <email/ijackson@gnu.ai.mit.edu/
-<version>version &manuals-version; (dpkg &dpkg-version;), <date>
-
-<abstract>
-This manual describes the policy requirements which must be satisfied
-for a package to be included in the Debian distribution. This
-includes details of the permissions and ownerships of files in
-packages and other technical requirements as well as information like
-the upload procedure.
-</abstract>
-
-<copyright>Copyright &copy;1996 Ian Jackson.
-<p>
-
-This manual is free software; you may redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-<p>
-
-This is distributed in the hope that it will be useful, but
-<em>without any warranty</em>; without even the implied warranty of
-merchantability or fitness for a particular purpose. See the GNU
-General Public License for more details.
-<p>
-
-You should have received a copy of the GNU General Public License with
-your Debian GNU/Linux system, in <tt>/usr/doc/copyright/GPL</tt>, or
-with the <prgn/dpkg/ source package as the file <tt>COPYING</tt>. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.
-
-<toc sect>
-
-<chapt id="scope">Introduction and scope of this manual
-<p>
-
-This manual describes the criteria that a Debian-format package must
-satisfy to be included in the Debian distribution.
-<p>
-
-Much of this information will be useful even when building a package
-which is to be distributed in some other way or is for local use.
-<p>
-
-This manual does <em/not/ describe the technical mechanisms involved
-in package creation, installation and removal. This information can
-be found in the <prgn/dpkg/ programmers' manual and the <prgn/dpkg/ system
-administrators' manual.
-<p>
-
-This document assumes familiarity with these other two manuals.
-Unfortunately the system administrators' manual does not exist yet.
-<p>
-
-The Debian version of the FSF's GNU <prgn/hello/ program is provided
-as an example for people wishing to create Debian packages.
-<p>
-
-<em>Note that this document is still a draft!</em>
-
-<chapt id="pkgcopyright">Package copyright
-<p>
-
-Please study the copyright of your submission <em/carefully/ and
-understand it before proceeding. If you have doubts or questions,
-please ask.
-<p>
-
-The aims of the policy detailed below are:
-<list compact>
-<item>
-That any user be able to rebuild any package in the official Debian
-distribution from the original source plus our patches.
-<item>
-That we make available in our packaging formats as much software as we
-can.
-<item>
-That it be easy for people to make CDROMs of our distribution without
-violating copyrights.
-</list>
-<p>
-
-All packages in the Debian distribution proper must be freely useable,
-modifiable and redistributable in both source and binary
-form.<footnote>It is OK for there to be a requirement that modified
-versions carry a warning, or that they be released with a different
-name or version number, or something similar, because we can comply
-with this requirement if necessary.</footnote>
-It must be possible for anyone to distribute and use modified source
-code and their own compiled binaries, at least when they do so as part
-of a Debian distribution.
-<p>
-
-Packages
-<list compact>
-<item>
-whose copyright permission notices (or patent problems) do not allow
-distribution and copying for profit, without restriction on the amount
-charged, or
-<item>
-where distribution is restricted according to the medium used, or
-<item>
-where the distributor must ask any kind of special permission of the
-authors, or
-<item>
-with other onerous conditions,
-</list>
-may only be placed in the semi-supported non-free section of the
-Debian FTP archives. This is important so that CDROM manufacturers
-can distribute Debian without having to check the copyright of each
-package individually, simply by leaving out the contents of the
-non-free area; CDROM distributors are encouraged, though, to check the
-copyrights on programs in non-free individually and include as many as
-they can.
-<p>
-
-Packages
-<list compact>
-<item>
-whose copyright permission notices (or patent problems) allow only
-distribution of compiled binaries (and thus of which only binaries are
-available), or
-<item>
-where the source code which may be
-distributed is not the complete source code required to compile the
-program (ie, the program cannot be compiled using only packages in the
-main Debian distribution), or
-<item>
-which depend for their use on non-free or contrib
-packages<footnote>This includes all packages which declare a
-dependency on a non-free or contrib package, and almost all packages
-which declare a recommendation.</footnote>, or
-<item>
-allow free use only for a trial period (shareware), or
-<item>
-are demonstration programs lacking vital functionality (crippleware),
-or
-<item>
-are only installer-packages which require the user to supply a
-separate file to be installed, or
-<item>
-which are buggy and no longer maintained, but are preserved for
-backward compatibility, or
-<item>
-which fail to meet some other policy requirements,
-</list>
-may only be placed in the semi-supported contrib section of the Debian
-FTP archives (unless they need to be in non-free - see above).
-<p>
-
-Programs whose authors encourage the user to make donations are fine
-for the main distribution, provided that the authors do not claim that
-not donating is immoral, unethical, illegal or something similar;
-otherwise they must go in contrib (or non-free, if even distribution
-is restricted by such statements).
-<p>
-
-Packages whose copyright permission notices (or patent problems) do
-not allow redistribution even of only binaries, and where no special
-permission has been obtained, cannot placed on the Debian FTP site and
-its mirrors at all.
-<p>
-
-Note that under international copyright law<footnote>This applies in
-the United States, too.</footnote> <em/no/ distribution or modification
-of a work is allowed without an explicit notice saying so. Therefore
-a program without a copyright notice <em/is/ copyrighted and you may
-not do anything to it without risking being sued! Likewise if a
-program has a copyright notice but no statement saying what is
-permitted then nothing is permitted.
-<p>
-
-Many authors are unaware of the problems that restrictive copyrights
-(or lack of copyright notices) can cause for the users of their
-supposedly-free software. It is often worthwhile contacting such
-authors diplomatically to ask them to modify their terms generally, or
-specially for Debian. However, this is a politically difficult thing
-to do and you should ask for advice on <prgn/debian-devel/ first.
-<p>
-
-When in doubt, send mail to <email/debian-devel@lists.debian.org/. Be
-prepared to provide us with the copyright statement. Software covered
-by the GPL, public domain software and BSD-like copyrights are safe;
-be wary of the phrases `commercial use prohibited' and `distribution
-restricted'.
-<p>
-
-Every package submission <em/must/ be accompanied by verbatim copy of
-its copyright (with the exceptions of public domain packages and those
-covered by the UCB BSD licence or the GNU GPL or LGPL; in these cases
-simply indicate which is appropriate). This information must be
-included in a file installed by the binary package - see <ref
-id="copyrightfile">.
-
-<chapt id="binarypkg">Contents of the binary package
-
-<sect>Control file requirements
-
-<sect1><tt/Maintainer/ information
-<p>
-
-All packages must have a <tt/Maintainer/ field with the correct name
-and a working email address for the Debian maintainer of the package.
-If one person maintains several packages they should try to avoid
-having different forms of their name and address in different
-<tt/Maintainer/ fields.
-
-<sect1>Dependencies and virtual packages
-<p>
-
-Add a dependency for any shared libraries required by
-dynamically-linked executable binaries in your package, by using
-<prgn/dpkg-shlibdeps/.
-<p>
-
-All packages must use virtual package names where appropriate, and
-arrange to create new ones if necessary. They must not use virtual
-package names (except privately, amongst a cooperating group of
-packages) unless they have been agreed upon and appear in the list of
-virtual package names.
-<p>
-
-The latest version of the authoritative list of virtual package names
-can be found on <ftpsite>ftp.debian.org</> in
-<ftppath>/debian/doc/package-developer/virtual-package-names-list.text</>
-or your local mirror. The procedure for updating it is described at
-the top of the file.
-
-<sect1><tt/Section/ and <tt/Priority/
-<p>
-
-Decide whether your package can go in <tt/non-free/, <tt/contrib/ or
-the main distribution - see <ref id="pkgcopyright">, and put
-an appropriate value for the distribution in the
-<tt>debian/changelog</> file.
-<p>
-
-The <tt/Priority/ and <tt/Section/ control file fields give
-information for classifying the package in <prgn/dselect/ and say
-which directory to place it in the FTP archive.
-<p>
-
-They are ultimately the responsibility of the distribution
-maintainers; however, you should suggest values for them in your
-<tt/.changes/ information when you upload a package. You do this by
-including appropriate information in the <tt>debian/control</tt> file
-before building the packages.
-<p>
-
-For a list of the currently in-use sections, please see the FTP
-archive. Packages in the non-free and contrib areas should have
-section <tt/non-free/ and <tt/contrib/, respectively.
-
-<sect2><tt/Priority/ values
-<p>
-
-<taglist>
-<tag><tt/required/
-<item>
-<tt/required/ packages are necessary for the proper functioning of the
-system. You must not remove these packages or your system may become
-totally broken and you may probably not even be able to use
-<prgn/dpkg/ to put things back. Systems with only the <tt/required/
-packages are probably unuseable, but they do have enough functionality
-to allow the sysadmin to boot and install more software.
-
-<tag><tt/important/
-<item>
-Important programs, including those which one would expect to find on
-any Unix-like system. If the expectation is that an experienced Unix
-person who found it missing would go `What the F*!@&lt;+ is going on,
-where is <prgn/foo/', it should be in <tt/important/. This is an
-important criterion because we are trying to produce, amongst other
-things, a free Unix. Other packages without which the system will not
-run well or be useable should also be here. This does <em/not/
-include Emacs or X11 or TeX or any other large applications. The
-<tt/important/ packages are just a bare minimum of commonly-expected
-and necessary tools.
-
-<tag><tt/standard/
-<item>
-These packages provide a reasonably small but not too limited
-character-mode system. This is what will install by default if the
-user doesn't select anything else. It doesn't include many large
-applications, but it does include Emacs (this is more of a piece of
-infrastructure than an application) and a reasonable subset of TeX and
-LaTeX (if this is possible without X).
-
-<tag><tt/optional/<footnote>In a sense everything is optional that
-isn't required, but that's not what is meant here.</footnote>
-<item>
-This is all the software that you might reasonably want to install if
-you didn't know what it was or don't have specialised requirements.
-This is a much larger system and includes X11, a full TeX
-distribution, and lots of applications.
-
-<tag><tt/extra/
-<item>
-This contains packages that conflict with others with higher
-priorities, or are only likely to be useful if you already know what
-they are or have specialised requirements.
-
-</taglist>
-<p>
-
-Priority values are not case-sensitive.
-
-<sect2>Base packages
-<p>
-
-Some packages have <tt/Section: base/ and are in the <tt/base/
-subdirectory on the FTP archives. These are the packages that are
-supplied on the base disks. They are the minimum sensible set for
-installing new packages (perhaps via a network).
-<p>
-
-Most of these packages should have <tt/Priority: required/ or at least
-<tt/Priority: important/, and many will be essential (see below).
-
-<sect1><tt/Pre-Depends/ and the <tt/Essential/ flag
-<p>
-
-Do not use <tt/Pre-Depends/ or <tt/Essential: yes/ unless your package
-is absolutely vital to the functioning of the system and the
-installation of other packages. Do not do either of these things
-without consultation with the distribution maintainers or on
-<prgn/debian-devel/.
-<p>
-
-Usually, neither of these fields should not be used unless removing a
-package really will completely hose the system, making it impossible
-to recover by (re)installing packages with <prgn/dpkg/.
-<p>
-
-<tt/Essential/ should not be used for a shared library package - the
-dependencies will prevent its premature removal, and we need to be
-able to remove it when it has been superseded.
-<p>
-
-It is not necessary for other packages to declare any dependencies
-they have on other packages which are marked <tt/Essential/.
-
-<sect1>Including <tt/Priority/ and <tt/Section/ in the <tt/.deb/
-control file
-<p>
-
-If a user installs a package which is not part of the standard
-distribution, or without downloading and updating from a new
-<prgn/Packages/ file, the information about the priority and section
-of a package will be absent, and the <prgn/dselect/ package listing
-will have the package listed under `unclassified'. In order to
-improve this it is permissible to use the <tt/-is/, <tt/-isp/ or
-<tt/-ip/ option to <prgn/dpkg-gencontrol/, so that the <tt/Section/
-and/or <tt/Priority/ is copied into the actual control information in
-the <tt/.deb/ file. However, if you do this you should make sure you
-keep the information up to date so that users are not shown
-conflicting information.
-
-
-<sect1>Formatting of the <tt/Description/ control file field
-<p>
-
-Every Debian package should have an extended description.
-<p>
-
-The description should be written so that it tells the user what they
-need to know to decide whether to install the package. This
-description should not just be copied from the blurb for the program.
-Instructions for configuring or using the package should not be
-included - that is what installation scripts, manpages, Info files and
-<tt>/usr/doc/<var/package/</> are for. Copyright statements and other
-administrivia should not be included - that is what
-<tt>/usr/doc/<var/package//copyright</> is for.
-<p>
-
-If you wish to include a list in your extended with entries which are
-a line or more each you must indent each entry by one space to make
-sure that it doesn't get wordwrapped. The start of each list entry
-should be marked with an asterisk, followed by a single space. You
-must wrap the list entries yourself to 75 columns, and should start
-continuation lines indented by three spaces so that they line up with
-the start of the text on the first line of each list entry.
-<p>
-
-See the programmers' manual for further requirements and pitfalls.
-
-<sect>Locations of files
-<p>
-
-The location of all installed files and directories must comply fully
-with the Linux File System Standard (FSSTND). The latest version of
-this document can be found alongside this manual or on
-<ftpsite/tsx-11.mit.edu/ in
-<ftppath>/pub/linux/docs/linux-standards/fsstnd/</>. Specific questions
-about following the standard may be asked on <prgn/debian-devel/, or
-referred to Daniel Quinlan, the FSSTND coordinator, at
-<email/quinlan@yggdrasil.com/.
-<p>
-
-<sect1>Manpages
-<p>
-
-You must install manpages in <prgn/nroff/ source form, in appropriate
-places under <tt>/usr/man</tt>. You should only use sections 1 to 9
-(see the FSSTND for more details). You must <em/not/ install a
-preformatted `cat page'.
-<p>
-
-If no manual page is available for a particular program, utility or
-function and this is reported as a bug on debian-bugs, a symbolic link
-from the requested manual page to the <manref name=undocumented
-section=7> manual page should be provided. This symbolic link can be
-created from <tt>debian/rules</> like this:
-<example>
-ln -s ../man7/undocumented.7 \
- debian/tmp/usr/man/man[1-9]/the_requested_manpage.[1-9]
-</example>
-This manpage claims that the lack of a manpage has been reported as a
-bug, so you may only do this if it really has (you can report it
-yourself, if you like). Do not close the bug report until a proper
-manpage is available.
-<p>
-
-You may forward a complaint about a missing manpage to the upstream
-authors, and mark the bug as forwarded in the Debian bug tracking
-system. Even though the GNU Project do not in general consider the
-lack of a manpage to be a bug, we do - if they tell you that they
-don't consider it a bug you should leave the bug in our bug tracking
-system open anyway.
-<p>
-
-Manpages should be installed compressed using <tt/gzip -9/.
-<p>
-
-If one manpage needs to be accesssible via several names it is better
-to use a symbolic link than the <tt/.so/ feature, but there is no need
-to fiddle with the relevant parts of the upstream source to change
-from <tt/.so/ to symlinks - don't do it unless it's easy. Do not
-create hard links in the manual page directories, and do not put
-absolute filenames in <tt/.so/ directives. The filename in a
-<tt/.so/ in a manpage should be relative to the base of the manpage
-tree (usually <tt>/usr/man</tt>).
-
-<sect1>Info documents
-<p>
-
-Info documents should be installed in <tt>/usr/info</tt>. They should
-be compressed with <tt/gzip -9/.
-<p>
-
-Your package must call <prgn/install-info/ to update the Info <tt/dir/
-file, in its post-installation script:
-<example>
-install-info --quiet --section Development Development \
- /usr/info/foobar.info
-</example>
-<p>
-
-It is a good idea to specify a section for the location of your
-program; this is done with the <tt/--section/ switch. To determine
-which section to use, you should look at <tt>/usr/info/dir</> on your
-system and choose the most relevant (or create a new section if none
-of the current sections are relevant). Note that the <tt/--section/
-flag takes two arguments; the first is a regular expression to match
-(case-insensitively) against an existing section, the second is used
-when creating a new one.
-<p>
-
-You must remove the entries in the pre-removal script:
-<example>
-install-info --quiet --remove /usr/info/foobar.info
-</example>
-<p>
-
-If <prgn/install-info/ cannot find a description entry in the Info file
-you will have to supply one. See <manref name=install-info section=8>
-for details.
-
-<sect1>Additional documentation
-<p>
-
-Any additional documentation that comes with the package can be
-installed at the discretion of the package maintainer. Text
-documentation should be installed in a directory
-<tt>/usr/doc/<var/package/</tt><footnote>Where <var/package/ is the
-name of the package.</footnote> and compressed with <tt/gzip -9/
-unless it is small.
-<p>
-
-If a package comes with large amounts of documentation which many
-users of the package will not require you should create a separate
-binary package to contain it, so that it does not take up disk space
-on the machines of users who do not need or want it installed.
-<p>
-
-It is often a good idea to put text information files (<tt/README/s,
-changelogs, and so forth) that come with the source package in
-<tt>/usr/doc/<var/package/</> in the binary package. However, don't
-install the instructions for building and installing the package, of
-course!
-
-<sect1>Preferred documentation formats
-<p>
-
-The unification of Debian documentation is being carried out via HTML.
-<p>
-
-If your package comes with extensive documentation in a markup format
-that can be converted to various other formats you should if possible
-ship HTML versions in the binary package, in the directory
-<tt>/usr/doc/<var/package/</> or its subdirectories.
-<p>
-
-Other formats such as PostScript may be provided at your option.
-
-<sect2>Examples
-<p>
-
-Any examples (configurations, source files, whatever), should be
-installed in a directory <tt>/usr/doc/<var/package//examples</tt>.
-These files should not be referenced by any program - they're there
-for the benefit of the system administrator and users, as
-documentation only.
-
-<sect1 id="instchangelog"><tt>/usr/doc/<var/package//changelog.Debian.gz</>
-and <tt>/usr/doc/<var/package//changelog.upstream.gz</>.
-<p>
-
-This installed file must contain a copy of the <tt>debian/changelog</>
-file from your Debian source tree, and a copy of the upstream
-changelog file if there is one. They should usually be installed in
-<tt>/usr/doc/<var/package/</> as <tt/changelog.Debian.gz/ and
-<tt/changelog.gz/ respectively.
-<p>
-
-Both should be installed compressed using <tt/gzip -9/, as they will
-become large with time even if they start out small.
-<p>
-
-If the package has only one changelog which is used both as the Debian
-changelog and the upstream one because there is no separate upstream
-maintainer then that changelog should usually be installed as
-<tt>/usr/doc/<var/package//changelog.gz</>; if there is a separate
-upstream maintainer, but no upstream changelog, then the Debian
-changelog should still be called <tt/changelog.Debian.gz/.
-
-<sect1 id="copyrightfile"><tt>/usr/doc/<var/package//copyright</tt>
-<p>
-
-This file must contain details of the authorship and copyright of the
-package. It must say where the upstream sources (if any) were
-obtained, and explain briefly what modifications were made in the
-Debian version of the package compared to the upstream one. It must
-name the original authors of the package and the Debian maintainer(s)
-who were involved with its creation.
-<p>
-
-It must contain the full text of the copyright notice and any
-acknowledgements for the program and the licence terms under which the
-program is distributed. If the package is distributed under the GNU
-General Public Licence, the GNU Library General Public Licence, the
-Regents of the University of California at Berkeley (BSD) licence or
-Larry Wall's Artistic Licence please say so instead of including a
-copy of the licence. The files <tt/BSD/, <tt/GPL/, <tt/LGPL/ and
-<tt/Artistic/ are be available in <tt>/usr/doc/copyright</tt> for you
-to refer to.
-<p>
-
-The copyright file should not be compressed unless it is very large.
-<p>
-
-Do not use the copyright file as a general <tt/README/ file. If your
-package has such a file it should be installed in
-<tt>/usr/doc/<var/package//README</> or <tt/README.Debian/ or some
-other appropriate place.
-
-<sect1>Symbolic links
-<p>
-
-Most symbolic links should be relative, not absolute. Absolute links,
-in general, cause problems when a file system is not mounted where it
-"normally" resides (for example, when mounted via NFS).
-<p>
-
-In particular, symlinks from one part of <tt>/usr</tt> to another
-should be relative.
-<p>
-
-In certain cases, however, relative links may cause more problems.
-For example, links into <tt>/etc</tt> and <tt>/var</tt> should be
-absolute.
-<p>
-
-Note that when creating a relative link using <prgn/ln/ it is not
-necessary for the target of the link to exist relative to the working
-directory you're running <prgn/ln/ from; nor is it necessary to change
-directory to the directory where the link is to be made. Simply
-include the string that should appear as the target of the link (this
-will be a pathname relative to the directory in which the link
-resides) as the first argument to <prgn/ln/.
-<p>
-
-For example, in your <prgn/Makefile/ or <tt>debian/rules</>, do things
-like:
-<example>
-ln -fs gcc $(prefix)/bin/cc
-ln -fs gcc debian/tmp/usr/bin/cc
-ln -fs ../sbin/sendmail $(prefix)/bin/runq
-ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
-</example>
-
-<sect1>Logfiles
-<p>
-
-Logfiles should usually be named
-<tt>/var/log/<var/package/.log</tt>. If you have many logfiles,
-or need a separate directory for permissions reasons
-(<tt>/var/log</tt> is writeable only by <tt/root/), you should usually
-create a directory named <tt>/var/log/<var/package/</tt>.
-<p>
-
-Make sure that any logfiles are rotated occasionally so that they
-don't grow indefinitely; the best way to do this is to use
-<prgn/savelog/ program in an <tt>/etc/cron.daily</>,
-<tt>/etc/cron.weekly</> or <tt>/etc/cron.monthly</> script.
-<p>
-
-Make sure that any logfiles are removed when the package is purged
-(but not when it is only removed), by checking the argument to the
-postrm script (see the programmer's manual for details).
-
-<sect1><tt>/usr/local</> - for the use of the system administrator
-<p>
-
-As mandated by the FSSTND no package should place any files in
-<tt>/usr/local</>, either by putting them in the filesystem archive to
-be unpacked by <prgn/dpkg/ or by manipulating them in their maintainer
-scripts.
-<p>
-
-Every package that searches a number of directories or files for
-something (for example, looking for shared libraries in <tt>/lib</> or
-<tt>/usr/lib</>) should search an appropriate directory in
-<tt>/usr/local</> too.
-<p>
-
-In order that the system administrator may know where to place
-additional files a package should create an empty directory in the
-appropriate place in <tt>/usr/local</> by supplying it in the
-filesystem archive for unpacking by <prgn/dpkg/. The
-<tt>/usr/local</> directory itself and all the subdirectories created
-by the package should have permissions 2775 (group-writeable and
-set-group-id) and be owned by <tt/root.staff/.
-<p>
-
-In the future it will be possible to tell <prgn/dpkg/ not to unpack
-files matching certain patterns, so that system administrators who do
-not wish these directories in <tt>/usr/local</> do not need to have
-them.
-
-<sect>Permissions and ownerships
-<p>
-
-The rules in this section are guidelines for general use. If
-necessary you may deviate from the details below. However, if you do
-so you must make sure that what is done is secure and you must try to
-be as consistent as possible with the rest of the system. You should
-probably also discuss it on <prgn/debian-devel/ first.
-<p>
-
-Files should be owned by <tt/root.root/, and made writeable only by
-the owner and universally readable (and executable, if appropriate).
-<p>
-
-Directories should be mode 755 or (for group-writability) mode 2775.
-The ownership of the directory should be consistent with its mode -
-if a directory is mode 2775, it should be owned by the group that
-needs write access to it.
-<p>
-
-Setuid and setgid executables should be mode 4755 or 2755
-respectively, and owned by the appropriate user or group. They should
-not be made unreadable (modes like 4711 or 2711 or even 4111); doing
-so achieves no extra security, because anyone can find the binary in
-the freely available Debian package - it is merely inconvenient. For
-the same reason you should not restrict read or execute permissions on
-non-set-id executables.
-<p>
-
-Some setuid programs need to be restricted to particular sets of
-users, using file permissions. In this case they should be owned by
-the uid to which they are set-id, and by the group which should be
-allowed to execute them. They should have mode 4754; there is no
-point in making them unreadable to those users who must not be allowed
-to execute them.
-<p>
-
-Do not arrange that the system administrator can only reconfigure the
-package to correspond to their local security policy by changing the
-permissions on a binary. Ordinary files installed by <prgn/dpkg/ (as
-opposed to conffiles and other similar objects) have their permissions
-reset to the distributed permissions when the package is reinstalled.
-Instead you should consider (for example) creating a group for people
-allowed to use the program(s) and making any setuid executables
-executable only by that group.
-<p>
-
-Shared libraries should be installed executable.
-
-<sect>Configuration files
-<p>
-
-Any configuration files created or used by your package should reside
-in <tt>/etc</tt>. If there are several you should consider creating a
-subdirectory named after your package.
-<p>
-
-It is almost certain that any file in <tt>/etc</tt> that is in your
-package's filesystem archive should be listed in <prgn/dpkg/'s
-<tt/conffiles/ control area file. (See the <prgn/dpkg/ programmers'
-manual).
-
-<sect>Maintainer scripts
-<p>
-
-The package installation scripts should avoid producing output which
-it is unnecessary for the user to see and should rely on <prgn/dpkg/ to
-stave off boredom on the part of a user installing many packages.
-This means, amongst other things, using the <tt/--quiet/ option on
-<prgn/install-info/.
-<p>
-
-Packages should try to minimise the amount of prompting they need to
-do, and they should ensure that the user will only every be asked each
-question once. This means that packages should try to use appropriate
-shared configuration files (such as <tt>/etc/papersize</> and
-<tt>/etc/news/server</>, rather than each prompting for their own
-list of required pieces of information.
-<p>
-
-It also means that an upgrade should not ask the same questions again,
-unless the user has used <tt/dpkg --purge/ to remove the package's
-configuration. The answers to configuration questions should be
-stored in an appropriate place in <tt>/etc</> so that the user can
-modify them, and how this has been done should be documented.
-<p>
-
-If a package has a vitally important piece of information to pass to
-the user (such as "don't run me as I am, you must edit the following
-configuration files first or you risk your system emitting
-badly-formatted messages"), it should display this in the
-<prgn/postinst/ script and prompt the user to hit return to
-acknowledge the message. Copyright messages do not count as vitally
-important (they belong in <tt>/usr/doc/copyright</>); neither do
-instructions on how to use a program (these should be in on line
-documentation, where all the users can see them).
-<p>
-
-Any necessary prompting should almost always be confined to the
-post-installation script, and should be protected with a conditional
-so that unnecssary prompting doesn't happen if a package's
-installation fails and the <prgn/postinst/ is called with
-<tt/abort-upgrade/, <tt/abort-remove/ or <tt/abort-deconfigure/.
-<p>
-
-Errors which occur during the execution of an installation script
-<em/must/ be checked and the installation <em/must not/ continue after
-an error.
-<p>
-
-The section below on scripts in general applies to package maintainer
-scripts too.
-
-<sect>Scripts in general
-<p>
-
-All command scripts, including the package maintainer scripts inside
-the package and used by <prgn/dpkg/, should have a <tt/#!/ line naming
-the shell to be used to interpret them.
-<p>
-
-In the case of Perl scripts this should be <tt>#!/usr/bin/perl</tt>.
-<p>
-
-Shell scripts (<prgn/sh/ and <prgn/bash/) should almost certainly
-start with <tt>set -e</> so that errors are detected. Every script
-<em/must/ use <tt/set -e/ or check the exit status of <em/every/
-command.
-<p>
-
-Perl scripts should check for errors when making any system calls,
-including <tt/open/, <tt/print/, <tt/close/, <tt/rename/ and
-<tt/system/.
-<p>
-
-<prgn/csh/ and <prgn/tcsh/ should be avoided as scripting languages. See
-Csh Programming Considered Harmful, one of the <tt/comp.unix.*/ FAQs.
-If an upstream package comes with <prgn/csh/ scripts then you must make
-sure that they start with <tt>#!/bin/csh</tt> and make your package
-depend on <prgn/csh/.
-<p>
-
-<sect>Shared library packages
-<p>
-
-Packages involving shared libraries should be split up into several
-binary packages.
-<p>
-
-For a straightforward library which has a development environment and
-a runtime kit including just shared libraries you need to create two
-packages: <tt/<var/libraryname/<var/soname//<footnote><var/soname/ is
-the shared object name of the shared library - it's the thing that has
-to match exactly between building an executable and running it for the
-dynamic linker to be able run the program. Usually the <var/soname/
-is the major number of the library.</footnote> and
-<tt/<var/libraryname/<var/soname/-dev/.
-<p>
-
-If you prefer only to support one development version at a time you
-may name the development package <tt/<var/libraryname/-dev/; otherwise
-you may wish to use <prgn/dpkg/'s conflicts mechanism to ensure that
-the user only installs one development version at a time (after all,
-different development versions are likely to have the same header
-files in them, causing a filename clash if both are installed).
-Typically the development version will also need an exact version
-dependency on the runtime library, to make sure that compilation and
-linking happens correctly.
-<p>
-
-Packages which use the shared library should have a dependency on the
-name of the shared library package,
-<tt/<var/libraryname/<var/soname//. When the <var/soname/ changes you
-can have both versions of the library installed while moving from the
-old library to the new.
-<p>
-
-If your package has some run-time support programs which use the
-shared library you must <em/not/ put them in the shared library
-package. If you do that then you won't be able to install several
-versions of the shared library without getting filename clashes.
-Instead, either create a third package for the runtime binaries (this
-package might typically be named <tt/<var/libraryname/-runtime/ - note
-the absence of the <var/soname/ in the package name) or if the
-development package is small include them in there.
-<p>
-
-If you have several shared libraries built from the same source tree
-you can lump them all togther into a single shared library package,
-provided that you change all their <var/soname/s at once (so that you
-don't get filename clashes if you try to install different versions of
-the combined shared libraries package).
-<p>
-
-Follow the directions in the <prgn/dpkg/ programmers' manual for
-putting the shared library in its package, and make sure you include a
-<tt/shlibs/ control area file with details of the dependencies for
-packages which use the library.
-
-<sect>Application configuration files, dotfiles and <tt>/etc/skel</>
-<p>
-
-Files in <tt>/etc/skel</> will automatically be copied into new user
-accounts by <prgn/adduser/. They should not be referenced there by
-any program.
-<p>
-
-Therefore, if a program needs a dotfile to exist in advance in
-<tt/$HOME/ to work sensibly that dotfile should be installed in
-<tt>/etc/skel</> (and listed in conffiles, if it is not generated and
-modified dynamically by the package's installation scripts).
-<p>
-
-However, programs that require dotfiles in order to operate sensibly
-(dotfiles that they do not create themselves automatically, that is)
-are a bad thing, and programs should be configured by the Debian
-default installation as close to normal as possible.
-<p>
-
-Therefore, if a program in a Debian package needs to be configured in
-some way in order to operate sensibly that configuration should be
-done in a site-wide global configuration file elsewhere in
-<tt>/etc</>. Only if the program doesn't support a site-wide default
-configuration and the package maintainer doesn't have time to add it
-should a default per-user file be placed in <tt>/etc/skel</>.
-<p>
-
-<tt>/etc/skel</> should be as empty as we can make it. This is
-particularly true because there is no easy mechanism for ensuring that
-the appropriate dotfiles are copied into the accounts of existing
-users when a package is installed.
-<p>
-
-Ideally the sysadmin should ideally not have to do any configuration
-other than that done (semi-)automatically by the postinst script.
-
-
-<sect>Games
-<p>
-
-The permissions on /var/lib/games are 755 <tt/root.root/.
-<p>
-
-Each game decides on its own security policy.
-<p>
-
-Games which require protected, privileged access to high-score files,
-savegames, &amp;c, must be made set-<em/group/-id (mode 2755) and
-owned by <tt/root.games/, and use files and directories with
-appropriate permissions (770 <tt/root.games/, for example). They must
-<em/not/ be made set-<em/user/-id, as this causes security
-problems.<footnote>If an attacker can subvert any set-user-id game
-they can overwrite the executable of any other, causing other players
-of these cames to run a trojan. With a set-group-id game the attacker
-only gets access to less important game data, and if they can get at
-the other players' accounts at all it will take considerably more
-effort.</footnote>
-<p>
-
-Some packages, for example some fortune cookie programs, are
-configured by the upstream authors to install with their data files or
-other static information made unreadable so that they can only be
-accessed through set-id programs provided. Do not do this in a Debian
-package: anyone can download the <tt/.deb/ file and read the data from
-it, so there is no point making the files unreadable. Not making the
-files unreadable also means that you don't have to make so many
-programs set-id, which reduces the risk of a security hole.
-
-<sect>Allocating package-specific users and groups
-<p>
-
-If you need to create a new user or group for your package there are
-two possibilities. Firstly, you may need to make some files in the
-binary package be owned by this user or group, or you may need to
-compile the user or group id (rather than just the name) into the
-binary (though this latter should be avoided if possible). In this
-case you need a statically allocated id.
-<p>
-
-You must ask for a user or group id from the base system maintainer,
-and must not release the package until you have been allocated one.
-Once you have been allocated one you must make the package depend
-on a version of the base system with the id present in
-<tt>/etc/passwd</tt> or <tt>/etc/group</tt>, or alternatively arrange
-for your package to create the user or group itself with the correct
-id (using <tt/adduser/) in its pre- or post-installation script (the
-latter is to be preferred if it is possible).
-<p>
-
-On the other hand, the program may able to determine the uid or gid
-from the group name at runtime, so that a dynamic id can be used. In
-this case you must choose an appropriate user or group name,
-discussing this on <prgn/debian-devel/ and checking with the base system
-maintainer that it is unique and that they do not wish you to use a
-statically allocated id instead. When this has been checked you must
-arrange for your package to create the user or group if necessary
-using <prgn/adduser/ in the pre- or post-installation script (again, the
-latter is to be preferred if it is possible).
-<p>
-
-Note that changing the numeric value of an id associated with a name
-is very difficult, and involves searching the filesystem for all
-appropriate files. You need to think carefully whether a static or
-dynamic id is required, since changing your mind later will cause
-problems.
-
-
-<sect>Installation of Emacs-lisp files
-<p>
-
-Generally, if a package includes an elisp helper file, it probably
-doesn't need to be byte-compiled. If the package is <em/written/
-primarily in emacs, it is probably complex enough that speed is an
-issue and should be byte compiled.
-
-
-<sect>Use of <prgn/dpkg-divert/ and <prgn/update-alternatives/
-<p>
-
-Do not use <prgn/dpkg-divert/ on a file belonging to another package
-without consulting the maintainer of that package first.
-<p>
-
-In order for <prgn/update-alternatives/ to work correctly all the
-packages which supply an instance of the `shared' command name (or,
-in general, filename) must use it. You can use <tt/Conflicts/ to
-force the deinstallation of other packages supplying it which do not
-(yet) use <prgn/update-alternatives/. It may in this case be
-appropriate to specify a conflict on earlier versions on something -
-this is an exception to the usual rule that this is not allowed.
-
-
-<chapt>Configuring and building the programs in the package
-
-<sect>Compilation options
-<p>
-
-Generally the following compilation parameters should be used:
-<example>
-CC = gcc
-CFLAGS = -O2 -g -Wall # sane warning options vary between programs
-LDFLAGS = # none
-install -s # (or use strip on the files in debian/tmp)
-</example>
-<p>
-
-Note that all installed binaries and shared libraries should be
-stripped<footnote>Shared libraries can function perfectly well when
-stripped, since the symbols for dynamic linking are in a separate part
-of the ELF object file.</footnote><footnote>Under some circumstances
-it may be useful to install a shared library unstripped, for example
-when building a separate package to support debugging.</footnote>,
-either by using the <tt/-s/ flag to <prgn/install/, or by calling
-<prgn/strip/ on the binaries after they have been copied into
-<tt>debian/tmp</> but before the tree is made into a package.
-<p>
-
-Make sure that you do not link with <tt/-g/, as this makes a.out
-compilers produce huge statically linked binaries. The <tt/-g/ flag
-is useful on compilation so that you have available a full set of
-debugging symbols in your built source tree, in case anyone should
-file a bug report involving (for example) a core dump.
-<p>
-
-The <tt/-N/ flag should not be used. On a.out systems it may have
-been useful for some very small binaries, but for ELF it has no good
-effect.
-<p>
-
-It is up to the package maintainer to decide what compilation options
-are best for the package. Certain binaries (such as
-computationally-intensive programs) may function better with certain
-flags (<tt/-O3/, for example); feel free to use them. Please use good
-judgment here. Don't use flags for the sake of it; only use them if
-there is good reason to do so. Feel free to override the upstream
-author's ideas about which compilation options are best - they are
-often inappropriate for our environment.
-<p>
-
-Please make sure that you use only released versions of shared
-libraries to build your packages; otherwise other users will not be
-able to run your binaries properly. Producing source packages that
-depend on unreleased compilers is also usually a bad idea.
-
-
-<sect>Packages which can use the X shared libraries
-<p>
-
-Some programs can be configured with or without support for X Windows.
-Typically these binaries produced when configured for X will need the
-X shared libraries to run.
-<p>
-
-Such programs should be configured <em/with/ X support, and should
-declare a dependency on <tt/elf-x11r6lib/ (for the X11R6 libraries).
-Users who wish to use the program can install just the relatively
-small <tt/xlib/ package, and do not need to install the whole of X.
-<p>
-
-Do not create two versions (one with X support and one without) of
-your package.
-
-
-<sect id="mail">Mail processing on Debian systems
-<p>
-
-Debian packages which process electronic mail, whether
-mail-user-agents (MUAs) or mail-transport-agents (MTAs), <em/must/
-make sure that they are compatible with the configuration decisions
-below. Failure to do this may result in lost mail, broken <tt/From:/
-lines, and other serious brain damage!
-<p>
-
-The mail spool is <tt>/var/spool/mail</> and the interface to send a
-mail message is <tt>/usr/sbin/sendmail</> (as per the FSSTND). The
-mail spool is part of the base system and not part of the MTA package.
-<p>
-
-Mailboxes are locked using the <tt/<var/username/.lock/ lockfile
-convention, rather than <prgn/fcntl/, <prgn/flock/ or <prgn/lockf/.
-<p>
-
-Mailboxes are generally 660 <tt/<var/user/.mail/ unless the user has
-chosen otherwise. A MUA may remove a mailbox (unless it has
-nonstandard permissions) in which case the MTA or another MUA must
-recreate it if needed. Mailboxes must be writeable by group mail.
-<p>
-
-The mail spool is 2775 <tt/mail.mail/, and MUA's need to be setgid
-mail to do the locking mentioned above (and obviously need to avoid
-accessing other users' mailboxes using this privilege).
-<p>
-
-<tt>/etc/aliases</> is the source file for the system mail aliases
-(e.g. postmaster, usenet, etc.) - it is the one which the sysadmin
-and postinst scripts may edit. After <tt>/etc/aliases</> is edited
-the program or human editing it must call <prgn/newaliases/. All MTA
-packages should come with a <prgn/newaliases/ program, even if it does
-nothing, but older MTA packages do not do this so programs should not
-fail if <prgn/newaliases/ cannot be found.
-<p>
-
-The convention of writing <tt/forward to <var/address// in the mailbox
-itself is not supported. Use a <tt/.forward/ file instead.
-<p>
-
-The location for the <prgn/rmail/ program used by UUCP for incoming
-mail is <tt>/usr/sbin/rmail</>, as per the FSSTND. Likewise,
-<prgn/rsmtp/, for receiving batch-SMTP-over-UUCP, is in
-<tt>/usr/sbin/rsmtp</> if it is supported.
-<p>
-
-If you need to know what name to use (for example) on outgoing news
-and mail messages which are generated locally, you should use the file
-<tt>/etc/mailname</>. It will contain the portion after the username
-and <tt/@/ (at) sign for email addresses of users on the machine
-(followed by a newline).
-<p>
-
-A package should check for the existence of this file. If it exists
-it should use it without comment.<footnote>An MTA's prompting
-configuration script may wish to prompt the user even if it finds this
-file exists.</footnote> If it does not exist it should prompt the user
-for the value and store it in <tt>/etc/mailname</> as well as using it
-in the package's configuration. The prompt should make it clear that
-the name will not just be used by that package. E.g., in this
-situation the INN package says:
-<example>
-Please enter the `mail name' of your system. This is the hostname
-portion of the address to be shown on outgoing news and mail messages.
-The default is <var/syshostname/, your system's host name.
-Mail name [`<var/syshostname/']:
-</example>
-where <var/syshostname/ is the output of <tt/hostname -fqdn/.
-
-
-<sect>Obsolete constructs and libraries: varargs and libtermcap
-<p>
-
-<prgn/&lt;varargs.h&gt;/ is provided to support end-users compiling
-very old software; libtermcap is provided to support the execution of
-software which has been linked against it (either old programs or
-those such as Netscape which are only available in binary form).
-<p>
-
-Debian packages should be ported to <prgn/&lt;stdarg.h&gt;/ and
-ncurses when they are built.
-
-
-<chapt id="sourcepkg">Source packaging, changelogs, etc.
-
-<sect>Releases of packages by other than the usual Debian maintainer
-<p>
-
-Under certain circumstances it is necessary for someone other than the
-usual package maintainer to make a release of a package. For example,
-a porter for another architecture may have to make some small changes
-to the source package and does not wish to wait with uploading their
-release until the main maintainer has incorporated the patch, or a
-serious security problem may have come to light requiring immediate
-attention.
-<p>
-
-Maintainers other than the usual package maintainer should make as few
-changes to the package as possible, and they should always send a
-unified context diff (<tt/diff -u/) detailing their changes to the bug
-tracking system properly flagged with the correct package so that the
-usual maintainer is kept aware of the situation.
-<p>
-
-When someone other than the usual maintainer releases a package they
-should add a new component to the <var/debian-revision/ component of
-the version number - that is, the portion after the (last) hyphen.
-This extra component will start at <tt/1/. This is to avoid
-`stealing' one of the usual maintainer's version numbers, possibly
-disrupting their work. If there is no <var/debian-revision/ component
-in the version number then one should be created, starting at <tt/1/.
-<p>
-
-If it is absolutely necessary for someone other than the usual
-maintainer to make a release based on a new upstream version then the
-person making the release should start with the <var/debian-revision/
-value <tt/0.1/. The usual maintainer of a package should start their
-<var/debian-revision/ numbering at <tt/1/.
-
-
-<sect>Standards conformance and <tt/Standards-Version/
-<p>
-
-You should specify the most recent version of the packaging standards
-with which your package complies in the source package's
-<tt/Standards-Version/ field.
-<p>
-
-This value will be used to file bug reports automatically if your
-package becomes too much out of date.
-<p>
-
-The value corresponds to a version of the Debian manuals, as can be
-found on the title page or page headers and footers (depending on the
-format). The value for this version of the manuals and packaging
-standards is <tt/&manuals-version;/.
-<p>
-
-The version number has four components - major and minor number and
-major and minor patchlevel. When the standards change in a way that
-requires every package to change the major number will be changed.
-Significant changes that will require work in many packages will be
-signaled by a change to the minor number. The major patchlevel will
-be changed for any change to the meaning of the standards, however
-small; the minor patchlevel will be changed when only cosmetic,
-typographical or other edits which do not change the meaning are made,
-or changes which do not affect the contents of packages.
-<p>
-
-You should regularly, and especially if your package has become out of
-date, install the most recent version of dpkg and read
-<tt>/usr/doc/dpkg/changelog-manuals</> to see which changes, if any,
-are relevant. If any are relevant you should look up the relevant
-section in the policy or programmers' manuals and update your package.
-When your package complies with the new standards you may update the
-<tt/Standards-Version/ source package field and release it.
-
-
-<sect>Documentation and the <tt/changelog/
-<p>
-
-Document your changes and updates to the source package properly in
-the <tt>debian/changelog</tt> file.
-<p>
-
-A copy of the file which will be installed in
-<tt>/usr/doc/<var/package//copyright</tt> should be in
-<tt>debian/copyright</tt>.
-<p>
-
-In non-experimental packages you may only use a format for
-<tt>debian/changelog</> which is supported by the most recent released
-version of <prgn/dpkg/. If your format is not supported and there is
-general support for it you should contact the <prgn/dpkg/ maintainer
-to have the parser script for your format included in the <prgn/dpkg/
-package.<footnote>You will need to agree that the parser and its
-manpage may be distributed under the GNU GPL, just as the rest of
-<prgn/dpkg/ is.</footnote>
-
-<sect>Changes to the upstream sources
-<p>
-
-If you need to edit a <prgn/Makefile/ where GNU-style <prgn/configure/
-scripts are used, you should edit the <tt/.in/ files rather than
-editing the <prgn/Makefile/ directly. This allows the user to
-reconfigure the package if necessary. You should <em/not/ configure
-the package and edit the generated <prgn/Makefile/! This makes it
-impossible for someone else to later reconfigure the package.
-<p>
-
-If changes to the source code are made that are generally applicable
-please try to get them included in the upstream version of the package
-by supplying the upstream authors with the changes in whatever form
-they prefer.
-<p>
-
-If you need to configure the package differently for Debian or for
-Linux, and the upstream source doesn't provide a way to configure it
-the way you need to, please add such configuration facilities (for
-example, a new <prgn/autoconf/ test or <tt/#define/) and send the
-patch to the upstream authors, with the default set to the way they
-originally had it. You can then easily override the default in your
-<tt>debian/rules</tt> or wherever is appropriate.
-
-<sect>Error trapping in makefiles
-<p>
-
-When <prgn/make/ invokes a command in a makefile (including your
-package's upstream makefiles and the <tt>debian/rules</>) it does so
-using <tt/sh/. This means that <tt/sh/'s usual bad error handling
-properties apply: if you include a miniature script as one of the
-commands in your makefile you'll find that if you don't do anything
-about it then errors are not detected and <prgn/make/ will blithely
-continue after problems.
-<p>
-
-Every time you put more than one shell command (this includes using a
-loop) in a makefile command you <em/must/ make sure that errors are
-trapped. For simple compound commands, such as changing directory and
-then running a program, using <tt/&amp;&amp;/ rather than semicolon as
-a command separator is sufficient. For more complex commands
-including most loops and conditionals you must include a separate
-<tt/set -e/ command at the start of every makefile command that's
-actually one of these miniature shellscripts.
-
-<chapt id="developer">Procedure - how to participate in the Debian project
-
-<sect>Before you start work on a package
-<p>
-
-So, you've read all the documentation, you understand what everything
-in the <prgn/hello/ example package is for, and you're about to
-Debianise your favourite package. How do you actually become a Debian
-developer so that your work can be incorporated into the Project?
-<p>
-
-Firstly, subscribe to <prgn/debian-devel/ if you haven't already.
-Send the word <tt/subscribe/ in the <em/Subject/ of a mail to
-<email/debian-devel-REQUEST@lists.debian.org/. In case of problems
-contact the list administrator, Anders Chrigstrom <email/ac@netg.se/.
-<p>
-
-You should to subscribe and lurk for a bit before doing any coding,
-and you should post about your intentions to work on something to
-avoid duplicated effort.
-<p>
-
-If you do not have a PGP key yet generate one. You should probably
-read the PGP manual, as it has much important information which is
-critical to its security. Many more security failures are due to
-human error than to software failure or high-powered spy techniques.
-<p>
-
-If you live in a country where use of cryptography even for signing is
-forbidden then please contact us so we can make special arrangements.
-This does not apply in France, where I believe only encryption and not
-signing is forbidden.
-
-
-<sect>When you have a package to upload
-<p>
-
-When you have your package ready to be uploaded you must send a
-message to the project leader, Bruce Perens <email/bruce@pixar.com/,
-the administrator of <tt/master.debian.org/, Simon Shapiro
-<email/shimon@i-connect.net/, the mailing list administrator, Anders
-Chrigstrom <email/ac@netg.se/ and the <prgn/dpkg/ maintainer, Ian
-Jackson <email/ijackson@gnu.ai.mit.edu/.
-<p>
-
-The message should say what you've done and who you are, and should
-ask for an account on <prgn/master/ and to be subscribed to
-<prgn/debian-private/ (the developers-only mailing list). It should
-contain your PGP key (extracted using <tt/pgp -kxa/) for the database
-of keys which is shipped with <prgn/dpkg/.
-
-When you have your personal account on <prgn/master/ log in and
-transfer the files to
-<tt>/home/Debian/ftp/private/project/Incoming</>. You cannot upload
-to <prgn/Incoming/ on <prgn/master/ using anonymous FTP.
-<p>
-
-You can also upload files to <prgn/Incoming/ via a <prgn/cron/-driven
-upload queue in Europe on <ftpsite/chiark.chu.cam.ac.uk/. For details
-connect to <prgn/chiark/ using anonymous FTP and read
-<ftppath>/pub/debian/private/project/README.how-to-upload</ftppath>.
-
-
-<sect id="changesfiles">Upload handling - <tt/.changes/ files
-<p>
-
-When a package is uploaded to the Debian FTP archive, it must be
-accompanied by a <tt/.changes/ file which gives directions for its
-handling. This is usually generated by <prgn/dpkg-genchanges/.
-<p>
-
-This file is a control file with the following fields:
-<list compact>
-<item><tt/Format/
-<item><tt/Date/
-<item><tt/Source/
-<item><tt/Binary/
-<item><tt/Architecture/
-<item><tt/Version/
-<item><tt/Distribution/
-<item><tt/Urgency/
-<item><tt/Maintainer/
-<item><tt/Description/
-<item><tt/Changes/
-<item><tt/Files/
-</list>
-<p>
-
-All of them are mandatory for a Debian upload. See the list of
-control fields in the <prgn/dpkg/ programmers' manual for the contents
-of these fields.
-<p>
-
-The first time a version is uploaded which corresponds to a particular
-upstream version the original source tarfile should be uploaded and
-included in the <tt/.changes/ file; subsequent times the very same
-tarfile should be used to build the new diffs and <tt/.dsc/ files, and
-it need not then be uploaded.
-<p>
-
-By default <prgn/dpkg-genchanges/ and <prgn/dpkg-buildpackage/ will
-include the original source tarfile if and only if the Debian revision
-part of the source version number is <tt/0/ or <tt/1/, indicating a
-new upstream version. This behaviour may be modified by using
-<tt/-sa/ to always include it or <tt/-sd/ to always leave it out.
-<p>
-
-If no original source is included in the upload then the original
-source tarfile used by <prgn/dpkg-source/ when constructing the
-<tt/.dsc/ file and diff to be uploaded <em/must/ be byte-for-byte
-identical with the one already in the archive. If there is some
-reason why this is not the case then the new version of the original
-source should be uploaded, possibly by using the <tt/-sa/ flag.
-
-
-<sect>Upload handling - announcements
-<p>
-
-When a package is uploaded an announcement should be posted to
-<tt/debian-changes/. The announcement should give the (source)
-package name and version number, and a very short summary of the
-changes, in the <prgn/Subject/ field, and should contain the
-PGP-signed <tt/.changes/ file. Some additional explanatory text may
-be added before the start of the <tt/.changes/ file.
-<p>
-
-If a package is released with <tt/Distribution: experimental/ the
-announcement should be posted to <tt/debian-devel/ instead.
-
-
-<sect id="mailinglists">The Debian mailing lists
-<p>
-
-The mailing list server is at <tt/lists.debian.org/. Mail
-<tt/debian-<var/foo/-REQUEST@lists.debian.org/<footnote>where
-<tt/debian-<var/foo// is the name of the list</footnote> with the word
-<tt/subscribe/ in the Subject to subscribe or <tt/unsubscribe/ to
-unsubscribe.
-<p>
-
-When replying to messages on the mailing list, please do not send a
-carbon copy (<tt/CC/ - this does not mean `courtesy copy') to the
-original poster. Anyone who posts to a mailing list should read it to
-see the responses.
-<p>
-
-As ever on the net, please trim down the quoting of articles you're
-replying to. In general, please adhere to the usual conventions for
-posting messages.
-
-
-<chapt id="conversion">Conversion procedure from old source packages
-<p>
-
-This is a brief summary of the procedure for converting a
-pre-2.0.0.0-format source package into the new format.
-<p>
-
-You are strongly advised to download and examine the <prgn/hello/
-package, and to read the section in the <prgn/dpkg/ programmers'
-manual describing the source packaging tools. More detail about the
-exact functionality of these tools is available in <manref
-name=dpkg-source section=1>.
-<p>
-
-<list>
-
-<item>
-Download the original source code from wherever it can be found and do
-any rearrangement required to make it look like the original tree of
-the Debian source. Put it in
-<tt><var/package/-<var/upstream-version/.orig/</> or
-<tt/<var/package/_<var/upstream-version/.orig.tar.gz/.
-
-<item>
-Rename all files <tt/debian.*/ to <tt>debian/*</>. There may be some
-exceptions to this, but this is a good start.
-
-<item>
-Edit the <tt>debian/changelog</> - create or rename it if necessary.
-Add a new revision to the top with the appropriate details, and a
-local variables entry to the bottom to set Emacs to the right mode:
-<example>
-Local variables:
-mode: debian-changelog
-End:
-</example>
-
-<item>
-Edit/create <tt>debian/control</>:
-<list compact>
-<item>
-Remove the <tt/Version/ field. If it is generated unusually (not
-equal to the source version) you must use the -v option to
-dpkg-gencontrol (see below). <tt/Section/, <tt/Priority/,
-<tt/Maintainer/ go above the first blank line, most of the rest below.
-
-<item>
-Reorder the fields and add a blank line at an appropriate point,
-separating the source package fields from the binary package
-fields.
-
-<item>
-Add the <tt/Source/ field.
-
-<item>
-Add the <tt/Standards-Version/ field. The current value is
-<tt/&manuals-version;/.
-
-<item>
-Change the <tt/Architecture/ field for each package to <tt/any/,
-<tt/all/ or whatever. If there isn't an <tt/Architecture/ field add
-one.
-
-<item>
-If any other seddery or things used to happen to make the binary
-control files use <prgn/dpkg-gencontrol/'s variable substitution
-features to achieve the same effect. Use <tt>debian/substvars</> if
-you need to put unusally-generated information (apart from details of
-<tt/.deb/ files) in the <tt/.changes/ file too.
-</list>
-
-<item>
-Edit the <tt>debian/rules</>:
-<list compact>
-<item>
-Remove the <prgn/source/ and <prgn/diff/ and any <prgn/changes/ and
-<prgn/dist/ targets. These things now happen in a package-independent
-way and are not done by <tt>debian/rules</>.
-<item>
-Split the <prgn/binary/ target into <prgn/binary-arch/ and
-<prgn/binary-indep/; in many cases all of <prgn/binary/ should go into
-<prgn/binary-arch/. Create the <prgn/binary/ target and the unused of
-the two other <prgn/binary-*/ targets if there is one - you can copy
-the ones from the <prgn/hello/ package.
-<item>
-Change the <prgn/binary/ target to use <prgn/dpkg-gencontrol/ to make
-the package control file(s). Move it to after all the files have been
-installed but just before the last <prgn/chown/ and <prgn/chmod/ in
-the target.
-<item>
-Change occurrences of <tt/debian-tmp/ to <tt>debian/tmp</>.
-<item>
-Change occurrences of <tt/debian.{post,pre}{inst,rm}/ to
-<tt>debian/*</>.
-<item>
-Remove the version number setting at the top, if there is one.
-<item>
-Ensure that the package's Debian-specific and upstream changelogs are
-installed.
-</list>
-
-<item>
-Change the package to use <prgn/dpkg-shlibdeps/ to determine its
-shared library dependencies and substitute them in. Shared library
-dependencies should no longer be hardwired in the source package.
-
-<item>
-Check that the <tt>debian/README</> is really the copyright file, and
-if so rename it to <tt>debian/copyright</> and edit
-<tt>debian/rules</> to cope with this and to change the installation
-of the copyright file from <tt>/usr/doc/<var/package//copyright</>
-instead of <tt>/usr/doc/copyright/<var/package/</>. If it isn't then
-find <tt>debian/copyright</> and decide what to do with the
-<tt>README</>.
-
-<item>
-Check for various other anachronisms and problems:
-<list compact>
-<item>
-Remove any <tt/Package_Revision/, <tt/Package-Revision/ or
-<tt/Revision/ fields.
-<item>
-Rename <tt/Optional/ to <tt/Suggests/, <tt/Recommended/ to
-<tt/Recommends/.
-<item>
-Change <tt>/usr/doc/examples/<var/package/</> to
-<tt>/usr/doc/<var/package//examples</>.
-<item>
-Make sure that manpages are installed compressed.
-<item>
-Check that the description has an extended description, is
-well-formatted and meaningful and helpful to people wanting to know
-whether to install a package.
-</list>
-
-<item>
-Look everything over.
-
-<item>
-Do a test build using <tt/dpkg-buildpackage -ur -uc -sa
--r<var/whatever//. Check the permissions and locations of files in
-the resulting package by eyeballing the output of <tt/dpkg-deb
---contents/, and check that the source build happened OK. Test
-install the binary package(s) and test extract the source package(s).
-
-<item>
-Sign the release: either rebuild everything with <tt/dpkg-buildpackage
--sa/, or PGP-sign the <tt/.dsc/, rebuild the <tt/.changes/ using
-<tt/dpkg-genchanges -sa/, and then PGP-sign the <tt/.changes/.
-
-</list>
-<p>
-
-The use of <tt/-sa/ on <prgn/dpkg-buildpackage/ and
-<prgn/dpkg-genchanges/ is important when doing the first
-build/uploading of a new-format source package. Unless this happens
-to be Debian revision <tt/0/ or <tt/1/ by default the original source
-tarfile will not be included in the uploaded files listed in the
-<tt/.changes/ file, and so it won't be installed on the FTP site.
-<tt/-sa/ requests that the original source be included regardless.
-
-</book>
diff --git a/doc/programmer.sgml b/doc/programmer.sgml
deleted file mode 100644
index 0dcd867b3..000000000
--- a/doc/programmer.sgml
+++ /dev/null
@@ -1,3370 +0,0 @@
-<!doctype debiandoc system [
-<!entity % manuals-version-def system "manuals-version">
-%manuals-version-def;
-]>
-
-<!--
- Debian Linux dpkg package installation tool.
- programmers' manual.
- Copyright (C)1996 Ian Jackson; released under the terms of the GNU
- General Public License, version 2 or (at your option) any later.
- -->
-
-<book>
-
-<title><prgn/dpkg/ programmers' manual
-<author>Ian Jackson <email/ijackson@gnu.ai.mit.edu/
-<version>version &manuals-version; (dpkg &dpkg-version;), <date>
-
-<abstract>
-This manual describes the technical aspects of creating Debian binary
-and source packages. It also documents the interface between
-<prgn/dselect/ and its access method scripts. It does not deal with
-the Debian Project policy requirements, and it assumes familiarity
-with <prgn/dpkg/'s functions from the system administrator's
-perspective.
-
-<copyright>Copyright &copy;1996 Ian Jackson.
-<p>
-
-This manual is free software; you may redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-<p>
-
-This is distributed in the hope that it will be useful, but
-<em>without any warranty</em>; without even the implied warranty of
-merchantability or fitness for a particular purpose. See the GNU
-General Public License for more details.
-<p>
-
-You should have received a copy of the GNU General Public License with
-your Debian GNU/Linux system, in <tt>/usr/doc/copyright/GPL</tt>, or
-with the <prgn/dpkg/ source package as the file <tt>COPYING</tt>. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.
-
-<toc sect>
-
-<!-- Describes the technical interface between a package and dpkg.
-
-How to safely put shared libraries in a package. Details of dpkg's
-handling of individual files. Sections on when to use which feature
-(eg Replaces vs. Replaces/Conflicts vs. update-alternatives
-vs. diversions) Cross-references to the policy document (see below)
-where appropriate. Description of the interface between dselect and
-its access methods. Hints on where to start with a new package (ie,
-the hello package). What to do about file aliasing.
-
-file aliasing
-
-Manpages are required for: update-rc.d, diversions,
-update-alternatives, install-info in a package.
-
--->
-
-<chapt id="scope">Introduction and scope of this manual
-<p>
-
-<prgn/dpkg/ is a suite of programs for creating binary package files
-and installing and removing them on Unix systems.<footnote><prgn/dpkg/
-is targetted primarily at Debian GNU/Linux, but may work on or be
-ported to other systems.</footnote>
-<p>
-
-The binary packages are designed for the management of installed
-executable programs (usually compiled binaries) and their associated
-data, though source code examples and documentation are provided as
-part of some packages.
-<p>
-
-This manual describes the technical aspects of creating Debian binary
-packages (<tt/.deb/ files). It documents the behaviour of the
-package management programs <prgn/dpkg/, <prgn/dselect/ et al. and and the
-way they interact with packages.
-<p>
-
-It also documents the interaction between <prgn/dselect/'s core and the
-access method scripts it uses to actually install the selected
-packages, and describes how to create a new access method.
-<p>
-
-This manual does not go into detail about the options and usage of the
-package building and installation tools. It should therefore be read
-in conjuction with those programs' manpages.
-<p>
-
-The utility programs which are provided with <prgn/dpkg/ for managing
-various system configuration and similar issues, such as
-<prgn/update-rc.d/ and <prgn/install-info/, are not described in
-detail here - please see their manpages.
-<p>
-
-It does <em/not/ describe the policy requirements imposed on Debian
-packages, such as the permissions on files and directories,
-documentation requirements, upload procedure, and so on. You should
-see the Debian packaging policy manual for these details. (Many of
-them will probably turn out to be helpful even if you don't plan to
-upload your package and make it available as part of the
-distribution.)
-<p>
-
-It is assumed that the reader is reasonably familiar with the
-<prgn/dpkg/ System Administrators' manual. Unfortunately this manual
-does not yet exist.
-<p>
-
-The Debian version of the FSF's GNU hello program is provided as an
-example for people wishing to create Debian packages.
-<p>
-
-<em>Note that this document is still a draft!</em>
-
-<chapt id="binarypkg">Binary packages
-<p>
-
-The binary package has two main sections. The first part consists of
-various control information files and scripts used by <prgn/dpkg/ when
-installing and removing. See <ref id="controlarea">.
-<p>
-
-The second part is an archive (currently a <prgn/tar/ archive)
-containing files and directories to be installed.
-<p>
-
-In the future binary packages may also contain other components, such
-as checksums and digital signatures.
-
-
-<sect id="bincreating">Creating package files - <prgn/dpkg-deb/
-<p>
-
-All manipulation of binary package files is done by <prgn/dpkg-deb/;
-it's the only program that has knowledge of the format.
-(<prgn/dpkg-deb/ may be invoked by calling <prgn/dpkg/, as <prgn/dpkg/ will
-spot that the options requested are appropriate to <prgn/dpkg-deb/ and
-invoke that instead with the same arguments.)
-<p>
-
-In order to create a binary package you must make a directory tree
-which contains all the files and directories you want to have in the
-filesystem data part of the package. In Debian-format source packages
-this directory is usually <tt>debian/tmp</tt>, relative to the top of
-the package's source tree.
-<p>
-
-They should have the locations (relative to the root of the directory
-tree you're constructing) ownerships and permissions which you want
-them to have on the system when they are installed.
-<p>
-
-With current versions of <prgn/dpkg/ the uid/username and gid/groupname
-mappings for the users and groups being used should be the same on the
-system where the package is built and the one where it is installed.
-<p>
-
-You need to add one special directory to the root of the miniature
-filesystem tree you're creating: <prgn/DEBIAN/. It should contain the
-control information files, notably the binary package control file
-(see <ref id="controlfile">).
-<p>
-
-The <prgn/DEBIAN/ directory will not appear in the filesystem archive of
-the package, and so won't be installed by <prgn/dpkg/ when the package
-is installed.
-<p>
-
-When you've prepared the package, you should invoke:
-<example>
-dpkg --build <var/directory/
-</example>
-<p>
-
-This will build the package in <tt/<var/directory/.deb/.
-(<prgn/dpkg/ knows that <tt/--build/ is a <prgn/dpkg-deb/ option, so it
-invokes <prgn/dpkg-deb/ with the same arguments to build the package.)
-<p>
-
-See the manpage <manref name="dpkg-deb" section=8> for details of how
-to examine the contents of this newly-created file. You may find the
-output of following commands enlightening:
-<example>
-dpkg-deb --info <var/filename/.deb
-dpkg-deb --contents <var/filename/.deb
-</example>
-
-<sect id="controlarea">Package control information files
-<p>
-
-The control information portion of a binary package is a collection of
-files with names known to <prgn/dpkg/. It will treat the contents of
-these files specially - some of them contain information used by
-<prgn/dpkg/ when installing or removing the package; others are scripts
-which the package maintainer wants <prgn/dpkg/ to run.
-<p>
-
-It is possible to put other files in the package control area, but
-this is not generally a good idea (though they will largely be
-ignored).
-<p>
-
-Here is a brief list of the control info files supported by <prgn/dpkg/
-and a summary of what they're used for.
-<p>
-
-<taglist>
-<tag><tt/control/
-<item>
-
-This is the key description file used by <prgn/dpkg/. It specifies the
-package's name and version, gives its description for the user, states
-its relationships with other packages, and so forth.
-See <ref id="controlfile">.
-<p>
-
-It is usually generated automatically from information in the source
-package by the <prgn/dpkg-gencontrol/ program, and with assistance
-from <prgn/dpkg-shlibdeps/. See <ref id="sourcetools">.
-
-<tag><tt/postinst/, <tt/preinst/, <tt/postrm/, <tt/prerm/
-<item>
-
-These are exectuable files (usually scripts) which <prgn/dpkg/ runs
-during installation, upgrade and removal of packages. They allow the
-package to deal with matters which are particular to that package or
-require more complicated processing than that provided by <prgn/dpkg/.
-Details of when and how they are called are in
-<ref id="maintainerscripts">.
-<p>
-
-It is very important to make these scripts itempotent.<footnote>That
-means that if it runs successfully or fails and then you call it again
-it doesn't bomb out, but just ensures that everything is the way it
-ought to be.</footnote> This is so that if an error occurs, the user
-interrupts <prgn/dpkg/ or some other unforeseen circumstance happens you
-don't leave the user with a badly-broken package.
-<p>
-
-The maintainer scripts are guaranteed to run with a controlling
-terminal and can interact with the user. If they need to prompt for
-passwords, do full-screen interaction or something similar you should
-do these things to and from <tt>/dev/tty</>, since <prgn/dpkg/ will at
-some point redirect scripts' standard input and output so that it can
-log the installation process. Likewise, because these scripts may be
-executed with standard output redirected into a pipe for logging
-purposes, Perl scripts should set unbuffered output by setting
-<tt/$|=1/ so that the output is printed immediately rather than being
-buffered.
-<p>
-
-Each script should return a zero exit status for success, or a nonzero
-one for failure.
-
-<tag><tt/conffiles/
-<item>
-
-This file contains a list of configuration files which are to be
-handled automatically by <prgn/dpkg/ (see <ref id="conffiles">). Note
-that not necessarily every configuration file should be listed here.
-
-<tag><tt/shlibs/
-<item>
-
-This file contains a list of the shared libraries supplied by the
-package, with dependency details for each. This is used by
-<prgn/dpkg-shlibdeps/ when it determines what dependencies are
-required in a package control file.
-<p>
-
-Each line is of the form:
-<example>
-<var/library-name/ <var/version-or-soname/ <var/dependencies .../
-</example>
-<p>
-
-<var/library-name/ is the name of the shared library, for example
-<tt/libc5/.
-<p>
-
-<var/version-or-soname/ is the soname of the library - ie, the thing
-that must exactly match for the library to be recognised by
-<prgn/ld.so/. Usually this is major version number of the library.
-<p>
-
-<var/dependencies/ has the same syntax as a dependency field in a
-binary package control file. It should give details of which
-package(s) are required to satisfy a binary built against the version
-of the library contained in the package. See <ref id="depsyntax">.
-<p>
-
-For example, if the package <tt/foo/ contains <tt/libfoo.so.1.2.3/,
-where the soname of the library is <tt/libfoo.so.1/, and the first
-version of the package which contained a minor number of at least
-<tt/2.3/ was <var/1.2.3-1/, then the package's <var/shlibs/ could
-say:
-<example>
-libfoo 1 foo (>= 1.2.3-1)
-</example>
-<p>
-
-The version-specific dependency is to avoid warnings from <prgn/ld.so/
-about using older shared libraries with newer binaries.
-
-</taglist>
-
-<sect id="controlfile">The main control information file: <tt/control/
-<p>
-
-The most important control information file used by <prgn/dpkg/ when it
-installs a package is <tt/control/. It contains all the package's
-`vital statistics'.
-<p>
-
-The binary package control files of packages built from Debian sources
-are made by a special tool, <prgn/dpkg-gencontrol/, which reads
-<tt>debian/control</> and <tt>debian/changelog</> to find the
-information it needs. See <ref id="sourcepkg"> for more details.
-<p>
-
-The fields in binary package control files are:
-<list compact>
-
-<item><qref id="f-Package"><tt/Package/</> (mandatory)
-<item><qref id="versions"><tt/Version/</> (mandatory)
-
-<item><qref id="f-Architecture"><tt/Architecture/</>
-(mandatory)<footnote>This field should appear in all packages, though
-<prgn/dpkg/ doesn't require it yet so that old packages can still be
-installed.</footnote>
-
-<item><qref id="relationships"><tt/Depends/, <tt/Provides/ et al.</>
-<item><qref id="f-Essential"><tt/Essential/</>
-<item><qref id="f-Maintainer"><tt/Maintainer/</>
-<item><qref id="f-classification"><tt/Section/, <tt/Priority/</>
-<item><qref id="f-Source"><tt/Source/</>
-<item><qref id="descriptions"><tt/Description/</>
-<item><qref id="f-Installed-Size"><tt/Installed-Size/</>
-
-</list>
-<p>
-
-A description of the syntax of control files and the purpose of these
-fields is available in <ref id="controlfields">.
-
-
-<chapt id="sourcepkg">Source packages
-<p>
-
-The Debian binary packages in the distribution are generated from
-Debian sources, which are in a special format to assist the easy and
-automatic building of binaries.
-<p>
-
-There was a previous version of the Debian source format, which is now
-being phased out. Instructions for converting an old-style package
-are given in the Debian policy manual.
-
-<sect id="sourcetools">Tools for processing source packages
-<p>
-
-Various tools are provided for manipulating source packages; they pack
-and unpack sources and help build of binary packages and help manage
-the distribution of new versions.
-<p>
-
-They are introduced and typical uses described here; see <manref
-name=dpkg-source section=1> for full documentation about their
-arguments and operation.
-<p>
-
-For examples of how to construct a Debian source package, and how to
-use those utilities that are used by Debian source packages, please
-see the <prgn/hello/ example package.
-
-<sect1><prgn/dpkg-source/ - packs and unpacks Debian source packages
-<p>
-
-This program is frequently used by hand, and is also called from
-package-independent automated building scripts such as
-<prgn/dpkg-buildpackage/.
-<p>
-
-To unpack a package it is typically invoked with
-<example>
-dpkg-source -x <var>.../path/to/filename</>.dsc
-</example>
-with the <tt/<var/filename/.tar.gz/ and
-<tt/<var/filename/.diff.gz/ (if applicable) in the same directory. It
-unpacks into <tt/<var/package/-<var/version//, and if applicable
-<tt/<var/package/-<var/version/.orig/, in the current directory.
-<p>
-
-To create a packed source archive it is typically invoked:
-<example>
-dpkg-source -b <var/package/-<var/version/
-</example>
-This will create the <tt/.dsc/, <tt/.tar.gz/ and <tt/.diff.gz/ (if
-appropriate) in the current directory. <prgn/dpkg-source/ does not
-clean the source tree first - this must be done separately if it is
-required.
-<p>
-
-See also <ref id="sourcearchives">.
-
-
-<sect1><prgn/dpkg-buildpackage/ - overall package-building control
-script
-<p>
-
-<prgn/dpkg-buildpackage/ is a script which invokes <prgn/dpkg-source/,
-the <tt>debian/rules</> targets <prgn/clean/, <prgn/build/ and
-<prgn/binary/, <prgn/dpkg-genchanges/ and <prgn/pgp/ to build a signed
-source and binary package upload.
-<p>
-
-It is usually invoked by hand from the top level of the built or
-unbuilt source directory. It may be invoked with no arguments; useful
-arguments include:
-<taglist compact>
-<tag><tt/-uc/, <tt/-us/
-<item>Do not PGP-sign the <tt/.changes/ file or the source package
-<tt/.dsc/ file, respectively.
-
-<tag><tt/-p<var/pgp-command//
-<item>Invoke <var/pgp-command/ instead of finding <tt/pgp/ on the
-<prgn/PATH/. <var/pgp-command/ must behave just like <prgn/pgp/.
-
-<tag><tt/-r<var/root-command//
-<item>When root privilege is required, invoke the command
-<var/root-command/. <var/root-command/ should invoke its first
-argument as a command, from the <prgn/PATH/ if necessary, and pass its
-second and subsequent arguments to the command it calls. If no
-<var/root-command/ is supplied then <var/dpkg-buildpackage/ will take
-no special action to gain root privilege, so that for most packages it
-will have to be invoked as root to start with.
-
-<tag><tt/-b/, <tt/-B/
-<item>Two types of binary-only build and upload - see <manref
-name=dpkg-source section=1>.
-</taglist>
-
-
-<sect1><prgn/dpkg-gencontrol/ - generates binary package control files
-<p>
-
-This program is usually called from <tt>debian/rules</> (see <ref
-id="sourcetree">) in the top level of the source tree.
-<p>
-
-This is usually done just before the files and directories in the
-temporary directory tree where the package is being built have their
-permissions and ownerships set and the package is constructed using
-<prgn/dpkg-deb/<footnote>This is so that the control file which is
-produced has the right permissions</footnote>.
-<p>
-
-<prgn/dpkg-gencontrol/ must be called after all the files which are to
-go into the package have been placed in the temporary build directory,
-so that its calculation of the installed size of a package is correct.
-<p>
-
-It is also necessary for <prgn/dpkg-gencontrol/ to be run after
-<prgn/dpkg-shlibdeps/ so that the variable substitutions created by
-<prgn/dpkg-shlibdeps/ in <tt>debian/substvars</> are available.
-<p>
-
-For a package which generates only one binary package, and which
-builds it in <tt>debian/tmp</> relative to the top of the source
-package, it is usually sufficient to call:
-<example>
-dpkg-gencontrol
-</example>
-<p>
-
-Sources which build several binaries will typically need something
-like:
-<example>
-dpkg-gencontrol -Pdebian/tmp-<var/pkg/ -p<var/package/
-</example>
-The <tt/-P/ tells <prgn/dpkg-gencontrol/ that the package is being
-built in a non-default directory, and the <tt/-p/ tells it which
-package's control file should be generated.
-<p>
-
-<prgn/dpkg-gencontrol/ also adds information to the list of files in
-<tt>debian/files</>, for the benefit of (for example) a future
-invocation of <prgn/dpkg-genchanges/.
-
-
-<sect1><prgn/dpkg-shlibdeps/ - calculates shared library dependencies
-<p>
-
-This program is usually called from <tt>debian/rules</> just before
-<prgn/dpkg-gencontrol/ (see <ref id="sourcetree">), in the top level
-of the source tree.
-<p>
-
-Its arguments are executables<footnote>They may be specified either
-in the locations in the source tree where they are created or in the
-locations in the temporary build tree where they are installed prior
-to binary package creation.</footnote> for which shared library
-dependencies should be included in the binary package's control file.
-<p>
-
-If some of the executable(s) shared libraries should only warrant a
-<tt/Recommends/ or <tt/Suggests/, or if some warrant a
-<tt/Pre-Depends/, this can be achieved by using the
-<tt/-d<var/dependency-field// option before those executable(s).
-(Each <tt/-d/ option takes effect until the next <tt/-d/.)
-<p>
-
-<prgn/dpkg-shlibdeps/ does not directly cause the output control file
-to be modified. Instead by default it adds to the
-<tt>debian/substvars</> file variable settings like
-<tt/shlibs:Depends/. These variable settings must be referenced in
-dependency fields in the appropriate per-binary-package sections of
-the source control file.
-<p>
-
-For example, the <prgn/procps/ package generates two kinds of
-binaries, simple C binaries like <prgn/ps/ which require a
-predependency and full-screen ncurses binaries like <prgn/top/ which
-require only a recommendation. It can say in its <tt>debian/rules</>:
-<example>
-dpkg-shlibdeps -dPre-Depends ps -dRecommends top
-</example>
-and then in its main control file <tt>debian/control</>:
-<example>
-<var/.../
-Package: procps
-Pre-Depends: ${shlibs:Pre-Depends}
-Recommends: ${shlibs:Recommends}
-<var/.../
-</example>
-<p>
-
-Sources which produce several binary packages with different shared
-library dependency requirements can use the <tt/-p<var/varnameprefix//
-option to override the default <tt/shlib:/ prefix (one invocation of
-<prgn/dpkg-shlibdeps/ per setting of this option). They can thus
-produce several sets of dependency variables, each of the form
-<tt/<var/varnameprefix/:<var/dependencyfield//, which can be referred
-to in the appropriate parts of the binary package control files.
-
-
-<sect1><prgn/dpkg-distaddfile/ - adds a file to <tt>debian/files</>
-<p>
-
-Some packages' uploads need to include files other than the source and
-binary package files.
-<p>
-
-<prgn/dpkg-distaddfile/ adds a file to the <tt>debian/files</> file so
-that it will be included in the <tt/.changes/ file when
-<prgn/dpkg-genchanges/ is run.
-<p>
-
-It is usually invoked from the <prgn/binary/ target of
-<tt>debian/rules</>:
-<example>
-dpkg-distaddfile <var/filename/ <var/section/ <var/priority/
-</example>
-The <var/filename/ is relative to the directory where
-<prgn/dpkg-genchanges/ will expect to find it - this is usually the
-directory above the top level of the source tree. The
-<tt>debian/rules</> target should put the file there just before or
-just after calling <prgn/dpkg-distaddfile/.
-<p>
-
-The <var/section/ and <var/priority/ are passed unchanged into the
-resulting <tt/.changes/ file. See <ref id="f-classification">.
-
-
-<sect1><prgn/dpkg-genchanges/ - generates a <tt/.changes/ upload
-control file
-<p>
-
-This program is usually called by package-independent automatic
-building scripts such as <prgn/dpkg-buildpackage/, but it may also be
-called by hand.
-<p>
-
-It is usually called in the top level of a built source tree, and when
-invoked with no arguments will print out a straightforward
-<tt/.changes/ file based on the information in the source package's
-changelog and control file and the binary and source packages which
-should have been built.
-
-
-<sect1><prgn/dpkg-parsechangelog/ - produces parsed representation of
-a changelog
-<p>
-
-This program is used internally by <prgn/dpkg-source/ et al. It may
-also occasionally be useful in <tt>debian/rules</> and elsewhere. It
-parses a changelog, <tt>debian/changelog</> by default, and prints a
-control-file format representation of the information in it to
-standard output.
-
-<sect id="sourcetree">The Debianised source tree
-<p>
-
-The source archive scheme described later is intended to allow a
-Debianised source tree with some associated control information to be
-reproduced and transported easily. The Debianised source tree is a
-version of the original program with certain files added for the
-benefit of the Debianisation process, and with any other changes
-required made to the rest of the source code and installation scripts.
-<p>
-
-The extra files created for Debian are in the subdirectory <tt/debian/
-of the top level of the Debianised source tree. They are described
-below.
-
-<sect1><tt>debian/rules</tt> - the main building script
-<p>
-
-This file is an executable makefile, and contains the package-specific
-recipies for compiling the package and building binary package(s) out
-of the source.
-<p>
-
-It must start with the line <tt>#!/usr/bin/make -f</tt>, so that it
-can be invoked by saying its name rather than invoking <prgn/make/
-explicitly.
-<p>
-
-The targets which are required to be present are:
-
-<taglist>
-<tag/<tt/build//
-<item>
-
-This should perform all non-interactive configuration and compilation
-of the package. If a package has an interactive pre-build
-configuration routine, the Debianised source package should be built
-after this has taken place, so that it can be built without rerunning
-the configuration.
-<p>
-
-For some packages, notably ones where the same source tree is compiled
-in different ways to produce two binary packages, the <prgn/build/
-target does not make much sense. For these packages it is good enough
-to provide two (or more) targets (<tt/build-a/ and <tt/build-b/ or
-whatever) for each of the ways of building the package, and a
-<prgn/build/ target that does nothing. The <prgn/binary/ target will have
-to build the package in each of the possible ways and make the binary
-package out of each.
-<p>
-
-The <prgn/build/ target must not do anything that might require root
-privilege.
-<p>
-
-The <prgn/build/ target may need to run <prgn/clean/ first - see below.
-<p>
-
-When a package has a configuration routine that takes a long time, or
-when the makefiles are poorly designed, or when <prgn/build/ needs to
-run <prgn/clean/ first, it is a good idea to <tt/touch build/ when the
-build process is complete. This will ensure that if <tt>debian/rules
-build</tt> is run again it will not rebuild the whole program.
-
-<tag/<tt/binary/, <tt/binary-arch/, <tt/binary-indep/
-<item>
-
-The <prgn/binary/ target should be all that is necessary for the user
-to build the binary package. It is split into two parts:
-<prgn/binary-arch/ builds the packages' output files which are
-specific to a particular architecture, and <prgn/binary-indep/
-builds those which are not.
-<p>
-
-<prgn/binary/ should usually be a target with no commands which simply
-depends on <prgn/binary-arch/ and <prgn/binary-indep/.
-<p>
-
-Both <prgn/binary-*/ targets should depend on the <prgn/build/ target,
-above, so that the package is built if it has not been already. It
-should then create the relevant binary package(s), using
-<prgn/dpkg-gencontrol/ to make their control files and <prgn/dpkg-deb/
-to build them and place them in the parent of the top level directory.
-<p>
-
-If one of the <prgn/binary-*/ targets has nothing to do (this will be
-always be the case if the source generates only a single binary
-package, whether architecture-dependent or not) it <em/must/ still
-exist, but should always succeed.
-<p>
-
-<ref id="binarypkg"> describes how to construct binary packages.
-<p>
-
-The <prgn/binary/ targets must be invoked as root.
-
-<tag/<tt/clean//
-<item>
-
-This should undo any effects that the <prgn/build/ and <prgn/binary/
-targets may have had, except that it should leave alone any output
-files created in the parent directory by a run of <prgn/binary/.
-<p>
-
-If a <prgn/build/ file is touched at the end of the <prgn/build/ target,
-as suggested above, it must be removed as the first thing that
-<prgn/clean/ does, so that running <prgn/build/ again after an interrupted
-<prgn/clean/ doesn't think that everything is already done.
-<p>
-
-The <prgn/clean/ target must be invoked as root if <prgn/binary/ has
-been invoked since the last <prgn/clean/, or if <prgn/build/ has been
-invoked as root (since <prgn/build/ may create directories, for
-example).
-
-<tag/<tt/get-orig-source//
-<item>
-
-This target fetches the most recent version of the original source
-package from a canonical archive site (via FTP or WWW, for example),
-does any necessary rearrangement to turn it into the original source
-tarfile format described below, and leaves it in the current directory.
-<p>
-
-This target may be invoked in any directory, and should take care to
-clean up any temporary files it may have left.
-<p>
-
-This target is optional, but providing it if possible is a good idea.
-
-</taglist>
-
-The <prgn/build/, <prgn/binary/ and <prgn/clean/ targets must be
-invoked with a current directory of the package's top-level
-directory.
-
-<p>
-
-Additional targets may exist in <tt>debian/rules</tt>, either as
-published or undocumented interfaces or for the package's internal
-use.
-
-
-<sect1><tt>debian/control</tt>
-<p>
-
-This file contains version-independent details about the source
-package and about the binary packages it creates.
-<p>
-
-It is a series of sets of control fields, each syntactically similar
-to a binary package control file. The sets are separated by one or
-more blank lines. The first set is information about the source
-package in general; each subsequent set describes one binary package
-that the source tree builds.
-<p>
-
-The syntax and semantics of the fields are described below in
-<ref id="controlfields">.
-<p>
-
-The general (binary-package-independent) fields are:
-<list compact>
-<item><qref id="f-Source"><tt/Source/</> (mandatory)
-<item><qref id="f-Maintainer"><tt/Maintainer/</>
-<item><qref id="f-classification"><tt/Section/ and <tt/Priority/</>
-(classification, mandatory)
-<item><qref id="f-Standards-Version"><tt/Standards-Version/</>
-</list>
-<p>
-
-The per-binary-package fields are:
-<list compact>
-<item><qref id="f-Package"><tt/Package/</> (mandatory)
-<item><qref id="f-Architecture"><tt/Architecture/</> (mandatory)
-<item><qref id="descriptions"><tt/Description/</>
-<item><qref id="f-classification"><tt/Section/ and <tt/Priority/</> (classification)
-<item><qref id="f-Essential"><tt/Essential/</>
-<item><qref id="relationships"><tt/Depends/ et al.</> (package interrelationships)
-</list>
-<p>
-
-These fields are used by <prgn/dpkg-gencontrol/ to generate control
-files for binary packages (see below), by <prgn/dpkg-genchanges/ to
-generate the <tt/.changes/ file to accompany the upload, and by
-<prgn/dpkg-source/ when it creates the <tt/.dsc/ source control file as
-part of a source archive.
-<p>
-
-The fields here may contain variable references - their values will be
-substituted by <prgn/dpkg-gencontrol/, <prgn/dpkg-genchanges/ or
-<prgn/dpkg-source/ when they generate output control files. See <ref
-id="srcsubstvars"> for details.
-<p>
-
-<sect2>User-defined fields
-<p>
-
-Additional user-defined fields may be added to the source package
-control file. Such fields will be ignored, and not copied to (for
-example) binary or source package control files or upload control
-files.
-<p>
-
-If you wish to add additional unsupported fields to these output files
-you should use the mechanism described here.
-<p>
-
-Fields in the main source control information file with names starting
-<tt/X/, followed by one or more of the letters <tt/BCS/ and a hyphen
-<tt/-/, will be copied to the output files. Only the part of the
-field name after the hyphen will be used in the output file. Where
-the letter <tt/B/ is used the field will appear in binary package
-control files, where the letter <tt/S/ is used in source package
-control files and where <tt/C/ is used in upload control
-(<tt/.changes/) files.
-<p>
-
-For example, if the main source information control file contains the
-field
-<example>
-XBS-Comment: I stand between the candle and the star.
-</example>
-then the binary and source package control files will contain the
-field
-<example>
-Comment: I stand between the candle and the star.
-</example>
-
-<sect1 id="dpkgchangelog"><tt>debian/changelog</>
-<p>
-
-This file records the changes to the Debian-specific parts of the
-package<footnote>Though there is nothing stopping an author who is
-also the Debian maintainer from using it for all their changes, it
-will have to be renamed if the Debian and upstream maintainers become
-different people.</footnote>.
-<p>
-
-It has a special format which allows the package building tools to
-discover which version of the package is being built and find out
-other release-specific information.
-<p>
-
-That format is a series of entries like this:
-<example>
-<var/package/ (<var/version/) <var/distribution(s)/; urgency=<var/urgency/
-
- * <var/change details/
- <var/more change details/
- * <var/even more change details/
-
- -- <var/maintainer name and email address/ <var/date/
-</example>
-<p>
-
-<var/package/ and <var/version/ are the source package name and
-version number. <var/distribution(s)/ lists the distributions where
-this version should be installed when it is uploaded - it is copied to
-the <tt/Distribution/ field in the <tt/.changes/ file. See <ref
-id="f-Distribution">.
-<p>
-
-<var/urgency/ is the value for the <tt/Urgency/ field in the
-<tt/.changes/ file for the upload. See <ref id="f-Urgency">. It is
-not possible to specify an urgency containing commas; commas are used
-to separate <tt/<var/keyword/=<var/value// settings in the <prgn/dpkg/
-changelog format (though there is currently only one useful
-<var/keyword/, <tt/urgency/).
-<p>
-
-The change details may in fact be any series of lines starting with at
-least two spaces, but conventionally each change starts with an
-asterisk and a separating space and continuation lines are indented so
-as to bring them in line with the start of the text above. Blank
-lines may be used here to separate groups of changes, if desired.
-<p>
-
-The maintainer name and email address should <em/not/ necessarily be
-those of the usual package maintainer. They should be the details of
-the person doing <em/this/ version. The information here will be
-copied to the <tt/.changes/ file, and then later used to send an
-acknowledgement when the upload has been installed.
-<p>
-
-The <var/date/ should be in RFC822 format<footnote>This is generated
-by the <prgn/822-date/ program.</footnote>; it should include the
-timezone specified numerically, with the timezone name or abbreviation
-optionally present as a comment.
-<p>
-
-The first `title' line with the package name should start at the left
-hand margin; the `trailer' line with the maintainer and date details
-should be preceded by exactly one space. The maintainer details and
-the date must be separated by exactly two spaces.
-<p>
-
-An Emacs mode for editing this format is available: it is called
-<tt/debian-changelog-mode/. You can have this mode selected
-automatically when you edit a Debian changelog by adding a local
-variables clause to the end of the changelog.
-
-<sect2>Defining alternative changelog formats
-<p>
-
-It is possible to use a different format to the standard one, by
-providing a parser for the format you wish to use.
-<p>
-
-In order to have <tt/dpkg-parsechangelog/ run your parser, you must
-include a line within the last 40 lines of your file matching the Perl
-regular expression:
-<tt>\schangelog-format:\s+([0-9a-z]+)\W</tt>
-The part in parentheses should be the name of the format. For
-example, you might say:
-<example>
-@@@ changelog-format: joebloggs @@@
-</example>
-Changelog format names are non-empty strings of alphanumerics.
-<p>
-
-If such a line exists then <tt/dpkg-parsechangelog/ will look for the
-parser as <tt>/usr/lib/dpkg/parsechangelog/<var/format-name/</> or
-<tt>/usr/local/lib/dpkg/parsechangelog/<var/format-name/</>; it is an
-error for it not to find it, or for it not to be an executable
-program. The default changelog format is <tt/dpkg/, and a parser for
-it is provided with the <tt/dpkg/ package.
-<p>
-
-The parser will be invoked with the changelog open on standard input
-at the start of the file. It should read the file (it may seek if it
-wishes) to determine the information required and return the parsed
-information to standard output in the form of a series of control
-fields in the standard format. By default it should return
-information about only the most recent version in the changelog; it
-should accept a <tt/-v<var/version// option to return changes
-information from all versions present <em/strictly after/
-<var/version/, and it should then be an error for <var/version/ not to
-be present in the changelog.
-<p>
-
-The fields are:
-<list compact>
-<item><qref id="f-Source"><tt/Source/</>
-<item><qref id="versions"><tt/Version/</> (mandatory)
-<item><qref id="f-Distribution"><tt/Distribution/</> (mandatory)
-<item><qref id="f-Urgency"><tt/Urgency/</> (mandatory)
-<item><qref id="f-Maintainer"><tt/Maintainer/</> (mandatory)
-<item><qref id="f-Date"><tt/Date/</>
-<item><qref id="f-Changes"><tt/Changes/</> (mandatory)
-</list>
-<p>
-
-If several versions are being returned (due to the use of <tt/-v/),
-the urgency value should be of the highest urgency code listed at the
-start of any of the versions requested followed by the concatenated
-(space-separated) comments from all the versions requested; the
-maintainer, version, distribution and date should always be from the
-most recent version.
-<p>
-
-For the format of the <tt/Changes/ field see <ref id="f-Changes">.
-<p>
-
-If the changelog format which is being parsed always or almost always
-leaves a blank line between individual change notes these blank lines
-should be stripped out, so as to make the resulting output compact.
-<p>
-
-If the changelog format does not contain date or package name
-information this information should be omitted from the output. The
-parser should not attempt to synthesise it or find it from other
-sources.
-<p>
-
-If the changelog does not have the expected format the parser should
-exit with a nonzero exit status, rather than trying to muddle through
-and possibly generating incorrect output.
-<p>
-
-A changelog parser may not interact with the user at all.
-
-<sect1 id="srcsubstvars"><tt>debian/substvars</> and variable substitutions
-<p>
-
-When <prgn/dpkg-gencontrol/, <prgn/dpkg-genchanges/ and
-<prgn/dpkg-source/ generate control files they do variable
-substitutions on their output just before writing it. Variable
-substitutions have the form <tt/${<var/variable-name/}/. The optional
-file <tt>debian/substvars</> contains variable substitutions to be
-used; variables can also be set directly from <tt>debian/rules</>
-using the <tt/-V/ option to the source packaging commands, and certain
-predefined variables are available.
-<p>
-
-The is usually generated and modified dynamically by
-<tt>debian/rules</> targets; in this case it must be removed by the
-<prgn/clean/ target.
-<p>
-
-
-
-See <manref name=dpkg-source section=1> for full details about source
-variable substitutions, including the format of
-<tt>debian/substvars</>.
-
-<sect1><tt>debian/files</>
-<p>
-
-This file is not a permanent part of the source tree; it is used while
-building packages to record which files are being generated.
-<prgn/dpkg-genchanges/ uses it when it generates a <tt/.changes/ file.
-<p>
-
-It should not exist in a shipped source package, and so it (and any
-backup files or temporary files such as
-<tt/files.new/<footnote><tt/files.new/ is used as a temporary file by
-<prgn/dpkg-gencontrol/ and <prgn/dpkg-distaddfile/ - they write a new
-version of <tt/files/ here before renaming it, to avoid leaving a
-corrupted copy if an error occurs</footnote>) should be removed by the
-<prgn/clean/ target. It may also be wise to ensure a fresh start by
-emptying or removing it at the start of the <prgn/binary/ target.
-<p>
-
-<prgn/dpkg-gencontrol/ adds an entry to this file for the <tt/.deb/
-file that will be created by <prgn/dpkg-deb/ from the control file
-that it generates, so for most packages all that needs to be done with
-this file is to delete it in <prgn/clean/.
-<p>
-
-If a package upload includes files besides the source package and any
-binary packages whose control files were made with
-<prgn/dpkg-gencontrol/ then they should be placed in the parent of the
-package's top-level directory and <prgn/dpkg-distaddfile/ should be
-called to add the file to the list in <tt>debian/files</>.
-
-<sect1><tt>debian/tmp</>
-<p>
-
-This is the canonical temporary location for the construction of
-binary packages by the <prgn/binary/ target. The directory <tt/tmp/
-serves as the root of the filesystem tree as it is being constructed
-(for example, by using the package's upstream makefiles install
-targets and redirecting the output there), and it also contains the
-<tt/DEBIAN/ subdirectory. See <ref id="bincreating">.
-<p>
-
-If several binary packages are generated from the same source tree it
-is usual to use several <tt>debian/tmp<var/something/</> directories,
-for example <tt/tmp-a/ or <tt/tmp-doc/.
-<p>
-
-Whatever <tt>tmp</> directories are created and used by <prgn/binary/
-must of course be removed by the <prgn/clean/ target.
-
-
-<sect id="sourcearchives">Source packages as archives
-<p>
-
-As it exists on the FTP site, a Debian source package consists of
-three related files. You must have the right versions of all three to
-be able to use them.
-<p>
-
-<taglist>
-<tag/Debian source control file - <tt/.dsc//
-<item>
-
-This file contains a series of fields, identified and separated just
-like the fields in the control file of a binary package. The fields
-are listed below; their syntax is described above, in
-<ref id="controlfields">.
-<list compact>
-<item><qref id="f-Source"><tt/Source/</>
-<item><qref id="versions"><tt/Version/</>
-<item><qref id="f-Maintainer"><tt/Maintainer/</>
-<item><qref id="f-Binary"><tt/Binary/</>
-<item><qref id="f-Architecture"><tt/Architecture/</>
-<item><qref id="f-Standards-Version"><tt/Standards-Version/</>
-<item><qref id="f-Files"><tt/Files/</>
-</list>
-<p>
-
-The source package control file is generated by <prgn/dpkg-source/
-when it builds the source archive, from other files in the source
-package, described above. When unpacking it is checked against the
-files and directories in the other parts of the source package, as
-described below.
-
-<tag/Original source archive - <tt/<var/package/_<var/upstream-version/.orig.tar.gz//
-<item>
-
-This is a compressed (with <tt/gzip -9/) <prgn/tar/ file containing
-the source code from the upstream authors of the program. The tarfile
-unpacks into a directory
-<tt/<var/package/-<var/upstream-version/.orig/, and does not contain
-files anywhere other than in there or in its subdirectories.
-
-<tag/Debianisation diff - <tt/<var/package/_<var/version-revision/.diff.gz//
-<item>
-
-This is a unified context diff (<tt/diff -u/) giving the changes which
-are required to turn the original source into the Debian source.
-These changes may only include editing and creating plain files. The
-permissions of files, the targets of symbolic links and the
-characteristics of special files or pipes may not be changed and no
-files may be removed or renamed.
-<p>
-
-All the directories in the diff must exist, except the <tt/debian/
-subdirectory of the top of the source tree, which will be created by
-<prgn/dpkg-source/ if necessary when unpacking.
-<p>
-
-The <prgn/dpkg-source/ program will automatically make the
-<tt>debian/rules</tt> file executable (see below).
-
-</taglist>
-<p>
-
-If there is no original source code - for example, if the package is
-specially prepared for Debian or the Debian maintainer is the same as
-the upstream maintainer - the format is slightly different: then there
-is no diff, and the tarfile is named
-<tt/<var/package/_<var/version/.tar.gz</> and contains a directory
-<tt/<var/package/-<var/version/</>.
-
-<sect>Unpacking a Debian source package without <prgn/dpkg-source/
-<p>
-
-<tt/dpkg-source -x/ is the recommended way to unpack a Debian source
-package. However, if it is not available it is possible to unpack a
-Debian source archive as follows:
-
-<enumlist compact>
-<item>Untar the tarfile, which will create a <tt/.orig/ directory.
-<item>Rename the <tt/.orig/ directory to
-<tt/<var/package/-<var/version//.
-<item>Create the subdirectory <tt/debian/ at the top of the source
-tree.
-<item>Apply the diff using <tt/patch -p0/.
-<item>Untar the tarfile again if you want a copy of the original
-source code alongside the Debianised version.
-</enumlist>
-<p>
-
-It is not possible to generate a valid Debian source archive without
-using <prgn/dpkg-source/. In particular, attempting to use
-<prgn/diff/ directly to generate the <tt/.diff.gz/ file will not work.
-
-<sect1>Restrictions on objects in source packages
-<p>
-
-The source package may not contain any hard links<footnote>This is not
-currently detected when building source packages, but only when
-extracting them.</footnote><footnote>Hard links may be permitted at
-some point in the future, but would require a fair amount of
-work.</footnote>, device special files, sockets or setuid or setgid
-files.<footnote>Setgid directories are allowed.</footnote>
-<p>
-
-The source packaging tools manage the changes between the original and
-Debianised source using <prgn/diff/ and <prgn/patch/. Turning the
-original source tree as included in the <tt/.orig.tar.gz/ into the
-debianised source must not involve any changes which cannot be handled
-by these tools. Problematic changes which cause <prgn/dpkg-source/ to
-halt with an error when building the source package are:
-<list compact>
-<item>Adding or removing symbolic links, sockets or pipes.
-<item>Changing the targets of symbolic links.
-<item>Creating directories, other than <tt/debian/.
-<item>Changes to the contents of binary files.
-</list>
-Changes which cause <prgn/dpkg-source/ to print a warning but continue
-anyway are:
-<list compact>
-<item>Removing files, directories or symlinks. <footnote>Renaming a
-file is not treated specially - it is seen as the removal of the old
-file (which generates a warning, but is otherwise ignored), and the
-creation of the new one.</footnote>
-<item>Changed text files which are missing the usual final newline
-(either in the original or the modified source tree).
-</list>
-Changes which are not represented, but which are not detected by
-<prgn/dpkg-source/, are:
-<list compact>
-<item>Changing the permissions of files (other than
-<tt>debian/rules</>) and directories.
-</list>
-<p>
-
-The <tt/debian/ directory and <tt>debian/rules</> are handled
-specially by <prgn/dpkg-source/ - before applying the changes it will
-create the <tt/debian/ directory, and afterwards it will make
-<tt>debian/rules</> world-exectuable.
-
-<chapt id="controlfields">Control files and their fields
-<p>
-
-Many of the tools in the <prgn/dpkg/ suite manipulate data in a common
-format, known as control files. Binary and source packages have
-control data as do the <tt/.changes/ files which control the
-installation of uploaded files, and <prgn/dpkg/'s internal databases
-are in a similar format.
-
-<sect>Syntax of control files
-<p>
-
-A file consists of one or more paragraphs of fields. The paragraphs
-are separated by blank lines. Some control files only allow one
-paragraph; others allow several, in which case each paragraph often
-refers to a different package.
-<p>
-
-Each paragraph is a series of fields and values; each field consists
-of a name, followed by a colon and the value. It ends at the end of
-the line. Horizontal whitespace (spaces and tabs) may occur before or
-after the value and is ignored there; it is conventional to put a
-single space after the colon.
-<p>
-
-Some fields' values may span several lines; in this case each
-continuation line <em/must/ start with a space or tab. Any trailing
-spaces or tabs at the end of individual lines of a field value are
-ignored.
-<p>
-
-Except where otherwise stated only a single line of data is allowed
-and whitespace is not significant in a field body. Whitespace may
-never appear inside names (of packages, architectures, files or
-anything else), version numbers or in between the characters of
-multi-character version relationships.
-<p>
-
-Field names are not case-sensitive, but it is usual to capitalise the
-fields using mixed case as shown below.
-<p>
-
-Blank lines, or lines consisting only of spaces and tabs, are not
-allowed within field values or between fields - that would mean a new
-paragraph.
-<p>
-
-It is important to note that there are several fields which are
-optional as far as <prgn/dpkg/ and the related tools are concerned,
-but which must appear in every Debian package, or whose omission may
-cause problems. When writing the control files for Debian packages
-you <em/must/ read the Debian policy manual in conjuction with the
-details below and the list of fields for the particular file.
-
-<sect>List of fields
-
-<sect1 id="f-Package"><tt/Package/
-<p>
-
-The name of the binary package. Package names consist of the
-alphanumerics and <tt/+/ <tt/-/ <tt/./ (plus, minus and full
-stop).<footnote>The characters <tt/@/ <tt/:/ <tt/=/ <tt/%/ <tt/_/ (at,
-colon, equals, percent and underscore) used to be legal and are still
-accepted when found in a package file, but may not be used in new
-packages</footnote>
-<p>
-
-They must be at least two characters and must start with an
-alphanumeric. In current versions of dpkg they are sort of
-case-sensitive<footnote>This is a bug.</footnote>; use lowercase
-package names unless the package you're building (or referring to, in
-other fields) is already using uppercase.
-
-<sect1 id="f-Version"><tt/Version/
-<p>
-
-This lists the source or binary package's version number - see <ref
-id="versions">.
-
-<sect1 id="f-Architecture"><tt/Architecture/
-<p>
-
-This is the architecture string; it is a single word for the CPU
-architecture.
-<p>
-
-<prgn/dpkg/ will check the declared architecture of a binary package
-against its own compiled-in value before it installs it.
-<p>
-
-The special value <tt/all/ indicates that the package is
-architecture-independent.
-<p>
-
-In the main <tt>debian/control</> file in the source package, or in
-the source package control file <tt/.dsc/, a list of architectures
-(separated by spaces) is also allowed, as is the special value
-<tt/any/. A list indicates that the source will build an
-architecture-dependent package, and will only work correctly on the
-listed architectures. <tt/any/ indicates that though the source
-package isn't dependent on any particular architecture and should
-compile fine on any one, the binary package(s) produced are not
-architecture-independent but will instead be specific to whatever the
-current build architecture is.
-<p>
-
-In a <tt/.changes/ file the <tt/Architecture/ field lists the
-architecture(s) of the package(s) currently being uploaded. This will
-be a list; if the source for the package is being uploaded too the
-special entry <tt/source/ is also present.
-<p>
-
-The current build architecture can be determined using <tt/dpkg
---print-architecture/.<footnote>This actually invokes
-<example>
-gcc --print-libgcc-file-name
-</example>
-and parses and decomposes the output and looks the CPU type from the
-GCC configuration in a table in <prgn/dpkg/. This is so that it will
-work if you're cross-compiling.
-</footnote>
-This value is automatically used by <prgn/dpkg-gencontrol/ when
-building the control file for a binary package for which the source
-control information doesn't specify architecture <tt/all/.
-<p>
-
-There is a separate option, <tt/--print-installation-architecture/,
-for finding out what architecture <prgn/dpkg/ is willing to install.
-This information is also in the output of <tt/dpkg --version/.
-
-<sect1 id="f-Maintainer"><tt/Maintainer/
-<p>
-
-The package maintainer's name and email address. The name should come
-first, then the email address inside angle brackets <tt/&lt;&gt/ (in
-RFC822 format).
-<p>
-
-If the maintainer's name contains a full stop then the whole field
-will not work directly as an email address due to a misfeature in the
-syntax specified in RFC822; a program using this field as an address
-must check for this and correct the problem if necessary (for example
-by putting the name in round brackets and moving it to the end, and
-bringing the email address forward).
-<p>
-
-In a <tt/.changes/ file or parsed changelog data this contains the
-name and email address of the person responsible for the particular
-version in question - this may not be the package's usual maintainer.
-<p>
-
-This field is usually optional in as far as the <prgn/dpkg/ are
-concerned, but its absence when building packages usually generates a
-warning.
-
-<sect1 id="f-Source"><tt/Source/
-<p>
-
-This field identifies the source package name.
-<p>
-
-In a main source control information or a <tt/.changes/ or <tt/.dsc/
-file or parsed changelog data this may contain only the name of the
-source package.
-<p>
-
-In the control file of a binary package (or in a <tt/Packages/ file)
-it may be followed by a version number in parentheses.<footnote>It is
-usual to leave a space after the package name if a version number is
-specified.</footnote> This version number may be omitted (and is, by
-<prgn/dpkg-gencontrol/) if it has the same value as the <tt/Version/
-field of the binary package in question. The field itself may be
-omitted from a binary package control file when the source package has
-the same name and version as the binary package.
-
-<sect1>Package interrelationship fields:
-<tt/Depends/, <tt/Pre-Depends/, <tt/Recommends/
-<tt/Suggests/, <tt/Conflicts/, <tt/Provides/, <tt/Replaces/
-<p>
-
-These fields describe the package's relationships with other packages.
-Their syntax and semantics are described in <ref id="relationships">.
-
-<sect1 id="f-Description"><tt/Description/
-<p>
-
-In a binary package <tt/Packages/ file or main source control file
-this field contains a description of the binary package, in a special
-format. See <ref id="descriptions"> for details.
-<p>
-
-In a <tt/.changes/ file it contains a summary of the descriptions for
-the packages being uploaded. The part of the field before the first
-newline is empty; thereafter each line has the name of a binary
-package and the summary description line from that binary package.
-Each line is indented by one space.
-
-<sect1 id="f-Essential"><tt/Essential/
-<p>
-
-This is a boolean field which may occur only in the control file of a
-binary package (or in the <tt/Packages/ file) or in a per-package
-fields paragraph of a main source control data file.
-<p>
-
-If set to <tt/yes/ then <prgn/dpkg/ and <prgn/dselect/ will refuse to
-remove the package (though it can be upgraded and/or replaced). The
-other possible value is <tt/no/, which is the same as not having the
-field at all.
-
-<sect1 id="f-classification"><tt/Section/ and <tt/Priority/
-<p>
-
-These two fields classify the package. The <tt/Priority/ represents
-how important that it is that the user have it installed; the
-<tt/Section/ represents an application area into which the package has
-been classified.
-<p>
-
-When they appear in the <tt>debian/control</> file these fields give
-values for the section and priority subfields of the <tt/Files/ field
-of the <tt/.changes/ file, and give defaults for the section and
-priority of the binary packages.
-<p>
-
-The section and priority are represented, though not as separate
-fields, in the information for each file in the <qref
-id="f-Files"><tt/Files/</> field of a <tt/.changes/ file. The
-section value in a <tt/.changes/ file is used to decide where to
-install a package in the FTP archive.
-<p>
-
-These fields are not used by by <prgn/dpkg/ proper, but by
-<prgn/dselect/ when it sorts packages and selects defaults. See the
-Debian policy manual for the priorities in use and the criteria for
-selecting the priority for a Debian package, and look at the Debian
-FTP archive for a list of currently in-use priorities.
-<p>
-
-These fields may appear in binary package control files, in which case
-they provide a default value in case the <tt/Packages/ files are
-missing the information. <prgn/dpkg/ and <prgn/dselect/ will only use
-the value from a <tt/.deb/ file if they have no other information; a
-value listed in a <tt/Packages/ file will always take precedence. By
-default <prgn/dpkg-genchanges/ does not include the section and
-priority in the control file of a binary package - use the <tt/-isp/,
-<tt/-is/ or <tt/-ip/ options to achieve this effect.
-
-<sect1 id="f-Binary"><tt/Binary/
-<p>
-
-This field is a list of binary packages.
-<p>
-
-When it appears in the <tt/.dsc/ file it is the list of binary
-packages which a source package can produce. It does not necessarily
-produce all of these binary packages for every architecture. The
-source control file doesn't contain details of which architectures are
-appropriate for which of the binary packages.
-<p>
-
-When it appears in a <tt/.changes/ file it lists the names of the
-binary packages actually being uploaded.
-<p>
-
-The syntax is a list of binary packages separated by
-commas.<footnote>A space after each comma is conventional.</footnote>
-Currently the packages must be separated using only spaces in the
-<tt/.changes/ file.
-
-<sect1 id="f-Installed-Size"><tt/Installed-Size/
-<p>
-
-This field appears in the control files of binary packages, and in the
-<tt/Packages/ files. It gives the total amount of disk space
-required to install the named package.
-<p>
-
-The disk space is represented in kilobytes as a simple decimal number.
-
-<sect1 id="f-Files"><tt/Files/
-<p>
-
-This field contains a list of files with information about each one.
-The exact information and syntax varies with the context. In all
-cases the the part of the field contents on the same line as the field
-name is empty. The remainder of the field is one line per file, each
-line being indented by one space and containing a number of sub-fields
-separated by spaces.
-<p>
-
-In the <tt/.dsc/ (Debian source control) file each line contains the
-MD5 checksum, size and filename of the tarfile and (if applicable)
-diff file which make up the remainder of the source
-package.<footnote>That is, the parts which are not the
-<tt/.dsc/.</footnote> The exact forms of the filenames are described
-in <ref id="sourcearchives">.
-<p>
-
-In the <tt/.changes/ file this contains one line per file being
-uploaded. Each line contains the MD5 checksum, size, section and
-priority and the filename. The section and priority are the values of
-the corresponding fields in the main source control file - see <ref
-id="f-classification">. If no section or priority is specified then
-<tt/-/ should be used, though section and priority values must be
-specified for new packages to be installed properly.
-<p>
-
-The special value <tt/byhand/ for the section in a <tt/.changes/ file
-indicates that the file in question is not an ordinary package file
-and must by installed by hand by the distribution maintainers. If the
-section is <tt/byhand/ the priority should be <tt/-/.
-<p>
-
-If a new Debian revision of a package is being shipped and no new
-original source archive is being distributed the <tt/.dsc/ must still
-contain the <tt/Files/ field entry for the original source archive
-<tt/<var/package/-<var/upstream-version/.orig.tar.gz/, but the
-<tt/.changes/ file should leave it out. In this case the original
-source archive on the distribution site must match exactly,
-byte-for-byte, the original source archive which was used to generate
-the <tt/.dsc/ file and diff which are being uploaded.
-
-
-<sect1 id="f-Standards-Version"><tt/Standards-Version/
-<p>
-
-The most recent version of the standards (the <prgn/dpkg/ programmers'
-and policy manuals and associated texts) with which the package
-complies. This is updated manually when editing the source package to
-conform to newer standards; it can sometimes be used to tell when a
-package needs attention.
-<p>
-
-Its format is the same as that of a version number except that no
-epoch or Debian revision is allowed - see <ref id="versions">.
-
-
-<sect1 id="f-Distribution"><tt/Distribution/
-<p>
-
-In a <tt/.changes/ file or parsed changelog output this contains the
-(space-separated) name(s) of the distribution(s) where this version of
-the package should be or was installed. Distribution names follow the
-rules for package names. (See <ref id="f-Package">).
-<p>
-
-Current distribution values are <tt/stable/, <tt/unstable/,
-<tt/contrib/, <tt/non-free/ and <tt/experimental/.
-
-<sect1 id="f-Urgency"><tt/Urgency/
-<p>
-
-This is a description of how important it is to upgrade to this
-version from previous ones. It consists of a single keyword usually
-taking one of the values <tt/LOW/, <tt/MEDIUM/ or <tt/HIGH/) followed
-by an optional commentary (separated by a space) which is usually in
-parentheses. For example:
-<example>
-Urgency: LOW (HIGH for diversions users)
-</example>
-<p>
-
-This field appears in the <tt/.changes/ file and in parsed changelogs;
-its value appears as the value of the <tt/urgency/ attribute in a
-<prgn/dpkg/-style changelog (see <ref id="dpkgchangelog">).
-<p>
-
-Urgency keywords are not case-sensitive.
-
-<sect1 id="f-Date"><tt/Date/
-<p>
-
-In <tt/.changes/ files and parsed changelogs, this gives the date the
-package was built or last edited.
-
-<sect1 id="f-Format"><tt/Format/
-<p>
-
-This field occurs in <tt/.changes/ files, and specifies a format
-revision for the file. The format described here is version <tt/1.5/.
-The syntax of the format value is the same as that of a package
-version number except that no epoch or Debian revision is allowed -
-see <ref id="versions">.
-
-<sect1 id="f-Changes"><tt/Changes/
-<p>
-
-In a <tt/.changes/ file or parsed changelog this field contains the
-human-readable changes data, describing the differences between the
-last version and the current one.
-<p>
-
-There should be nothing in this field before the first newline; all
-the subsequent lines must be indented by at least one space; blank
-lines must be represented by a line consiting only of a space and a
-full stop.
-<p>
-
-Each version's change information should be preceded by a `title' line
-giving at least the version, distribution(s) and urgency, in a
-human-readable way.
-<p>
-
-If data from several versions is being returned the entry for the most
-recent version should be returned first, and entries should be
-separated by the representation of a blank line (the `title' line may
-also be followed by the representation of blank line).
-
-<sect1 id="f-Filename"><tt/Filename/ and <tt/MSDOS-Filename/
-<p>
-
-These fields in <tt/Packages/ files give the filename(s) of (the parts
-of) a package in the distribution directories, relative to the root of
-the Debian hierarchy. If the package has been split into several
-parts the parts are all listed in order, separated by spaces.
-
-<sect1 id="f-Size"><tt/Size/ and <tt/MD5sum/
-<p>
-
-These fields in <tt/Packages/ files give the size (in bytes, expressed
-in decimal) and MD5 checksum of the file(s) which make(s) up a binary
-package in the distribution. If the package is split into several
-parts the values for the parts are listed in order, separated by
-spaces.
-
-<sect1 id="f-Status"><tt/Status/
-<p>
-
-This field in <prgn/dpkg/'s status file records whether the user wants a
-package installed, removed or left alone, whether it is broken
-(requiring reinstallation) or not and what its current state on the
-system is. Each of these pieces of information is a single word.
-
-<sect1 id="f-Config-Version"><tt/Config-Version/
-<p>
-
-If a package is not installed or not configured, this field in
-<prgn/dpkg/'s status file records the last version of the package which
-was successfully configured.
-
-<sect1 id="f-Conffiles"><tt/Conffiles/
-<p>
-
-This field in <prgn/dpkg/'s status file contains information about the
-automatically-managed configuration files held by a package. This
-field should <em/not/ appear anywhere in a package!
-
-<sect1>Obsolete fields
-<p>
-
-These are still recognised by <prgn/dpkg/ but should not appear anywhere
-any more.
-
-<taglist compact>
-
-<tag><tt/Revision/
-<tag><tt/Package-Revision/
-<tag><tt/Package_Revision/
-<item>
-The Debian revision part of the package version was at one point in a
-separate control file field. This field went through several names.
-
-<tag><tt/Recommended/
-<item>Old name for <tt/Recommends/
-
-<tag><tt/Optional/
-<item>Old name for <tt/Suggests/.
-
-<tag><tt/Class/
-<item>Old name for <tt/Priority/.
-
-</taglist>
-
-<chapt id="versions">Version numbering
-<p>
-
-Every package has a version number, in its <tt/Version/ control file
-field.
-<p>
-
-<prgn/dpkg/ imposes an ordering on version numbers, so that it can tell
-whether packages are being up- or downgraded and so that <prgn/dselect/
-can tell whether a package it finds available is newer than the one
-installed on the system. The version number format has the most
-significant parts (as far as comparison is concerned) at the
-beginning.
-<p>
-
-The version number format is:
-&lsqb<var/epoch/<tt/:/&rsqb;<var/upstream-version/&lsqb;<tt/-/<var/debian-revision/&rsqb;.
-<p>
-
-The three components here are:
-
-<taglist>
-
-<tag><var/epoch/
-<item>
-
-This is a single unsigned integer, which should usually be small. It
-may be omitted, in which case zero is assumed. If it is omitted then
-the <var/upstream-version/ may not contain any colons.
-<p>
-
-It is provided to allow mistakes in the version numbers of older
-versions of a package, and also a package's previous version numbering
-schemes, to be left behind.
-<p>
-
-<prgn/dpkg/ will not usually display the epoch unless it is essential
-(non-zero, or if the <var/upstream-version/ contains a colon);
-<prgn/dselect/ does not display epochs at all in the main part of the
-package selection display.
-
-<tag><var/upstream-version/
-<item>
-
-This is the main part of the version. It is usually version number of
-the original (`upstream') package of which the <tt/.deb/ file has been
-made, if this is applicable. Usually this will be in the same format
-as that specified by the upstream author(s); however, it may need to
-be reformatted to fit into <prgn/dpkg/'s format and comparison scheme.
-<p>
-
-The comparison behaviour of <prgn/dpkg/ with respect to the
-<var/upstream-version/ is described below. The <var/upstream-version/
-portion of the version number is mandatory.
-<p>
-
-The <var/upstream-version/ may contain only alphanumerics and the
-characters <tt/+/ <tt/./ <tt/-/ <tt/:/ (full stop, plus, hyphen,
-colon) and should start with a digit. If there is no
-<var/debian-revision/ then hyphens are not allowed; if there is no
-<var/epoch/ then colons are not allowed.
-
-<tag><var/debian-revision/
-<item>
-
-This part of the version represents the version of the modifications
-that were made to the package to make it a Debian binary package. It
-is in the same format as the <var/upstream-version/ and <prgn/dpkg/
-compares it in the same way.
-<p>
-
-It is optional; if it isn't present then the <var/upstream-version/
-may not contain a hyphen. This format represents the case where a
-piece of software was written specifically to be turned into a Debian
-binary package, and so there is only one `debianization' of it and
-therefore no revision indication is required.
-<p>
-
-It is conventional to restart the <var/debian-revision/ at <tt/1/ each
-time the <var/upstream-version/ is increased.
-<p>
-
-<prgn/dpkg/ will break the <var/upstream-version/ and
-<var/debian-revision/ apart at the last hyphen in the string. The
-absence of a <var/debian-revision/ compares earlier than the presence
-of one (but note that the <var/debian-revision/ is the least
-significant part of the version number).
-<p>
-
-The <var/debian-revision/ may contain only alphanumerics and the
-characters <tt/+/ and <tt/./ (plus and full stop).
-
-</taglist>
-
-The <var/upstream-version/ and <var/debian-revision/ parts are
-compared by <prgn/dpkg/ using the same algorithm:
-<p>
-
-The strings are compared from left to right.
-<p>
-
-First the initial part of each string consisting entirely of non-digit
-characters is determined. These two parts (one of which may be empty)
-are compared lexically. If a difference is found it is returned. The
-lexical comparison is a comparison of ASCII values modified so that
-all the letters sort earlier than all the non-letters.
-<p>
-
-Then the initial part of the remainder of each string which consists
-entirely of digit characters is determined. The numerical values of
-these two parts are compared, and any difference found is returned as
-the result of the comparison. For these purposes an empty string
-(which can only occur at the end of one or both version strings being
-compared) counts as zero.
-<p>
-
-These two steps are repeated (chopping initial non-digit strings and
-initial digit strings off from the start) until a difference is found
-or both strings are exhausted.
-<p>
-
-Note that the purpose of epochs is to allow us to leave behind
-mistakes in version numbering, and to cope with situations where the
-version numbering changes. It is <em/not/ there to cope with version
-numbers containing strings of letters which <prgn/dpkg/ cannot interpret
-(such as <tt/ALPHA/ or <tt/pre-/), or with silly orderings (the author
-of this manual has heard of a package whose versions went <tt/1.1/,
-<tt/1.2/, <tt/1.3/, <tt/1/, <tt/2.1/, <tt/2.2/, <tt/2/ and so forth).
-<p>
-
-If an upstream package has problematic version numbers they should be
-converted to a sane form for use in the <tt/Version/ field.
-
-
-<chapt id="maintainerscripts">Package maintainer scripts
-and installation procedure
-<sect>Introduction to package maintainer scripts
-<p>
-
-It is possible supply scripts as part of a package which <prgn/dpkg/
-will run for you when your package is installed, upgraded or removed.
-<p>
-
-These scripts should be the files <tt/preinst/, <tt/postinst/,
-<tt/prerm/ and <tt/postrm/ in the control area of the package. They
-must be proper exectuable files; if they are scripts (which is
-recommended) they must start with the usual <tt/#!/ convention. They
-should be readable and executable to anyone, and not world-writeable.
-<p>
-
-<prgn/dpkg/ looks at the exit status from these scripts. It is
-important that they exit with a non-zero status if there is an error,
-so that <prgn/dpkg/ can stop its processing. For shell scripts this
-means that you <em/almost always/ need to use <tt/set -e/ (this is
-usually true when writing shell scripts, in fact). It is also
-important, of course, that they don't exit with a non-zero status if
-everything went well.
-<p>
-
-It is necessary for the error recovery procedures that the scripts be
-idempotent: ie, invoking the same script several times in the same
-situation should do no harm. If the first call failed, or aborted
-half way through for some reason, the second call should merely do the
-things that were left undone the first time, if any, and exit with a
-success status.
-<p>
-
-When a package is upgraded a combination of the scripts from the old
-and new packages is called in amongst the other steps of the upgrade
-procedure. If your scripts are going to be at all complicated you
-need to be aware of this, and may need to check the arguments to your
-scripts.
-<p>
-
-Broadly speaking the <prgn/preinst/ is called before (a particular
-version of) a package is installed, and the <prgn/postinst/ afterwards;
-the <prgn/prerm/ before (a version of) a package is removed and the
-<prgn/postrm/ afterwards.
-
-
-<sect id="mscriptsinstact">Summary of ways maintainer scripts are called
-<p>
-
-<list compact>
-<item><var/new-preinst/ <tt/install/
-<item><var/new-preinst/ <tt/install/ <var/old-version/
-<item><var/new-preinst/ <tt/upgrade/ <var/old-version/
-<item><var/old-preinst/ <tt/abort-upgrade/ <var/new-version/
-</list>
-<p>
-
-<list compact>
-<item><var/postinst/ <tt/configure/ <var/most-recently-configured-version/
-<item><var/old-postinst/ <tt/abort-upgrade/ <var/new version/
-<item><var/conflictor's-postinst/ <tt/abort-remove/
- <tt/in-favour/ <var/package/ <var/new-version/
-<item><var/deconfigured's-postinst/ <tt/abort-deconfigure/
- <tt/in-favour/ <var/failed-install-package/ <var/version/
- <tt/removing/ <var/conflicting-package/ <var/version/
-</list>
-<p>
-
-<list compact>
-<item><var/prerm/ <tt/remove/
-<item><var/old-prerm/ <tt/upgrade/ <var/new-version/
-<item><var/new-prerm/ <tt/failed-upgrade/ <var/old-version/
-<item><var/conflictor's-prerm/ <tt/remove/ <tt/in-favour/
- <var/package/ <var/new-version/
-<item><var/deconfigured's-prerm/ <tt/deconfigure/
- <tt/in-favour/ <var/package-being-installed/ <var/version/
- <tt/removing/ <var/conflicting-package/ <var/version/
-</list>
-<p>
-
-<list compact>
-<item><var/postrm/ <tt/remove/
-<item><var/postrm/ <tt/purge/
-<item><var/old-postrm/ <tt/upgrade/ <var/new-version/
-<item><var/new-postrm/ <tt/failed-upgrade/ <var/old-version/
-<item><var/new-postrm/ <tt/abort-install/
-<item><var/new-postrm/ <tt/abort-install/ <var/old-version/
-<item><var/new-postrm/ <tt/abort-upgrade/ <var/old-version/
-<item><var/disappearer's-postrm/ <tt/disappear/ <var/overwriter/ <var/new-version/
-</list>
-
-
-<sect>Details of unpack phase of installation or upgrade
-<p>
-
-The procedure on installation/upgrade/overwrite/disappear (ie, when
-running <tt/dpkg --unpack/, or the unpack stage of <tt/dpkg
---install/) is as follows. In each case if an error occurs the
-actions in are general run backwards - this means that the maintainer
-scripts are run with different arguments in reverse order. These are
-the `error unwind' calls listed below.
-
-<enumlist>
-<item>
-
-<enumlist>
-<item>
-If a version the package is already
-installed, call
-<example>
-<var/old-prerm/ upgrade <var/new-version/
-</example>
-
-<item>
-If this gives an error (ie, a non-zero exit status), dpkg will
-attempt instead:
-<example>
-<var/new-prerm/ failed-upgrade <var/old-version/
-</example>
-Error unwind, for both the above cases:
-<example>
-<var/old-postinst/ abort-upgrade <var/new-version/
-</example>
-
-</enumlist>
-
-<item>
-If a `conflicting' package is being removed at the same time:
-<enumlist>
-
-<item>
-If any packages depended on that conflicting package and
-<tt/--auto-deconfigure/ is specified, call, for each such package:
-<example>
-<var/deconfigured's-prerm/ deconfigure \
- in-favour <var/package-being-installed/ <var/version/ \
- removing <var/conflicting-package/ <var/version/
-</example>
-Error unwind:
-<example>
-<var/deconfigured's-postinst/ abort-deconfigure \
- in-favour <var/package-being-installed-but-failed/ <var/version/ \
- removing <var/conflicting-package/ <var/version/
-</example>
-The deconfigured packages are marked as requiring configuration, so
-that if <tt/--install/ is used they will be configured again if
-possible.
-
-<item>
-To prepare for removal of the conflicting package, call:
-<example>
-<var/conflictor's-prerm/ remove in-favour <var/package/ <var/new-version/
-</example>
-Error unwind:
-<example>
-<var/conflictor's-postinst/ abort-remove \
- in-favour <var/package/ <var/new-version/
-</example>
-
-</enumlist>
-
-<item>
-<enumlist>
-<item>
-If the package is being upgraded, call:
-<example>
-<var/new-preinst/ upgrade <var/old-version/
-</example>
-
-<item>
-Otherwise, if the package had some configuration files from a previous
-version installed (ie, it is in the `configuration files only' state):
-<example>
-<var/new-preinst/ install <var/old-version/
-</example>
-
-<item>
-Otherwise (ie, the package was completely purged):
-<example>
-<var/new-preinst/ install
-</example>
-Error unwind versions, respectively:
-<example>
-<var/new-postrm/ abort-upgrade <var/old-version/
-<var/new-postrm/ abort-install <var/old-version/
-<var/new-postrm/ abort-install
-</example>
-
-</enumlist>
-
-<item>
-The new package's files are unpacked, overwriting any that may be on
-the system already, for example any from the old version of the same
-package or from another package (backups of the old files are left
-around, and if anything goes wrong dpkg will attempt to put them back
-as part of the error unwind).
-<p>
-
-It is an error for a package to contains files which are on the system
-in another package, unless <tt/Replaces/ is used (see
-<ref id="replaces">). Currently the <tt/--force-overwrite/ flag is
-enabled, downgrading it to a warning, but this may not always be the
-case.
-<p>
-
-It is a more serious error for a package to contain a plain file or
-other kind of nondirectory where another package has a directory
-(again, unless <tt/Replaces/ is used). This error can be overridden
-if desired using <tt/--force-overwrite-dir/, but this is not -->
---advisable.
-<p>
-
-Packages which overwrite each other's files produce behaviour which
-though deterministic is hard for the system administrator to
-understand. It can easily lead to `missing' programs if, for example,
-a package is installed which overwrites a file from another package,
-and is then removed again.<footnote>Part of the problem is due to what
-is arguably a bug in <prgn/dpkg/.</footnote>
-<p>
-
-A directory will never be replaced by a symbolic links to a directory
-or vice versa; instead, the existing state (symlink or not) will be
-left alone and <prgn/dpkg/ will follow the symlink if there is one.
-
-<item>
-
-<enumlist>
-<item>
-If the package is being upgraded, call
-<example>
-<var/old-postrm/ upgrade <var/new-version/
-</example>
-
-<item>
-If this fails, <prgn/dpkg/ will attempt:
-<example>
-<var/new-postrm/ failed-upgrade <var/old-version/
-</example>
-Error unwind, for both cases:
-<example>
-<var/old-preinst/ abort-upgrade <var/new-version/
-</example>
-
-</enumlist>
-
-This is the point of no return - if <prgn/dpkg/ gets this far, it won't
-back off past this point if an error occurs. This will leave the
-package in a fairly bad state, which will require a successful
-reinstallation to clear up, but it's when <prgn/dpkg/ starts doing
-things that are irreversible.
-
-<item>
-Any files which were in the old version of the package but not in the
-new are removed.
-
-<item>
-The new file list replaces the old.
-
-<item>
-The new maintainer scripts replace the old.
-
-<item>
-Any packages all of whose files have been overwritten during the
-installation, and which aren't required for dependencies, are considered
-to have been removed. For each such package,
-
-<enumlist>
-<item>
-<prgn/dpkg/ calls:
-<example>
-<var/disappearer's-postrm/ disappear \
- <var/overwriter/ <var/overwriter-version/
-</example>
-
-<item>
-The package's maintainer scripts are removed.
-
-<item>
-It is noted in the status database as being in a sane state, namely
-not installed (any conffiles it may have are ignored, rather than
-being removed by <prgn/dpkg/). Note that disappearing packages do not
-have their prerm called, because <prgn/dpkg/ doesn't know in advance
-that the package is going to vanish.
-
-</enumlist>
-
-<item>
-Any files in the package we're unpacking that are also listed in the
-file lists of other packages are removed from those lists. (This will
-lobotomise the file list of the `conflicting' package if there is one.)
-
-<item>
-The backup files made during installation, above, are deleted.
-
-<item>
-The new package's status is now sane, and recorded as `unpacked'. Here
-is another point of no return - if the conflicting package's removal
-fails we do not unwind the rest of the installation; the conflicting
-package is left in a half-removed limbo.
-
-<item>
-If there was a conflicting package we go and do the removal actions
-(described below), starting with the removal of the conflicting
-package's files (any that are also in the package being installed
-have already been removed from the conflicting package's file list,
-and so do not get removed now).
-
-</enumlist>
-
-<sect>Details of configuration
-<p>
-
-When we configure a package (this happens with <tt/dpkg --install/, or
-with <tt/--configure/), we first update the conffiles and then call:
-<example>
-<var/postinst/ configure <var/most-recently-configured-version/
-</example>
-<p>
-
-No attempt is made to unwind after errors during configuration.
-<p>
-
-If there is no most recently configured version <prgn/dpkg/ will pass a
-null argument; older versions of dpkg may pass
-<tt>&lt;unknown&gt;</tt> (including the angle brackets) in this case.
-Even older ones do not pass a second argument at all, under any
-circumstances.
-
-<sect>Details of removal and/or configuration purging
-<p>
-
-<enumlist>
-<item>
-<example>
-<var/prerm/ remove
-</example>
-
-<item>
-The package's files are removed (except conffiles).
-
-<item>
-<example>
-<var/postrm/ remove
-</example>
-
-<item>
-All the maintainer scripts except the postrm are removed.
-<p>
-
-If we aren't purging the package we stop here. Note that packages
-which have no postrm and no conffiles are automatically purged when
-removed, as there is no difference except for the <prgn/dpkg/ status.
-
-<item>
-The conffiles and any backup files (<tt/~/-files, <tt/#*#/ files,
-<tt/%/-files, <tt/.dpkg-{old,new,tmp}/, etc.) are removed.
-
-<item>
-<example>
-<var/postrm/ purge
-</example>
-
-<item>
-The package's file list is removed.
-
-</enumlist>
-
-No attempt is made to unwind after errors during removal.
-
-
-<chapt id="descriptions">Descriptions of packages - the
-<tt/Description/ field
-<p>
-
-The <tt/Description/ control file field is used by <prgn/dselect/ when
-the user is selecting which packages to install and by <prgn/dpkg/
-when it displays information about the status of packages and so
-forth. It is included on the FTP site in the <prgn/Packages/ files,
-and may also be used by the Debian WWW pages.
-<p>
-
-The description is intended to describe the program to a user who has
-never met it before so that they know whether they want to install it.
-It should also give information about the significant dependencies and
-conflicts between this package and others, so that the user knows why
-these dependencies and conflicts have been declared.
-<p>
-
-The field's format is as follows:
-<example>
-Description: <var/single line synopsis/
- <var/extended description over several lines/
-</example>
-<p>
-
-The synopsis is often printed in lists of packages and so forth, and
-should be as informative as possible. Every package should also have
-an extended description.
-<p>
-
-<sect>Types of formatting line in the extended description
-<p>
-
-<list>
-<item>
-Those starting with a single space are part of a paragraph.
-Successive lines of this form will be word-wrapped when displayed.
-The leading space will usually be stripped off.
-
-<item>
-Those starting with two or more spaces. These will be displayed
-verbatim. If the display cannot be panned horizontally the
-displaying program will linewrap them `hard' (ie, without taking
-account of word breaks). If it can they will be allowed to trail
-off to the right. None, one or two initial spaces may be deleted,
-but the number of spaces deleted from each line will be the same
-(so that you can have indenting work correctly, for example).
-
-<item>
-Those containing a single space followed by a single full stop
-character. These are rendered as blank lines. This is the <em/only/
-way to get a blank line - see below.
-
-<item>
-Those containing a space, a full stop and some more characters. These
-are for future expansion. Do not use them.
-</list>
-
-<sect>Notes about writing descriptions
-<p>
-
-<em/Always/ start extended description lines with at least one
-whitespace character. Fields in the control file and in the Packages
-file are separated by field names starting in the first column, just
-as message header fields are in RFC822. Forgetting the whitespace
-will cause <prgn/dpkg-deb/<footnote>Version 0.93.23 or
-later.</footnote> to produce a syntax error when trying to build the
-package. If you force it to build anyway <prgn/dpkg/ will refuse to
-install the resulting mess.
-<p>
-
-<em/Do not/ include any completely <em/empty/ lines. These separate
-different records in the Packages file and different packages in the
-<tt>debian/control</> file, and are forbidden in package control
-files. See the previous paragraph for what happens if you get this
-wrong.
-<p>
-
-The single line synopsis should be kept brief - certainly under 80
-characters. <prgn/dselect/ displays between 25 and 49 characters
-without panning if you're using an 80-column terminal, depending on
-what display options are in effect.
-<p>
-
-Do not include the package name in the synopsis line. The display
-software knows how to display this already, and you do not need to
-state it. Remember that in many situations the user may only see
-the synopsis line - make it as informative as you can.
-<p>
-
-The extended description should describe what the package does and
-how it relates to the rest of the system (in terms of, for
-example, which subsystem it is which part of).
-<p>
-
-The blurb that comes with a program in its announcements and/or
-<prgn/README/ files is rarely suitable for use in a description. It
-is usually aimed at people who are already in the community where the
-package is used. The description field needs to make sense to anyone,
-even people who have no idea about any of the
-things the package deals with.
-<p>
-
-Put important information first, both in the synopis and extended
-description. Sometimes only the first part of the synopsis or of
-the description will be displayed. You can assume that there will
-usually be a way to see the whole extended description.
-<p>
-
-You may include information about dependencies and so forth in the
-extended description, if you wish.
-<p>
-
-Do not use tab characters. Their effect is not predictable.
-<p>
-
-Do not try to linewrap the summary (the part on the same line as the
-field name <tt/Description/) into the extended description. This will
-not work correctly when the full description is displayed, and makes
-no sense where only the summary is available.
-
-<sect>Example description in control file for Smail
-<p>
-
-<example>
-Package: smail
-Version: 3.1.29.1-13
-Maintainer: Ian Jackson &lt;iwj10@cus.cam.ac.uk&gt;
-Recommends: pine | mailx | elm | emacs | mail-user-agent
-Suggests: metamail
-Depends: cron, libc5
-Conflicts: sendmail
-Provides: mail-transport-agent
-Description: Electronic mail transport system.
- Smail is the recommended mail transport agent (MTA) for Debian.
- .
- An MTA is the innards of the mail system - it takes messages from
- user-friendly mailer programs and arranges for them to be delivered
- locally or passed on to other systems as required.
- .
- In order to make use of it you must have one or more user level
- mailreader programs such as elm, pine, mailx or Emacs (which has Rmail
- and VM as mailreaders) installed. If you wish to send messages other
- than just to other users of your system you must also have appropriate
- and VM as mailreaders) installed. If you wish to send messages other
- than just to other users of your system you must also have appropriate
- networking support, in the form of IP or UUCP.
-</example>
-
-<chapt id="relationships">Declaring relationships between packages
-<p>
-
-Packages can declare in their control file that they have certain
-relationships to other packages - for example, that they may not be
-installed at the same time as certain other packages, and/or that they
-depend on the presence of others, or that they should overwrite files
-in certain other packages if present.
-<p>
-
-This is done using the <tt/Depends/, <tt/Recommends/, <tt/Suggests/,
-<tt/Conflicts/, <tt/Provides/ and <tt/Replaces/ control file fields.
-<p>
-
-<sect id="depsyntax">Syntax of relationship fields
-<p>
-
-These fields all have a uniform syntax. They are a list of package
-names separated by commas.
-<p>
-
-In <tt/Depends/, <tt/Recommends/, <tt/Suggests/ and <tt/Pre-Depends/
-(the fields which declare dependencies of the package in which they
-occur on other packages) these package names may also be lists of
-alternative package names, separated by vertical bar symbols <tt/|/
-(pipe symbols).
-<p>
-
-All the fields except <tt/Provides/ may restrict their applicability
-to particular versions of each named package. This is done in
-parentheses after each individual package name; the parentheses should
-contain a relation from the list below followed by a version number,
-in the format described in <ref id="versions">.
-<p>
-
-The relations allowed are
-<tt/&lt;&lt;/,
-<tt/&lt;=/,
-<tt/=/,
-<tt/&gt;=/ and
-<tt/&gt;&gt;/
-for strictly earlier, earlier or equal, exactly equal, later or equal
-and strictly later, respectively. The forms <tt/&lt;/ and <tt/&gt;/
-were used to mean earlier/later or equal, rather than strictly
-earlier/later, so they should not appear in new packages (though
-<prgn/dpkg/ still supports them).
-<p>
-
-Whitespace may appear at any point in the version specification, and
-must appear where it's necessary to disambiguate; it is not otherwise
-significant. For consistency and in case of future changes to
-<prgn/dpkg/ it is recommended that a single space be used after a
-version relationship and before a version number; it is usual also to
-put a single space after each comma, on either side of each vertical
-bar, and before each open parenthesis.
-<p>
-
-For example:
-<example>
-Package: metamail
-Version: 2.7-3
-Depends: libc5 (>= 5.2.18-4), mime-support, csh | tcsh
-</example>
-
-<sect>Dependencies - <tt/Depends/, <tt/Recommends/, <tt/Suggests/, <tt/Pre-Depends/
-<p>
-
-These four fields are used to declare a dependency by one package on
-another. They appear in the depending package's control file.
-<p>
-
-All but <tt/Pre-Depends/ (discussed below) take effect <em/only/ when
-a package is to be configured. They do not prevent a package being on
-the system in an unconfigured state while its dependencies are
-unsatisfied, and it is possible to replace a package whose
-dependencies are satisfied and which is properly installed with a
-different version whose dependencies are not and cannot be satisfied;
-when this is done the depending package will be left unconfigured
-(since attempts to configure it will give errors) and will not
-function properly.
-<p>
-
-For this reason packages in an installation run are usually all
-unpacked first and all configured later; this gives later versions of
-packages with dependencies on later versions of other packages the
-opportunity to have their dependencies satisfied.
-<p>
-
-Thus <tt/Depends/ allows package maintainers to impose an order in
-which packages should be configured.
-
-<taglist>
-<tag><tt/Depends/
-<item>
-
-This declares an absolute dependency.
-<p>
-
-<prgn/dpkg/ will not configure
-packages whose dependencies aren't satisfied. If it is asked to make
-an installation which would cause an installed package's dependencies
-to become unsatisfied it will complain<footnote>Current versions
-(1.2.4) of <prgn/dpkg/ have a bug in this area which will cause some of
-these problems to be ignored.</footnote>, unless
-<tt/--auto-deconfigure/ is specified, in which case those packages
-will be deconfigured before the installation proceeds.
-<p>
-
-<prgn/dselect/ makes it hard for the user to select packages for
-installation, removal or upgrade in a way that would mean that
-packages' <prgn/Depends/ fields would be unsatisfied. The user can
-override this if they wish, for example if they know that <prgn/dselect/
-has an out-of-date view of the real package relationships.
-<p>
-
-The <tt/Depends/ field should be used if the depended-on package is
-required for the depending package to provide a significant amount of
-functionality.
-
-<tag><tt/Recommends/
-<item>
-This declares a strong, but not absolute, dependency.
-<p>
-
-<tt/Recommends/ is ignored by <prgn/dpkg/, so that users using the
-command-line (who are presumed to know what they're doing) will not be
-impeded.
-<p>
-
-It is treated by <prgn/dselect/ exactly as <tt/Depends/ is; this makes
-it hard for the user to select things so as to leave <tt/Recommends/
-fields unsatisfied, but they are able to do so by being persistent.
-<p>
-
-The <tt/Recommends/ field should list packages that would be found
-together with this one in all but unusual installations.
-
-<tag><tt/Suggests/
-<item>
-
-This is used to declare that one package may be more useful with one
-or more others. Using this field tells the packaging system and the
-user that the listed packages are be related to this one and can
-perhaps enhance its usefulness, but that installing this one without
-them is perfectly reasonable.
-<p>
-
-<prgn/dselect/ will offer suggsted packages to the system administrator
-when they select the suggesting package, but the default is not to
-install the suggested package.
-
-<tag><tt/Pre-Depends/
-<item>
-
-This field is like <tt/Depends/, except that it also forces <prgn/dpkg/
-to complete installation of the packages named before even starting
-the installation of the package which declares the predependency.
-<p>
-
-<prgn/dselect/ checks for predependencies when it is doing an
-installation run, and will attempt to find the packages which are
-required to be installed first and do so in the right order.
-<p>
-
-However, this process is slow (because it requires repeated
-invocations of <prgn/dpkg/) and troublesome (because it requires
-guessing where to find the appropriate files).
-<p>
-
-For these reasons, and because this field imposes restrictions on the
-order in which packages may be unpacked (which can be difficult for
-installations from multipart media, for example), <tt/Pre-Depends/
-should be used sparingly, preferably only by packages whose premature
-upgrade or installation would hamper the ability of the system to
-continue with any upgrade that might be in progress.
-<p>
-
-When the package declaring it is being configured, a
-<tt/Pre-Dependency/ will be considered satisfied only if the depending
-package has been correctly configured, just as if an ordinary
-<tt/Depends/ had been used.
-<p>
-
-However, when a package declaring a predependency is being unpacked
-the predependency can be satisfied even if the depended-on package(s)
-are only unpacked or half-configured, provided that they have been
-configured correctly at some point in the past (and not removed or
-partially removed since). In this case both the previously-configured
-and currently unpacked or half-configured versions must satisfy any
-version clause in the <tt/Pre-Depends/ field.
-
-</taglist>
-
-When selecting which level of dependency to use you should consider
-how important the depended-on package is to the functionality of the
-one declaring the dependency. Some packages are composed of
-components of varying degrees of importance. Such a package should
-list using <tt/Depends/ the package(s) which are required by the more
-important components. The other components' requirements may be
-mentioned as Suggestions or Recommendations, as appropriate to the
-components' relative importance.
-
-<sect1>Dependencies on shared libraries
-<p>
-
-The dependency fields listed above are used by packages which need
-shared libraries to declare dependencies on the appropriate packages.
-<p>
-
-These dependencies are usually determined automatically using
-<prgn/dpkg-shlibdeps/ and inserted in the package control file using
-the control file substitution variables mechanism; see <ref
-id="srcsubstvars"> and <ref id="sourcetools">.
-
-<sect1>Deconfiguration due to removal during bulk installations
-<p>
-
-If <prgn/dpkg/ would like to remove a package due to a conflict, as
-described above, but this would violate a dependency of some other
-package on the system, <prgn/dpkg/ will usually not remove the
-conflicting package and halt with an error.
-<p>
-
-However, if the <tt/--auto-deconfigure/ (<tt/-B/) option is used
-<prgn/dpkg/ will automatically `deconfigure' the package with the
-problematic dependency, so that the conflicting package can be removed
-and the package we're trying to install can be installed. If
-<prgn/dpkg/ is being asked to install packages (rather than just
-unpacking them) it will try to reconfigure the package when it has
-unpacked all its arguments, in the hope that one of the other packages
-it is installing will satisfy the problematic dependency.
-<p>
-
-<prgn/dselect/ supplies this argument to <prgn/dpkg/ when it invokes it,
-so that bulk installations proceed smoothly.
-
-<sect id="conflicts">Alternative packages - <tt/Conflicts/ and <tt/Replaces/
-<p>
-
-When one package declares a conflict with another <prgn/dpkg/ will
-refuse to allow them to be installed on the system at the same time.
-<p>
-
-If one package is to be installed, the other must be removed first -
-if the package being installed is marked as replacing (<ref
-id="replaces">) the one on the system, or the one on the system is
-marked as deselected, or both packages are marked <tt/Essential/, then
-<prgn/dpkg/ will automatically remove the package which is causing the
-conflict, otherwise it will halt the installation of the new package
-with an error.
-<p>
-
-<prgn/dselect/ makes it hard to select conflicting packages, though the
-user can override this if they wish. If they do not override it then
-<prgn/dselect/ will select one of the packages for removal, and the user
-must make sure it is the right one. In the future <prgn/dselect/ will
-look for the presence of a <tt/Replaces/ field to help decide which
-package should be installed and which removed.
-<p>
-
-A package will not cause a conflict merely because its configuration
-files are still installed; it must be at least half-installed.
-<p>
-
-A special exception is made for packages which declare a conflict with
-their own package name, or with a virtual package which they provide
-(see below): this does not prevent their installation, and allows a
-package to conflict with others providing a replacement for it. You
-use this feature when you want the package in question to be the only
-package providing something.
-<p>
-
-A <tt/Conflicts/ entry should almost never have an `earlier than'
-version clause. This would prevent <prgn/dpkg/ from upgrading or
-installing the package which declared such a conflict until the
-upgrade or removal of the conflicted-with package had been completed.
-This aspect of installation ordering is not handled by <prgn/dselect/,
-so that the use <tt/Conflicts/ in this way is likely to cause problems
-for `bulk run' upgrades and installations.
-<p>
-
-
-<sect id="virtual">Virtual packages - <tt/Provides/
-<p>
-
-As well as the names of actual (`concrete') packages, the package
-relationship fields <tt/Depends/, <tt/Recommends/, <tt/Suggests/ and
-<tt/Conflicts/ may mention virtual packages.
-<p>
-
-A virtual package is one which appears in the <tt/Provides/ control
-file field of another package. The effect is as if the package(s)
-which provide a particular virtual package name had been listed by
-name everywhere were the virtual package name appears.
-<p>
-
-If there are both a real and a virtual package of the same name then
-the dependency may be satisfied (or the conflict caused) by either the
-real package or any of the virtual packages which provide it. This is
-so that, for example, supposing we have
-<example>
-Package: vm
-Depends: emacs
-</example>
-and someone else releases an xemacs package they can say
-<example>
-Package: xemacs
-Provides: emacs
-</example>
-and all will work in the interim (until a purely virtual package name
-is decided on and the <tt/emacs/ and <tt/vm/ packages are changed to
-use it).
-<p>
-
-If a dependency or a conflict has a version number attached then only
-real packages will be considered to see whether the relationship is
-satisfied (or the prohibition violated, for a conflict) - it is
-assumed that a real package which provides virtual package is not of
-the `right' version. So, a <tt/Provides/ field may not contain
-version numbers, and the version number of the concrete package which
-provides a particular virtual package will not be looked at when
-considering a dependency on or conflict with the virtual package name.
-<p>
-
-If you want to specify which of a set of real packages should be the
-default to satisfy a particular dependency on a virtual package, you
-should list the real package as alternative before the virtual.
-<p>
-
-
-<sect id="replaces"><tt/Replaces/ - overwriting files and replacing packages
-<p>
-
-The <tt/Replaces/ control file field has two purposes, which come into
-play in different situations.
-<p>
-
-Virtual packages (<ref id="virtual">) are not considered when looking
-at a <tt/Replaces/ field - the packages declared as being replaced
-must be mentioned by their real names.
-
-<sect1>Overwriting files in other packages
-<p>
-
-Firstly, as mentioned before, it is usually an error for a package to
-contains files which are on the system in another package, though
-currently the <tt/--force-overwrite/ flag is enabled by default,
-downgrading the error to a warning,
-<p>
-
-If the overwriting package declares that it replaces the one
-containing the file being overwritten then <prgn/dpkg/ will proceed, and
-replace the file from the old package with that from the new. The
-file will no longer be listed as `owned' by the old package.
-<p>
-
-If a package is completely replaced in this way, so that <prgn/dpkg/
-does not know of any files it still contains, it is considered to have
-disappeared. It will be marked as not wanted on the system (selected
-for removal) and not installed. Any conffiles details noted in the
-package will be ignored, as they will have been taken over by the
-replacing package(s). The package's <prgn/postrm/ script will be run to
-allow the package to do any final cleanup required.
-See <ref id="mscriptsinstact">.
-<p>
-
-In the future <prgn/dpkg/ will discard files which overwrite those from
-another package which declares that it replaces the one being
-installed (so that you can install an older version of a package
-without problems).
-<p>
-
-This usage of <tt/Replaces/ only takes effect when both packages are
-at least partially on the system at once, so that it can only happen
-if they do not conflict or if the conflict has been overridden.
-
-<sect1>Replacing whole packages, forcing their removal
-<p>
-
-Secondly, <tt/Replaces/ allows <prgn/dpkg/ and <prgn/dselect/ to resolve
-which package should be removed when a conflict - see
-<ref id="conflicts">. This usage only takes effect when the two
-packages <em/do/ conflict, so that the two effects do not interfere
-with each other.
-<p>
-
-<sect>Defaults for satisfying dependencies - ordering
-<p>
-
-Ordering is significant in dependency fields.
-<p>
-
-Usually dselect will suggest to the user that they select the package
-with the most `fundamental' class (eg, it will prefer Base packages to
-Optional ones), or the one that they `most wanted' to select in some
-sense.
-<p>
-
-In the absence of other information <prgn/dselect/ will offer a
-default selection of the first named package in a list of
-alternatives.
-<p>
-
-However, there is no way to specify the `order' of several packages
-which all provide the same thing, when that thing is listed as a
-dependency.
-<p>
-
-Therefore a dependency on a virtual package should contain a concrete
-package name as the first alternative, so that this is the default.
-<p>
-
-For example, consider the set of packages:
-
-<example>
-Package: glibcdoc
-Recommends: info-browser
-
-Package: info
-Provides: info-browser
-
-Package: emacs
-Provides: info-browser
-</example>
-<p>
-
-If <prgn/emacs/ and <prgn/info/ both have the same priority then
-<prgn/dselect/'s choice is essentially random. Better would be
-<example>
-Package: glibcdoc
-Recommends: info | info-browser
-</example>
-so that <prgn/dselect/ defaults to selecting the lightweight standalone
-info browser.
-
-
-
-<chapt id="conffiles">Configuration file handling
-<p>
-
-<prgn/dpkg/ can do a certain amount of automatic handling of package
-configuration files.
-<p>
-
-Whether this mechanism is appropriate depends on a number of factors,
-but basically there are two approaches to any particular configuration
-file.
-<p>
-
-The easy method is to ship a best-effort configuration in the package,
-and use <prgn/dpkg/'s conffile mechanism to handle updates. If the user
-is unlikely to want to edit the file, but you need them to be able to
-without losing their changes, and a new package with a changed version
-of the file is only released infrequently, this is a good approach.
-<p>
-
-The hard method is to build the configuration file from scratch in the
-<prgn/postinst/ script, and to take the responsibility for fixing any
-mistakes made in earlier versions of the package automatically. This
-will be appropriate if the file is likely to need to be different on
-each system.
-
-<sect>Automatic handling of configuration files by <prgn/dpkg/
-<p>
-
-A package may contain a control area file called <tt/conffiles/. This
-file should be a list of filenames of configuration files needing
-automatic handling, separated by newlines. The filenames should be
-absolute pathnames, and the files referred to should actually exist in
-the package.
-<p>
-
-When a package is upgraded <prgn/dpkg/ will process the configuration
-files during the configuration stage, shortly before it runs the
-package's <prgn/postinst/ script,
-<p>
-
-For each file it checks to see whether the version of the file
-included in the package is the same as the one that was included in
-the last version of the package (the one that is being upgraded
-from); it also compares the version currently installed on the system
-with the one shipped with the last version.
-<p>
-
-If neither the user nor the package maintainer has changed the file,
-it is left alone. If one or the other has changed their version, then
-the changed version is preferred - ie, if the user edits their file,
-but the package maintainer doesn't ship a different version, the
-user's changes will stay, silently, but if the maintainer ships a new
-version and the user hasn't edited it the new version will be
-installed (with an informative message). If both have changed their
-version the user is prompted about the problem and must resolve the
-differences themselves.
-<p>
-
-The comparisons are done by calculating the MD5 message digests of the
-files, and storing the MD5 of the file as it was included in the most
-recent version of the package.
-<p>
-
-When a package is installed for the first time <prgn/dpkg/ will install
-the file that comes with it, unless that would mean overwriting a file
-already on the filesystem.
-<p>
-
-However, note that <prgn/dpkg/ will <em/not/ replace a conffile that
-was removed by the user (or by a script). This is necessary because
-with some programs a missing file produces an effect hard or
-impossible to achieve in another way, so that a missing file needs to
-be kept that way if the user did it.
-<p>
-
-Note that a package should <em/not/ modify a <prgn/dpkg/-handled
-conffile in its maintainer scripts. Doing this will lead to
-<prgn/dpkg/ giving the user confusing and possibly dangerous options
-for conffile update when the package is upgraded.
-
-<sect>Fully-featured maintainer script configuration handling
-<p>
-
-For files which contain site-specific information such as the hostname
-and networking details and so forth, it is better to create the file
-in the package's <prgn/postinst/ script.
-<p>
-
-This will typically involve examining the state of the rest of the
-system to determine values and other information, and may involve
-prompting the user for some information which can't be obtained some
-other way.
-<p>
-
-When using this method there are a couple of important issues which
-should be considered:
-<p>
-
-If you discover a bug in the program which generates the configuration
-file, or if the format of the file changes from one version to the
-next, you will have to arrange for the postinst script to do something
-sensible - usually this will mean editing the installed configuration
-file to remove the problem or change the syntax. You will have to do
-this very carefully, since the user may have changed the file, perhaps
-to fix the very problem that your script is trying to deal with - you
-will have to detect these situations and deal with them correctly.
-<p>
-
-If you do go down this route it's probably a good idea to make the
-program that generates the configuration file(s) a separate program in
-<tt>/usr/sbin</>, by convention called <tt/<var/package/config/ and
-then run that if appropriate from the post-installation script. The
-<tt/<var/package/config/ program should not unquestioningly overwrite
-an existing configuration - if its mode of operation is geared towards
-setting up a package for the first time (rather than any arbitrary
-reconfiguration later) you should have it check whether the
-configuration already exists, and require a <tt/--force/ flag to
-overwrite it.
-
-
-
-<chapt id="alternatives">Alternative versions of an interface -
-<prgn/update-alternatives/
-<p>
-
-When several packages all provide different versions of the same
-program or file it is useful to have the system select a default, but
-to allow the system administrator to change it and have their
-decisions respected.
-<p>
-
-For example, there are several versions of the <prgn/vi/ editor, and
-there is no reason to prevent all of them from being installed at
-once, each under their own name (<prgn/nvi/, <prgn/vim/ or whatever).
-Nevertheless it is desirable to have the name <tt/vi/ refer to
-something, at least by default.
-<p>
-
-If all the packages involved cooperate, this can be done with
-<prgn/update-alternatives/.
-<p>
-
-Each package provides its own version under its own name, and calls
-<prgn/update-alternatives/ in its postinst to register its version
-(and again in its prerm to deregister it).
-<p>
-
-See the manpage <manref name=update-alternatives section=8> for
-details.
-<p>
-
-If <prgn/update-alternatives/ does not seem appropriate you may wish
-to consider using diversions instead.
-
-
-<chapt id="diversions">Diversions - overriding a package's version of a file
-<p>
-
-It is possible to have <prgn/dpkg/ not overwrite a file when it
-reinstalls the package it belongs to, and to have it put the file from
-the package somewhere else instead.
-<p>
-
-This can be used locally to override a package's version of a file, or
-by one package to override another's version (or provide a wrapper for
-it).
-<p>
-
-Before deciding to use a diversion, read <ref id="alternatives"> to
-see if you really want a diversion rather than several alternative
-versions of a program.
-<p>
-
-There is a diversion list, which is read by <prgn/dpkg/, and updated
-by a special program <prgn/dpkg-divert/. Please see <manref
-name=dpkg-divert section=8> for full details of its operation.
-<p>
-
-When a package wishes to divert a file from another, it should call
-<prgn/dpkg-divert/ in its preinst to add the diversion and rename the
-existing file. For example, supposing that a <prgn/smailwrapper/
-package wishes to install a wrapper around <tt>/usr/sbin/smail</>:
-<example>
-if [ install = "$1" ]; then
- dpkg-divert --package smailwrapper --add --rename \
- --divert /usr/sbin/smail.real /usr/sbin/smail
-fi
-</example>
-Testing <tt/$1/ is necessary so that the script doesn't try to add the
-diversion again when <prgn/smailwrapper/ is upgraded. The
-<tt/--package smailwrapper/ ensures that <prgn/smailwrapper/'s copy of
-<tt>/usr/sbin/smail</> can bypass the diversion and get installed as
-the true version.
-<p>
-
-The postrm has to do the reverse:
-<example>
-if [ remove = "$1" ]; then
- dpkg-divert --package smailwrapper --remove --rename \
- --divert /usr/sbin/smail.real /usr/sbin/smail
-fi
-</example>
-<p>
-
-Do not attempt to divert a file which is vitally important for the
-system's operation - when using <prgn/dpkg-divert/ there is a time,
-after it has been diverted but before <prgn/dpkg/ has installed the
-new version, when the file does not exist.
-
-
-<chapt id="sharedlibs">Shared libraries
-<p>
-
-Packages containing shared libraries must be constructed with a little
-care to make sure that the shared library is always available. This
-is especially important for packages whose shared libraries are
-vitally important, such as the libc.
-<p>
-
-Firstly, your package should install the shared libraries under their
-normal names. For example, the <prgn/libgdbm1/ package should install
-<tt/libgdbm.so.1.7.3/ as <tt>/usr/lib/libgdbm.so.1.7.3</tt>. The
-files should not be renamed or relinked by any prerm or postrm
-scripts; <prgn/dpkg/ will take care of renaming things safely without
-affecting running programs, and attempts to interfere with this are
-likely to lead to problems.
-<p>
-
-Secondly, your package should include the symlink that <prgn/ldconfig/
-would create for the shared libraries. For example, the
-<prgn/libgdbm1/ package should include a symlink from
-<tt>/usr/lib/libgdbm.so.1</tt> to <tt/libgdbm.so.1.7.3/. This is
-needed so that <prgn/ld.so/ can find the library in between the time
-<prgn/dpkg/ installs it and <prgn/ldconfig/ is run in the
-<prgn/postinst/ script. Futhermore, and <em/this is very important/,
-the library must be placed before the symlink pointing to it in the
-<tt/.deb/ file. This is so that by the time <prgn/dpkg/ comes to
-install the symlink (overwriting the previous symlink pointing at an
-older version of the library) the new shared library is already in
-place. Currently the way to ensure the ordering is done properly is
-to install the library in the appropriate <tt>debian/tmp/.../lib</>
-directory before creating the symlink, by putting the commands in the
-<tt>debian/rules</> in the appropriate order.
-<p>
-
-If you do the above your package does not need to call <prgn/ldconfig/
-in its maintainer scripts. It is especially important not to call
-<prgn/ldconfig/ in the postrm or preinst scripts in the case where the
-package is being upgraded (see the programmer's manual), as
-<prgn/ldconfig/ will see the temporary names that <prgn/dpkg/ uses for the
-files while it is installing them and will make the shared library
-links point to them, just before <prgn/dpkg/ continues the installation
-and removes the links!
-
-
-
-<chapt id="sysvinit">Configuration of <prgn/init/
-<p>
-
-<sect>Introduction to the <tt/init.d/ scheme
-<p>
-
-The <tt>/etc/init.d</> directory contains the scripts executed by
-<prgn/init/ when init state (or `runlevel') is changed (see <manref
-name=init section=8>).
-<p>
-
-These scripts are be referenced by symbolic links in the
-<tt>/etc/rc<var/n/.d</> directories. When changing runlevels, init
-looks in the directory <tt>/etc/rc<var/n/.d</> for the scripts it
-should execute, where <var/n/ is the runlevel that is being changed
-to.
-<p>
-
-The names of the links all have the form <tt/S<var/mm/<var/script// or
-<tt/K<var/mm/<var/script// where <var/mm/ is a two-digit number and
-<var/script/ is the name of the script (this should be the same as the
-name of the actual script in <tt>/etc/init.d</>.
-
-When <prgn/init/ changes runlevel first the targets of the links whose
-names starting with a <tt/K/ are executed, each with the single
-argument <tt/stop/, followed by the scripts prefixed with an <tt/S/,
-each with the single argument <tt/start/. The <tt/K/ links are
-responsible for killing services and the <tt/S/ link for starting
-services upon entering the runlevel.
-<p>
-
-For example, if we are changing from runlevel 2 to runlevel 3, init
-will first execute all of the <tt/K/ prefixed scripts it finds in
-<tt>/etc/rc3.d</>, and then all of the <tt/S/ prefixed scripts. The
-links starting with <tt/K/ will cause the referred-to file to be
-executed with an argument of <tt/stop/, and the <tt/S/ links with an
-argument of <tt/start/.
-<p>
-
-The two-digit number <var/mm/ is used to decide which order to start
-and stop things in - low-numbered links have their scripts run first.
-For example, the <tt/K20/ scripts will be executed before the <tt/K30/
-scripts. This is used when a certain service must be started before
-another. For example, the name server <prgn/bind/ might need to be
-started before the news server <prgn/inn/ so that <prgn/inn/ can set
-up its access lists. In this case, the script that starts <prgn/bind/
-should have a lower number than the script that starts <prgn/inn/ so
-that it runs first:
-<example>
-/etc/rc2.d/S17bind
-/etc/rc2.d/S70inn
-</example>
-
-<sect>Writing <tt/init.d/ scripts
-<p>
-
-Packages can and should place scripts in <tt>/etc/init.d</> to start
-or stop services at boot time or during a change of runlevel. These
-scripts should be named <tt>/etc/init.d/<var/package/</>, and they
-should accept one argument, saying what to do: <tt/start/, meaning to
-starts the service, or <tt/stop/, to stop the service. Optionally
-they can support <tt/reload/ which causes the configuration to be
-reloaded.
-<p>
-
-The <tt/init.d/ scripts should ensure that they will behave sensibly
-if invoked with <tt/start/ when the service is already running, or
-with <tt/stop/ when it isn't, and that they don't kill
-unfortunately-named user processes. The best way to achieve this is
-usually to use <prgn/start-stop-daemon/.
-<p>
-
-These scripts should not fail obscurely when the configuration files
-remain but the package has been removed, as the default in <prgn/dpkg/
-is to leave configuration files on the system after the package has
-been removed. Only when it is executed with the <tt/--purge/ option
-will dpkg remove configuration files. Therefore, you should include a
-<tt/test/ statement at the top of the script, like this:
-<example>
-test -f <var/program-executed-later-in-script/ || exit 0
-</example>
-
-<sect>Managing the <tt/rc<var/n/.d/ links - <prgn/update-rc.d/
-<p>
-
-A program is provided, <prgn/update-rc.d/, to make it easier for
-package maintainers to arrange for the proper creation and removal of
-<tt>/etc/rc<var/n/.d</> symbolic links from their postinst and postrm
-scripts.
-<p>
-
-You should use this script to make changes to <tt>/etc/rc<var/n/.d</>
-and <em/never/ include any <tt>/etc/rc<var/n/.d</> symbolic links in
-the actual archive.
-<p>
-
-By default <prgn/update-rc.d/ will start services in each of the
-multi-user state runlevels (2, 3, 4, and 5) and stop them in the halt
-runlevel (0), the single-user runlevel (1) and the reboot runlevel
-(6). The system administrator will have the opportunity to customize
-runlevels by simply adding, moving, or removing the symbolic links in
-<tt>/etc/rc<var/n/.d</>.
-<p>
-
-To get the default behaviour for your package, put in your postinst
-script
-<example>
-update-rc.d <var/package/ default &gt;/dev/null
-</example>
-and in your postrm
-<example>
-if [ purge = "$1" ]; then
- update-rc.d <var/package/ remove &gt;/dev/null
-fi
-</example>
-<p>
-
-This will use a default sequence number of 20. If it does not matter
-when or in which order the script is run, use this default. If it
-does, then you should talk to the maintainer of the <prgn/sysvinit/
-package or post to <tt>debian-devel</>, and they will help you choose
-a number.
-<p>
-
-For more information about using <tt/update-rc.d/, please consult its
-manpage <manref name=update-rc.d section=8>.
-
-<sect>Boot-time initialisation - <tt/rc.boot/
-<p>
-
-There is another directory, <tt>/etc/rc.boot</>, which contains
-scripts which are run once per machine boot. This facility is
-provided for initialisation of hardware devices, cleaning up of
-leftover files, and so forth.
-<p>
-
-For example, the <prgn/kbd/ package provides a script here for
-initialising the keyboard layout and console font and mode.
-<p>
-
-The files in <tt>/etc/rc.boot</> should <em/not/ be links into
-<tt>/etc/init.d</> - they should be the scripts themselves.
-<p>
-
-<tt/rc.boot/ should <em/not/ be used for starting general-purpose
-daemons and similar activities. This should be done using the
-<tt/rc<var/n/.d/ scheme, above, so that the services can be started
-and stopped cleanly when the runlevel changes or the machine is to be
-shut down or rebooted.
-
-<sect>Notes
-<p>
-
-<em/Do not/ include the <tt>/etc/rc<var/n/.d/*</> symbolic links in
-the <tt/.deb/ filesystem archive! <em/This will cause problems!/
-You should create them with <prgn/update-rc.d/, as above.
-<p>
-
-<em/Do not/ include the <tt>/etc/rc<var/n/.d/*</> symbolic links in
-<prgn/dpkg/'s conffiles list! <em/This will cause problems!/
-<em/Do/, however, include the <tt>/etc/init.d</> scripts in conffiles.
-
-<sect>Example
-<p>
-
-The <prgn/bind/ DNS (nameserver) package wants to make sure that the
-nameserver is running in multiuser runlevels, and is properly shut
-down with the system. It puts a script in <tt>/etc/init.d</>, naming
-the script appropriately <tt/bind/. As you can see, the script
-interprets the argument <tt/reload/ to send the nameserver a <tt/HUP/
-signal (causing it to reload its configuration); this way the user can
-say <tt>/etc/init.d/bind reload</> to reload the nameserver.
-<p>
-
-<example>
-#!/bin/sh
-# Original version by Robert Leslie &lt;rob@mars.org&gt;, edited by iwj
-test -x /usr/sbin/named || exit 0
-case "$1" in
- start)
- test -f /etc/named.boot -a -f /var/named/boot.options || exit 0
- start-stop-daemon --start --verbose --exec /usr/sbin/named
- ;;
- stop)
- start-stop-daemon --stop --verbose \
- --pidfile /var/run/named.pid --exec /usr/sbin/named
- ;;
- reload)
- start-stop-daemon --stop --signal 1 --verbose \
- --pidfile /var/run/named.pid --exec /usr/sbin/named
- ;;
- *)
- echo "Usage: /etc/init.d/bind {start|stop|reload}" >&2
- exit 1
- ;;
-esac
-exit 0
-</example>
-<p>
-
-Another example on which to base your <tt>/etc/init.d</> scripts is in
-<tt>/etc/init.d/skeleton</>.
-<p>
-
-If this package is happy with the default setup from
-<prgn/update-rc.d/, namely an ordering number of 20 and having named
-running in all runlevels, it can say in its postinst:
-<example>
-update-rc.d bind default >/dev/null
-</example>
-And in its postrm, to remove the links when the package is purged:
-<example>
-if [ purge = "$1" ]; then
- update-rc.d acct remove >/dev/null
-fi
-</example>
-
-
-
-<chapt id="methif"><prgn/dselect/'s interface to its installation methods
-<p>
-
-<prgn/dselect/ calls scripts from its installation methods when it
-needs to actually access data from the distribution. The core program
-<prgn/dselect/ itself just calls these scripts and provides the
-package and access method selection interfaces. The installation
-methods are responsible for invoking <prgn/dpkg/ as appropriate.
-<p>
-
-Each installation method has three scripts:
-<list compact>
-<item>Setup installation parameters.
-<item>Update list of available packages.
-<item>Install.
-</list>
-<p>
-
-<prgn/dselect/ searches for methods in <tt>/usr/lib/dpkg/methods</>
-and <tt>/usr/local/lib/dpkg/methods</>.
-
-<sect>Functions of the method scripts
-<p>
-
-The setup script is run just after the user has chosen an installation
-method. It should prompt the user for parameters like the site to
-NFS-mount or FTP from, the directory to use, or the directory or
-filesystem where the <tt/.deb/ files can be found, or the tape or
-floppy device to install from. It should store the responses under
-<tt>/var/lib/dpkg/methods</> - see below. If no available
-packages list is available it should perhaps offer to scan the
-available packages.
-<p>
-
-The update script should obtain a list of available packages if
-possible, and run <tt/dpkg --update-avail/, <tt/dpkg --merge-avail/
-and/or <tt/dpkg --forget-old-unavail/ to load it into <prgn/dpkg/ and
-<prgn/dselect/'s database of available packages. If no packages list
-was available and the user was offered and accepted the option of
-scanning the actual files available this scan should be done here,
-using <tt/dpkg --record-avail/.
-<p>
-
-The install script should feed all the available <tt/.deb/ files to
-<tt/dpkg --iGOEB/ (this is equivalent to <tt/dpkg --install
---refuse-downgrade --selected-only --skip-same-version
---auto-deconfigure/). The <tt/-R/ (<tt/--recursive/) option for
-traversing subdirectories may also be useful here).
-<p>
-
-If any of these scripts needs to display a message for the user, it
-should wait for the user to hit `return' before exiting so that
-dselect doesn't immediately rewrite the screen.
-<p>
-
-If a method script succeeds (returns a zero exit status)
-<prgn/dselect/ will return immediately to the main menu, with the
-`next' option highlighted ready for the user to select it. If it
-fails <prgn/dselect/ will display a message and wait for the user to
-hit return.
-
-<sect>Location and arguments of the method scripts
-<p>
-
-A set of scripts (henceforth known as a group) may provide several
-methods on the `main menu' with different behaviour. For example,
-there might be a generic get-packages-by-FTP group which might provide
-methods in the main menu for installation directly from one of the
-Debian mirror sites as well as for installation from a user-specified
-site.
-<p>
-
-Each group of methods implemented by the same set of scripts should
-have a subdirectory <tt>/usr/lib/dpkg/methods/<var/group/</> or
-<tt>/usr/local/lib/dpkg/methods/<var/group/</>, containing:
-<taglist compact>
-<tag><tt/names/
-<item>a list of user-visible methods provided by these scripts.
-<tag><tt/setup/
-<tag><tt/update/
-<tag><tt/install/
-<item>executable programs, the scripts themselves.
-<tag><tt/desc.<var/option//
-<item>description file.
-</taglist>
-<p>
-
-<tt/names/ will be formatted as a list of lines, each containing:
-<example>
-<var/sequence/ <var/method/ <var/summary/
-</example>
-<p>
-
-<var/sequence/ is a two-digit number that will be used much like
-<tt/rc.d/ prefixes to control the order in the main menu. If in doubt
-use 50.
-<p>
-
-<var/method/ is a name which is displayed by <prgn/dselect/ as the
-name of the method, and which will be passed to <tt/setup/,
-<tt/update/ and <tt/unpack/ as their first argument.
-<p>
-
-<var/summary/ is the brief description string for <prgn/dselect/'s menu.
-<p>
-
-Each of the three scripts gets the same three arguments: <var/vardir/,
-<var/group/ and <var/method/. <var/vardir/ is the base directory for
-storing <prgn/dpkg/ and <prgn/dselect/'s state, usually
-<tt>/var/lib/dpkg</>; this is passed in so that the <tt/--admindir/
-option to <prgn/dselect/ is honoured).
-<p>
-
-Each option may have an extended description in
-<tt/desc.<var/option//. This should be formatted like the extended
-description part of a <tt/Description/ field entry <em/shifted one
-character to the left/.
-<p>
-
-<tt><var/vardir//methods</> will exist, and a method group may use a
-<tt><var/vardir//methods/<var/group/</> directory to store its state.
-<p>
-
-The group name and method name must follow the rules for C identifiers.
-
-</book>
diff --git a/doc/texinfo.debian_mapping b/doc/texinfo.debian_mapping
new file mode 100644
index 000000000..35c429827
--- /dev/null
+++ b/doc/texinfo.debian_mapping
@@ -0,0 +1,18 @@
+% texinfo.debian_mapping
+% - sgmlsasp mapping file for TeXinfo/SGML->debiandoc/SGML
+%
+% Copyright (C) 1997 Klee Dienes <klee@mit.edu>
+%
+% This is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as
+% published by the Free Software Foundation; either version 2,
+% or (at your option) any later version.
+%
+% This is distributed in the hope that it will be useful, but
+% WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public
+% License along with dpkg; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
diff --git a/doc/texinfo.dtd b/doc/texinfo.dtd
new file mode 100644
index 000000000..6484519a5
--- /dev/null
+++ b/doc/texinfo.dtd
@@ -0,0 +1,94 @@
+<!--
+ texinfo.dtd - TeXinfo/SGML document type definition
+
+ Copyright (C) 1997 Klee Dienes <klee@mit.edu>
+
+ This is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2, or (at your option) any later
+ version.
+
+ This is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with dpkg; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+
+<!entity at sdata "@@">
+<!entity copy sdata "@copyright{}">
+<!entity amp sdata "@&">
+<!entity lt sdata "<">
+<!entity gt sdata ">">
+<!entity lsqb sdata "[">
+<!entity rsqb sdata "]">
+<!entity bsol sdata "\">
+
+<!element setfilename - o (#pcdata)>
+
+<!element titlepage - - (title?,author?,date?,abstract?)>
+<!element texinfo - - (setfilename,titlepage?,chapter+,closing)>
+
+<!element title - - (#pcdata)>
+<!element author - - (#pcdata)>
+<!element date - - (#pcdata)>
+<!element abstract - - (#pcdata|file|samp|var|code)*>
+
+<!element quotation - - (#pcdata)>
+<!element example - - (#pcdata)>
+<!element lisp - - (#pcdata)>
+<!element smallexample - - (#pcdata)>
+<!element smalllisp - - (#pcdata)>
+<!element display - - (#pcdata)>
+<!element format - - (#pcdata)>
+
+<!element code - - (#pcdata)>
+<!element kbd - - (#pcdata)>
+<!element key - - (#pcdata)>
+<!element samp - - (#pcdata)>
+<!element var - - (#pcdata)>
+<!element file - - (#pcdata)>
+<!element dfn - - (#pcdata)>
+<!element cite - - (#pcdata)>
+
+<!element tt - - (#pcdata)+>
+<!element em - - (#pcdata)+>
+<!element it - - (#pcdata)+>
+
+<!element heading o o (#pcdata|label|code|var|file|samp)+>
+<!element body o o (#pcdata|index|ref|file|samp|var|code|example|tt|em|it|htmlurl|url|itemize|enumerate|table|ftable|vtable)+>
+
+<!element chapter - o (heading, (section|cindex|findex|vindex|kindex|pindex|tindex|p)*)>
+<!element section - o (heading, (subsection|cindex|findex|vindex|kindex|pindex|tindex|p)*)>
+<!element subsection - o (heading, (subsubsection|cindex|findex|vindex|kindex|pindex|tindex|p)*)>
+<!element subsubsection - o (heading, (cindex|findex|vindex|kindex|pindex|tindex|p)*)>
+
+<!element itemize - - (item)*>
+<!element enumerate - - (item)*>
+<!element table - - (item, body)*>
+<!element ftable - - (item, body)*>
+<!element vtable - - (item, body)*>
+
+<!element item - o (body)>
+
+<!element p - o (body)>
+
+<!element contents - o empty>
+<!element shortcontents - o empty>
+<!element summarycontents - o empty>
+
+<!element printindex - o empty>
+
+<!attlist printindex name NAME "fn">
+
+<!element closing o o (contents|shortcontents|summarycontents|printindex)*>
+
+<!element cindex - - (#pcdata|code|var|file|samp)+>
+<!element findex - - (#pcdata|code|var|file|samp)+>
+<!element vindex - - (#pcdata|code|var|file|samp)+>
+<!element kindex - - (#pcdata|code|var|file|samp)+>
+<!element pindex - - (#pcdata|code|var|file|samp)+>
+<!element tindex - - (#pcdata|code|var|file|samp)+>
diff --git a/doc/texinfo.texi_mapping b/doc/texinfo.texi_mapping
new file mode 100644
index 000000000..2f879144a
--- /dev/null
+++ b/doc/texinfo.texi_mapping
@@ -0,0 +1,120 @@
+% texinfo.mapping - sgmlsasp mapping file for TeXinfo/SGML->TeXinfo
+%
+% Copyright (C) 1997 Klee Dienes <klee@mit.edu>
+%
+% This is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as
+% published by the Free Software Foundation; either version 2,
+% or (at your option) any later version.
+%
+% This is distributed in the hope that it will be useful, but
+% WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public
+% License along with dpkg; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+<texinfo> "\\input texinfo\n"
+</texinfo> "@bye\n"
+
+<setfilename> "@setfilename "
+</setfilename> "\n"
+
+<titlepage> "@titlepage\n"
+</titlepage> "\n@end titlepage\n"
+
+<title> "@title "
+</title> "\n"
+
+<author> "@author "
+</author> "\n"
+
+<chapter> "@chapter "
+<section> "@section "
+<subsection> "@subsection "
+<subsubsection> "@subsubsection "
+
+<heading> ""
+</heading> "\n"
+
+<code> "@code{"
+</code> "}"
+
+<kbd> "@kbd{"
+</kbd> "}"
+
+<key> "@key{"
+</key> "}"
+
+<p> "\n\n"
+
+<samp> "@samp{"
+</samp> "}"
+
+<var> "@var{"
+</var> "}"
+
+<file> "@file{"
+</file> "}"
+
+<dfn> "@dfn{"
+</dfn> "}"
+
+<cite> "@cite{"
+</cite> "}"
+
+<itemize> "@itemize @asis\n"
+</itemize> "@end itemize\n"
+
+<table> "@table @asis\n"
+</table> "\n@end table\n"
+
+<item> "@item "
+</item> "\n"
+
+<quotation> "@quotation\n"
+</quotation> "@end quotation\n"
+
+<example> "@example\n"
+</example> "@end example\n"
+
+<lisp> "@lisp\n"
+</lisp> "@end lisp\n"
+
+<smallexample> "@smallexample\n"
+</smallexample> "@end smallexample\n"
+
+<smalllisp> "@smalllisp\n"
+</smalllisp> "@end smalllisp\n"
+
+<display> "@display\n"
+</display> "@end display\n"
+
+<format> "@format\n"
+</format> "@end format\n"
+
+<contents> "@contents\n"
+<shortcontents> "@shortcontents\n"
+<summarycontents> "@summarycontents\n"
+
+<cindex> "@cindex "
+</cindex> "\n"
+
+<findex> "@findex "
+</findex> "\n"
+
+<vindex> "@vindex "
+</vindex> "\n"
+
+<kindex> "@kindex "
+</kindex> "\n"
+
+<pindex> "@pindex "
+</pindex> "\n"
+
+<tindex> "@tindex "
+</tindex> "\n"
+
+<printindex> "@printindex [name]\n" \ No newline at end of file