Building man pages with Debian packaging scripts

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!

Alexandre de Verteuil
Alexandre de Verteuil
Senior Solutions Architect

I teach people how to see the matrix metrics.
Monkeys and sunsets make me happy.

Related