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

Install fails on M1 mac, likely due to better-sqlite3 issue #18

Closed
naupaka opened this issue Nov 12, 2022 · 7 comments
Closed

Install fails on M1 mac, likely due to better-sqlite3 issue #18

naupaka opened this issue Nov 12, 2022 · 7 comments

Comments

@naupaka
Copy link

naupaka commented Nov 12, 2022

Thanks for the great workflow!

See WiseLibs/better-sqlite3#870

I can't install better-sqlite3 with npm install better-sqlite3 but it does work with npm install WiseLibs/better-sqlite3#pull/870/head as recommended on the PR above.

I think this may resolve itself once they merge that PR. In the meantime, is there a way to have alfred-search-omnifocus use the specific installation of better-sqlite3 instead of the normal one?

My installation error:

$ npm install --global alfred-search-omnifocus
npm WARN deprecated xmldom@0.1.31: Deprecated due to CVE-2021-21366 resolved in 0.5.0
npm ERR! code 1
npm ERR! path /opt/homebrew/lib/node_modules/alfred-search-omnifocus/node_modules/better-sqlite3
npm ERR! command failed
npm ERR! command sh -c prebuild-install || npm run build-release
npm ERR! > better-sqlite3@7.6.2 build-release
npm ERR! > node-gyp rebuild --release
npm ERR!
npm ERR!   TOUCH ba23eeee118cd63e16015df367567cb043fed872.intermediate
npm ERR!   ACTION deps_sqlite3_gyp_locate_sqlite3_target_copy_builtin_sqlite3 ba23eeee118cd63e16015df367567cb043fed872.intermediate
npm ERR!   TOUCH Release/obj.target/deps/locate_sqlite3.stamp
npm ERR!   CC(target) Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o
npm ERR!   LIBTOOL-STATIC Release/sqlite3.a
npm ERR!   CXX(target) Release/obj.target/better_sqlite3/src/better_sqlite3.o
npm ERR! rm ba23eeee118cd63e16015df367567cb043fed872.intermediate
npm ERR! prebuild-install warn install No prebuilt binaries found (target=19.0.1 runtime=node arch=arm64 libc= platform=darwin)
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.3.0
npm ERR! gyp info using node@19.0.1 | darwin | arm64
npm ERR! gyp info find Python using Python version 3.10.8 found at "/opt/homebrew/opt/python@3.10/bin/python3.10"
npm ERR! gyp info spawn /opt/homebrew/opt/python@3.10/bin/python3.10
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/opt/homebrew/lib/node_modules/alfred-search-omnifocus/node_modules/better-sqlite3/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/Users/naupaka/Library/Caches/node-gyp/19.0.1',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/Users/naupaka/Library/Caches/node-gyp/19.0.1/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/opt/homebrew/lib/node_modules/alfred-search-omnifocus/node_modules/better-sqlite3',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! In file included from ../src/better_sqlite3.cpp:4:
npm ERR! In file included from ./src/better_sqlite3.lzz:11:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/node.h:73:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8.h:24:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-array-buffer.h:12:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-local-handle.h:12:
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:461:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! SHARED_EXTERNAL_POINTER_TAGS(CHECK_SHARED_EXTERNAL_POINTER_TAGS)
npm ERR!                              ^
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:461:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:461:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:461:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:461:30: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! PER_ISOLATE_EXTERNAL_POINTER_TAGS(CHECK_NON_SHARED_EXTERNAL_POINTER_TAGS)
npm ERR!                                   ^
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:462:35: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:643:61: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR!     static_assert(kJSObjectType + 1 == kFirstJSApiObjectType);
npm ERR!                                                             ^
npm ERR!                                                             , ""
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:644:55: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR!     static_assert(kJSObjectType < kLastJSApiObjectType);
npm ERR!                                                       ^
npm ERR!                                                       , ""
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-internal.h:645:63: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
npm ERR!     static_assert(kFirstJSApiObjectType < kLastJSApiObjectType);
npm ERR!                                                               ^
npm ERR!                                                               , ""
npm ERR! In file included from ../src/better_sqlite3.cpp:4:
npm ERR! In file included from ./src/better_sqlite3.lzz:11:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/node.h:73:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8.h:24:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-array-buffer.h:13:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-object.h:9:
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-maybe.h:106:45: error: no template named 'is_lvalue_reference_v' in namespace 'std'; did you mean 'is_lvalue_reference'?
npm ERR!   template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
npm ERR!                                        ~~~~~^~~~~~~~~~~~~~~~~~~~~
npm ERR!                                             is_lvalue_reference
npm ERR! /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/type_traits:910:29: note: 'is_lvalue_reference' declared here
npm ERR! struct _LIBCPP_TEMPLATE_VIS is_lvalue_reference : _BoolConstant<__is_lvalue_reference(_Tp)> { };
npm ERR!                             ^
npm ERR! In file included from ../src/better_sqlite3.cpp:4:
npm ERR! In file included from ./src/better_sqlite3.lzz:11:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/node.h:73:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8.h:24:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-array-buffer.h:13:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-object.h:9:
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-maybe.h:106:69: error: expected '(' for function-style cast or type construction
npm ERR!   template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*>
npm ERR!                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-maybe.h:123:43: error: no template named 'is_lvalue_reference_v' in namespace 'std'; did you mean 'is_lvalue_reference'?
npm ERR! template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
npm ERR!                                      ~~~~~^~~~~~~~~~~~~~~~~~~~~
npm ERR!                                           is_lvalue_reference
npm ERR! /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/type_traits:910:29: note: 'is_lvalue_reference' declared here
npm ERR! struct _LIBCPP_TEMPLATE_VIS is_lvalue_reference : _BoolConstant<__is_lvalue_reference(_Tp)> { };
npm ERR!                             ^
npm ERR! In file included from ../src/better_sqlite3.cpp:4:
npm ERR! In file included from ./src/better_sqlite3.lzz:11:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/node.h:73:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8.h:24:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-array-buffer.h:13:
npm ERR! In file included from /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-object.h:9:
npm ERR! /Users/naupaka/Library/Caches/node-gyp/19.0.1/include/node/v8-maybe.h:123:67: error: expected '(' for function-style cast or type construction
npm ERR! template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
npm ERR!                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
npm ERR! ./src/util/macros.lzz:157:21: error: no member named 'AccessorSignature' in namespace 'v8'
npm ERR!                 v8::AccessorSignature::New(isolate, recv)
npm ERR!                 ~~~~^
npm ERR! ./src/objects/database.lzz:180:21: warning: variable 'status' set but not used [-Wunused-but-set-variable]
npm ERR!                 int status = sqlite3_db_config(db_handle, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, 1, NULL);
npm ERR!                     ^
npm ERR! ./src/util/binder.lzz:37:51: error: no member named 'CreationContext' in 'v8::Object'
npm ERR!                 v8::Local<v8::Context> ctx = obj->CreationContext();
npm ERR!                                              ~~~~~^
npm ERR! 20 warnings and 6 errors generated.
npm ERR! make: *** [Release/obj.target/better_sqlite3/src/better_sqlite3.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:203:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:293:12)
npm ERR! gyp ERR! System Darwin 21.6.0
npm ERR! gyp ERR! command "/opt/homebrew/Cellar/node/19.0.1/bin/node" "/opt/homebrew/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
npm ERR! gyp ERR! cwd /opt/homebrew/lib/node_modules/alfred-search-omnifocus/node_modules/better-sqlite3
npm ERR! gyp ERR! node -v v19.0.1
npm ERR! gyp ERR! node-gyp -v v9.3.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/naupaka/.npm/_logs/2022-11-12T04_40_57_549Z-debug-0.log
@rhydlewis
Copy link
Owner

I saw a similar (possibly same?) issue when I tried to install the workflow on a new Mac with the latest node.js version installed (at the time of writing 19.0.1). Installing the LTS version — 18.12.1 — via nvm and switching to this by default allowed me to install the workflow without error.

Switching the workflow to use an alternative version of better-sqlite3 might also work but not something I've tried or have time to look at right now - sorry.

@naupaka
Copy link
Author

naupaka commented Nov 14, 2022

Thanks for the response. Yeah -- I just thought I'd add the note here in case any other folks ran into the issue.

@rhydlewis
Copy link
Owner

Duplicate of issue 10

@Tony-2046
Copy link

I've been success
follow the step:
https://github.com/sindresorhus/guides/blob/main/npm-global-without-sudo.md

@naupaka
Copy link
Author

naupaka commented Nov 20, 2022

I got it to work by switching back to an older version of node per the comment on #10

@rhydlewis
Copy link
Owner

Latest version of the workflow has an updated version of better-sqlite3 so should work with latest version of node now.

@naupaka
Copy link
Author

naupaka commented Feb 5, 2023

Awesome, thanks!

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

3 participants