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

Electron build failure related to keytar #209

Open
maxhgerlach opened this issue Sep 15, 2021 · 4 comments
Open

Electron build failure related to keytar #209

maxhgerlach opened this issue Sep 15, 2021 · 4 comments

Comments

@maxhgerlach
Copy link
Contributor

Hi, I'm not very savvy with Node development, but ran into an issue trying to build the standalone electron version, following the instructions at https://github.com/Joxit/docker-registry-ui/tree/main/examples/electron/README.md .

Bug description

npm run dist fails with C++ build errors building the module keytar:

docker-registry-ui/examples/electron$ npm run dist

> docker-registry-ui@1.4.8 dist
> npm run rebuild && npm run sync && npm run build && npm run package

npm WARN npm npm does not support Node.js v16.5.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11.
npm WARN npm You can find the latest version at https://nodejs.org/

> docker-registry-ui@1.4.8 rebuild /Users/maxgerlach/thirdparty/docker-registry-ui/examples/electron
> electron-rebuild -f -w keytar

⠇ Building module: keytar, Completed: 0(node:36685) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use `node --trace-deprecation ...` to show where the warning was created)
⠙ Building module: keytar, Completed: 0  CXX(target) Release/obj.target/keytar/src/async.o
⠸ Building module: keytar, Completed: 0In file included from ../src/async.cc:4:
In file included from ../node_modules/node-addon-api/napi.h:2725:
../node_modules/node-addon-api/napi-inl.h:1393:24: error: use of undeclared identifier 'napi_object_freeze'
  napi_status status = napi_object_freeze(_env, _value);
                       ^
../node_modules/node-addon-api/napi-inl.h:1399:24: error: use of undeclared identifier 'napi_object_seal'
  napi_status status = napi_object_seal(_env, _value);
                       ^
../node_modules/node-addon-api/napi-inl.h:1606:24: error: use of undeclared identifier 'napi_is_detached_arraybuffer'; did you mean 'napi_is_arraybuffer'?
  napi_status status = napi_is_detached_arraybuffer(_env, _value, &detached);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                       napi_is_arraybuffer
/Users/maxgerlach/.electron-gyp/11.5.0/include/node/js_native_api.h:383:25: note: 'napi_is_arraybuffer' declared here
NAPI_EXTERN napi_status napi_is_arraybuffer(napi_env env,
                        ^
In file included from ../src/async.cc:4:
In file included from ../node_modules/node-addon-api/napi.h:2725:
../node_modules/node-addon-api/napi-inl.h:1612:24: error: use of undeclared identifier 'napi_detach_arraybuffer'
  napi_status status = napi_detach_arraybuffer(_env, _value);
                       ^
4 errors generated.
make: *** [Release/obj.target/keytar/src/async.o] Error 1
✖ Rebuild Failed

An unhandled error occurred inside electron-rebuild
node-gyp failed to rebuild '/Users/maxgerlach/thirdparty/docker-registry-ui/examples/electron/node_modules/keytar'.
Error: `make` failed with exit code: 2



Error: node-gyp failed to rebuild '/Users/maxgerlach/thirdparty/docker-registry-ui/examples/electron/node_modules/keytar'.
Error: `make` failed with exit code: 2


    at ModuleRebuilder.rebuildNodeGypModule (/Users/maxgerlach/thirdparty/docker-registry-ui/examples/electron/node_modules/electron-rebuild/lib/src/module-rebuilder.js:193:19)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Rebuilder.rebuildModuleAt (/Users/maxgerlach/thirdparty/docker-registry-ui/examples/electron/node_modules/electron-rebuild/lib/src/rebuild.js:190:9)
    at async Rebuilder.rebuild (/Users/maxgerlach/thirdparty/docker-registry-ui/examples/electron/node_modules/electron-rebuild/lib/src/rebuild.js:152:17)
    at async /Users/maxgerlach/thirdparty/docker-registry-ui/examples/electron/node_modules/electron-rebuild/lib/src/cli.js:146:9
npm ERR! code ELIFECYCLE
npm ERR! errno 255
npm ERR! docker-registry-ui@1.4.8 rebuild: `electron-rebuild -f -w keytar`
npm ERR! Exit status 255
npm ERR!
npm ERR! Failed at the docker-registry-ui@1.4.8 rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/maxgerlach/.npm/_logs/2021-09-15T17_36_01_442Z-debug.log
max@mmbp:~/thirdparty/docker-registry-ui/examples/electron$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   ../../dist/docker-registry-ui.js
	modified:   ../../package.json

no changes added to commit (use "git add" and/or "git commit -a")
max@mmbp:~/thirdparty/docker-registry-ui/examples/electron$ git log -n 1
commit 21e3ad51afedec24fc9e1761afbcd399a0544686 (HEAD -> main, tag: 2.0.9, origin/main, origin/HEAD)
Author: Joxit <joxit972@gmail.com>
Date:   Mon Sep 13 09:14:00 2021

    fix(warn): Refused to get unsafe header "www-authenticate"

System information

  • OS: macOS 11.5.1
  • Docker registry UI:
    • Version: main branch, just checked out
$ git log -n 1
commit 21e3ad51afedec24fc9e1761afbcd399a0544686 (HEAD -> main, tag: 2.0.9, origin/main, origin/HEAD)
Author: Joxit <joxit972@gmail.com>
Date:   Mon Sep 13 09:14:00 2021

    fix(warn): Refused to get unsafe header "www-authenticate"
@johnpoth
Copy link
Contributor

Ran into the same issue. What I did, after playing around for a while, was simply remove keytar references as I didn't need it :D

After that I noticed that my registry url wasn't being used for some reason? So I manually updated ${REGISTRY_URL} in the index.html file.

Rebuild and run ...

Thanks !

@Joxit
Copy link
Owner

Joxit commented Oct 16, 2021

Hi, thank you for using my project.

I'm sorry, the original contributor of the electron example was @agrippa1994 and I did't test it with the v2.0 of the project... 😕

@arimus
Copy link

arimus commented Dec 11, 2021

Btw, I am able to build unmodified using Node 12.x, but 14.x and 16.x result in the error above. But yes @johnpoth there is basically nothing in there to replace ENV variables. Looks like the bin/entrypoint does it for docker images, but not so much for the electron stuff

@extragornax
Copy link

Btw, I am able to build unmodified using Node 12.x, but 14.x and 16.x result in the error above. But yes @johnpoth there is basically nothing in there to replace ENV variables. Looks like the bin/entrypoint does it for docker images, but not so much for the electron stuff

Thanks! Version 12.13 worked

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

5 participants