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

npm ERR! gyp: name 'openssl_fips' is not defined #2673

Closed
2812848295 opened this issue Jun 1, 2022 · 28 comments · May be fixed by OhMyGuus/memoryjs#1 or OhMyGuus/node-keyboard-watcher#2
Closed

npm ERR! gyp: name 'openssl_fips' is not defined #2673

2812848295 opened this issue Jun 1, 2022 · 28 comments · May be fixed by OhMyGuus/memoryjs#1 or OhMyGuus/node-keyboard-watcher#2
Labels
ffi-napi macOS OpenSSL Related to https://www.openssl.org

Comments

@2812848295
Copy link

2812848295 commented Jun 1, 2022

Solution: #2673 (comment)

• electron-builder version=22.14.13
• rebuilding native dependencies [email protected], [email protected] platform=darwin arch=arm64
⨯ cannot execute cause=exit status 1
errorOut=npm ERR! code 1
npm ERR! path /Users/wks/Desktop/electron/terrasync/node_modules/ffi-napi
npm ERR! command failed
npm ERR! command sh -c node-gyp-build
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | darwin | arm64
npm ERR! gyp info find Python using Python version 3.8.9 found at "/Applications/Xcode.app/Contents/Developer/usr/bin/python3"
npm ERR! gyp info spawn /Applications/Xcode.app/Contents/Developer/usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/Users/wks/Desktop/electron/terrasync/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/wks/Desktop/electron/terrasync/node_modules/ffi-napi/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/wks/Desktop/electron/terrasync/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/wks/.electron-gyp/11.5.0/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/Users/wks/.electron-gyp/11.5.0',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/Users/wks/Desktop/electron/terrasync/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/Users/wks/.electron-gyp/11.5.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/Users/wks/Desktop/electron/terrasync/node_modules/ffi-napi',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp: name 'openssl_fips' is not defined while evaluating condition 'openssl_fips != ""' in ../node-addon-api/node_api.gyp while loading dependencies of binding.gyp while trying to load binding.gyp
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: gyp failed with exit code: 1
npm ERR! gyp ERR! stack at ChildProcess.onCpExit (/Users/wks/Desktop/electron/terrasync/node_modules/node-gyp/lib/configure.js:261:16)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:520:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Darwin 21.5.0
npm ERR! gyp ERR! command "/usr/local/bin/node" "/Users/wks/Desktop/electron/terrasync/node_modules/.bin/node-gyp" "rebuild"
npm ERR! gyp ERR! cwd /Users/wks/Desktop/electron/terrasync/node_modules/ffi-napi
npm ERR! gyp ERR! node -v v16.14.0
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/wks/.npm/_logs/2022-06-01T07_14_18_457Z-debug-0.log

                command=/usr/local/bin/node /usr/local/lib/node_modules/npm/bin/npm-cli.js rebuild [email protected] [email protected]
                workingDir=

┌────────────────────────────────────────────────────────┐
│ electron-builder update check failed │
│ Try running with sudo or get access │
│ to the local update config store via │
│ sudo chown -R $USER:$(id -gn $USER) /Users/wks/.config │
└────────────────────────────────────────────────────────┘
npm ERR! code 1
npm ERR! path /Users/wks/Desktop/electron/terrasync
npm ERR! command failed
npm ERR! command sh -c electron-builder install-app-deps

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/wks/.npm/_logs/2022-06-01T07_14_16_686Z-debug-0.log

@2812848295
Copy link
Author

2812848295 commented Jun 1, 2022

根据找到的资料在binding.gyp也添加了 ‘variables’:{'openssl_fips':0}

According to the information found, 'variables':{'openssl_fips':0} is also added to binding.gyp

@cclauss cclauss changed the title npm ERR! gyp info find Python using Python version 3.8.9 found at "/Applications/Xcode.app/Contents/Developer/usr/bin/python3" npm ERR! gyp: name 'openssl_fips' is not defined while evaluating condition 'openssl_fips != ""' Jun 1, 2022
@cclauss cclauss added the macOS label Jun 1, 2022
@cclauss
Copy link
Contributor

cclauss commented Jun 1, 2022

@2812848295
Copy link
Author

2812848295 commented Jun 1, 2022

@cclauss 刚刚发现23天前我也像你们提过这个问题,但是貌似后续我解决了 ,当时是在windows上面。现在换了macos

Just found out that I also mentioned this problem like you 23 days ago, but it seems that I solved it later, which was on windows at that time. Switch to macOS now

@2812848295
Copy link
Author

node -v 16.14.0

@2812848295
Copy link
Author

2812848295 commented Jun 1, 2022

之前通过很多尝试把问题修复了,但是我把node_module删除了 现在windows 也面临这个问题

I fixed the problem through many attempts before, but I deleted node_module and now windows is also facing this problem

@zhong-fei
Copy link

I had the same issue with Node14. The version below node17 does not seem to match [email protected], downgrade node-gyp to version "v8.3.0", the issue is solved for me.

@cclauss cclauss added the OpenSSL Related to https://www.openssl.org label Jun 24, 2022
@nodejs nodejs deleted a comment from zhong-fei Jun 24, 2022
@cclauss
Copy link
Contributor

cclauss commented Jun 24, 2022

Looking at https://github.com/nodejs/node-gyp/search?q=openssl_fips

In binding.gyp please try to add a line to

'variables' : {
    'openssl_fips': '',
}

@cqh52306
Copy link

gyp: name 'openssl_fips' is not defined while evaluating condition 'openssl_fips != ""' in binding.gyp while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1

@arjunfulp
Copy link

I did not want to edit the binding.gyp file of a module that I was using. So I solved this problem by passing
"--openssl_fips=''" into the script I want to use, like npm install --openssl_fips=''

@cclauss
Copy link
Contributor

cclauss commented Jul 27, 2022

Does this solution solve all name 'openssl_fips' is not defined issues?

@arjunfulp
Copy link

Does this solution solve all name 'openssl_fips' is not defined issues?

For my case yes. Had to make this change after updating node and npm to latest.

@cclauss cclauss changed the title npm ERR! gyp: name 'openssl_fips' is not defined while evaluating condition 'openssl_fips != ""' npm ERR! gyp: name 'openssl_fips' is not defined Jul 27, 2022
@quark-zju
Copy link

quark-zju commented Sep 7, 2022

When using yarn it seems the --openssl_fips='' passed to yarn does not make a difference. If the issue happens in a dependency, editing binding.gyp in the node_modules/ directory gets reverted automatically. I ended up with a workaround that edits gyp's source code directly:

The gyp source code location is printed in the error message:

gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/Users/quark/.config/yarn/global/node_modules/node-gyp/lib/configure.js:285:16)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)

gyp seems to evaluate the binding.gyp as a Python script, I changed the builtin variables to evaluate the script:

diff --git a/gyp/pylib/gyp/input.py b/gyp/pylib/gyp/input.py
index 354958b..bb982eb 100644
--- a/gyp/pylib/gyp/input.py
+++ b/gyp/pylib/gyp/input.py
@@ -1190,7 +1190,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil
         else:
             ast_code = compile(cond_expr_expanded, "<string>", "eval")
             cached_conditions_asts[cond_expr_expanded] = ast_code
-        env = {"__builtins__": {}, "v": StrictVersion}
+        env = {"__builtins__": {"openssl_fips": ""}, "v": StrictVersion}
         if eval(ast_code, env, variables):
             return true_dict
         return false_dict

The input.py is located in the node-gyp directory printed in the above error message, for example:

  • /usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
  • ~/.config/yarn/global/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py

@angelfraga
Copy link

Here facing same issue:

yarn v1.22.19
node lts/gallium => 16.17.0
MacOS Monterey => 12.5.1

Workaround above #2673 (comment) did work fine

In addition I run both, yarn install and npm install.

yarn install 
npm install --openssl_fips=''

@cclauss
Copy link
Contributor

cclauss commented Sep 20, 2022

@2812848295 Can this issue be closed?

@cclauss cclauss closed this as completed Sep 20, 2022
@arenn23
Copy link

arenn23 commented Sep 23, 2022

env = {"__builtins__": {"openssl_fips": ""}, "v": StrictVersion}

This worked for me. Thank you

@squid-f
Copy link

squid-f commented Sep 26, 2022

Hi. On Linux, node 18.7.0, building electron 20.0.3 for Element Matrix, none of the suggested solutions work.

cb1kenobi pushed a commit to tidev/node-ios-device that referenced this issue Jan 12, 2023
* Pass openssl_fips as a variable to support building older node versions on newer node versions

See nodejs/node-gyp#2534 and nodejs/node-gyp#2673
for more context on this issue

* Update dependencies

* Add support for Node.js 18 and 19

As node-pre-gyp is no longer maintained this is the path of least resistance to adding new versions,
we include a patch within this project that updates the abi_crosswalk file within node-pre-gyp that
is used to map the versions of node to their module/v8 versions. Then in run.js we call patch-package
before spawning anything to ensure that our patches are applied correctly.

This isn't by any means perfect but it's the quickest way to update the supported versions of node
without having to go and make any major refactors to the setup here, or the code in ioslib/the SDK
dfunckt added a commit to balena-io/etcher that referenced this issue Jan 23, 2023
The Electron version we’re currently using is on Node 13 (?) but this is a step forward to upgrading to a newer Electron and Node version.

Updates etcher-sdk and switches the redundant aws4-axios dependency to just axios.

Also changed bundler to stop trying to bundle wasm files — they must be included inline with JS code as data — and removed some now redundant code.

The crucial changes that enable support are:

1. The update to etcher-sdk@8 where some dependency fixes and updates took place
2. The downgrade and pinning of "electron-rebuild" to v3.2.3 until we’re able to update to Electron >= 14.2. The patch we need to avoid is electron/rebuild#907. Also see: nodejs/node-gyp#2673 and electron/rebuild#913

Change-type: minor
dfunckt added a commit to balena-io/etcher that referenced this issue Jan 23, 2023
The Electron version we’re currently using is on Node 13 (?) but this is a step forward to upgrading to a newer Electron and Node version.

Updates etcher-sdk and switches the redundant aws4-axios dependency to just axios.

Also changed bundler to stop trying to bundle wasm files — they must be included inline with JS code as data — and removed some now redundant code.

The crucial changes that enable support are:

1. The update to etcher-sdk@8 where some dependency fixes and updates took place
2. The downgrade and pinning of "electron-rebuild" to v3.2.3 until we’re able to update to Electron >= 14.2. The patch we need to avoid is electron/rebuild#907. Also see: nodejs/node-gyp#2673 and electron/rebuild#913
3. A rule in webpack.config to ignore `aws-crt` which is a dependency of (ultimately) `aws4-axios` which is used by etcher-sdk and does a runtime check to its availability. We’re not currently using the “assume role” functionality (AFAIU) of aws4-axios and we don’t care that it’s not found, so force webpack to ignore the import. See aws/aws-sdk-js-v3#3025

Change-type: minor
dfunckt added a commit to balena-io/etcher that referenced this issue Jan 27, 2023
The Electron version we’re currently using is on Node 13 (?) but this is a step forward to upgrading to a newer Electron and Node version.

Updates etcher-sdk and switches the redundant aws4-axios dependency to just axios.

Also changed bundler to stop trying to bundle wasm files — they must be included inline with JS code as data — and removed some now redundant code.

The crucial changes that enable support are:

1. The update to etcher-sdk@8 where some dependency fixes and updates took place
2. The downgrade and pinning of "electron-rebuild" to v3.2.3 until we’re able to update to Electron >= 14.2. The patch we need to avoid is electron/rebuild#907. Also see: nodejs/node-gyp#2673 and electron/rebuild#913
3. A rule in webpack.config to ignore `aws-crt` which is a dependency of (ultimately) `aws4-axios` which is used by etcher-sdk and does a runtime check to its availability. We’re not currently using the “assume role” functionality (AFAIU) of aws4-axios and we don’t care that it’s not found, so force webpack to ignore the import. See aws/aws-sdk-js-v3#3025

Change-type: minor
dfunckt added a commit to balena-io/etcher that referenced this issue Jan 27, 2023
The Electron version we’re currently using is on Node 14 but this is a step forward to upgrading to a newer Electron and Node version.

Updates etcher-sdk and switches the redundant aws4-axios dependency to just axios.

Also changed bundler to stop trying to bundle wasm files — they must be included inline with JS code as data — and removed some now redundant code.

The crucial changes that enable support are:

1. The update to etcher-sdk@8 where some dependency fixes and updates took place
2. The downgrade and pinning of "electron-rebuild" to v3.2.3 until we’re able to update to Electron >= 14.2. The patch we need to avoid is electron/rebuild#907. Also see: nodejs/node-gyp#2673 and electron/rebuild#913
3. A rule in webpack.config to ignore `aws-crt` which is a dependency of (ultimately) `aws4-axios` which is used by etcher-sdk and does a runtime check to its availability. We’re not currently using the “assume role” functionality (AFAIU) of aws4-axios and we don’t care that it’s not found, so force webpack to ignore the import. See aws/aws-sdk-js-v3#3025

Change-type: minor
sanosdole added a commit to sanosdole/nodeclrhost that referenced this issue Jan 27, 2023
PrestonKnopp added a commit to PrestonKnopp/tree-sitter-gdscript that referenced this issue Feb 3, 2023
msotnikov added a commit to msotnikov/node-sqlite3 that referenced this issue Feb 20, 2023
@lukasbach
Copy link

For me, where the issue came from an electron project, upgrading electron and electron-builder to latest (23.1.4 and 23.6.0 respectively) solved the issue.

@whatisor
Copy link

--openssl_fips=''

For my case, it is only failed at npm start, so I run this to overcome:
npm start --openssl_fips=''

@KernelPanic92
Copy link

@arjunfulp You can avoid passing the flag in the npm install command by adding openssl_fips to the npm configuration:

npm config set openssl_fips ''

@cclauss
Copy link
Contributor

cclauss commented Oct 19, 2023

@KernelPanic92 Not with up-to-date versions of npm.
% npm config list # What are my current settings?
% npm config list -l # What are all valid settings?

openssl_fips was removed from that list along with many other settings.

@MuhammadAbbasAkhtar
Copy link

I solved by upgrading electron and electron-builder to latest & using node v13.14.0 via nvm.

I was building node-pty for edex-ui and i couldn't find any variable declaration in its binding.gyp.

using:
Python: 3.10.11
VS2017: (15.9.35027.97)
electron-gyp: 12.2.3

@cclauss
Copy link
Contributor

cclauss commented Aug 10, 2024

Please do not advocate that others use long archived software or unsupported versions of Node.js.

@nodejs nodejs locked as resolved and limited conversation to collaborators Aug 10, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
ffi-napi macOS OpenSSL Related to https://www.openssl.org
Projects
None yet