]> git.donarmstrong.com Git - debhelper.git/blobdiff - debhelper.pod
r1713: releasing version 4.2.19
[debhelper.git] / debhelper.pod
index 08c511535215eb19a6b27bb2a7765881211f9cf3..a6ec5daa5511a6f10280385b6f7da8c351795fb2 100644 (file)
@@ -38,6 +38,10 @@ pages for additional documentation.
 
 =back
 
+If a program's name starts with "dh_", and the program is not on the above
+list, then it is not part of the debhelper package, but it should still
+work like the other programs described on this page.
+
 =head1 DEBHELPER CONFIG FILES
 
 Many debhelper commands make use of files in F<debian/> to control what they
@@ -47,10 +51,12 @@ be used to configure the behavior of specific debhelper commands. These
 files are typically named debian/package.foo (where "package" of course,
 is replaced with the package that is being acted on).
 
-For example,
-dh_installdocs uses files named debian/package.docs to list the documentation
-files it will install. See the man pages of individual commands for details
-about the names and formats of the files they use.
+For example, dh_installdocs uses files named debian/package.docs to list
+the documentation files it will install. See the man pages of individual
+commands for details about the names and formats of the files they use.
+Generally, these files will list files to act on, one file per line. Some
+programs in debhelper use pairs of files and destinations or slightly more
+complicated formats.
 
 Note that if a package is the first (or only) binary package listed in
 debian/control, debhelper will use debian/foo if no debian/package.foo
@@ -102,7 +108,7 @@ for the package, the package should not be acted on on other architectures. So
 this flag makes the command act on all "Architecture: any" packages, as well
 as on any packages that have the current architecture explicitly specified.
 Contrast to the -a flag, which makes the command work on all packages that
-are not architecture independant.
+are not architecture independent.
 
 =item B<-N>I<package>, B<--no-package=>I<package>
 
@@ -113,6 +119,13 @@ the package as one that should be acted on.
 
 Use "tmpdir" for package build directory. The default is debian/<package>
 
+=item B<--mainpackage=>I<package>
+
+This little-used option changes the package which debhelper considers the
+"main package", that is, the first one listed in debian/control, and the
+one for which debian/foo files can be used instead of the usual
+debian/package.foo files.
+
 =back
 
 =head1 COMMON DEBHELPER OPTIONS
@@ -162,14 +175,18 @@ use this in a package that generates multiple binary packages.
 
 =head2 Automatic generation of debian install scripts
 
-Some debhelper commands will automatically generate parts of debian install
-scripts. If you want these automatically generated things included in your
-debian install scripts, then you need to add "#DEBHELPER#" to your scripts,
-in the place the code should be added. "#DEBHELPER#" will be replaced by
-any auto-generated code when you run dh_installdeb.
+Some debhelper commands will automatically generate parts of debian
+maintainer scripts. If you want these automatically generated things
+included in your existing debian maintainer scripts, then you need to add
+"#DEBHELPER#" to your scripts, in the place the code should be added.
+"#DEBHELPER#" will be replaced by any auto-generated code when you run
+dh_installdeb. 
 
-All scripts that automatically generate code in this way let it be disabled
-by the -n parameter (see above).
+If a script does not exist at all and debhelper needs to add something to
+it, then debhelper will create the complete script.
+
+All debhelper commands that automatically generate code in this way let it
+be disabled by the -n parameter (see above).
 
 Note that the inserted code will be shell code, so you cannot directly use
 it in a perl script. If you would like to embed it into a perl script, here
@@ -281,8 +298,8 @@ the generated dependancy line in the shlibs file.
 
 =item -
 
-dh_installinit uses the new invoke-rc.d program in its generated maintainer
-scripts. (This may later be rolled back into V3).
+You are encouraged to put the new ${misc:Depends} into debian/control to
+suppliment the ${shlibs:Depends} field.
 
 =item -
 
@@ -308,6 +325,15 @@ files into the package, and use dh_link to set up the symlink (or do it by
 hand), and debhelper should do the right thing: notice it is a dangling
 symlink and not try to install a copyright file or changelog.
 
+=head2 udebs
+
+Debhelper includes support for udebs. To create a udeb with debhelper,
+add "XC-Package-Type: udeb" to the package's stanza in debian/control, and
+build-depend on debhelper (>= 4.2). Debhelper will try to create udebs that
+comply with debian-installer policy, by making the generated package files
+end in ".udeb", not installing any documentation into a udeb, skipping over
+preinst, postrm, prerm, and config scripts, etc.
+
 =head2 Other notes
 
 In general, if any debhelper program needs a directory to exist under
@@ -316,15 +342,13 @@ man pages, but for example, dh_installdeb knows to make debian/<package>/DEBIAN/
 before trying to put files there, dh_installmenu knows you need a
 debian/<package>/usr/lib/menu/ before installing the menu files, etc.
 
-If you are generating a debian package that has arch-indep and
-arch-dependent portions, and you are using dh_movefiles to move the
-arch-indep files out of debian/tmp, you need to make sure that dh_movefiles
-does this even if only the arch-dependent package is being built (for
-ports to other architectures). I handle this in the example rules file
-"rules.multi" by calling dh_movefiles in the install target.
-
 Once your package uses debhelper to build, be sure to add
-debhelper to your Build-Depends line in debian/control.
+debhelper to your Build-Depends line in debian/control. You should
+build-depend on a verson of debhelper equal to (or greater than) the
+debhelper compatability level your package uses. So if your package used
+compatability level 4:
+
+  Build-Depends: debhelper (>= 4)
 
 =head1 ENVIRONMENT
 
@@ -346,13 +370,11 @@ Set to 1 to enable no-act mode.
 
 =item DH_OPTIONS
 
-Anything in this variable will be prepended to the command line
-arguments of all debhelper commands. This is useful in some situations,
-for example, if you need to pass -p to all debhelper commands that will be
-run. If you use DH_OPTIONS, be sure to build depend on "debhelper >= 1.1.17" --
-older debhelpers will ignore it and do things you don't want them to. One very
-good way to set DH_OPTIONS is by using "Target-specific Variable Values" in
-your debian/rules file. See the make documentation for details on doing this.
+Anything in this variable will be prepended to the command line arguments
+of all debhelper commands. This is useful in some situations, for example,
+if you need to pass -p to all debhelper commands that will be run. One good
+way to set DH_OPTIONS is by using "Target-specific Variable Values" in your
+debian/rules file. See the make documentation for details on doing this.
 
 =item DH_ALWAYS_EXCLUDE
 
@@ -367,6 +389,9 @@ tarball that (unwisely) includes CVS directories, you might want to export
 DH_ALWAYS_EXCLUDE=CVS in debian/rules, to make it take effect wherever
 your package is built.
 
+Multiple things to exclude can be separated with colons, as in
+DH_ALWAYS_EXCLUDE=CVS:.svn
+
 =back
 
 =head1 SEE ALSO
@@ -377,7 +402,7 @@ your package is built.
 
 A set of example debian/rules files that use debhelper.
 
-=item http://kitenet.net/programs/debhelper/
+=item L<http://kitenet.net/programs/debhelper/>
 
 Debhelper web site.