On Mon, Feb 18, 2019 at 09:51:11AM +0100, Ricardo Wurmus wrote: > Leo Famulari writes: > > * gnu/packages/magic-wormhole.scm (magic-wormhole): New variable. > […] > > + ;; XXX I can't figure out how to build the docs properly. > > + (add-after 'install 'install-docs > > + (lambda* (#:key outputs #:allow-other-keys) > > + (let* ((out (assoc-ref outputs "out")) > > + (man (string-append out "/share/man/man1"))) > > + (install-file "docs/wormhole.1" man)) > > + #t))))) > > What does it mean to build them properly? Should anything besides the > man pages be built? In short, it fails like this: ------ make: Entering directory '/tmp/guix-build-magic-wormhole-0.11.2.drv-0/magic-wormhole-0.11.2/docs' Running Sphinx v1.7.7 setup.py:20: DeprecationWarning: 'U' mode is deprecated long_description=open('README.md', 'rU').read(), /gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib/python3.7/distutils/dist.py:274: UserWarning: Unknown distribution option: 'long_description_content_type' warnings.warn(msg) Configuration error: There is a programable error in your configuration file: Traceback (most recent call last): File "/gnu/store/q6qyrgr41lqzbray6944l1rs7i6b83kp-python-sphinx-1.7.7/lib/python3.7/site-packages/sphinx/config.py", line 161, in __init__ execfile_(filename, config) File "/gnu/store/q6qyrgr41lqzbray6944l1rs7i6b83kp-python-sphinx-1.7.7/lib/python3.7/site-packages/sphinx/util/pycompat.py", line 150, in execfile_ exec_(code, _globals) File "conf.py", line 70, in version, release = _get_versions() File "conf.py", line 67, in _get_versions short = ".".join(v.split(".")[:2]) TypeError: a bytes-like object is required, not 'str' make: *** [Makefile:20: man] Error 2 make: Leaving directory '/tmp/guix-build-magic-wormhole-0.11.2.drv-0/magic-wormhole-0.11.2/docs' ------ Using the patch under discussion, only a pre-built manual page is installed. There is apparently a build script that uses Sphinx to build a more full set of manual pages, from markdown source files. This documentation would discuss the design and implementation of Magic-Wormhole, and it would be nice to have. With the attached patch, the problem can be reproduced, and I've reported it upstream here: https://github.com/warner/magic-wormhole/issues/321 > > + (native-inputs > > + `(("python-mock" ,python-mock) > > + ;; XXX These are required for the test suite but end up being referenced > > + ;; by the built package. > > + ("magic-wormhole-mailbox-server" ,magic-wormhole-mailbox-server) > > + ("magic-wormhole-transit-relay" ,magic-wormhole-transit-relay))) > > Are they not supposed to be referenced by the built package? > If they are supposed to be used by the built package is it enough to > have them as inputs and not as propagated inputs? In this case they are actually native-inputs, not propagated-inputs. But they still end up on the PYTHONPATHs in the built package, so they are referenced. I don't believe they are used by the magic-wormhole program except in client-server way over the network. They shouldn't need to be part of the closure of magic-wormhole.