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 new 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