]> git.donarmstrong.com Git - debhelper.git/blobdiff - debhelper.pod
Merge branch 'master' into buildsystems
[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
-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
@@ -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
-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
@@ -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.
 
+=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>
@@ -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.
 
-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
@@ -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
-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
@@ -327,10 +342,11 @@ dh_link will correct existing links to conform with policy.
 
 =back
 
+This mode is deprecated.
+
 =item V5
 
-This is the recommended mode of operation. It does everything V4 does,
-plus:
+Changes from V4 are:
 
 =over 8
 
@@ -355,15 +371,14 @@ dh_install errors out if wildcards expand to nothing.
 
 =item V6
 
-This mode is still under development. Currently it has these differences
-compared to V5:
+Changes from V5 are:
 
 =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 -
 
@@ -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
-"CVS:.svn". Now it does.
+"CVS:.svn:.git". Now it does.
 
 =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
 
@@ -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
-compatibility level 5:
+compatibility level 7:
 
-  Build-Depends: debhelper (>= 5)
+  Build-Depends: debhelper (>= 7)
 
 =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
-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