FR: bionic support for vscodium-reh-linux-arm64
Describe the bug
reh is not starting because of missing dependencies (checking with ldd - all depending libraries not found)
Please confirm that this problem is VSCodium-specific
- [ ] That's related to the binary, so I guess MS's is different
Please confirm that the issue/resolution isn't already documented
- [x] I checked the Docs page and the Troubleshooting page and my issue is not mentioned there.
To Reproduce
- download and extract vscodium-reh-linux-arm64-1.96.0.24347.tar.gz
- execute
node - See error; check with
ldd-> all depending libraries missing
Expected behavior of course "works"
Workaround
I've installed node manually, then replaced the non-working node binary with a shell script node $* (thinking about that a symlink may have been more reasonable)
Note: While reh works "in general" the pty host and many extensions don't work - as this is a clang only system that has only libc++, not libcstd++.
Additional context I don't know if a previous version did work or if this was the same before. But Ideally we could bundle a node that is all self-contained (or have a version without it).
CC'ing @jeanp413 to let him know (maybe the start script of open-remote-ssh could check first if the server directory node works and if not give a warning and then rename that (at least if a system-wide node exists)?
Not sure why, it use the same version as for 1.95.3.24321 (https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-arm64.tar.gz)
1.96.0.24347: https://github.com/VSCodium/vscodium/actions/runs/12300460831/job/34329399441#step:11:7411.95.3.24321: https://github.com/VSCodium/vscodium/actions/runs/11865891867/job/33072034303#step:11:1108
Which node version are you using?
That possible never worked... from my edit:
Note: While reh works "in general" [withg the system provided node] the pty host and many extensions don't work - as this is a clang only system that has only libc++, not libcstd++ [which the node_modules are linked against].
@GitMensch Which node version are you using?
@daiyam 1.96 server is completely broken, just go this issue reported on remote-ssh https://github.com/jeanp413/open-remote-ssh/issues/183.
1.96 is shipping node 16, which as I understand vscodium is using this older version of node to support older glibc, but with 1.96 vscode uses a newer version of undici as a dependancy that imports ReadableStream which is available since node 18.
I think vscode smoke test should've caught this, are those run when running the release pipeline?
are those run when running the release pipeline?
No
Can you test the version 1.96.0.24352? Thx
This one can't work, because it is about running vscodium-reh on bionic (android) and in vscodium-reh-linux-arm64:
- included node is for glibc systems; and
VSCODIUM_SERVER_NODEas well as similar solutions from #2126 are not yet available - included node modules are for glibc systems only (we'd like to have at least the Pty Host working)
because it is about running vscodium-reh on bionic (android)
Oh! Sorry It haven't occured to me it was for android, so it's a new arch.
So sorry, when I read bionic, I immediately thought Debian...
Is there a nodejs version available for Android? Maybe https://github.com/nodejs-mobile/nodejs-mobile. But I can't test it, I don't have any recent Android. I think you will need to provide a PR.
nodejs-mobile just provides libnode.so, we would want the node binary.
I guess the biggest issue is to also build all the node modules for bionic... Bionic environments like Termux provide a node package (currently 22.8.0).
Maybe it is enough to use npm i --cpu arm64 --os android for that?
I just tried to manually run npm -i @vscode/spdlog on Android and got (after some other strange errors) a note that the android ndk path is not set (not sure if those packages should be cross-compiled)
This issue has been automatically marked as stale. If this issue is still affecting you, please leave any comment, and we'll keep it open. If you have any new additional information, please include it with your comment!
nodejs-mobile just provides libnode.so, we would want the node binary.
I guess the biggest issue is to also build all the node modules for bionic... Bionic environments like Termux provide a node package (currently 22.8.0).
Termux cross-compiles nodejs against Android NDK. For usage in VSCodium, probably we need to build nodejs ourselves to avoid termux's prefix if we are going to support it outside of termux. https://github.com/termux/termux-packages/blob/master/packages/nodejs/build.sh
Maybe it is enough to use
npm i --cpu arm64 --os androidfor that?I just tried to manually run
npm -i @vscode/spdlogon Android and got (after some other strange errors) a note that the android ndk path is not set (not sure if those packages should be cross-compiled)
Yes, cross-compile is usually the correct way to build binaries and libraries for Android.
This issue has been automatically marked as stale. If this issue is still affecting you, please leave any comment, and we'll keep it open. If you have any new additional information, please include it with your comment!
No one showed up with a bionic build of node.js so far and while I'm not so eager to give it a try (rather work on other free software) it still affects me.