forum
forum copied to clipboard
[Help Wanted] Extracting AppImage using asar - missing python3 symlink destination?
Describe the issue
I'm maintaining the AUR-package and use asar to extract the app contained in the AppImage. This process now fails because the shipped python3 is symlinked to a non-existing path or file.
To Reproduce Steps to reproduce the behavior:
- Download the latest desktop release for Linux (x86): https://github.com/standardnotes/app/releases/download/%40standardnotes%2Fdesktop%403.183.7/standard-notes-3.183.7-linux-x86_64.AppImage
- Extract the AppImage using
standard-notes-3.183.7-linux-x86_64.AppImage --appimage-extract - Use
asarto extract the app.asar:asar e squashfs-root/resources/app.asar squashfs-root/resources/app - See the following error:
asar e squashfs-root/resources/app.asar squashfs-root/resources/app
node:fs:581
return binding.open(
^
Error: ENOENT: no such file or directory, open './squashfs-root/resources/app.asar.unpacked/node_modules/cbor-extract/build/node_gyp_bins/python3'
at Object.openSync (node:fs:581:18)
at Object.readFileSync (node:fs:457:35)
at module.exports.readFileSync (/usr/lib/node_modules/@electron/asar/lib/disk.js:110:17)
at module.exports.extractAll (/usr/lib/node_modules/@electron/asar/lib/asar.js:204:28)
at Command.<anonymous> (/usr/lib/node_modules/@electron/asar/bin/asar.js:72:10)
at Command.listener [as _actionHandler] (/usr/lib/node_modules/@electron/asar/node_modules/commander/index.js:413:31)
at Command._parseCommand (/usr/lib/node_modules/@electron/asar/node_modules/commander/index.js:914:14)
at Command._dispatchSubcommand (/usr/lib/node_modules/@electron/asar/node_modules/commander/index.js:865:18)
at Command._parseCommand (/usr/lib/node_modules/@electron/asar/node_modules/commander/index.js:882:12)
at Command.parse (/usr/lib/node_modules/@electron/asar/node_modules/commander/index.js:717:10) {
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: './squashfs-root/resources/app.asar.unpacked/node_modules/cbor-extract/build/node_gyp_bins/python3'
}
Node.js v21.4.0
The file python3 is existing, but it's a symlink to an apparently non-existing directory.
$ pwd
/squashfs-root/resources/app.asar.unpacked/node_modules/cbor-extract/build/node_gyp_bins
$ ls -l
python3 -> ../../../../../../../../../../../../../../../opt/hostedtoolcache/Python/3.10.13/x64/bin/python3
Expected behavior
It should be possible to extract the app.asar using asar and the symlinked python3 should point to an existing binary.
Desktop (please complete the following information):
- OS: Arch Linux (Linux Desktop 6.6.4-zen1-1.1-zen)
- Version 3.183.7