From 390dc188cb8982985775fbb9434f4111f6613a62 Mon Sep 17 00:00:00 2001 From: aph Date: Mon, 9 Dec 2002 07:15:41 +0000 Subject: [PATCH] - Sec "Best practices for debian/control" added, Sec "Writing useful descriptions" moved under there - Sec "Upstream home page" added in debian/control section - Sec "Miscellaneous advice" empty, removed - Sec "Overview of maintainer tools": tools now categorized into subgroups; do cross-linking from this section into other parts of the document where these tools are discussed - Sec "Overview of maintainer tools": add entries for sbuild, build-essential, linda; improved entries for pbuilder, devscripts - Sec "Tools for porters" renamed and readapted to "Porting infrastructure and automation"; move tool discussion down to the appendix; improve Sec "buildd" a bit - README-contrib added giving information for authors, contributors, and translators git-svn-id: svn://anonscm.debian.org/ddp/manuals/trunk/developers-reference@1979 313b444b-1b9f-4f58-a734-7bb04f332e8d --- common.ent | 2 + developers-reference.sgml | 453 +++++++++++++++++++++++++------------- 2 files changed, 298 insertions(+), 157 deletions(-) diff --git a/common.ent b/common.ent index 1380d83..dec0300 100644 --- a/common.ent +++ b/common.ent @@ -56,6 +56,7 @@ + @@ -104,6 +105,7 @@ + - + + Configuration management with debconf @@ -3253,36 +3310,6 @@ Lisp packages should register themselves with sympa may be an example package --> - - Miscellaneous advice - - - Writing useful descriptions -

-The description of the package (as defined by the corresponding field -in the control file) is the primary information available -to the user about a package before they install it. It should provide -all the required information to let the user decide whether to install -the package. -

-For example, apart from the usual description that you might adapt -from the upstream README, you should include the URL of -the web site if there's any. If the package is not yet considered -stable by the author, you may also want to warn the user that the -package is not ready for production use. -

-For consistency and aesthetics, you should capitalize the first letter -of the description. Don't put a full stop (period) at the end. -

-Since the first user impression is based on the description, be -careful to avoid spelling and grammar mistakes. Ensure that you -spell-check it. ispell has a special -g option -for debian/control files: - -ispell -d american -g debian/control - -If you want someone to proofread the description that you -intend to use you may ask on &email-debian-l10n-english;. @@ -3528,10 +3555,14 @@ endorse any particular tool to the exclusion of a competing tool. Most of the descriptions of these packages come from the actual package descriptions themselves. Further information can be found in the package documentation itself. You can also see more info with the -command apt-cache show <package-name>. +command apt-cache show <package-name>.

+ + Core tools +

+The following tools are pretty much required for any maintainer.

- + dpkg-dev

dpkg-dev contains the tools (including @@ -3540,11 +3571,49 @@ source packages. These utilities contain the fundamental, low-level functionality required to create and manipulated packages; as such, they are required for any Debian maintainer. + + debconf +

+debconf provides a consistent interface to +configuring packages interactively. It is user interface +independent, allowing end-users to configure packages with a +text-only interface, an HTML interface, or a dialog interface. New +interfaces can be added modularly. +

+You can find documentation for this package in the +debconf-doc package. +

+Many feel that this system should be used for all packages requiring +interactive configuration; see . +debconf is not currently required by Debian Policy, +but that may change in the future. + - - lintian + + fakeroot

-Lintian dissects Debian packages and reports bugs +fakeroot simulates root privileges. This enables +you to build packages without being root (packages usually want to +install files with root ownership). If you have +fakeroot installed, you can build packages as a +user: dpkg-buildpackage -rfakeroot. + + + + + Package lint tools +

+According to the Free On-line Dictionary of Computing (FOLDOC), `lint' +is "a Unix C language processor which carries out more thorough checks +on the code than is usual with C compilers." Package lint tools help +package maintainers by automatically finding common problems and +policy violations with their packages.

+ + + lintian +

+lintian dissects Debian packages and emits +information on bugs and policy violations. It contains automated checks for many aspects of Debian policy as well as some checks for common errors.

@@ -3560,29 +3629,26 @@ You can also see a summary of all problems reported by Lintian on your packages at . Those reports contain the latest lintian output on the whole development distribution ("unstable"). + + + linda +

+linda is another package linter. It is similar to +lintian but has a different set of checks. Its +written in Python rather than Perl.

+
+
- - debconf -

-debconf provides a consistent interface to -configuring packages interactively. It is user interface -independent, allowing end-users to configure packages with a -text-only interface, an HTML interface, or a dialog interface. New -interfaces can be added modularly. -

-You can find documentation for this package in the -debconf-doc package. -

-Many feel that this system should be used for all packages requiring -interactive configuration. debconf is not -currently required by Debian Policy, however, that may change in the -future. -

- + + Helpers for debian/rules +

+Package building tools make the process of writing +debian/rules files easier. See +for more information on why these might or might not be desired. - - debhelper + + debhelper

debhelper is a collection of programs that can be used in debian/rules to automate common tasks related to @@ -3598,10 +3664,10 @@ other "debian/rules tools". There are a number of little debhelper add-on packages, too transient to document. You can see the list of most of them by doing apt-cache search ^dh-. + - - - debmake + + debmake

debmake, a pre-cursor to debhelper, is a less granular @@ -3615,10 +3681,10 @@ sort of automated functions that one finds in The consensus is that debmake is now deprecated in favor of debhelper. However, it's not a bug to use debmake. + - - - dh-make + + dh-make

The - - - yada + + yada

yada is another packaging helper tool. It uses a debian/packages file to auto-generate @@ -3643,20 +3709,30 @@ and make the package entirely functional and Policy-compliant. Note that yada is called "essentially unmaintained" by it's own maintainer, Charles Briscoe-Smith. As such, it can be considered deprecated. + - - - equivs + + equivs

equivs is another package for making packages. It is often suggested for local use if you need to make a package simply to fulfill dependencies. It is also sometimes used when making ``meta-packages'', which are packages whose only purpose is to depend -on other packages. +on other packages.

+
+
+ + + + Package builders +

+The following packages help with the package building process, general +driving dpkg-buildpackage as well as handling supporting +tasks.

- - cvs-buildpackage + + cvs-buildpackage

cvs-buildpackage provides the capability to inject or import Debian source packages into a CVS repository, build a Debian @@ -3668,87 +3744,138 @@ by Debian maintainers. This allows one to keep separate CVS branches of a package for stable, unstable and possibly experimental distributions, along with the other benefits of a version control system. + - - - dupload + + debootstrap +

+The debootstrap package and script allows you to +"bootstrap" a Debian base system into any part of your file-system. +By "base system", we mean the bare minimum of packages required to +operate and install the rest of the system.

+Having a system like this can be useful in many ways. For instance, +you can chroot into it if you want to test your build +depends. Or, you can test how your package behaves when installed +into a bare base system. Chroot builders use this package, see below. + + + + pbuilder +

+pbuilder constructs a chrooted system, and builds a +package inside the chroot. It is very useful to check that a package's +build-dependencies are correct, and to be sure that unnecessary and +wrong build dependencies will not exist in the resulting package.

+

+A related package is pbuilder-uml, which goes even +further build doing the build within User-mode-linux.

+
+ + + sbuild +

+sbuild is another automated builder. It can use +chrooted environments as well. It can be used stand-alone, or as part +of a networked, distributed build environment. As the latter, it is +part of the system used by porters to build binary packages for all +the available architectures. See for more +information, and to see the system in +action.

+
+
+ + + Package uploaders +

+The following packages help automate or simplify the process of +uploading packages into the official archive.

+ + + dupload +

dupload is a package and a script to automatically upload Debian packages to the Debian archive, to log the upload, and to send mail about the upload of a package. You can configure it for new upload locations or methods. + - - - dput -

+ + dput +

The dput package and script does much the same thing as dupload, but in a different way. It has some features over dupload, such as the ability to check the GnuPG signature and checksums before uploading, and the possibility of running dinstall in dry-run mode after the upload. + + - - - fakeroot -

-fakeroot simulates root privileges. This enables -you to build packages without being root (packages usually want to -install files with root ownership). If you have -fakeroot installed, you can build packages as a -user: dpkg-buildpackage -rfakeroot. - - - - debootstrap -

-The debootstrap package and script allows you to -"bootstrap" a Debian base system into any part of your file-system. -By "base system", we mean the bare minimum of packages required to -operate and install the rest of the system. -

-Having a system like this can be useful in many ways. For instance, -you can chroot into it if you want to test your build -depends. Or, you can test how your package behaves when installed -into a bare base system. - - - - pbuilder + + Maintenance automation

-pbuilder constructs a chrooted system, and builds -a package inside the chroot. It is very useful to check that -a package's build-dependencies are correct, and to be sure that -unnecessary and wrong build dependencies will not exist in the -resulting package. - +The following tools help automate different maintenance tasks, from +adding changelog entries or signature lines, looking up bugs in Emacs, +to making use of the newest and official use of +config.sub.

- - devscripts -

-devscripts is a package containing a few wrappers + + devscripts +

+devscripts is a package containing wrappers and tools which are very helpful for maintaining your Debian packages. Example scripts include debchange and dch, which manipulate your debian/changelog file from the command-line, and debuild, which is a wrapper around dpkg-buildpackage. The bts utility is also very helpful to update the state of bug reports on the -command line, as is uscan to watch for new upstream -versions of your packages. Check the devscripts(1) manual -page for a complete list of available scripts. - +command line. uscan can be used to watch for new upstream +versions of your packages. The debrsign can be used to +remotely sign a package prior to upload, which is nice when the +machine you build the package on is different from where your GPG keys +are.

+

+See the manual page for a +complete list of available scripts.

+
- - dpkg-dev-el -

+ + dpkg-dev-el +

dpkg-dev-el is an Emacs lisp package which provides assistance when editing some of the files in the debian directory of your package. For instance, when editing debian/changelog, there are handy functions for -finalizing a version and listing the package's current bugs. +finalizing a version and listing the package's current bugs.

+ +
+ + Porting tools +

+The following tools are helpful for porters and for +cross-compilation.

+ + + quinn-diff +

+quinn-diff is used to locate the differences from +one architecture to another. For instance, it could tell you which +packages need to be ported for architecture Y, based on +architecture X. + + + dpkg-cross +

+dpkg-cross is a tool for installing libraries and +headers for cross-compiling in a way similar to +dpkg. Furthermore, the functionality of +dpkg-buildpackage and dpkg-shlibdeps is +enhanced to support cross-compiling. + + - + -- 2.30.2