hyperboria / bugs

Peer-to-peer IPv6 networking, secure and near-zero-conf.
153 stars 17 forks source link

libuv can't build on BBB Angstrom due to missing compiler.ast module #103

Closed interfect closed 8 years ago

interfect commented 8 years ago

Trying to build cjdns on Angstrom Linux on the BeagleBone Black, after working around a number of other errors, yields:

Build Libuv
You need to install gyp in build/gyp first. See the README.
make: *** out: No such file or directory. Stop.
...

The build process then helpfully hangs.

The underlying problem is a missing compiler.ast module. The libuv build process checks for gyp by trying to import its Python module and catching an ImpotError. The gyp module import process raises an ImportError for the missing Python library module.

The workaround seems to be to opkg install python-compiler python-misc python-multiprocessing to get the missing module (along with filecmp and multiprocessing, which are also required by gyp).

https://github.com/hyperboria/cjdns/blob/master/node_build/dependencies/libuv/gyp_uv.py ought to be patched to generate a more informative error message when the underlying cause of the ImportError is not a missing gyp (which can't happen in cjdns builds anyway) but rather a missing Python module dependency.