@electron/rebuild ignores symlinks for native modules, which crashes the application
beshkenadze opened this issue · 1 comments
Great! Including a demo project to reproduce the bug is an excellent way to provide additional context and aid in troubleshooting. Here's a revised version of your GitHub issue incorporating the link to your demo project:
Body:
Environment:
- Electron Forge version: 7.2.0
- Electron version: v28.2.0
- Operating System and version: macOS Sonoma 14.2.1
- Last known working Electron Forge version (if applicable): n/a
Issue Description:
When using electron-rebuild
in my Electron Forge project, I've encountered a bug where the symlinks for native modules are ignored during the copy process. This leads to crashes, as the necessary libraries are not correctly linked.
Steps to Reproduce:
- Clone the demo project: https://github.com/beshkenadze/electron-forge-native_modules-symlink-bug
- npm i & npm run start
Expected Behavior:
The electron-rebuild
process should handle symlinks in native_modules
correctly, ensuring that all necessary libraries are properly linked and accessible.
Actual Behavior:
Symlinks in native_modules
are ignored during the rebuild process, causing runtime crashes due to missing library links.
Additional Information:
App threw an error during load
Error: dlopen(/Users/.../my-new-app/.webpack/main/native_modules/lib/napi-v8/tfjs_binding.node, 0x0001): Library not loaded: @loader_path/../../deps/lib/libtensorflow.2.dylib
Referenced from: <DE780050-AAAC-3B4D-955D-C8090D464B45> /Users/.../my-new-app/.webpack/main/native_modules/lib/napi-v8/tfjs_binding.node
Reason: tried: '/Users/.../my-new-app/.webpack/main/native_modules/lib/napi-v8/../../deps/lib/libtensorflow.2.dylib' (no such file)
Screenshots/Logs:
Orignal libs
![orignal_libs](https://private-user-images.githubusercontent.com/167288/299792692-9ce8feb4-3378-4384-9731-a6e0d7e3ed7e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg2NzU2NTAsIm5iZiI6MTcxODY3NTM1MCwicGF0aCI6Ii8xNjcyODgvMjk5NzkyNjkyLTljZThmZWI0LTMzNzgtNDM4NC05NzMxLWE2ZTBkN2UzZWQ3ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjE4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYxOFQwMTQ5MTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04ZWM1NDYzNzZiMGY2NThlODg3NjgxZmYwMjE5MGNlZmMwOTkwNzI0YzI2NWE0MWQxMWI5Yjg2OGEyYTc3MjUzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.S-_Z7XK-1rn72ZQ6wKlGSKY6iFgQeWc4rY2l7KVS3nk)
Copied libs
![copied_libs](https://private-user-images.githubusercontent.com/167288/299792715-417f05a8-580d-436b-aec1-794a456e9f17.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg2NzU2NTAsIm5iZiI6MTcxODY3NTM1MCwicGF0aCI6Ii8xNjcyODgvMjk5NzkyNzE1LTQxN2YwNWE4LTU4MGQtNDM2Yi1hZWMxLTc5NGE0NTZlOWYxNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjE4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYxOFQwMTQ5MTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lOGZhYjI5ZmFmY2VlODAwNDZlZjlkZGNkNWVlZGZhZDhjYjZjMjIzZGFlNTZkMWYzNTBjZTc3NTg0NGJhZjU5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.IasijNfc580NjNmXGGdn4RrH_TrmIPwHrohJWIyfvjw)
Maybe related to electron/forge#2126