Hi all,
In the past I’ve been mucking about with virtual machines and such just to make the SailFish SDK run on the more modern Linux distributions, but I finally got fed up with that and made a deeper dive into the issue.
There are some previous posts on this forum about this too which indicates that the old version of OpenSSL that the SDK depends on is the issue, but I didn’t see any solutions that I was comfortable with, so I figured I would share what I did. It applies to Ubuntu 22.04, but it likely applies to other modern Linux distributions as well.
Install OpenSSL 1.1.1 from source. At the time of writing 1.1.1q is the latest version. Check with /source/old/1.1.1/index.html so see what the latest is now.
Download and install in a local directory:
wget 'https://www.openssl.org/source/old/1.1.1/openssl-1.1.1q.tar.gz'
tar xf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q/
CFLAGS=-fPIC ./config --prefix=/home/jarno/projects/SailFish/ancientssl shared
make -j 4
make install
Of course, you’ll need to replace /home/jarno/projects/SailFish/ancientssl
with wherever you want to install the old OpenSSL libraries.
Then run the installer for the Sailfish SDK which is 3.9.6 at this time:
LD_LIBRARY_PATH=/home/jarno/projects/SailFish/ancientssl/lib/ ./SailfishSDK-3.9.6-linux64-offline.run
It should properly install now without errors about server not found or stuff like that.
Finally, once the installation is complete, you’ll need to adjust the .desktop files to that the SDK tools will keep using the old OpenSSL libraries. Edit these two files:
- ~/.local/share/applications/SailfishSDK-qtcreator.desktop
- ~/.local/share/applications/SailfishSDK-MaintenanceTool.desktop
Edit the Exec=/home/jarno/....
to Exec=env LD_LIBRARY_PATH=/home/jarno/projects/SailFish/ancientssl/lib/ /home/jarno/....
This method will ensure that only the SDK will use the old OpenSSL libraries and the rest of the OS will remain untouched. Of course, you won’t get updates for OpenSSL whenever they are released, but you can just rerun the OpenSSL compilation/installation steps above with the newer version.
Anyway, I hope this helps others!