]> git.donarmstrong.com Git - debhelper.git/blobdiff - debhelper.pod
r1710: * Add dh_shlibdeps see also. Closes: #261367
[debhelper.git] / debhelper.pod
index 67cfbe73eb80505e58febf039bc5e0a470933808..83e67830c1db77472c42601d22b5cebd39e7b928 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
@@ -64,7 +70,7 @@ then they will be used in preference to other, more general files.
 In many cases, these config files are used to specify various types of
 files. Documentation or example files to install, files to move, and so on.
 When appropriate, in cases like these, you can use standard shell wildcard
-characters ('?' and '*') in the files.
+characters ('?' and '*' and '[..]' character classes) in the files.
 
 =head1 SHARED DEBHELPER OPTIONS
 
@@ -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.