fix(linux): native modules overwritten with wrong arch #8107
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: #7608
Description
When building an app for multiple Linux architectures, native modules are hardlinked to the modules in
appDir/node_modules/**/*.node
ifCI
env is set.When the builder processes the first arch, it works fine. The second arch overwrites
appDir/node_modules/**/*.node
. Since these files are hardlinked tolinux-*unpacked/resources/app.asar.unpacked/node_modules/**/*.node
it overwrites native modules for all archs, so now the first arch distributive is broken.FileCopier
inbuilder-util/out/fs
copies files by default, but once it detects a CI environment, it switches to hadlinking mode instead.Example package.json which reproduces the issue