-
-
Notifications
You must be signed in to change notification settings - Fork 815
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
'npm install sqlite3' fails on Debian Squeeze #30
Comments
it also doesnt work with any other libev since lenny (libev 3.43) until sid (libev 4.04) with the same error. all define ev_invoke as void ev_invoke(ev_loop*, void*, int) in /usr/include/ev.h I'm very interested in finding out what libev version is required so that ev_invoke accepts ev_async* as the first argument? |
solved it. the issue is, that debian distributes libev with EV_MULTIPLICITY enabled. this means that the ev_invoke function takes three parameters instead of the two provided in src/async.h where the first parameter is an ev_loop. the author of node-sqlite seems to use a libev with EV_MULTIPLICITY disabled. to make it work with both EV_MULTIPLICITY settings, one has to use the EV_DEFAULT_UC_ macro like this: --- a/src/async.h
+++ b/src/async.h
@@ -53,7 +53,7 @@ public:
}
inline ~Async() {
- ev_invoke(&watcher, ev_async_pending(&watcher));
+ ev_invoke(EV_DEFAULT_UC_ &watcher, ev_async_pending(&watcher));
pthread_mutex_destroy(&mutex);
ev_async_stop(EV_DEFAULT_UC_ &watcher);
} |
Yep, looks like that fixes it! |
dude - why would you close a bugreport if it is not yet fixed??? |
lol, totally hit the wrong button :D |
cool! now lets just hope that Konstantin is not too annoyed by all this spam in his inbox ^^ |
Sorry, this went under on my notifications page :/ I've been able to compile node-sqlite3 on lenny just fine, but since that code is what is implied anyway, I just committed this change in 6127c75 and published v2.0.14. |
[1/4] cxx: src/sqlite3.cc -> build/default/src/sqlite3_1.o
[2/4] cxx: src/database.cc -> build/default/src/database_1.o
[3/4] cxx: src/statement.cc -> build/default/src/statement_1.o
In file included from ../src/database.h:12,
from ../src/sqlite3.cc:8:
../src/async.h: In destructor ‘Async<Item, Parent>::~Async()’:
../src/async.h:56: error: cannot convert ‘ev_async_’ to ‘ev_loop_’ for argument ‘1’ to ‘void ev_invoke(ev_loop_, void_, int)’
In file included from ../src/database.h:12,
from ../src/database.cc:7:
../src/async.h: In destructor ‘Async<Item, Parent>::~Async()’:
../src/async.h:56: error: cannot convert ‘ev_async_’ to ‘ev_loop_’ for argument ‘1’ to ‘void ev_invoke(ev_loop_, void_, int)’
../src/async.h: In destructor ‘Async<Item, Parent>::~Async() [with Item = std::basic_string<char, std::char_traits, std::allocator >, Parent = node_sqlite3::Database]’:
../src/database.h:117: instantiated from here
../src/async.h:56: error: cannot convert ‘ev_async_’ to ‘ev_loop_’ for argument ‘1’ to ‘void ev_invoke(ev_loop_, void_, int)’
../src/async.h: In destructor ‘Async<Item, Parent>::~Async() [with Item = std::basic_string<char, std::char_traits, std::allocator >, Parent = node_sqlite3::Database]’:
../src/database.h:117: instantiated from here
../src/async.h:56: error: cannot convert ‘ev_async_’ to ‘ev_loop_’ for argument ‘1’ to ‘void ev_invoke(ev_loop_, void_, int)’
In file included from ../src/database.h:12,
from ../src/statement.cc:9:
../src/async.h: In destructor ‘Async<Item, Parent>::~Async()’:
../src/async.h:56: error: cannot convert ‘ev_async_’ to ‘ev_loop_’ for argument ‘1’ to ‘void ev_invoke(ev_loop_, void_, int)’
../src/async.h: In destructor ‘Async<Item, Parent>::~Async() [with Item = node_sqlite3::Database::ProfileInfo, Parent = node_sqlite3::Database]’:
../src/database.cc:389: instantiated from here
../src/async.h:56: error: cannot convert ‘ev_async_’ to ‘ev_loop_’ for argument ‘1’ to ‘void ev_invoke(ev_loop_, void_, int)’
../src/async.h: In destructor ‘Async<Item, Parent>::~Async() [with Item = node_sqlite3::Database::UpdateInfo, Parent = node_sqlite3::Database]’:
../src/database.cc:429: instantiated from here
../src/async.h:56: error: cannot convert ‘ev_async_’ to ‘ev_loop_’ for argument ‘1’ to ‘void ev_invoke(ev_loop_, void_, int)’
../src/async.h: In destructor ‘Async<Item, Parent>::~Async() [with Item = std::basic_string<char, std::char_traits, std::allocator >, Parent = node_sqlite3::Database]’:
../src/database.h:117: instantiated from here
../src/async.h:56: error: cannot convert ‘ev_async_’ to ‘ev_loop_’ for argument ‘1’ to ‘void ev_invoke(ev_loop_, void_, int)’
Waf: Leaving directory `/home/qbit/golphie/node_modules/sqlite3/build'
Build failed:
-> task failed (err #1):
{task: cxx sqlite3.cc -> sqlite3_1.o}
-> task failed (err #1):
{task: cxx database.cc -> database_1.o}
-> task failed (err #1):
{task: cxx statement.cc -> statement_1.o}
npm log here: https://gist.github.com/1078137
EDIT: Added error messages.
The text was updated successfully, but these errors were encountered: