-
-
Notifications
You must be signed in to change notification settings - Fork 801
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: provide pre-compiled binaries (official builds) in npm packages #67
Comments
great, thanks very much for this description. I've known this was possible, just had not ran into good docs yet. |
I am glad to feel myself helpful, but also let me ask whether you are planning such builds, or waiting for Node 0.8 stable, or something else. |
As I see now, the last commit in node-sqlite3 master branch happened in July 27 (≈50 days ago), so the module seems more or less complete. If it indeed is, then you could build the OS-specific binaries once… and update them only when some new SQLite version happens or when a new Node version breaks binary compatibility. |
Is there any chance that this will ever happen? |
I think we should provide pre-compiled binaries for windows at least, so yes I think it will happen, either when I find the time or if someone else takes it on. |
I'm glad there's agreement that it should happen, that's positive at least. I'd love to say I would do it, but it's not really my area of expertise (yet). |
I've had mixed luck building it on Open Shift (Red Hat's cloud), precompiled binaries that target RHEL/Fedora wouldn't be helpful. |
update on this: I'd still like to provide windows binaries, but we need to devise a solid way to do this that:
If anyone has ideas or best practices from other modules please share. |
I have an idea. You could have some preinstall npm script that checks Alternatively you could use |
@Mithgol - great ideas. I like the idea of doing it in |
This all sounds really exciting, but are you only planning to add builds for windows? Ideally, the builds would be available for all common platforms with a switch to build if you want to. |
I plan to take a look at hosting binaries on s3 and writing a custom gyp action to, by default/prefer, downloading those precompiled binaries. Some option like |
Why is is to hard to provide a binary? |
@sirber - working on it. Can you provide details about what platform and architecture you are seeking a binary for? |
win64 please :) |
win7 32bits :) |
Okay, progress on this. First a summary of research I did before starting to code this (which I will describe in the next post):
|
|
Okay, I've pushed binaries for 32/64 arch + node v0.10.x + windows/mac/linux which tool me about 1 hour of booting up different VM's that I personally pay for, creating a node v0.10.x build environment, and creating and testing the builds. These only work via a custom branch right now. Please test by doing: git clone -b pre-built https://github.com/developmentseed/node-sqlite3.git
cd node-sqlite3
npm install mocha
npm test
uname -a Report your results (if any failures) to a gist and then link here. If things work then provide your |
Next steps:
|
Architecture: Linux vagrant-ubuntu-precise-64 3.2.0-43-generic #68-Ubuntu SMP Wed May 15 03:33:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux |
Architecture: Darwin unknown-28:37:37:1c:af:ce-2.home 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan 6 22:37:10 PST 2013; root:xnu-2050.22.13~1/RELEASE_X86_64 x86_64 (Macbook air) |
Architecture: Darwin Gabors-iMac.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May 1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64 (iMac 27", mac osx 10.8.4) |
Architecture: Darwin unknown-28-cf-e9-48-fb-7f.home 12.4.0 Darwin Kernel Version 12.4.0: Wed May 1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64 |
Thanks everyone for helping test! Based on these reports it looks the binaries basically all work. The caveat was 64 bit mac I made a mistake and shipped the 32 bit version in the 64 bit folder: Just just fixed this in 1b6d489. The test failures @calvinmetcalf hit can be explained by running a version of node old enough that I did not provide a binary yet and a test timeout (which is common on underpowered systems and not a big deal). |
I think I had an out of date version of linux but yes I agree that you should't bother to support that. Thanks for all the hard work |
Thank you!!! J |
Architecture: MINGW32_NT-6.1 HORUS 1.0.12(0.46/3/2) 2011-07-20 17:52 i686 unknown (windows 7 x64 ultimate) Result: failed to find module |
@cobbspur - thanks for the error report. I'll try to research this and figure out what might be wrong. Are you around tomorrow/tuesday if I have ideas of a few other things to test? |
@cobbspur - here is a couple things that would be great if you could try:
python -c "import ctypes as c;c.CDLL('bin/win32-x64-v8-3.14/node_sqlite3.node')"
|
Thanks @cobbspur - I have no idea what is wrong, but I'm sure if I can find some leads these screenshots will help. |
New progress in Available binaries can be viewed here: http://node-sqlite3.s3.amazonaws.com/index.html To test do: git clone -b remote-binary https://github.com/developmentseed/node-sqlite3.git
cd node-sqlite3
npm install
npm install mocha
npm test |
now storing todo's before tagging and making this live here: https://github.com/developmentseed/node-sqlite3/blob/remote-binary/build.js#L5-L14 |
There are no words to express how nicely this works, so: 🍰 🌈 🎈 🍰 ⭐ 🎈 🍩 🌈 ⭐ 🎈 🍩 🌈 🎈 🍰 Here's the full gist for Win 7 home 64bit |
Mac OS X 10.8 |
win7x 64 ultimate as previous no probs found |
Worked perfectly on my 64bit macbook air and 32bit Windows XP machines as well. |
Just changed the binary naming approach to imprive, so now a few binaries are missing. I don't have access to a windows machine for the next several weeks, so @ErisDS I will plan to look to you to create windows binaries when I give you the word. Hopefully early next week, if not the next. |
update: I was able to re-purpose the previous set of windows binaries against node v0.10.x under my new naming scheme. Just uploaded them, so pulling from the |
work on this is now staged in the |
note: all work has been merged and tagged. |
🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 🎈 |
using version 2.1.19 i'm not getting the prebuilt binaries on npm install, are these available in this version? i should note, that npm install is being run from a directory which has sqlite3 as a dependency in the package.json |
Can you post your install log to a new issue and I will take a look at why binaries are not being installed. On Feb 17, 2014, at 9:23 AM, allouis notifications@github.com wrote:
|
Hey just retested on a windows machine and all seems to be working. |
I am experiencing a problem with the link to pre-compiled binaries provided here and from the documentation. The page just says "loading..." but it never does. If I bring up Chrome developer tools there are two errors:
I tried switching to http to get rid of the mixed content warning (not that that's a good solution!), but it automatically re-directs to https. Is there a new updated URL to obtain the binaries? Also, are there pre-compiled binaries with sqlcipher support? I'm trying to get this working in Windows 10 and the pre-requisites are ridiculous. I'm sure a lot of people would appreciate not having to go through this. UPDATE: I got around this problem by using a different browser and bypassing the mixed content issue, but as I don't see any precompiled binaries for it my above question regarding sqlcipher support stands |
Currently
npm install sqlite3
requires building node-sqlite3 from the source with node-gyp (on Windows the prerequisites are Python and MSVC, the latter is huge).To get rid of this requirement (and thus to attract more end users and less building-related issues reported), please accomplish the following:
binding.gyp
in.npmignore
, otherwise npm will still attempt to build from the source. (Do not forget to add some contents of.gitignore
to.npmignore
when you create the latter, but only some: npm should not ignore the binaries.).gitignore
to prevent them from being hosted on GitHub. (This step is necessary only if you hate mixing sources with binaries. This step may also be completed already if you build inbuild/
, which is currently in.gitignore
.)After that
npm install sqlite3
would involve only downloading and unpacking, and thus would just work.The text was updated successfully, but these errors were encountered: