NetworkBlockDevice / nbd

Network Block Device
GNU General Public License v2.0
450 stars 116 forks source link

Please run docbook2man after configure (only if manpages enabled) rather than in autogen.sh #107

Open joshtriplett opened 4 years ago

joshtriplett commented 4 years ago

autogen.sh runs:

make -C man -f mans.mk nbd-server.1.sh.in nbd-server.5.sh.in nbd-client.8.sh.in nbd-trdump.1.sh.in nbdtab.5.sh.in
make -C systemd -f Makefile.am nbd@.service.sh.in

before running autoreconf -f -i. The first of those steps requires docbook2man installed, even if the manpages will ultimately end up disabled.

Please consider letting autoconf do substitution on the SGML files (e.g. nbd-client.8.sgml.in to nbd-client.8.sgml, rather than running docbook2man on nbd-client.8.in.sgml), and then running the docbook2man step (and the generation of the systemd service file) as part of the later make step. (configure could then look for docbook2man.)

In addition to avoiding the mandatory docbook2man dependency when disabling manpages in configure, this would also allow those build operations to happen in make where they can run in parallel as part of parallel make. And it would avoid needing makefiles already generated before running autogen.sh.

yoe commented 4 years ago

I believe I did things this way because the other way around didn't work properly for some reason, but it was a decision I made many many moons ago and I don't remember the details.

I agree it's a bit annoying, but that part of the generation should really only be run by people who want to run from git, which should not be as common... Or so I would hope