Gatsby build fails after updating build image to Ubuntu Focal 20.04

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!

Hey there, @bartofzo :wave:

Thanks for reaching out. I am sorry to hear you are having difficulties. Would you be able to share your site name and your repo with us? We will need a tad more information before diving into this further.

Additionally, we have a similar thread here: Deploy failed due to an error in netlify-plugin-cypress plugin - #2 by audrey. Let us know if the suggestions in that thread help!

Hello Hilary,

The thread you posted isn’t of much help unfortunately.

Here’s my repo:
https://github.com/bartofzo/como-no-frontend

The site’s name is dreamy-darwin-162040

I’ve tried updating npm but it still fails at the end. Altough the log gets much longer (too long to post here).
I am too much of a noob at web development to make sense of the log unfortunately. Let me know if I should attach the full log.

Thanks

Hi @bartofzo,

Could you try setting an Environment Variable with the name NODE_VERSION and value 14.17.5?

2 Likes

Seems to have done the trick! Thank you.

1 Like