Skip to content
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

No compatible binary found when trying to update Meteor to 1.3.2 #23

Open
OMFG5716 opened this issue May 10, 2016 · 13 comments
Open

No compatible binary found when trying to update Meteor to 1.3.2 #23

OMFG5716 opened this issue May 10, 2016 · 13 comments

Comments

@OMFG5716
Copy link

=> Errors while initializing project:

While checking for okland:accounts-phone@0.0.19:
error: No compatible binary build found for this package. Contact the package author and ask them to publish it for your platform.

@kenlane33
Copy link

Same issue. Same error.
Fixed that with:
meteor add okland:accounts-phone@0.0.21
(The default is 0.0.19, if I recall correctly.)

This version moved me to the next error:

>>>>>>>>: ken$ meteor add okland:accounts-phone@0.0.21
 => Errors while adding packages:                                                           
While selecting package versions:
error: Conflict: Constraint npm-bcrypt@=0.7.8_2 is not satisfied by npm-bcrypt 0.8.5.
Constraints on package "npm-bcrypt":
* npm-bcrypt@0.8.5 <- accounts-password 1.1.8
* npm-bcrypt@=0.7.8_2 <- okland:accounts-phone 0.0.21

In my case I no longer needed accounts-password, just whatever useraccounts-core wants under the hood, so then I:

>>>>>>>>: ken$ meteor remove accounts-password
Changes to your project's package version selections:
accounts-password  removed from your project  
email              removed from your project
npm-bcrypt         removed from your project // <<<<<<< The nefarious, ornery culprit !
sha                removed from your project
srp                removed from your project
accounts-password: removed dependency         

>>>>>>>>: ken$ meteor add okland:accounts-phone@0.0.21
Changes to your project's package version selections:
email                  added, version 1.0.12  
npm-bcrypt             added, version 0.7.8_2
okland:accounts-phone  added, version 0.0.21
sha                    added, version 1.0.7
srp                    added, version 1.0.8

okland:accounts-phone: A login service based on mobile phone number, For Meteor.
SZL-Mac-Pro:SocialMe ken$

Working!!!
For this case.

I reckon accounts-phone might survive with npm-bcrypt@0.8.5, (bumped up from 0.7.8_2) but deadlines loom and I've not yet had the pleasure of forking and experimenting just yet.

@OMFG5716
Copy link
Author

OMFG5716 commented May 24, 2016

meteor update
Update to release METEOR@1.3.2.4 is impossible:
While selecting package versions:
error: Conflict: Constraint npm-bcrypt@0.8.5 is not satisfied by npm-bcrypt 0.7.8_2.
Constraints on package "npm-bcrypt":

  • npm-bcrypt@0.8.5 <- accounts-password 1.1.8
  • npm-bcrypt@=0.7.8_2 <- okland:accounts-phone 0.0.21

This project is at the latest release which is compatible with your current package constraints.
Your top-level dependencies are at their latest compatible versions.

Yup! I did get to this part. Bcrypt algo's package is indeed the culprit lol. But I am afraid, in my case I do need accounts-password working along with accounts-phone.

@kenlane33 Thanks for the tip, to append the version constraint to 'meteor add' on accounts-phone!

@kenlane33
Copy link

So I ended up needing accounts-password, too.
Manually adding a forked package is so tricky to pass around to the team that I made a naughty duplicate atmosphere package:

kenlane22:accounts-phone

The only thing I changed was to bump the version of bcrypt so that it works with accounts-password.
There is quite likely a much better next step (umm pull request for fork?) than my quick fix, but you are welcome to use that one if you like.
Now it is as simple as:

meteor add accounts-password
meteor add kenlane22:accounts-phone@0.0.21

Tested:

>>>>>>>>> meteor create ick
Created a new Meteor app in 'ick'.            
To run your new app:                          
  cd ick                                      
  meteor                                      
If you are new to Meteor, try some of the learning resources here:
  https://www.meteor.com/learn                
>>>>>>>>> cd ick              
>>>>>>>>> meteor add accounts-password                           
Changes to your project's package version selections:
accounts-base          added, version 1.2.7   
accounts-password      added, version 1.1.8
ddp-rate-limiter       added, version 1.0.4
email                  added, version 1.0.12
localstorage           added, version 1.0.9
npm-bcrypt             added, version 0.8.5
rate-limit             added, version 1.0.4
service-configuration  added, version 1.0.9
sha                    added, version 1.0.7
srp                    added, version 1.0.8
accounts-password: Password support for accounts
>>>>>>>>> meteor add kenlane22:accounts-phone@0.0.21                                              
Changes to your project's package version selections:
kenlane22:accounts-phone  added, version 0.0.21
kenlane22:accounts-phone: A login service based on mobile phone number, For Meteor.
>>>>>>>>> 

Really I just bumped

api.use('npm-bcrypt@=0.7.8_2', 'server');

to

api.use('npm-bcrypt@=0.8.5', 'server');

in package.js.

@lawrentiy
Copy link

Hi, @kenlane33 ! Thanks for answer!
Can you update npm-bcrypt up to 0.8.6_1 ?
Thanks!

@kenlane33
Copy link

Done!
So kenlane22:accounts-phone@0.0.22 now has npm-bcrypt@=0.8.6_1
meteor add kenlane22:accounts-phone@0.0.22
I suppose you can drop the @0.0.22 here since you want the latest version.
The version number change to bcrypt is the only mod I made to okland's excellent project.
Okland's original
Let me know if that worked or not.
Atmosphere page
-Ken =]

@lawrentiy
Copy link

Great! Thanx! I don`t like fork and multiply packages :)
Hope, @okland will update that package....

@jwangkasa
Copy link

jwangkasa commented Sep 5, 2016

I am newbie trying to learn on how to do Angular MeteorJS whatsapp tutorial.

I have an issue on the authentication, can you help me?
=> Errors while adding packages:

While selecting package versions:
error: Conflict: Constraint npm-bcrypt@=0.7.8_2 is not satisfied by npm-bcrypt
0.9.1.
Constraints on package "npm-bcrypt":

  • npm-bcrypt@0.7.8_2 <- top level
  • npm-bcrypt@0.9.0 <- accounts-password 1.3.0
  • npm-bcrypt@=0.7.8_2 <- okland:accounts-phone 0.0.21

I tried to do meteor remove npm-bcrypt and then reinstall using specific version:
meteor add npm-bcrypt@0.7.8_2 and then I re-run the meteor add okland:accounts-phone@0.0.21
however I faced the same issues...

Appreciate your help...

@kenlane33 Appreciate your input here...

When I tried your ics format, I received the following errors:
=> Errors while parsing arguments:

While adding package kenlande22:accounts-phone@0.0.21:
error: no such package

SINM50932177A:ick XXXXXX$ meteor add okland:accounts-phone@0.0.21
=> Errors while adding packages:

While selecting package versions:
error: Potentially incompatible change required to top-level dependency:
accounts-password 1.1.7, was 1.3.0.
Constraints on package "accounts-password":

To allow potentially incompatible changes to top-level dependencies, you must
pass --allow-incompatible-update on the command line.

DIRECTORY$$$$$:ick XXXXXX$ meteor add okland:accounts-phone@0.0.21 --allow-incompatible-update
=> Errors while adding packages:

While loading package npm-bcrypt@0.7.8_2:
error: Command failed:
/Users/XXXXXX/.meteor/packages/meteor-tool/.1.4.1_1.1h0re2h++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/npm
rebuild --no-bin-links --update-binary
../src/bcrypt_node.cc:54:18: error: no member named 'Dispose' in
'v8::Persistent<v8::Function, v8::NonCopyablePersistentTraitsv8::Function

'
callback.Dispose();

../src/bcrypt_node.cc:128:19: error: unknown type name 'uv_work_t'
void GenSaltAsync(uv_work_t* req) {
^
../src/bcrypt_node.cc:137:24: error: unknown type name 'uv_work_t'
void GenSaltAsyncAfter(uv_work_t* req) {
^
../src/bcrypt_node.cc:138:17: error: calling a protected constructor of class
'v8::HandleScope'
HandleScope scope;
^
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:885:13: note: declared
protected here
V8_INLINE HandleScope() {}
^
../src/bcrypt_node.cc:146:44: error: no member named 'New' in
'v8::String'
argv[0] =
Exception::Error(String::New(baton->error.c_str()));
~~~~~~~~^
../src/bcrypt_node.cc:147:19: error: no matching function for call to
'Undefined'
argv[1] = Undefined();
^~~~~~~~~
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:315:27: note: candidate
function not viable: requires single argument 'isolate', but no arguments were
provided
friend Local<Primitive> Undefined(Isolate* isolate);
^
../src/bcrypt_node.cc:150:19: error: no matching function for call to
'Undefined'
argv[0] = Undefined();
^~~~~~~~~
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:315:27: note: candidate
function not viable: requires single argument 'isolate', but no arguments were
provided
friend Local<Primitive> Undefined(Isolate* isolate);
^
../src/bcrypt_node.cc:151:19: warning: 'Encode' is deprecated: Use
Encode(isolate, ...) [-Wdeprecated-declarations]
argv[1] = Encode(baton->salt.c_str(), baton->salt.size(),
BINARY);
^
/Users/XXXXXX/.node-gyp/4.5.0/include/node/node.h:300:45: note: 'Encode' has
been explicitly marked deprecated here
inline v8::Local<v8::Value> Encode(
^
../src/bcrypt_node.cc:156:20: error: member reference type
'v8::Persistent<v8::Function>' is not a pointer; did you mean to use '.'?
baton->callback->Call(Context::GetCurrent()->Global(), 2, argv);
~~~~~~~~~~~~~~~^~
.
../src/bcrypt_node.cc:156:22: error: no member named 'Call' in
'v8::Persistent<v8::Function, v8::NonCopyablePersistentTraits<v8::Function>
'
baton->callback->Call(Context::GetCurrent()->Global(), 2, argv);
~~~~~~~~~~~~~~~  ^
../src/bcrypt_node.cc:156:36: error: no member named 'GetCurrent' in
'v8::Context'
baton->callback->Call(Context::GetCurrent()->Global(), 2,
argv);
~~~~~~~~~^
../src/bcrypt_node.cc:159:9: warning: 'FatalException' is deprecated: Use
FatalException(isolate, ...) [-Wdeprecated-declarations]
FatalException(try_catch);
^
/Users/XXXXXX/.node-gyp/4.5.0/include/node/node.h:284:29: note:
'FatalException' has been explicitly marked deprecated here
inline void FatalException(const v8::TryCatch& try_catch)
{
^
../src/bcrypt_node.cc:164:34: error: unknown type name 'Arguments'; did you
mean 'v8::internal::Arguments'?
Handle<Value> GenerateSalt(const Arguments &args)
{
^~~~~~~~~
v8::internal::Arguments
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:139:7: note:
'v8::internal::Arguments' declared here
class Arguments;
^
../src/bcrypt_node.cc:165:17: error: calling a protected constructor of class
'v8::HandleScope'
HandleScope scope;
^
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:885:13: note: declared
protected here
V8_INLINE HandleScope() {}
^
../src/bcrypt_node.cc:167:13: error: member access into incomplete type 'const
v8::internal::Arguments'
if (args.Length() < 3) {
^
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:139:7: note: forward
declaration of 'v8::internal::Arguments'
class Arguments;
^
../src/bcrypt_node.cc:168:60: error: no member named 'New' in
'v8::String'
return ThrowException(Exception::TypeError(String::New("3 arguments
expected")));
~~~~~~~~^
../src/bcrypt_node.cc:171:34: error: type 'const v8::internal::Arguments' does
not provide a subscript operator
if (!Buffer::HasInstance(args[1]) || Buffer::Length(args[1].As<Object>()) !=
16) {
~~~~^~
../src/bcrypt_node.cc:171:61: error: type 'const v8::internal::Arguments' does
not provide a subscript operator
if (!Buffer::HasInstance(args[1]) || Buffer::Length(args[1].As<Object>()) !=
16) {
~~~~^~
../src/bcrypt_node.cc:171:68: error: 'Object' does not refer to a value
if (!Buffer::HasInstance(args[1]) || Buffer::Length(args[1].As<Object>()) !=
16) {
^
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:2587:17: note: declared here
class V8_EXPORT Object : public Value {
^
../src/bcrypt_node.cc:171:76: error: expected expression
if (!Buffer::HasInstance(args[1]) || Buffer::Length(args[1].As<Object>()) !=
16)
{
^
../src/bcrypt_node.cc:172:60: error: no member named 'New' in
'v8::String'
return ThrowException(Exception::TypeError(String::New("Second argument must be
a 16 byte Buffer")));
~~~~~~~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
2 warnings and 20 errors generated.
make: *** [Release/obj.target/bcrypt_lib/src/bcrypt_node.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit
(/Users/XXXXXX/.meteor/packages/meteor-tool/.1.4.1_1.1h0re2h++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit
(internal/child_process.js:200:12)
gyp ERR! System Darwin 15.6.0
gyp ERR! command
"/Users/XXXXXX/.meteor/packages/meteor-tool/.1.4.1_1.1h0re2h++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/node"
"/Users/XXXXXX/.meteor/packages/meteor-tool/.1.4.1_1.1h0re2h++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"
"rebuild"
gyp ERR! cwd
/Users/XXXXXX/.meteor/packages/npm-bcrypt/.0.7.8_2.1twvxy8++os.osx.x86_64+web.browser+web.cordova/npm/node_modules/.temp-12nmw8r/node_modules/bcrypt
gyp ERR! node -v v4.5.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 

npm ERR! Darwin 15.6.0
npm ERR! argv
"/Users/XXXXXX/.meteor/packages/meteor-tool/.1.4.1_1.1h0re2h++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/node"
"/Users/XXXXXX/.meteor/packages/meteor-tool/.1.4.1_1.1h0re2h++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/npm"
"rebuild" "--no-bin-links" "--update-binary"
npm ERR! node v4.5.0
npm ERR! npm v3.10.6
npm ERR! code ELIFECYCLE
npm ERR! bcrypt@0.7.8 install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@0.7.8 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs bcrypt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls bcrypt
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!
/Users/XXXXXX/.meteor/packages/npm-bcrypt/.0.7.8_2.1twvxy8++os.osx.x86_64+web.browser+web.cordova/npm/node_modules/.temp-12nmw8r/npm-debug.log
../src/bcrypt_node.cc:54:18: error: no member named 'Dispose' in
'v8::Persistent<v8::Function, v8::NonCopyablePersistentTraitsv8::Function

'
callback.Dispose();

../src/bcrypt_node.cc:128:19: error: unknown type name 'uv_work_t'
void GenSaltAsync(uv_work_t* req) {
^
../src/bcrypt_node.cc:137:24: error: unknown type name 'uv_work_t'
void GenSaltAsyncAfter(uv_work_t* req) {
^
../src/bcrypt_node.cc:138:17: error: calling a protected constructor of class
'v8::HandleScope'
HandleScope scope;
^
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:885:13: note: declared
protected here
V8_INLINE HandleScope() {}
^
../src/bcrypt_node.cc:146:44: error: no member named 'New' in
'v8::String'
argv[0] =
Exception::Error(String::New(baton->error.c_str()));
~~~~~~~~^
../src/bcrypt_node.cc:147:19: error: no matching function for call to
'Undefined'
argv[1] = Undefined();
^~~~~~~~~
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:315:27: note: candidate
function not viable: requires single argument 'isolate', but no arguments were
provided
friend Local<Primitive> Undefined(Isolate* isolate);
^
../src/bcrypt_node.cc:150:19: error: no matching function for call to
'Undefined'
argv[0] = Undefined();
^~~~~~~~~
/Users/XXXXXX/.node-gyp/4.5.0/include/node/v8.h:315:27: note: candidate
function not viable: requires single argument 'isolate', but no arguments were
provided
friend Local<Primitive> Undefined(Isolate* isolate);
^
../src/bcrypt_node.cc:151:19: warning: 'Encode' is deprecated: Use
Encode(isolate, ...) [-Wdeprecated-declarations]
argv[1] = Encode(baton->salt.c_str(), baton->salt.size(),
BINARY);
^
/Users/XXXXXX/.node-gyp/4.5.0/include/node/node.h:300:45: note: 'Encode' has
been explicitly marked deprecated here
inline v8::Local<v8::Value> Encode(
^
../src/bcrypt_node.cc:156:20: error: member reference type
'v8::Persistent<v8::Function>' is not a pointer; did you mean to use '.'?
baton->callback->Call(Context::GetCurrent()->Global(), 2, argv);
~~~~~~~~~~~~~~~^~
.
../src/bcrypt_node.cc:156:22: error: no member named 'Call' in
'v8::Persistent<v8::Function, v8::NonCopyablePersistentTraits<v8::Function>
'
baton->callback->Call(Context::GetCurrent()->Global(), 2, argv);
~~~~~~~~~~~~~~~  ^
../src/bcrypt_node.cc:156:36: error: no member named 'GetCurrent' in
'v8::Context'
baton->callback->Call(Context::GetCurrent()->Global(), 2,
argv);
~~~~~~~~~^
../src/bcrypt_node.cc:159:9: warning: 'FatalException' is deprecated: Use
FatalException(isolate, ...) [-Wdeprecated-declarations]
FatalException(try_catch);
^
/Users/i311571/.node-gyp/4.5.0/include/node/node.h:284:29: note:
'FatalException' has been explicitly marked deprecated here
inline void FatalException(const v8::TryCatch& try_catch)
{
^
../src/bcrypt_node.cc:164:34: error: unknown type name 'Arguments'; did you
mean 'v8::internal::Arguments'?
Handle<Value> GenerateSalt(const Arguments &args)
{
^~~~~~~~~
v8::internal::Arguments
.......

"rebuild" "--no-bin-links" "--update-binary"
npm ERR! node v4.5.0
npm ERR! npm v3.10.6
npm ERR! code ELIFECYCLE
npm ERR! bcrypt@0.7.8 install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@0.7.8 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs bcrypt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls bcrypt
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!
/Users/XXXXXX/.meteor/packages/npm-bcrypt/.0.7.8_2.1twvxy8++os.osx.x86_64+web.browser+web.cordova/npm/node_modules/.temp-12nmw8r/npm-debug.log

@kenlane33
Copy link

I haven't tried it in a while, but you could check out the version bump I did:
meteor add kenlane22:accounts-phone@0.0.22
As long as accounts-password hasn't moved along, it might work.
If it gives trouble and wants a new version, let me know and I'll bump the bcrypt version again. Or you could! I'll happily switch to using jwangkasa:accounts-phone@0.0.23 :)
I'm pretty green myself, but trying to crack my knuckles when time allows.
I suspect there is a smarter fix than all this manual patching and dream of one of the great_ones weighing in on this. @UriGoldshtein could know of a mystic npm solution, perhaps? Or something simpler that I'm just not getting?
Anyhoo, let me know if `0.0.22`` helps or not.
-Ken =]

@jwangkasa
Copy link

@kenlane33

Thank you on your quick reply. Wow... your solution works as a magic.

Just curious mate... how did you force the downgrade the npm-bcrypt to 0.8.6_1 (would like to learn this 👍 )

accounts-base added, version 1.1.3
email added, version 1.0.16
kenlane22:accounts-phone added, version 0.0.22
localstorage added, version 1.0.11
npm-bcrypt downgraded from 0.9.1 to 0.8.6_1
service-configuration added, version 1.0.3
sha added, version 1.0.8
srp added, version 1.0.9

@kenlane33
Copy link

In brief:

  1. Fork okland:accounts-phone and pull it to your machine for editing
  2. Edit the package.js file
  3. Rename the prefix of the name: to your Atmosphere username.
    Example: name : 'kenlane22:accounts-phone',
  4. Bump the version number of the package itself.
  5. Edit the line: api.use('npm-bcrypt@=0.8.6_1', 'server'); to use the version you prefer.
  6. Publish the package to Atmosphere. ``meteor publish`
  7. cd back to your project
  8. `meteor remove ____`` whatever you had before (if needed)
  9. meteor add ____ your new package to grab it from ye olde Atmosphere

Effectively, I just changed the version of the one line in #5. The rest is the hand jive to get it in place.

Also, an over-abundance of detail on package publishing is here.

-Ken =]

@marnibrewster
Copy link

@kenlane33 Thanks for the version bump! Worked for me!

@littledumb
Copy link

@kenlane33 Thanks! You saved my day.

@gregory
Copy link

gregory commented Oct 18, 2016

Ran into the same issue, caused by npm-bcrypt being at 0.7.8_2.
Fixed the issue by upgrading npm-bcrypt to latest, but then ran into this issue on heroku.
Downgrading to 0.8.6_1 fixed it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants