summaryrefslogtreecommitdiff
path: root/doc/README
blob: 30f2a2cf4af02e4da466cc6e97943c0c0ee08726 (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
Debhelper is a collection of programs that can be used in debian/rules files
to automate common tasks related to building debian binary packages. For 
further documentation, see the man pages for dh_* commands. For an overview 
of debhelper, see the debhelper(1) man page.

To help you get started, I've included examples of debian/rules files
that use debhelper commands extensively. See /usr/doc/debhelper/examples/ . 
These files are also useful as they give one good order you can run the 
various debhelper scripts in (though other variations are possible).

Starting a new package:
----------------------

You can just use the example rules files and do the rest of the new package
set up by hand, or you could try the dh-make package, which contains a
"dh_make" command that is similar to debmake, and tries to automate the
process.

Converting from debstd to debhelper:
-----------------------------------

See the file "from-debstd" for documentation on how to do this.

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.

All scripts that automatically generate code in this way let it be disabled
by the -n parameter.

Note that it 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 is one way to
do that (note the tricky use of backquotes) (also note that I made sure that
$1, $2, etc are set with the set command):

print << `EOF`
set -- @ARGV
#DEBHELPER#
EOF

Other notes:
-----------

Note that 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 debian/rules.multi by calling
dh_movefiles in the install target.

Debhelper's home page is at http://kitenet.net/programs/debhelper/

-- Joey Hess <joeyh@master.debian.org>