Windscribe / Desktop-App

Windscribe 2.0 desktop client for Windows, Mac and Linux
https://windscribe.com
GNU General Public License v2.0
627 stars 88 forks source link

Can't run or install on odroid C2 (ARMv8 AArch64) #144

Closed Funecio-Agrante closed 7 months ago

Funecio-Agrante commented 7 months ago

My odroid is running with Ubuntu Mate 20.04.

First I tried installing the .deb package windscribe_2.9.9_arm64.deb. At runtime I get the error windscribe-cli: error while loading shared libraries: libQt6Core.so.6: cannot open shared object file: No such file or directory

Then I installed and updated apt-file search. Searching for libQt6Core.so.6 came out empty.

I also searched for the file in https://packages.ubuntu.com/search?searchon=contents&keywords=libQt6Core.so.6&mode=filename&suite=focal&arch=any but that also doesn't show any results. I don't know what to install to get this file. Google searches also didn't provide any clarity.

Then I tried compiling with docker. It got stuck in the vcpkg line with the error CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage

Do I need to install Ninja? There is no mention in the instructions.

Then I tried the last method, more 'manual'. I installed cmake snap and my current version is 3.29.0. Then I followed the instructions for vcpkg, but I got the exact same error about 'Ninja'. Do I need to install this separately?

bernerdad commented 7 months ago

Is only the CLI app failing to start, or does the GUI app fail to start as well?

Funecio-Agrante commented 7 months ago

It's both: $ /opt/windscribe/Windscribe %F

/opt/windscribe/Windscribe: error while loading shared libraries: libQt6Core.so.6: cannot open shared object file: No such file or directory

bernerdad commented 7 months ago

Are the Qt libs (libQt6*.so.6) in /opt/windscribe/lib?

Funecio-Agrante commented 7 months ago

Are the Qt libs (libQt6*.so.6) in /opt/windscribe/lib?

Yes, they are there!

But they are owned by root... however the files in /opt/windscribe are not...

I installed the .deb via package manager and of course had to authenticate. How was I supposed to run the installation in such a way that the files under /lib don't end up being owned by root?

jaxu commented 7 months ago

Can you try installing with

sudo apt install --reinstall <filename>

instead? Everything in the package should be owned by root (with at least read permissions for all users). If you used the graphical package manager I'm not sure if it did something differently.

Funecio-Agrante commented 7 months ago

At the downloads folder,

$ sudo apt install windscribe_2.9.9_arm64.deb
$ sudo apt install --reinstall windscribe_2.9.9_arm64.deb

returns

E: Unable to locate package windscribe_2.9.9_arm64.deb

With dpkg, $ sudo dpkg -i windscribe_2.9.9_arm64.deb the package installs as before, with the same error.

However 'ls -al' reveals that the files have in fact read permissions for everyone. image

When I change ownership, $ sudo chown -R user:user /opt/windscribe/ the issue persists.

This is the output of ldd Windscribe: image

jaxu commented 7 months ago

There appears to be something wrong with your package manager here. apt should be able to install the deb file -- dpkg will not handle installing dependencies and it's unlikely it will run even if you resolve the Qt problem.

The inability to find libQt6Core.so.6 is also strange, but the packaging itself looks fine. You can even inspect the deb file on a different machine by running:

Then, in opt/windscribe, you should be able to see that the Windscribe binary is indeed linked to libQt6Core.so.6 in the lib directory.

All of that aside, I believe Ubuntu MATE 20.04 is past its EOL anyway. I understand that Odroid may not support any newer OS but unfortunately we can't dedicate much developer time to investigating this. If you do figure this out and would like us to integrate some changes, we would be happy to receive your contribution.

Funecio-Agrante commented 7 months ago

Okay, I did some more digging.

sudo apt install ./windscribe_2.9.9_arm64.deb works, I honestly don't know what was the issue yesterday.

So the package seems to be installing correctly. Then I started looking at details about the file: $ file libQt6Core.so.6

libQt6Core.so.6: ELF 64-bit LSB shared object, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=f5e706dfe139ad08fe2a2f29e2fb69760193f926, for GNU/Linux 3.17.0, not stripped

So kernel version min 3.17.0. But currently I have uname -r

3.16.85-65

Could this be the reason?

jaxu commented 7 months ago

Indeed, that is a likely cause. 3.16 is pretty ancient, coming out in 2014. I suppose this is a custom kernel from odroid.

Unfortunately it doesn't look like we can do much to support here since this is a requirement of Qt 6.5.

Funecio-Agrante commented 7 months ago

Yea the odroid C2 is a EOL product now. It still works great, but Hardkernel has new models and they are winding down support for older models they don't sell anymore.

Mate 20 is the latest I could install built by Hardkernel and even that had to be an image install, the apt update from 18 wasn't picking up the newer LTS.

I guess my option now is to try an Armbian build https://www.armbian.com/odroid-c2/.

Thanks, I'll take a look at OS upgrades and revisit this issue later.

Funecio-Agrante commented 7 months ago

Issue was probably due to incompatible old kernel installed in target machine.