I wrote my own backup script, and I switched from Archlinux to Debian in my home network. So now I need to package my program in .deb format in order to deploy it. Learning Debian packaging is a bit intimidating, but I'm starting to really appreciate the intelligence and “magic” in Debian development tools.

One specific task that took me a long time to figure out the best way to do is how to build a man page from RestructuredText format using Debian build scripts. Here's what I came up with:

# debian/rules

# Here's the standard minimal recipe for a Python project.
%:
    dh $@ --with python3 --buildsystem=pybuild

# Here I describe how to build the manpage.
# backup.1.rst is included with the source code.
backup.1.gz: backup.1.rst
    rst2man backup.1.rst | gzip > backup.1.gz

# Here I override dh_auto_build just to add a dependency on backup.1.gz
# nothing else is customized.
override_dh_auto_build: backup.1.gz
    dh_auto_build

Then I let dh_installman know that backup.1.gz is a man page that needs to be installed:

# debian/python3-backup.manpages
backup.1.gz

…where python3-backup is the name of my package.

Send me an email if it helps or if you know an even better way to do it!