Hello,
Previously I hosted a site on netlify with the Ubunty Trusty 14.04 image. After receiving a mail this version will be deprecated I tried updating to Ubunto Focal 20.04 but now the site build fails with the following log:
8:57:10 AM: Build ready to start
8:57:12 AM: build-image version: 081db65c3e4ce8423fedb40e7689a87de6f84667
8:57:12 AM: build-image tag: v4.3.1
8:57:12 AM: buildbot version: f650485c830eb31597911322420b99299a4303b8
8:57:12 AM: Fetching cached dependencies
8:57:12 AM: Failed to fetch cache, continuing with build
8:57:12 AM: Starting to prepare the repo for build
8:57:13 AM: No cached dependencies found. Cloning fresh repo
8:57:13 AM: git clone https://github.com/bartofzo/como-no-frontend
8:57:17 AM: Preparing Git Reference refs/heads/master
8:57:18 AM: Parsing package.json dependencies
8:57:19 AM: Different publish path detected, going to use the one specified in the Netlify configuration file: 'public' versus 'public/' in the Netlify UI
8:57:19 AM: Starting build script
8:57:19 AM: Installing dependencies
8:57:19 AM: Python version set to 2.7
8:57:20 AM: Downloading and installing node v16.10.0...
8:57:20 AM: Downloading https://nodejs.org/dist/v16.10.0/node-v16.10.0-linux-x64.tar.xz...
8:57:20 AM: Computing checksum with sha256sum
8:57:21 AM: Checksums matched!
8:57:24 AM: Now using node v16.10.0 (npm v7.24.0)
8:57:24 AM: Started restoring cached build plugins
8:57:24 AM: Finished restoring cached build plugins
8:57:24 AM: Attempting ruby version 2.7.2, read from environment
8:57:25 AM: Using ruby version 2.7.2
8:57:25 AM: Using PHP version 8.0
8:57:25 AM: Started restoring cached yarn cache
8:57:25 AM: Finished restoring cached yarn cache
8:57:25 AM: Installing yarn at version 1.22.10
8:57:25 AM: Installing Yarn!
8:57:25 AM: > Downloading tarball...
8:57:25 AM: [1/2]: https://yarnpkg.com/downloads/1.22.10/yarn-v1.22.10.tar.gz --> /tmp/yarn.tar.gz.VDwaVMWh07
**** removed for character limit ****
8:57:26 AM: > Verifying integrity...
8:57:26 AM: gpg: Signature made Fri 02 Oct 2020 11:17:27 AM UTC
8:57:26 AM: gpg: using RSA key 6D98490C6F1ACDDD448E45954F77679369475BAA
8:57:26 AM: gpg: Good signature from "Yarn Packaging <yarn@dan.cx>" [unknown]
8:57:26 AM: gpg: WARNING: This key is not certified with a trusted signature!
8:57:26 AM: gpg: There is no indication that the signature belongs to the owner.
8:57:26 AM: Primary key fingerprint: 72EC F46A 56B4 AD39 C907 BBB7 1646 B01B 86E5 0310
8:57:26 AM: Subkey fingerprint: 6D98 490C 6F1A CDDD 448E 4595 4F77 6793 6947 5BAA
8:57:26 AM: > GPG signature looks good
8:57:26 AM: > Extracting to ~/.yarn...
8:57:26 AM: > Adding to $PATH...
8:57:27 AM: > Successfully installed Yarn 1.22.10! Please open another terminal where the `yarn` command will now be available.
8:57:27 AM: No yarn workspaces detected
8:57:27 AM: Started restoring cached node modules
8:57:27 AM: Finished restoring cached node modules
8:57:27 AM: Installing NPM modules using Yarn version 1.22.10
8:57:28 AM: yarn install v1.22.10
8:57:28 AM: [1/4] Resolving packages...
**** removed warnings due to character limit ****
8:58:53 AM: [4/4] Building fresh packages...
8:59:06 AM: error /opt/build/repo/node_modules/sharp: Command failed.
8:59:06 AM: Exit code: 1
8:59:06 AM: Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
8:59:06 AM: Arguments:
8:59:06 AM: Directory: /opt/build/repo/node_modules/sharp
8:59:06 AM: Output:
8:59:06 AM: info sharp Detected globally-installed libvips v8.9.1
8:59:06 AM: info sharp Building from source via node-gyp
8:59:06 AM: gyp info it worked if it ends with ok
8:59:06 AM: gyp info using node-gyp@7.1.2
8:59:06 AM: gyp info using node@16.10.0 | linux | x64
8:59:06 AM: gyp info find Python using Python version 3.8.10 found at "/usr/bin/python3"
8:59:06 AM: gyp http GET https://nodejs.org/download/release/v16.10.0/node-v16.10.0-headers.tar.gz
8:59:06 AM: gyp http 200 https://nodejs.org/download/release/v16.10.0/node-v16.10.0-headers.tar.gz
8:59:06 AM: gyp http GET https://nodejs.org/download/release/v16.10.0/SHASUMS256.txt
8:59:06 AM: gyp http 200 https://nodejs.org/download/release/v16.10.0/SHASUMS256.txt
8:59:06 AM: (node:1831) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
8:59:06 AM: (Use `node --trace-deprecation ...` to show where the warning was created)
8:59:06 AM: gyp info spawn /usr/bin/python3
8:59:06 AM: gyp info spawn args [
8:59:06 AM: gyp info spawn args '/opt/buildhome/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
8:59:06 AM: gyp info spawn args 'binding.gyp',
8:59:06 AM: gyp info spawn args '-f',
8:59:06 AM: gyp info spawn args 'make',
8:59:06 AM: gyp info spawn args '-I',
8:59:06 AM: gyp info spawn args '/opt/build/repo/node_modules/sharp/build/config.gypi',
8:59:06 AM: gyp info spawn args '-I',
8:59:06 AM: gyp info spawn args '/opt/buildhome/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
8:59:06 AM: gyp info spawn args '-I',
8:59:06 AM: gyp info spawn args '/opt/buildhome/.cache/node-gyp/16.10.0/include/node/common.gypi',
8:59:06 AM: gyp info spawn args '-Dlibrary=shared_library',
8:59:06 AM: gyp info spawn args '-Dvisibility=default',
8:59:06 AM: gyp info spawn args '-Dnode_root_dir=/opt/buildhome/.cache/node-gyp/16.10.0',
8:59:06 AM: gyp info spawn args '-Dnode_gyp_dir=/opt/buildhome/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp',
8:59:06 AM: gyp info spawn args '-Dnode_lib_file=/opt/buildhome/.cache/node-gyp/16.10.0/<(target_arch)/node.lib',
8:59:06 AM: gyp info spawn args '-Dmodule_root_dir=/opt/build/repo/node_modules/sharp',
8:59:06 AM: gyp info spawn args '-Dnode_engine=v8',
8:59:06 AM: gyp info spawn args '--depth=.',
8:59:06 AM: gyp info spawn args '--no-parallel',
8:59:06 AM: gyp info spawn args '--generator-output',
8:59:06 AM: gyp info spawn args 'build',
8:59:06 AM: gyp info spawn args '-Goutput_dir=.'
8:59:06 AM: gyp info spawn args ]
8:59:06 AM: gyp info spawn make
8:59:06 AM: gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
8:59:06 AM: make: Entering directory '/opt/build/repo/node_modules/sharp/build'
8:59:06 AM: TOUCH Release/obj.target/libvips-cpp.stamp
8:59:06 AM: CXX(target) Release/obj.target/sharp/src/common.o
8:59:06 AM: In file included from /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8.h:30,
8:59:06 AM: from /opt/buildhome/.cache/node-gyp/16.10.0/include/node/node.h:63,
8:59:06 AM: from ../src/common.cc:22:
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8-internal.h: In function ‘void v8::internal::PerformCastCheck(T*)’:
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8-internal.h:489:38: error: ‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
8:59:06 AM: 489 | !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
8:59:06 AM: | ^~~~~~~~~~~
8:59:06 AM: | remove_cv
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8-internal.h:489:38: error: ‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
8:59:06 AM: 489 | !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
8:59:06 AM: | ^~~~~~~~~~~
8:59:06 AM: | remove_cv
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8-internal.h:489:50: error: template argument 2 is invalid
8:59:06 AM: 489 | !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
8:59:06 AM: | ^
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8-internal.h:489:63: error: ‘::Perform’ has not been declared
8:59:06 AM: 489 | !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
8:59:06 AM: | ^~~~~~~
8:59:06 AM: In file included from ../../nan/nan_converters.h:67,
8:59:06 AM: from ../../nan/nan.h:222,
8:59:06 AM: from ../src/common.cc:24:
8:59:06 AM: ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
8:59:06 AM: ../../nan/nan_converters_43_inl.h:18:49: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
8:59:06 AM: 18 | val->To ## TYPE(isolate->GetCurrentContext()) \
8:59:06 AM: | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
8:59:06 AM: | |
8:59:06 AM: | v8::Local<v8::Context>
8:59:06 AM: ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
8:59:06 AM: 22 | X(Boolean)
8:59:06 AM: | ^
8:59:06 AM: In file included from /opt/buildhome/.cache/node-gyp/16.10.0/include/node/node.h:63,
8:59:06 AM: from ../src/common.cc:22:
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8.h:3086:37: note: initializing argument 1 of ‘v8::Local<v8::Boolean> v8::Value::ToBoolean(v8::Isolate*) const’
8:59:06 AM: 3086 | Local<Boolean> ToBoolean(Isolate* isolate) const;
8:59:06 AM: | ~~~~~~~~~^~~~~~~
8:59:06 AM: In file included from ../../nan/nan_converters.h:67,
8:59:06 AM: from ../../nan/nan.h:222,
8:59:06 AM: from ../src/common.cc:24:
8:59:06 AM: ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
8:59:06 AM: ../../nan/nan_converters_43_inl.h:37:55: error: cannot convert ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
8:59:06 AM: 37 | return val->NAME ## Value(isolate->GetCurrentContext()); \
8:59:06 AM: | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
8:59:06 AM: | |
8:59:06 AM: | v8::Local<v8::Context>
8:59:06 AM: ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
8:59:06 AM: 40 | X(bool, Boolean)
8:59:06 AM: | ^
8:59:06 AM: In file included from /opt/buildhome/.cache/node-gyp/16.10.0/include/node/node.h:63,
8:59:06 AM: from ../src/common.cc:22:
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8.h:3096:30: note: initializing argument 1 of ‘bool v8::Value::BooleanValue(v8::Isolate*) const’
8:59:06 AM: 3096 | bool BooleanValue(Isolate* isolate) const;
8:59:06 AM: | ~~~~~~~~~^~~~~~~
8:59:06 AM: In file included from ../../nan/nan_new.h:189,
8:59:06 AM: from ../../nan/nan.h:223,
8:59:06 AM: from ../src/common.cc:24:
8:59:06 AM: ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’:
8:59:06 AM: ../../nan/nan_implementation_12_inl.h:356:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
8:59:06 AM: 356 | return v8::StringObject::New(value).As<v8::StringObject>();
8:59:06 AM: | ^
8:59:06 AM: In file included from /opt/buildhome/.cache/node-gyp/16.10.0/include/node/node.h:63,
8:59:06 AM: from ../src/common.cc:22:
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8.h:6194:23: note: candidate: ‘static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)’
8:59:06 AM: 6194 | static Local<Value> New(Isolate* isolate, Local<String> value);
8:59:06 AM: | ^~~
8:59:06 AM: /opt/buildhome/.cache/node-gyp/16.10.0/include/node/v8.h:6194:23: note: candidate expects 2 arguments, 1 provided
8:59:06 AM: In file included from ../../nan/nan_new.h:189,
8:59:06 AM: from ../../nan/nan.h:223,
8:59:06 AM: from ../src/common.cc:24:
8:59:06 AM: ../../nan/nan_implementation_12_inl.h:356:58: error: expected primary-expression before ‘>’ token
8:59:06 AM: 356 | return v8::StringObject::New(value).As<v8::StringObject>();
8:59:06 AM: | ^
8:59:06 AM: ../../nan/nan_implementation_12_inl.h:356:60: error: expected primary-expression before ‘)’ token
8:59:06 AM: 356 | return v8::StringObject::New(value).As<v8::StringObject>();
8:59:06 AM: | ^
8:59:06 AM: In file included from /usr/include/c++/9/cassert:44,
8:59:06 AM: from /opt/buildhome/.cache/node-gyp/16.10.0/include/node/node_object_wrap.h:26,
8:59:06 AM: from ../../nan/nan.h:55,
8:59:06 AM: from ../src/common.cc:24:
8:59:06 AM: ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
8:59:06 AM: ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
8:59:06 AM: 24 | assert(persistent().IsNearDeath());
8:59:06 AM: | ^~~~~~~~~~~
8:59:06 AM: ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
8:59:06 AM: ../../nan/nan_object_wrap.h:127:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
8:59:06 AM: 127 | assert(wrap->handle_.IsNearDeath());
8:59:06 AM: | ^~~~~~~~~~~
8:59:06 AM: In file included from ../src/common.cc:27:
8:59:06 AM: ../src/common.h: At global scope:
8:59:06 AM: ../src/common.h:78:20: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 78 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.h:78:37: error: expected primary-expression before ‘>’ token
8:59:06 AM: 78 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:78:39: error: ‘obj’ was not declared in this scope
8:59:06 AM: 78 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.h:78:56: error: expected primary-expression before ‘attr’
8:59:06 AM: 78 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~
8:59:06 AM: ../src/common.h:78:60: error: expression list treated as compound expression in initializer [-fpermissive]
8:59:06 AM: 78 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:79:29: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 79 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.h:79:46: error: expected primary-expression before ‘>’ token
8:59:06 AM: 79 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:79:48: error: ‘obj’ was not declared in this scope
8:59:06 AM: 79 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.h:79:65: error: expected primary-expression before ‘attr’
8:59:06 AM: 79 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~
8:59:06 AM: ../src/common.h:80:38: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 80 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.h:80:55: error: expected primary-expression before ‘>’ token
8:59:06 AM: 80 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:80:57: error: ‘obj’ was not declared in this scope
8:59:06 AM: 80 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.h:80:74: error: expected primary-expression before ‘attr’
8:59:06 AM: 80 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~
8:59:06 AM: ../src/common.h:81:48: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 81 | template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.h:81:65: error: expected primary-expression before ‘>’ token
8:59:06 AM: 81 | template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:81:67: error: ‘obj’ was not declared in this scope
8:59:06 AM: 81 | template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.h:81:84: error: expected primary-expression before ‘attr’
8:59:06 AM: 81 | template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~
8:59:06 AM: ../src/common.h:81:37: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’
8:59:06 AM: 81 | template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: ../src/common.h:81:89: error: expected ‘;’ before ‘{’ token
8:59:06 AM: 81 | template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~
8:59:06 AM: | ;
8:59:06 AM: ../src/common.h:84:37: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 84 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.h:84:54: error: expected primary-expression before ‘>’ token
8:59:06 AM: 84 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:84:56: error: ‘obj’ was not declared in this scope
8:59:06 AM: 84 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.h:84:73: error: expected primary-expression before ‘attr’
8:59:06 AM: 84 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~
8:59:06 AM: ../src/common.h:84:26: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’
8:59:06 AM: 84 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: ../src/common.h:84:78: error: expected ‘;’ before ‘{’ token
8:59:06 AM: 84 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~
8:59:06 AM: | ;
8:59:06 AM: ../src/common.h:87:37: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 87 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.h:87:54: error: expected primary-expression before ‘>’ token
8:59:06 AM: 87 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:87:56: error: ‘obj’ was not declared in this scope
8:59:06 AM: 87 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.h:87:61: error: expected primary-expression before ‘int’
8:59:06 AM: 87 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.h:84:26: warning: variable templates only available with ‘-std=c++14’ or ‘-std=gnu++14’
8:59:06 AM: 84 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: ../src/common.h:87:70: error: expected ‘;’ before ‘{’ token
8:59:06 AM: 87 | template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
8:59:06 AM: | ^~
8:59:06 AM: | ;
8:59:06 AM: ../src/common.h:93:9: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 93 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.h:93:26: error: expected primary-expression before ‘>’ token
8:59:06 AM: 93 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:93:28: error: ‘input’ was not declared in this scope
8:59:06 AM: 93 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
8:59:06 AM: | ^~~~~
8:59:06 AM: ../src/common.h:93:70: error: expected primary-expression before ‘&’ token
8:59:06 AM: 93 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
8:59:06 AM: | ^
8:59:06 AM: ../src/common.h:93:71: error: ‘buffersToPersist’ was not declared in this scope
8:59:06 AM: 93 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
8:59:06 AM: | ^~~~~~~~~~~~~~~~
8:59:06 AM: ../src/common.h:93:87: error: expression list treated as compound expression in initializer [-fpermissive]
8:59:06 AM: 93 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
8:59:06 AM: | ^
8:59:06 AM: ../src/common.cc:34:8: error: redefinition of ‘bool sharp::HasAttr’
8:59:06 AM: 34 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~~
8:59:06 AM: In file included from ../src/common.cc:27:
8:59:06 AM: ../src/common.h:78:8: note: ‘bool sharp::HasAttr’ previously defined here
8:59:06 AM: 78 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~~~~
8:59:06 AM: ../src/common.cc:34:20: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 34 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.cc:34:37: error: expected primary-expression before ‘>’ token
8:59:06 AM: 34 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^
8:59:06 AM: ../src/common.cc:34:39: error: ‘obj’ was not declared in this scope
8:59:06 AM: 34 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.cc:34:56: error: expected primary-expression before ‘attr’
8:59:06 AM: 34 | bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~
8:59:06 AM: ../src/common.cc:37:15: error: redefinition of ‘std::string sharp::AttrAsStr’
8:59:06 AM: 37 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~~~~
8:59:06 AM: In file included from ../src/common.cc:27:
8:59:06 AM: ../src/common.h:79:15: note: ‘std::string sharp::AttrAsStr’ previously declared here
8:59:06 AM: 79 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~~~~~~
8:59:06 AM: ../src/common.cc:37:29: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 37 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.cc:37:46: error: expected primary-expression before ‘>’ token
8:59:06 AM: 37 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^
8:59:06 AM: ../src/common.cc:37:48: error: ‘obj’ was not declared in this scope
8:59:06 AM: 37 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.cc:37:65: error: expected primary-expression before ‘attr’
8:59:06 AM: 37 | std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~
8:59:06 AM: ../src/common.cc:40:23: error: redefinition of ‘std::vector<double> sharp::AttrAsRgba’
8:59:06 AM: 40 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~~~~~
8:59:06 AM: In file included from ../src/common.cc:27:
8:59:06 AM: ../src/common.h:80:23: note: ‘std::vector<double> sharp::AttrAsRgba’ previously declared here
8:59:06 AM: 80 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
8:59:06 AM: | ^~~~~~~~~~
8:59:06 AM: ../src/common.cc:40:38: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 40 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.cc:40:55: error: expected primary-expression before ‘>’ token
8:59:06 AM: 40 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^
8:59:06 AM: ../src/common.cc:40:57: error: ‘obj’ was not declared in this scope
8:59:06 AM: 40 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~
8:59:06 AM: ../src/common.cc:40:74: error: expected primary-expression before ‘attr’
8:59:06 AM: 40 | std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
8:59:06 AM: | ^~~~
8:59:06 AM: ../src/common.cc:50:20: error: redefinition of ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’
8:59:06 AM: 50 | InputDescriptor* CreateInputDescriptor(
8:59:06 AM: | ^~~~~~~~~~~~~~~~~~~~~
8:59:06 AM: In file included from ../src/common.cc:27:
8:59:06 AM: ../src/common.h:92:20: note: ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’ previously defined here
8:59:06 AM: 92 | InputDescriptor* CreateInputDescriptor(
8:59:06 AM: | ^~~~~~~~~~~~~~~~~~~~~
8:59:06 AM: ../src/common.cc:51:9: error: ‘Handle’ is not a member of ‘v8’; did you mean ‘JobHandle’?
8:59:06 AM: 51 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
8:59:06 AM: | ^~~~~~
8:59:06 AM: | JobHandle
8:59:06 AM: ../src/common.cc:51:26: error: expected primary-expression before ‘>’ token
8:59:06 AM: 51 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
8:59:06 AM: | ^
8:59:06 AM: ../src/common.cc:51:28: error: ‘input’ was not declared in this scope
8:59:06 AM: 51 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
8:59:06 AM: | ^~~~~
8:59:06 AM: ../src/common.cc:51:70: error: expected primary-expression before ‘&’ token
8:59:06 AM: 51 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
8:59:06 AM: | ^
8:59:06 AM: ../src/common.cc:51:71: error: ‘buffersToPersist’ was not declared in this scope
8:59:06 AM: 51 | v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
8:59:06 AM: | ^~~~~~~~~~~~~~~~
8:59:06 AM: make: *** [sharp.target.mk:184: Release/obj.target/sharp/src/common.o] Error 1
8:59:06 AM: make: Leaving directory '/opt/build/repo/node_modules/sharp/build'
8:59:06 AM: gyp ERR! build error
8:59:06 AM: gyp ERR! stack Error: `make` failed with exit code: 2
8:59:06 AM: gyp ERR! stack at ChildProcess.onExit (/opt/buildhome/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
8:59:06 AM: gyp ERR! stack at ChildProcess.emit (node:events:390:28)
8:59:06 AM: gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
8:59:06 AM: gyp ERR! System Linux 4.19.167+
8:59:06 AM: gyp ERR! command "/opt/buildhome/.nvm/versions/node/v16.10.0/bin/node" "/opt/buildhome/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
8:59:06 AM: gyp ERR! cwd /opt/build/repo/node_modules/sharp
8:59:06 AM: gyp ERR! node -v v16.10.0
8:59:06 AM: gyp ERR! node-gyp -v v7.1.2
8:59:06 AM: gyp ERR! not ok
8:59:06 AM: info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
9:01:20 AM: Error during Yarn install
9:01:20 AM: Build was terminated: Build script returned non-zero exit code: 1
9:01:20 AM: Creating deploy upload records
9:01:20 AM: Failing build: Failed to build site
9:01:20 AM: Failed during stage 'building site': Build script returned non-zero exit code: 1
9:01:20 AM: Finished processing build request in 4m8.22198464s
Can anyone point me in the right direction how to fix this? Any help is much appreciated!