summaryrefslogtreecommitdiff
path: root/debhelper.1
blob: 6ed7ef7afa8d44f2b335d9ddfceac2c57e5efb30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
.TH DEBHELPER 1 "" "Debhelper Commands" "Debhelper Commands"
.SH NAME
debhelper \- overview of the debhelper commands
.SH SYNOPSIS
.B dh_*
.I "[-v] [-a] [-i] [-s] [--no-act] [-ppackage] [-Npackage] [-Ptmpdir]"
.SH "DESCRIPTION"
Debhelper is a collection of programs that can be used in debian/rules files
to automate common tasks related to building debian binary packages. All the
debhelper commands accept a set of options, and this man page is here to
document those options and to document debhelper as a whole. For additional 
options, and documentation for each individual command, see the commands' own
man pages.
.SH "SHARED DEBHLPER OPTIONS"
The following command line options are supported by all debhelper programs.
.TP
.B \-v, \--verbose
Verbose mode: show all commands that modify the package build directory.
.TP
.B \--no-act
Do not really do anything. If used with -v, the result is that the command
will output a list of what it would have done.
.TP
.B \-a, \--arch
Act on all architecture dependent packages.
.TP
.B \-i, \--indep
Act on all architecture independent packages.
.TP
.B \-ppackage, \--package=package
Act on the package named "package".
.TP
.B \-s, \--same-arch
This is a smarter version of the -a flag, that is used in some rare
circumstances. It understands that if the control file lists "Architecture: i386"
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.
.TP
.B \-Npackage, \--no-package=package
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.
.TP
.B \-Ptmpdir, \--tmpdir=tmpdir
Use "tmpdir" for package build directory. 
.SH "COMMON DEBHELPER OPTIONS"
The following command line options are supported by some debhelper programs.
See the man page of each program for a complete explination of what the
option does.
.TP
.B \-n
Do not modify postinst/postrm/etc scripts.
.TP
.B \-Xitem, \--exclude=item
Exclude an item from processing.
.TP
.B \-A, \-all
Makes files or other items that are specified on the command line take effect
in ALL packages acted on, not just the first.
.SH NOTES
.TP
.B Multiple binary package support
.RS
If your source package generates more than one binary package, debhelper
programs will default to acting on all binary packages when run. If your
source package happens to generate one architecture dependent package, and
another architecture independent package, this is not the correct behavior,
because you need to generate the architecture dependent packages in the
binary-arch debian/rules target, and the architecture independent packages
in the binary-indep debian/rules target.

To facilitate this, as well as give you more control over which packages
are acted on by debhelper programs, all debhelper programs accept the 
.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.
.P
See
.BR /usr/share/doc/debhelper/examples/rules.multi
for an example of how to use this.
.RE
.TP
.B Package build directories
.RS
By default, all debhelper programs assume that the temporary directory used
for assembling the tree of files in a package is debian/tmp for the first
package listed in debian/control, and debian/<packagename> for each
additional package. If DH_COMPAT=2, debian/<packagename> is always used,
even for the first package.
.P
Sometimes, you might want to use some other temporary directory. This is
supported by the
.B -P
flag. For example, "dh_installdocs -Pdebian/tmp", will use debian/tmp as the
temporary directory. Note that if you use -P, the debhelper programs can only
be acting on a single package at a time. So if you have a package that builds
many binary packages, you will need to use the -p flag to specify which
binary package the debhelper program will act on.
.RE
.TP
.B Other notes
In general, if any debhelper program needs a directory to exist under
debian/, it will create it. I haven't bothered to document this in all the
man pages, but for example, dh_installdeb knows to make debian/<foo>/DEBIAN/
before trying to put files there, dh_installmenu knows you need a
debian/<foo>/usr/lib/menu/ before installing the menu files, etc.
.SH "DEBHELPER COMMANDS"
Here is the complete list of available debhelper commands.
#LIST#
.SH ENVIRONMENT
.TP
.I DH_VERBOSE
Enables verbose mode.
.TP
.I DH_COMPAT
Specifies what compatability level debhelper should run at. The default is 1,
which makes debhelper behave in a manner compatable with the 1.x series of
debhelper. If set to 2, debhelper's behavior will change to use the new
features of the 2.x series. Use this with caution, as the 2.x series makes
major changes that will break most packages. For documentation on these
changes, read /usr/share/doc/debhelper/v2
.TP
.I DH_NO_ACT
Enables no-act mode.
.TP
.I DH_OPTIONS
Anything in this variable will be prepended to the command line
arguments of all debhelper commands. This in 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 use "dh_testversion 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.
.SH "SEE ALSO"
.TP
.BR /usr/share/doc/debhelper/README
An introduction to debhelper.
.TP
.BR /usr/share/doc/debhelper/examples/
A set of example debian/rules files that use debhelper.
.TP
.BR http://kitenet.net/programs/debhelper/
Debhelper web site.
.SH AUTHOR
Joey Hess <joeyh@debian.org>