Open Art1f4ct opened 1 year ago
Hi Art1f4ct! I am over the moon that the binary worked in Kinoite :) Specially given the other open issue where it didn't work in Workstation :(
You are correct that this error is unrelated to the credentials. You are missing a package, OpenSSL, which I find strange is not installed in SteamOS. Looking for information on how to install packages on the Deck, I found these two:
https://www.reddit.com/r/SteamDeck/comments/xgslv9/howto_installing_pacman_packages_in_userspace/
https://steamdecktips.com/blog/install-archlinux-packages-on-the-steam-deck
It seems you can install packages but they do get wiped on updates. Link 2 seems the easiest to just try.
I really should (try to) make a Flatpak out of this thing...
As per this article https://blog.cddr.org/posts/2023-02-20-distributing-binaries-cl-ffi/ the issue could also be that the version of SSL libs that I load when I build my binaries doesn't match the ones in SteamOS. Will keep digging...
If the last issue is the problem, then building the binary yourself would make it work. Will keep looking into the Flatpak option!
That's a shame that it isn't working in Workstation, trying to make a graphical application run on so many different systems sounds like a pain. I'd hope Flatpak would make it easier for developers; as a user, it's great, besides many flatpaks restricting their own file access too much.
The second article you linked sounds akin to what most people needing to install Arch packages on their Deck do. I had no idea that it was possible to tell pacman to install things into a custom folder, but it's a shame that it's such a messy solution. The last link sounds more akin to what I was thinking of, kind of like how you bundle tclkit, but that is both more work for you and also messier than having working system libraries (and I'm guessing security issues because we're dealing with encryption?).
I wish I could help more but like I said I have little understanding of programming. LMK if I can help you test things though. I'll see if there's a reasonable way for me to try to build it on my Deck.
Yep, like you suggest, bundling OpenSSL in this thing doesn't seem like the best approach. That said, it is exactly what I just did! LOL?
Check out in the latest version this subdirectory: https://github.com/sebasmonia/nordvpn-client/tree/main/bin that were generated using a different Common Lisp packaging tool. It pulled all dependencies automagically.
Tried it on my Deck by replacing the old bin folder with the new one (replaced binaries and added libraries), but got an error message that seems to suggest that the shared libraries don't exist where I put them? IDK computers are weird, see screenshot for terminal output.
WOW that was fast. Try the following:
$ LD_LIBRARY_PATH=. ./nordvpn-client
(Source: https://serverfault.com/a/699902)
If that works we can figure out a script or desktop launcher to make it seamless.
Nope, same output as before. It's weird that it seems as though it's looking for the file in the correct location but not finding the file. I wonder if I'm doing something silly, but the terminal is definitely in the correct folder, everything is in that same folder, and nothing has been renamed.
It's not as simple as renaming the 'libcrypto.so.3.0.8' file in your directory to libcrypto.so.3 ? As that's the name of the file it says it can't find? I'm running Bazzite on my deck, not steamos, otherwise I'd report my findings.
Works well on SteamDeck running Bazzite.. thanks for this!
Glad it works for you @andyktaylor !!! I never managed to make it work for @Art1f4ct, sadly, and nowadays I use to Mullvad. But if there are fixes to try, I am happy to give them a try.
Just tested on a Steamdeck running a freshly installed SteamOS 3.5, the app runs fine, didn't have to install any dependancies or anything. Just saved the github folder to my SD card, copied the Nordvpn file in the Binary folder and dropped it on my desktop, run the scripts to save name and password and then opened the app. Works a treat!
Nope, same output as before. It's weird that it seems as though it's looking for the file in the correct location but not finding the file. I wonder if I'm doing something silly, but the terminal is definitely in the correct folder, everything is in that same folder, and nothing has been renamed.
Working fine for me in SteamOS 3.5 - maybe give it another shot
@Art1f4ct if you are running the latest version of SteamOS, maybe it will work now?
Thank you @andyktaylor for your help! And @sean-work too (I missed your earlier message it seems).
I apologize for the messy issue. I tried your prebuilt binary on Fedora Kinoite and it worked like a breeze, which made me hopeful that the binary would also work on SteamOS (which uses an immutable file system similar to Silverblue/Kinoite). Running the binary in the terminal gives me two errors, which I'm guessing are caused by SteamOS missing some libraries. I am prompted with the ability to continue program execution, and if I continue past these two errors the GUI appears (making me hopeful that all other dependencies are satisfied). I have basically no knowledge of programming so I don't know if this is the end of the road (besides modifying the SteamOS image) or if there's another way to solve these dependencies such as providing them directly.
The full output from my terminal is below. Note that I had not yet saved my NordVPN credentials, but I don't believe that affects the output.
(1)(deck@jSTOS ~)$ ~/.local/bin/nordvpn-client
debugger invoked on a SIMPLE-ERROR in thread
<THREAD "main thread" RUNNING {1000550083}>:
Error opening shared object "libcrypto.so.3": libcrypto.so.3: cannot open shared object file: No such file or directory.
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name): 0: [CONTINUE ] Skip this shared object and continue. 1: [RETRY ] Retry loading this shared object. 2: [CHANGE-PATHNAME] Specify a different pathname to load the shared object from. 3: [ABORT ] Exit from the current thread.
(SB-SYS:DLOPEN-OR-LOSE #S(SB-ALIEN::SHARED-OBJECT :PATHNAME #P"libcrypto.so.3" :NAMESTRING "libcrypto.so.3" :HANDLE NIL :DONT-SAVE NIL)) 0] 0
debugger invoked on a SIMPLE-ERROR in thread
<THREAD "main thread" RUNNING {1000550083}>:
Error opening shared object "libssl.so.3": libssl.so.3: cannot open shared object file: No such file or directory.
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name): 0: [CONTINUE ] Skip this shared object and continue. 1: [RETRY ] Retry loading this shared object. 2: [CHANGE-PATHNAME] Specify a different pathname to load the shared object from. 3: [ABORT ] Exit from the current thread.
(SB-SYS:DLOPEN-OR-LOSE #S(SB-ALIEN::SHARED-OBJECT :PATHNAME #P"libssl.so.3" :NAMESTRING "libssl.so.3" :HANDLE NIL :DONT-SAVE NIL)) 0] 0