lwip
lwip copied to clipboard
Installation with pre-compiled binaries
Maintain a place where pre compiled binaries (for each version and every major platform) will be stored and made available for download. probably on AWS S3 or a github repo.
Investigate using node-pre-gyp
.
This will have the following benefits:
- Shorter installation (no compilation) time. #82
- Less problems on Windows. no need to install a compiler, don't need python. #31, #47, #71, #79 and more.
- No need for Python to be installed on the system. #81
See also: https://github.com/sindresorhus/awesome-nodejs/pull/211
The idea is this:
- Check if there is a pre-compiled binary available for the platform being used.
- If yes, download it.
- Otherwise, continue with regular compilation (
node-gyp
, etc.).
Drawbacks:
- Need to get Windows machines to compile the module on.
Hi! I've been getting issues with node-gyp on my OSX Yosemite/10.10, command-line-tools/xcode installed etc. Perhaps it's just incompatible version. No problems with Ubuntu server.
Do you have even a rough timetable for publishing 0.0.7? Anything I can help with?
(And thanks for the package! We're about to use it at trustroots.org )
@simison Regarding the problem on OSX, open a new issue and we'll try to solve it.
About this issue - as far as I'm concerned this can be the only new feature for v0.0.7, so it can be released as soon as it's ready. I just need to find time to work on it. A bit busy at work now, so hard to say when that will happen. Help would be welcomed.
Basically need to:
- Figure out how to integrate
node-pre-gyp
into the installation process, and write an installation script if necessary. - Make sure that if pre-compiled binaries are not found (or can't be downloaded for some reason), the regular compilation process takes place.
- Figure out how to release binaries for different platforms when a new version of
lwip
is released. Possibly maintain a separate github repolwip-binaries
, or host them on AWS S3. - Automate it with the CIs. Currently there is already integration with Travis and AppVeyor. Need to figure out how to use them to compile both 32bit and 64bit for Windows, Linux and OSX; and upload the compiled binaries to the hosting solution.
Let me know if you would like to help with it. Otherwise, I'll find the time.
Thanks.
btw, trustroots looks really cool!
Thanks for your elaborate reply!
So, I figured out the problem last night with OSX. Latest Xcode (or command line tools) seemed to have messed with python. I had to unset PYTHONPATH & PYTHONHOME. After that python worked just fine with gyp and it could build those packages. I wrote about it to our troubleshooting.
Now the problem of cumbersome requirements for Windows/OSX remains (not everyone wants to install gigabytes of XCode just to test/develop this app).
Regarding Windows, take a look at these images: https://www.modern.ie/en-gb/virtualization-tools — you can run them with https://www.virtualbox.org/
Offtopic; Thanks — if you're interested in hospex, check out Hackercouch https://github.com/jancborchardt/hackercouch — in the future we want to implement geeky hosting within Trustroots as well.
Hi everyone,
I'm very interested in providing lwip prebuilt binaries to simplify installation and setup.
Regarding Windows, this article describe how to use AppVeyor to build and publish binaries for Windows : http://cylonjs.com/blog/2014/11/19/creating-multiplatform-precompiled-binaries-for-node-modules/.
The move to node-pre-gyp does not represent a lot of work. I think we should start moving to this solution quickly.
Any time estimation on this?
@gkorland First we need to collect working builds for each platforms to configure node-pre-gyp. Then we could create automation based on Travis-CI and AppVeyor to maintain this builds up to date.
Sorry I don't have any time for this now. Maybe I could work on it later.
I created three repositories and published them to npmjs.
https://github.com/willerce/node-lwip https://github.com/willerce/lwip-encoder https://github.com/willerce/lwip-decoder https://github.com/willerce/lwip-image
I only complied binaries version for OSX X64 and Node.js 0.11.x
https://mthost.org/lwip/lwip_image/v0.0.1/Release/lwip_image-v0.0.1-node-v11-darwin-x64.tar.gz https://mthost.org/lwip/lwip_decoder/v0.0.1/Release/lwip_decoder-v0.0.1-node-v11-darwin-x64.tar.gz https://mthost.org/lwip/lwip_encoder/v0.0.1/Release/lwip_encoder-v0.0.1-node-v11-darwin-x64.tar.gz
if your node.js version is 0.11.x and use OSX.
Just run
npm install node-lwip
Now, I do not have a good idea how compile binaries on more platform and node.js version.
ps: Sorry for my poor English.
Here is a tutorial to configure all with travis.ci and appVeyor
http://cylonjs.com/blog/2014/11/19/creating-multiplatform-precompiled-binaries-for-node-modules/
Hi, how is this coming along? I still cannot get this to run on azure, even if I precompile the binaries and upload my node_modules folder. I still get the:
D:\home\site\wwwroot\node_modules\bindings\bindings.js:83 throw e ^ Error: %1 is not a valid Win32 application.
D:\home\site\wwwroot\node_modules\lwip\build\Release\lwip_image.node at Module.load (module.js:356:32)
Errors.