+Sun Oct 24 11:39:21 EDT 1999 Ben Collins <bcollins.debian.org>
+
+ * debian/control: added dpkg-doc
+ * debian/dpkg-doc-{postinst,prerm}: new files for dpkg-doc package
+ * debian/dpkg-internals: doc-base support for dpkg-doc
+ * debian/rules: added build rules for dpkg-doc to binary-indep target
+ * doc/Makefile.am: changed build setup for internals.sgml to use the
+ debiandoc tools, and removed internals.* stuff from being built by
+ default. Two new targets, internals and internals-install, now handle
+ this
+ * doc/changelog: removed, duplicate of ChangeLog
+ * doc/internals.sgml: converted to debiandoc format, now builds correctly
+ and without errors
+ * doc/manuals-version: removed since it is generated at build time
+ * doc/texinfo.*: moved to doc/obsolete/ since the debiandoc format doesn't
+ need them
+ * main/filesdb.c: fixed compiler warning
+
Sat Oct 23 21:23:08 EDT 1999 Ben Collins <bcollins.debian.org>
* Added 'D' to the list of choices for conffile handling
* Implemented a nice fix for multiple conflicts and replaces. Also added
--assert-multi-conrep.
* Added 'D' to the list of choices for conffile handling, closes: #48137
-
+ * Converted internals.sgml to debiandoc format. Also added a dpkg-doc
+ package that contains the generated output from this file (.ps, .html
+ and .info), includes doc-base support. Internals.sgml is also not
+ generated on the binary-arch target, and is no longer "byhand"
+
-- Wichert Akkerman <wakkerma@debian.org> UNRELEASED
dpkg (1.4.1.18) unstable; urgency=low
.
Most Debian source packages will require additional tools to build -
for example, most packages need the `make' and the C compiler `gcc'.
+
+Package: dpkg-doc
+Section: doc
+Priority: extra
+Architecture: all
+Description: Dpkg Internals Documentation
+ This document describes the internal operations of the dpkg program. It
+ covers building aswell as the internals functions. If you are interested
+ in creating your own packages, then you may be more interested in the
+ packaging-manual documentation package.
--- /dev/null
+#! /bin/sh
+
+if [ "$1" = configure ]; then
+ if [ -d /usr/doc -a ! -e /usr/doc/dpkg-doc -a -d /usr/share/doc/dpkg-doc ] ; then
+ ln -s ../share/doc/dpkg-doc /usr/doc/dpkg-doc
+ fi
+ if command -v install-docs >/dev/null 2>&1; then
+ echo -n "Registering DPKG documentation..."
+ install-docs -i /usr/share/doc-base/dpkg-internals
+ echo "done."
+ fi
+fi
--- /dev/null
+#!/bin/sh
+
+set -e
+
+if [ "$1" = remove -o "$1" = "upgrade" ]; then
+ if [ -L /usr/doc/dpkg-doc ]; then
+ rm -f /usr/doc/dpkg-doc
+ fi
+fi
+
+case "$1" in
+ remove|deconfigure|upgrade)
+ if command -v install-docs >/dev/null 2>&1; then
+ echo -n "Unregistering DPKG documentation..."
+ install-docs -r dpkg-internals || true
+ echo "done."
+ fi
+ ;;
+esac
--- /dev/null
+Document: dpkg-internals
+Title: dpkg Internals Guide
+Author: Klee Dienes <klee@mit.edu>
+Abstract: This manual describes the internal structure of the
+ dpkg package management system.
+Section: Apps/System
+
+Format: HTML
+Index: /usr/share/doc/dpkg-doc/internals.html/index.html
+Files: /usr/share/doc/dpkg-doc/internals.html/*.html
+
+Format: info
+Files: /usr/share/info/internals.info
+
+Format: postscript
+Files: /usr/share/doc/dpkg-doc/internals.ps
chmod -x debian/tmp-main/usr/lib/libdpkg.*
ln -s dpkg debian/tmp-dev/usr/share/doc/dpkg-dev
set -e; for f in \
- usr/share/doc/dpkg/{internals.html,changelog.manuals.gz} \
+ usr/share/doc/dpkg/{changelog.manuals.gz} \
usr/bin/dpkg-{source,genchanges,gencontrol,shlibdeps,buildpackage,parsechangelog} \
usr/bin/{dpkg-distaddfile,822-date,dpkg-scanpackages,dpkg-scansources,dpkg-name,dpkg-architecture} \
usr/share/man/{ja,.}/man1/dpkg-{source,genchanges,gencontrol,shlibdeps,buildpackage,architecture}.1.gz \
binary-indep: binary-trees
$(checkdir)
dpkg-gencontrol -pdpkg-dev -Pdebian/tmp-dev
+ install -d -m755 $(DIR)/debian/tmp-doc/DEBIAN
+ install -m755 $(DIR)/debian/dpkg-doc-postinst \
+ $(DIR)/debian/tmp-doc/DEBIAN/postinst
+ install -m755 $(DIR)/debian/dpkg-doc-prerm \
+ $(DIR)/debian/tmp-doc/DEBIAN/prerm
+ dpkg-gencontrol -pdpkg-doc -Pdebian/tmp-doc
chown -R root.root debian/tmp-dev
chmod -R g-ws,a+r,u+w debian/tmp-dev
dpkg-deb --build debian/tmp-dev ..
- set -e -x; for f in internals; do \
- if test -f $(BUILD)/doc/$$f.ps; then \
- cp -p $(BUILD)/doc/$$f.ps $(DIR)/..; \
- elif test -f $(DIR)/doc/$$f.ps; then \
- cp -p $(DIR)/doc/$$f.ps $(DIR)/..; \
- else \
- echo "unable to locate $$f.ps"; false; \
- fi; \
- gzip -9vf $(DIR)/../$$f.ps; \
- dpkg-distaddfile -f$(DIR)/debian/files $$f.ps.gz byhand -; \
- if test -d $(BUILD)/doc/$$f.html; then \
- GZIP=-9vf tar -C $(BUILD)/doc -zcf $(DIR)/../$$f.html.tar.gz $$f.html; \
- elif test -d $(DIR)/doc/$$f.html; then \
- GZIP=-9vf tar -C $(DIR)/doc -zcf $(DIR)/../$$f.html.tar.gz $$f.html; \
- else \
- echo "unable to locate $$f.html"; false; \
- fi; \
- dpkg-distaddfile -f$(DIR)/debian/files $$f.html.tar.gz byhand -; \
- done
+ install -d -m755 $(DIR)/debian/tmp-doc/usr/share/{doc/dpkg,doc-base}
+ ln -s dpkg $(DIR)/debian/tmp-doc/usr/share/doc/dpkg-doc
+ $(MAKE) -C $(BUILD)/doc internals
+ $(MAKE) -C $(BUILD)/doc internals-install \
+ prefix=$(DIR)/debian/tmp-doc/usr \
+ sysconfdir=$(DIR)/debian/tmp-doc/etc \
+ sharedstatedir=$(DIR)/debian/tmp-doc/var/lib \
+ localstatedir=$(DIR)/debian/tmp-doc/var/lib \
+ datadir=$(DIR)/debian/tmp-doc/usr/share \
+ mandir=$(DIR)/debian/tmp-doc/usr/share/man \
+ infodir=$(DIR)/debian/tmp-doc/usr/share/info
+ install -m644 $(DIR)/debian/dpkg-internals $(DIR)/debian/tmp-doc/usr/share/doc-base
+ dpkg-deb --build debian/tmp-doc ..
set -e;\
version=`sed -n 's/^Version: //p' $(DIR)/debian/tmp-dev/DEBIAN/control`; \
file=dpkg-$${version}.tar.gz; \
+debian-manuals (2.1.2.3) unstable;
+
+ * internals.sgml: converted to debiandoc format
+
+ -- Ben Collins <bcollins@debian.org> Sat, 23 Oct 1999 23:32:48 -0400
+
debian-manuals (2.1.2.2) frozen unstable;
* Fixed even more typographical and grammatical errors in Policy and
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
+EXTRA_DIST = database-structure.fig ChangeLog \
+ $(SGMLFILES) $(man_MANS)
-HTMLDOCSTAMPS = internals.html-stamp
HTMLDIRS = internals.html
SGMLFILES = internals.sgml
-HARDCOPY = internals.ps internals.dvi
+HARDCOPY = internals.ps internals.html internals.info
CLEANFILES = $(srcdir)/manuals-version.new
-DISTCLEANFILES =
+DISTCLEANFILES = manuals-version
INFOFILES = internals.info
## Rules
-SUFFIXES = .html-stamp .sgml .ps .fig .monops
+#SUFFIXES = .html .sgml .ps .fig .monops
.PHONY: all install-data-local uninstall-local dist-hook clean-local
-all: $(HTMLDOCSTAMPS) $(HARDCOPY) $(INFOFILES)
+all:
+ @echo Nothing built by default, use \`make internals\' to build docs
+
+internals.sgml: $(srcdir)/manuals-version
+
+internals: $(HARDCOPY)
$(srcdir)/manuals-version: $(top_srcdir)/debian/changelog
v=`dpkg-parsechangelog -l$< | sed -n 's/^Version: //p'` && \
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.texinfo: internals.sgml
+ debiandoc2texinfo $<
-internals.ps: internals.dvi
- dvips -t letter -o $@ $^
+internals.ps: internals.sgml
+ debiandoc2ps -1 $<
-internals.dvi: internals.texi
- texi2dvi $^
+internals.dvi: internals.sgml
+ debiandoc2dvi $<
-internals.info: internals.texi
- # WTA: We force makeinfo and ignore errors, since we use a broken method
- # to generate the texi-file anyway. Since we are supposed to switch to the
- # dpkg-iwj branch soon anyway fixing this correctly is more trouble then
- # it's worth
- -makeinfo --force $^
+internals.info: internals.sgml
+ debiandoc2info $<
-internals.html-stamp: internals.texi
- -$(RM) -r $*.html*
- mkdir $*.html
- (cd $*.html && texi2html -monolithic ../$<)
- ln -s internals.html $*.html/index.html
- touch $@
+internals.html: $(srcdir)/internals.sgml
+ debiandoc2html $<
database-structure.ps: database-structure.fig
fig2dev -L ps -c -l _ -P <$< >ps
bind def$$::/$$1 {} bind def:' $< >ps
mv -f ps $@
-install-data-local: $(HTMLDOCSTAMPS)
+install-data-local:
$(mkinstalldirs) $(DESTDIR)$(pkgdocdir)
$(INSTALL_DATA) $(top_srcdir)/debian/changelog $(DESTDIR)$(pkgdocdir)/changelog
- $(INSTALL_DATA) $(srcdir)/changelog $(DESTDIR)$(pkgdocdir)/changelog.manuals
- set -e; for f in $^; do \
- g=`echo $$f | sed -e 's/-stamp$$//'`; \
- cp -r $$g $(DESTDIR)$(pkgdocdir)/`basename $$g`; \
- done
+ $(INSTALL_DATA) $(srcdir)/ChangeLog $(DESTDIR)$(pkgdocdir)/changelog.manuals
-uninstall-local:
- -$(RM) $(DESTDIR)$(pkgdocdir)/changelog.manuals \
- $(DESTDIR)$(pkgdocdir)/changelog
- -cd $(DESTDIR)$(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`; \
+internals-install: $(HARDCOPY)
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)
+ set -e; for f in internals.ps internals.html; do \
+ cp -r $$f $(DESTDIR)$(pkgdocdir)/`basename $$f`; \
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
+ $(mkinstalldirs) $(DESTDIR)$(infodir)
+ $(INSTALL_DATA) internals.info $(DESTDIR)$(infodir)
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) internals.{FN,fns,sgmls,texi*,info*}
-$(RM) manuals-version*
## End of file.
+++ /dev/null
-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:
-<!doctype texinfo system "texinfo.dtd" [
+<!doctype debiandoc system [
<!entity % manuals-version-def system "manuals-version">
%manuals-version-def;
]>
+<debiandoc><book>
-<texinfo>
-
-<setfilename>internals.info</>
-
-<titlepage>
+<titlepag>
<title>dpkg Internals Manual</title>
-<author>Klee Dienes</author>
-<date>Version &manuals-version; (dpkg &dpkg-version;)</date>
+<author>
+ <name>Klee Dienes</name>
+ <email>klee@mit.edu</email>
+</author>
+<version>Version &manuals-version; (dpkg &dpkg-version;)</version>
<abstract>
-This manual describes the internal structure of the <code/dpkg/ package
+This manual describes the internal structure of the <prgn>dpkg</prgn> package
management system.
</abstract>
-</titlepage>
-
-<chapter>Copyright
-
-<p>
-Copyright ©1997 Klee Dienes <samp/<klee@@mit.edu>/.
+<copyright>
+<copyrightsummary>
+Copyright ©1997 Klee Dienes <klee@mit.edu>
+</copyrightsummary>
<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 <file>/usr/share/common-licenses/GPL</>, or
-with the <code/dpkg/ source package as the file <file>COPYING</>. If
+your Debian GNU/Linux system, in <file>/usr/share/common-licenses/GPL</file>, or
+with the <prgn>dpkg</prgn> source package as the file <file>COPYING</file>. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.
+</copyright>
+</titlepag>
-</chapter>
-
-<chapter>Build Notes
-
-<section>Automake
+<toc detail="sect">
+<chapt id=build>
+<heading>Build Notes</heading>
+ <sect id=automake>
+ <heading>Automake</heading>
<p>
-This chapter by Tom Lees <tom&at;lpsg.demon.co.uk> on Tue, 4 Mar 1997
-21:34:57 +0000, with subsequent modifications by Klee Dienes <klee&at;debian.org>
+This section by Tom Lees <tom@lpsg.demon.co.uk> on Tue, 4 Mar 1997
+21:34:57 +0000, with subsequent modifications by Klee Dienes <klee@debian.org>
<p>
This chapter contains general notes about the conversion to
-<code/automake/. If you plan on doing anything with <code/dpkg/, you
+<prgn>automake</prgn>. If you plan on doing anything with <prgn>dpkg</prgn>, you
should probably read all of this file first. You have been warned.
<p>
Automake has several significant advantages, including:
-<itemize>
+<list>
<item>it supports emacs lisp properly
<item>It supports libtool properly
<item>it includes the aclocal utility
-</itemize>
+</list>
<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
+The <prgn>aclocal</prgn> utility is a very useful program which will automatically
+build an <file>aclocal.m4</file> file from the <file>configure.in</file> file to include the
appropriate macros.
<p>
-This doesn't affect anything other than rebuilding the <file/Makefile.in/ files
+This doesn't affect anything other than rebuilding the <file>Makefile.in</file> 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</>.
+using proprietary directory names, it now supports <em>configure
+--sharedstatedir</em>, and <em>configure --localstatedir</em>. To set these
+to the Debian defaults, you should use <em>./configure
+--localstatedir=/etc --sharedstatedir=/var/lib</em>.
<p>
I have also customized the canonicalizing macros found in
-<code/autoconf/ to include the old way of finding the <code/dpkg/
+<em>autoconf</em> to include the old way of finding the <prgn>dpkg</prgn>
``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
+It uses <em>gcc --print-libgcc-file-name</em> to find out the build
+architecture if possible (used later to determine ELF or <em>a.out</em>
+format), and also uses <em>dpkg --print-architecture</em> if possible to
+modify the <em>cpu</em> 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.
+use "--target=", rather than <em>--with-arch</em>, which was essentially
+a hack anyway. The old <em/--with-arch/ is still there, but it is
+somewhat less functional. I have also moved the
+<em/DPKG_CACHED_/ macros into dpkg.m4 to make configure.in a bit
+more readable.
<p>
I also converted to libtool (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
+be compiled against a shared <em>libdpkg</em> 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/
+The new <em>dist</em> targets will build a distribution including all
+files built by the <prgn>debiandoc2html</prgn>, <prgn>debiandoc2ps</prgn>, etc.,
+which are included in the distribution so that people may build <prgn>dpkg</prgn>
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/
+A target <em/make debian/ has been added, which will build the
+Debian files from a working directory (does a <em/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 distribution. 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.
+I removed the <em/make portable/ target - it doesn't do anything useful.
<p>
-I have added <samp/make uninstall/ targets to aid non-Debian users who simply
+I have added <em/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,
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>
+<list>
<item>automake
<item>autoconf
<item>aclocal
<item>autoheader
<item>gettextize
<item>libtoolize
-</itemize>
+</list>
<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>
+<list>
<item>
make maintainer-clean
<item>
for i in COPYING INSTALL; do ln -s /usr/share/automake/$i .; done
<item>
automake
-</itemize>
+</list>
<p>
I have also incorporated the patches originally made by Galen
<p>
Other minor changes are:
-<itemize>
+<list>
<item>
The version number is now determined from debian/changelog, not from
the directory name.
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>
+</list>
Questions:
-<itemize>
+<list>
<item>
-Should I use <samp/localstatedir/ and <samp/sharedstatedir/ instead of
-<samp/sysconfdir/ and <samp/datadir/?
-</itemize>
+Should I use <em/localstatedir/ and <em/sharedstatedir/ instead of
+<em/sysconfdir/ and <em/datadir/?
+</list>
-</section>
+</sect>
-<section>Internationalization
+<sect id=i18n>
+<heading>Internationalization</heading>
<p>
This section by Galen Hazelwood.
<p>
Changes:
-<itemize>
+<list>
<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
ohshite(_("error reading from dpkg-deb pipe");
</example>
This isn't very kind to Ian, I know. But what can I do?
-</itemize>
+</list>
-</section>
+</sect>
-</chapter>
+</chapt>
-<chapter>Code Internals
+<chapt id=code>
+<heading>Code Internals</heading>
-<section>Structure Definitons
+<sect id=defs>
+<heading>Structure Definitons</heading>
-<subsection>versionrevision
+<sect1 id=versionrevision>
+<heading>versionrevision</heading>
<p>
<example>
-struct versionrevision @{
+struct versionrevision {
unsigned long epoch;
char *version;
char *revision;
-@};
+};
</example>
<p>
The <tt/versionrevision/ structure is used to store a Debian version specification
-</subsection>
+</sect1>
-</section>
+</sect>
-<section>Functions
+<sect id=functions>
+<heading>Functions</heading>
-<subsection>Parsing translation tables
+<sect1 id=parsing>
+<heading>Parsing translation tables</heading>
<p>
Each of these tables is used to associate a set of strings with a
corresponding set of integers.
</example>
<p>
-Maps boolean strings (<code/"yes"/,<code/"no"/) to their binary values.
+Maps boolean strings (<em/"yes"/,<em/"no"/) to their binary values.
-<subsubsection><code/priorityinfos[]/
+<sect2>
+<heading>priorityinfos[]</heading>
<p>
<example>
<p>
Maps priority strings to and from values of
-type <code/enum pkgpriority/.
+type <em/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[]/
+<list>
+<item><em/required/ - required
+<item><em/important/ - important
+<item><em/standard/ - standard
+<item><em/recommended/ - recommended
+<item><em/optional/ - optional
+<item><em/extra/ - extra
+<item><em/contrib/ - contrib
+<item><em/other/ - other
+<item><em/unknown/ - unknown
+<item><em/base/ -
+This is obsolete, but is accepted as an alias for <em/required/.
+</item>
+</list>
+</sect2>
+
+<sect2>
+<heading>statusinfos[]</heading>
<p>
<example>
const struct namevalue statusinfos[];
</example>
-Maps package status strings to values of type <code/enum ???/.
+Maps package status strings to values of type <em/enum ???/.
Package status strings are:
"not-installed" "unpacked" "half-configured" "installed"
"half-installed" "config-files" "postinst-failed" "removal-failed"
-</subsubsection>
+</sect2>
-<subsubsection><code/eflaginfos[]/
+<sect2>
+<heading>eflaginfos[]</heading>
<p>
<example>
const struct namevalue eflaginfos[];
</example>
-</subsubsection>
+</sect2>
-<subsubsection><code/wantinfos[]/
+<sect2>
+<heading>wantinfos[]</heading>
<p>
<example>
const struct namevalue wantinfos[];
</example>
-</subsubsection>
+</sect2>
-<subsubsection><code/nicknames[]/
+<sect2>
+<heading>nicknames[]</heading>
<p>
<example>
Maps obsolete control fields to their current versions.
-</subsubsection>
+</sect2>
-</subsection>
+</sect1>
-<subsection>Parsing functions
+<sect1 id=parsef>
+<heading>Parsing functions</heading>
-<subsubsection><code/parseerr/
-<findex/parseerr()/
+<sect2>
+<heading>parseerr()</heading>
<p>
<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
+Formats the variable arguments according to the <em/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>
+</sect2>
-<subsubsection><code/illegal_packagename/
-<findex/illegal_packagename()/
+<sect2>
+<heading>illegal_packagename()</heading>
<p>
-<example>
+<em>
const char *illegal_packagename
(const char *p, const char **ep)
-</example>
+</em>
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>
+</sect2>
-<subsubsection><code/informativeversion/
-<findex/informativeversion()/
+<sect2>
+<heading>informativeversion()</heading>
<p>
-<example>
+<em>
int informativeversion(const struct versionrevision *version)
-</example>
+</em>
<p>
-Returns true if and only if the <code/versionrevision/ is non-empty;
+Returns true if and only if the <em/versionrevision/ is non-empty;
otherwise returns false.
-</subsubsection>
+</sect2>
-<subsubsection><code/varbufversion/
-<findex/varbufversion()/
+<sect2>
+<heading>varbufversion()</heading>
<p>
<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>
+<list>
+<item><tt/vdew_never/ - never include epoch
+<item><tt/vdew_nonambig/ - include epoch string if non-zero
+<item><tt/vdew_always/ - always include epoch string
+</list>
+</sect2>
-<subsubsection><code/versiondescribe/
-<findex/versiondescribe()/
+<sect2>
+<heading>versiondescribe()</heading>
<p>
<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/"<none>"/. Static buffers are allocated from a set of 10
+<em/"<none>"/. 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>
+to <em/versiondescribe/).
+</sect2>
-<subsubsection><code/parseversion/
-<findex/parseversion()/
+<sect2>
+<heading>parseversion()</heading>
<p>
<example>
Parse the contents of <var/string/ into <var/rversion/. If
successful, returns NULL, otherwise returns a pointer to a static
error string.
-</subsubsection>
+</sect2>
-<subsubsection><code/parsemustfield/
-<findex/parsemustfield()/
+<sect2>
+<heading>parsemustfield()</heading>
<p>
<example>
const struct pkginfo *pigp, int warnonly,
char **value, const char *what);
</example>
-</subsubsection>
+</sect2>
-<subsubsection><code/skip_slash_dotslash/
-<findex/skip_slash_dotslash()/
+<sect2>
+<heading>skip_slash_dotslash()</heading>
<p>
<example>
const char *skip_slash_dotslash (const char *p);
</example>
-</subsubsection>
+</sect2>
-<subsubsection><code/convert_string/
-<findex/convert_string()/
+<sect2>
+<heading>convert_string()</heading>
<p>
<example>
const char *startp, const struct namevalue *nvip,
const char **endpp)
</example>
-</subsubsection>
-
-</subsection>
-
-</section>
+</sect2>
-<contents>
-<printindex name="fn">
+</sect1>
-</texinfo>
+</sect>
+</chapt>
+</book></debiandoc>
+++ /dev/null
-<!entity manuals-version "1.4.1.11">
-<!entity dpkg-version "1.4.1.11">
const char *filelistfile;
struct fileinlist **lendp, *newent, *current;
struct filepackages *packageslump;
- int search, findlast, putat, l;
+ int search, findlast, putat= 0, l;
char *thefilename;
char linebuf[1024];