debhelper is a collection of programs that can be used in a debian/rules file to automate common tasks related to building binary debian packages. Programs are included to install various files into your package, compress files, fix file permissions, integrate your package with the debian menu system, etc. This will be of use only to debian developers or others who wish to build debian packages.

Debhelper's git repository is now located at: git://

I posted a good overview of debhelper's history in my blog. Here is the thread that started it all.

Colin graphs debhelper statistics here.


version 9.20140228

debhelper 9.20140228 released with these changes

  • Fix breakage in no-act mode introduced in last release.
version 9.20140227

debhelper 9.20140227 released with these changes

  • dh_compress: Avoid compressing .map files, which may be html usemaps. Closes: #704443
  • dh_installdocs: When doc dirs are symlinked make the dependency versioned per policy. Closes: #676777
  • dh_makeshlibs: Defer propigating dpkg-gensymbols error until all packages have been processed. Closes: #736640
  • dh: Reject unknown parameters that are not dashed command-line parameters intended to be passed on to debhelper commands. Closes: #737635
  • perl_build: Use realclean instead of distclean. Closes: #737662
  • Initial implementation of support for Build-Profiles fields. Thanks, Daniel Schepler.
  • dh_gencontrol: Revert change made in version 4.0.13 that avoided passing -p to dpkg-gencontrol when only operating on one package. There seems to be no benefit to doing that, and it breaks when using Build-Profiles, since while debhelper may know a profile only allows for one package, dpkg-gencontrol may see other packages in the control file.
version 9.20131227

debhelper 9.20131227 released with these changes

  • [ Guillem Jover ]
    • dh_shlibdeps: Use new dpkg-shlibdeps -l option instead of LD_LIBRARY_PATH Closes: #717505
    • Depend on dpkg-dev (>= 1.17.0), the version that introduced dpkg-shlibdeps -l option.

Adding stuff

The tricky thing about maintaining debhelper is that everyone would like to see a program added to it to handle some special-purpose thing, and this is rarely a good idea, since it just serves to increase debhelper's command count, and thus its learning curve, while making me responsible for maintaining support for said obscure thing.

My first rule of thumb is that at least ten packages need to be obvious benefactors of a feature or command before it's added to debhelper. That's an easy bar; after that I have to do some thinking and made the hard call.

TODO: discuss wishlisted commands here