You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Looks like Electron 32+ will only build with C++20 and higher due to a change in v8: electron/electron#43555
At the moment nodegit just does not compile with Electron 32.2.0 or 33.0.0-beta8. The error is:
In file included from ../src/async_baton.cc:1:
In file included from ../src/../include/async_baton.h:7:
In file included from ../../@axosoft/nan/nan.h:62:
In file included from /Users/sergeyglukhov/Library/Caches/node-gyp/32.2.0/include/node/node.h:79:
In file included from
/Users/sergeyglukhov/Library/Caches/node-gyp/32.2.0/include/node/v8.h:23:
In file included from /Users/sergeyglukhov/Library/Caches/node-gyp/32.2.0/include/node/cppgc/common.h:8:
/Users/sergeyglukhov/Library/Caches/node-gyp/32.2.0/include/node/v8config.h:13:2: error: "C++20 or later required."
13 | #error "C++20 or later required."
| ^
In file included from ../src/async_baton.cc:1:
In file included from ../src/../include/async_baton.h:7:
../../@axosoft/nan/nan.h:700:39: error: no member named 'IdleNotificationDeadline' in 'v8::Isolate'
700 | return v8::
Isolate::GetCurrent()->IdleNotificationDeadline(
| ~~~~~~~~~~~~~~~~~~~~~~~~~ ^
../../@axosoft/nan/nan.h:2560:8: error: no member named 'SetAccessor' in 'v8::ObjectTemplate'
2560 | tpl->SetAccessor(
| ~~~~~^
../../@axosoft/nan/nan.h:2608:8: error: no member named 'SetAccessor' in 'v8::ObjectTemplate'
2608 | tpl->SetAccessor(
| ~~~~~^
../../@axosoft/nan/nan.h:2654:15: error: no member named 'SetAccessor' in 'v8::Object'
2654 | return obj->SetAccessor
From what I could found, the error comes from 2 sources:
nan dependency, or actually it's fork @axosoft/nan. The 'no member named' problem was fixed in the original nan repo, so it just needs to merged into the fork: support for electron 32 nodejs/nan#973
I tried to patch for p1 by making a fork of @axosoft/nan and then replacing the dependency via "resolutions"entry in my package.json, but the error message is the same, though the surrounding differs and has much less details:
../vendor/libssh2/src/session.c:862:9: warning: variable 'packets_left' set but not used [-Wunused-but-set-variable]
862 | int packets_left = 0
;
| ^
1 warning generated.
CC(target) Release/obj.target/libssh2/vendor/libssh2/src/userauth.o
CC(target) Release/obj.target/libssh2/vendor/libssh2/src/agent_win.o
LIBTOOL-STATIC Release/ssh2.a
CC(target) Release/obj.target/ntlmclient/vendor/libgit2/deps/ntlmclient/ntlm.o
CC(target) Release/obj.target/ntlmclient/vendor/libgit2/deps/ntlmclient/unicode_builtin.o
CC(target) Release/obj.target/ntlmclient/vendor/libgit2/deps/ntlmclient/util.o
CC(target) Release/obj.target/ntlmclient/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.o
../vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c:82:11: warning: 'CC_MD4' is deprecated: first deprecated in macOS 10.15 - This function is cryptographically broken and should not be used in security contexts. Clients should migrate to SHA256 (or stronger). [-Wdeprecated-declarations]
82 | return !!CC_MD4(in,
in_len, out);
| ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/CommonCrypto/CommonDigest.h:115:23: note: 'CC_MD4' has been explicitly marked deprecated here
115 | extern unsigned char
*CC_MD4(const void *data, CC_LONG len, unsigned char *md)
| ^
1 warning generated.
LIBTOOL-STATIC Release/ntlmclient.a
CXX(target) Release/obj.target/nodegit/src/async_baton.o
In file included from ../src/async_baton.cc:1:
In file included from ../src/../include/async_baton.h:7:
In file included from ../../@axosoft/nan/nan.h:62
:
In file included from /Users/sergeyglukhov/Library/Caches/node-gyp/32.2.0/include/node/node.h:79:
In file included from /Users/sergeyglukhov/Library/Caches/node-gyp/32.2.0/include/node/v8.h:23:
In file included from /Users/sergeyglukhov/Library/Caches/node-gyp/32.2.0/include/node/cppgc/common.h:8:
/Users/sergeyglukhov/Library/Caches/node-gyp/32.2.0/include/node/v8config.h:13:2: error: "C++20 or later required."
13 | #error "C++20 or later required."
| ^
1
error generated.
make: *** [Release/obj.target/nodegit/src/async_baton.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
System information
Looks like Electron 32+ will only build with C++20 and higher due to a change in v8: electron/electron#43555
At the moment
nodegitjust does not compile with Electron32.2.0or33.0.0-beta8. The error is:From what I could found, the error comes from 2 sources:
nandependency, or actually it's fork@axosoft/nan. The 'no member named' problem was fixed in the originalnanrepo, so it just needs to merged into the fork: support for electron 32 nodejs/nan#973nodegitscripts? Looks like it uses C++17 to build for Electron 20 and above: https://github.com/nodegit/nodegit/blob/master/utils/defaultCxxStandard.js#L15 I guess this needs to be also adjusted for Electron 32 and above due to the mentioned change in ElectronI tried to patch for p1 by making a fork of
@axosoft/nanand then replacing the dependency via "resolutions"entry in my package.json, but the error message is the same, though the surrounding differs and has much less details: