On 09/27/2016 10:48 AM, Ben Finney wrote: > Our wiki page on Library Style Guide advises the Debian packaging > override the Python import path: > > If you need to build the Sphinx documentation (usually from .rst or > .md files), add: > > override_dh_auto_build: > dh_auto_build > PYTHONPATH=. sphinx-build -N -bhtml docs/ build/html # HTML > generator > PYTHONPATH=. sphinx-build -N -bman docs/ build/man # Manpage > generator
If that's what the wiki advise, then it's quite wrong. The target which should be "overrides" is dh_sphinxdoc. I usually do this: override_dh_sphinxdoc: ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS))) sphinx-build -b html doc/source \ $(CURDIR)/debian/foo-doc/usr/share/doc/foo-doc/html dh_sphinxdoc endif And the same kind of thing for man page. It's IMO nice to have the nodocs thing if it takes too long to build (probably useless if it's quick). In such case, overriding the correct debian/rules target is key. > This is surely not ideal, though. Better would be to not need > ‘PYTHONPATH’ override at all, and just call the build program. PYTHONPATH=. isn't *always* needed, therefore, I don't think it should always be in debian/rules. > What can we advise to upstream so their build system will work correctly > in our build environment *without* that override in every Sphinx-using > package? I don't see why upstream requiring PYTHONPATH=. would be bad... Cheers, Thomas Goirand (zigo)