]> git.donarmstrong.com Git - debhelper.git/blobdiff - debhelper.pod
Ensure make doesn't print directories when checking for target existance.
[debhelper.git] / debhelper.pod
index 7f2fbad2928caa44255d9370956f19ccc3c2c785..8c232d2859bac1e3caac44cfed1beefb7a63cf21 100644 (file)
@@ -17,9 +17,8 @@ policy changes, and packages that use them will require only a rebuild to
 comply with the new policy.
 
 A typical debian/rules file that uses debhelper will call several debhelper
 comply with the new policy.
 
 A typical debian/rules file that uses debhelper will call several debhelper
-commands in sequence. Debhelper commands are all named with a "dh_" prefix.
-Examples of rules files that use debhelper are in
-F</usr/share/doc/debhelper/examples/>
+commands in sequence, or use L<dh(1)> to automate this process. Examples of
+rules files that use debhelper are in F</usr/share/doc/debhelper/examples/>
 
 To create a new debian package using debhelper, you can just copy one of
 the sample rules files and edit it by hand. Or you can try the dh-make
 
 To create a new debian package using debhelper, you can just copy one of
 the sample rules files and edit it by hand. Or you can try the dh-make
@@ -63,9 +62,10 @@ debian/control, debhelper will use debian/foo if no debian/package.foo
 file can be found.
 
 In some rare cases, you may want to have different versions of these files
 file can be found.
 
 In some rare cases, you may want to have different versions of these files
-for different architectures. If files named debian/package.foo.arch
-exist, where "arch" is the same as the output of 
-"dpkg-architecture -qDEB_HOST_ARCH",
+for different architectures or OSes. If files named debian/package.foo.ARCH
+or debian/package.foo.OS exist, where "ARCH" and "OS" are the same as the
+output of  "dpkg-architecture -qDEB_HOST_ARCH" /
+"dpkg-architecture -qDEB_HOST_ARCH_OS",
 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
 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
@@ -119,6 +119,24 @@ are not architecture independent.
 Do not act on the specified package even if an -a, -i, or -p option lists
 the package as one that should be acted on.
 
 Do not act on the specified package even if an -a, -i, or -p option lists
 the package as one that should be acted on.
 
+=item B<--remaining-packages>
+
+Do not act on the packages which have already been acted on by this debhelper
+command earlier (i.e. if the command is present in the package debhelper log).
+For example, if you need to call the command with special options only for a
+couple of binary packages, pass this option to the last call of the command to
+process the rest of packages with default settings. 
+
+=item B<--ignore=>I<file>
+
+Ignore the specified file. This can be used if debian/ contains a debhelper
+config file that a debhelper command should not act on. Note that
+debian/compat, debian/control, and debian/changelog can't be ignored, but
+then, there should never be a reason to ignore those files.
+
+For example, if upstream ships a debian/init that you don't want
+dh_installinit to install, use --ignore=debian/init
+
 =item B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>
 
 Use "tmpdir" for package build directory. The default is debian/<package>
 =item B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>
 
 Use "tmpdir" for package build directory. The default is debian/<package>
@@ -174,9 +192,6 @@ B<-a>, B<-i>, B<-p>, and B<-s> parameters. These parameters are cumulative.
 If none are given, debhelper programs default to acting on all packages listed
 in the control file.
 
 If none are given, debhelper programs default to acting on all packages listed
 in the control file.
 
-See F</usr/share/doc/debhelper/examples/rules.multi> for an example of how to
-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
 =head2 Automatic generation of debian install scripts
 
 Some debhelper commands will automatically generate parts of debian
@@ -246,9 +261,9 @@ introduced. You tell debhelper which compatibility level it should use, and
 it modifies its behavior in various ways.
 
 Tell debhelper what compatibility level to use by writing a number to
 it modifies its behavior in various ways.
 
 Tell debhelper what compatibility level to use by writing a number to
-debian/compat. For example, to turn on V5 mode:
+debian/compat. For example, to turn on V7 mode:
 
 
-  % echo 5 > debian/compat
+  % echo 7 > debian/compat
 
 Unless otherwise indicated, all debhelper documentation assumes that you
 are using the most recent compatibility level, and in most cases does not
 
 Unless otherwise indicated, all debhelper documentation assumes that you
 are using the most recent compatibility level, and in most cases does not
@@ -327,10 +342,11 @@ dh_link will correct existing links to conform with policy.
 
 =back
 
 
 =back
 
+This mode is deprecated.
+
 =item V5
 
 =item V5
 
-This is the recommended mode of operation. It does everything V4 does,
-plus:
+Changes from V4 are:
 
 =over 8
 
 
 =over 8
 
@@ -355,15 +371,14 @@ dh_install errors out if wildcards expand to nothing.
 
 =item V6
 
 
 =item V6
 
-This mode is still under development. Currently it has these differences
-compared to V5:
+Changes from V5 are:
 
 =over 8
 
 =item -
 
 
 =over 8
 
 =item -
 
-Commands that generate maintainer script fragements will order the
-fragements in reverse order for the prerm and postrm scripts.
+Commands that generate maintainer script fragments will order the
+fragments in reverse order for the prerm and postrm scripts.
 
 =item -
 
 
 =item -
 
@@ -375,12 +390,42 @@ directory.
 
 dh_builddeb did not previously delete everything matching
 DH_ALWAYS_EXCLUDE, if it was set to a list of things to exclude, such as
 
 dh_builddeb did not previously delete everything matching
 DH_ALWAYS_EXCLUDE, if it was set to a list of things to exclude, such as
-"CVS:.svn". Now it does.
+"CVS:.svn:.git". Now it does.
 
 =item -
 
 dh_installman allows overwriting existing man pages in the package build
 
 =item -
 
 dh_installman allows overwriting existing man pages in the package build
-directory. In previous compatability levels it silently refuses to do this.
+directory. In previous compatibility levels it silently refuses to do this.
+
+=back
+
+=item V7
+
+This is the recommended mode of operation.
+
+Changes from V6 are:
+
+=over 8
+
+=item -
+
+dh_install, will fall back to looking for files in debian/tmp if it doesn't
+find them in the current directory (or wherever you tell it look using
+--sourcedir). This allows dh_install to interoperate with dh_auto_install,
+which installs to debian/tmp, without needing any special parameters.
+
+=item -
+
+dh_clean will read debian/clean and delete files listed there.
+
+=item -
+
+dh_clean will delete toplevel *-stamp files.
+
+=item -
+
+dh_installchangelogs will guess at what file is the upstream changelog if
+none is specified.
 
 =back
 
 
 =back
 
@@ -418,9 +463,9 @@ Once your package uses debhelper to build, be sure to add
 debhelper to your Build-Depends line in debian/control. You should
 build-depend on a version of debhelper equal to (or greater than) the
 debhelper compatibility level your package uses. So if your package used
 debhelper to your Build-Depends line in debian/control. You should
 build-depend on a version of debhelper equal to (or greater than) the
 debhelper compatibility level your package uses. So if your package used
-compatibility level 5:
+compatibility level 7:
 
 
-  Build-Depends: debhelper (>= 5)
+  Build-Depends: debhelper (>= 7)
 
 =head1 ENVIRONMENT
 
 
 =head1 ENVIRONMENT
 
@@ -443,10 +488,19 @@ Set to 1 to enable no-act mode.
 =item DH_OPTIONS
 
 Anything in this variable will be prepended to the command line arguments
 =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. 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.
+of all debhelper commands. Command-specific options will be ignored by 
+commands that do not support them. 
+
+Arguments are separated by whitespaces unless a whitespace is escaped
+with a backslash character (\). Then the whitespace is treated literally.
+Likewise, the backslash character is treated literally unless it is followed
+by a single whitespace. If a backslash is followed by two or more spaces,
+it will be considered as the last symbol of the argument.
+
+DH_OPTIONS 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
 
 
 =item DH_ALWAYS_EXCLUDE