Open tmbdev opened 7 years ago
@tmbdev there are quite some projects in contrib/
which are not really part of the project (this is why they are in contrib/
in the first place). I agree that they shouldn't be included in the package, which is the case for the archlinux package, for example. If you're trying to build cjdroute, you should use ./do
which procudes a single binary you can use. There is no official api client though.
Thanks. Yes, I know that I can just build cjdroute by itself, but even building with ./do still starts off with trying to install a new version of nodejs. I think it would be more reassuring, easier to audit, and easier to build if cjdroute was a self-contained simple C project, with all the other code in one or more separate repositories. Anyway, it's just a suggestion/observation. I realize it's a volunteer project and there are lots of other interesting things to do, but this kind of refactoring really can only be done by the core developers.
nodejs is the only dependency. To build cjdroute directly, install nodejs from your distribution and execute nodejs node_build/make.js
directly.
The issue is that not even the build process is driven by nodejs instead of make, but that there's a pre-processor in place that is not part of regular C compilers and are non-trivial to port:
https://github.com/cjdelisle/cjdns/blob/63fdd890d7b9903e386ae094fe4ace548d3988f6/util/Linker.h
To improve audit-ability, we should probably get rid of the old libuv library that is vendored into the project instead.
The current build process has a lot of dependencies and produces .deb files that install web interfaces and other features.
Have you considered refactoring the project into a small, self-contained, pure C command line tool for just the router and making the UI and other features separate projects and packages?