Compile fault when doing $ npm run rebuild

Linux aetherdeb 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux

$ git clone https://github.com/nehbit/aether

I followed instructions from https://gist.github.com/nehbit/4a8c3d81d543e85c9df974f521732b1e up to npm run rebuild

Expected Behavior**

rebuild complete

Actual behavior
Fails with error message below

To Reproduce
Fresh install of debian + following the build instructions

  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/bio_mem.o                                                     
  CC(target) Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/connect.o                                                     
../deps/grpc/third_party/boringssl/crypto/bio/connect.c: In function ‘conn_callback_ctrl’:                                                         
../deps/grpc/third_party/boringssl/crypto/bio/connect.c:491:29: error: cast between incompatible function types from ‘bio_info_cb’ {aka ‘long int (*)(struct bio_st *, int,  const char *, int,  long int,  long int)’} to ‘int (*)(const struct bio_st *, int,  int)’ [-Werror=cast-function-type]   
       data->info_callback = (int (*)(const struct bio_st *, int, int))fp;                                                                         
                             ^                                                                                                                     
cc1: all warnings being treated as errors                                                                                                          
make: *** [boringssl.target.mk:430: Release/obj.target/boringssl/deps/grpc/third_party/boringssl/crypto/bio/connect.o] Error 1                     
make: Leaving directory '/home/damiano/aether/aether/aether-core/aether/client/node_modules/grpc/build'                                            
gyp ERR! build error                                                                                                                               
gyp ERR! stack Error: `make` failed with exit code: 2                                                                                              
gyp ERR! stack     at ChildProcess.onExit (/home/damiano/aether/aether/aether-core/aether/client/node_modules/node-gyp/lib/build.js:262:23)        
gyp ERR! stack     at ChildProcess.emit (events.js:193:13)                                                                                         
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:255:12)                                                       
gyp ERR! System Linux 4.19.0-13-amd64                                                                                                              
gyp ERR! command "/home/damiano/.nvm/versions/node/v11.15.0/bin/node" "/home/damiano/aether/aether/aether-core/aether/client/node_modules/.bin/node-gyp" "rebuild" "--target=5.0.8" "--arch=x64" "--dist-url=https://atom.io/download/electron" "--build-from-source" "--module_name=grpc_node" "--module_path=/home/damiano/aether/aether/aether-core/aether/client/node_modules/grpc/src/node/extension_binary/electron-v5.0-linux-x64-glibc" "--host=https://node-precompiled-binaries.grpc.io/" "--remote_path={name}/v1.22.2" "--package_name=electron-v5.0-linux-x64-glibc.tar.gz"
gyp ERR! cwd /home/damiano/aether/aether/aether-core/aether/client/node_modules/grpc
gyp ERR! node -v v11.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 

Failed with exit code: 1
    at SafeSubscriber._error (/home/damiano/aether/aether/aether-core/aether/client/node_modules/spawn-rx/lib/src/index.js:277:84)
    at SafeSubscriber.__tryOrUnsub (/home/damiano/aether/aether/aether-core/aether/client/node_modules/rxjs/Subscriber.js:242:16)
    at SafeSubscriber.error (/home/damiano/aether/aether/aether-core/aether/client/node_modules/rxjs/Subscriber.js:201:26)
    at Subscriber._error (/home/damiano/aether/aether/aether-core/aether/client/node_modules/rxjs/Subscriber.js:132:26)
    at Subscriber.error (/home/damiano/aether/aether/aether-core/aether/client/node_modules/rxjs/Subscriber.js:106:18)
    at MapSubscriber.Subscriber._error (/home/damiano/aether/aether/aether-core/aether/client/node_modules/rxjs/Subscriber.js:132:26)
    at MapSubscriber.Subscriber.error (/home/damiano/aether/aether/aether-core/aether/client/node_modules/rxjs/Subscriber.js:106:18)
    at SafeSubscriber._next (/home/damiano/aether/aether/aether-core/aether/client/node_modules/spawn-rx/lib/src/index.js:251:65)
    at SafeSubscriber.__tryOrSetError (/home/damiano/aether/aether/aether-core/aether/client/node_modules/rxjs/Subscriber.js:251:16)
    at SafeSubscriber.next (/home/damiano/aether/aether/aether-core/aether/client/node_modules/rxjs/Subscriber.js:191:27)

Apparently it is possible to continue the build and have a “functional” application by setting

export CFLAGS=-Wno-error
export CXXFLAGS=-Wno-error

before the build command

Possibly the function that mismatch is never used by aether

Yeah I was wondering about this error. This is coming from gRPC and since it’s a C-based solution, it really depends on your platform / distro to compile it right.

In the upcoming version I’m working on right now that gRPC native dependency is removed, we’re now using a direct gRPC on the node that is written in JS. So what you’re going through is not going to be forever. Moving from native C gRPC imported into Node through a FFI to Node-based gRPC written in JS does change a few things in the gRPC end of things so I’m currently working through making that transition.