Installing Sailfish SDK on Ubuntu 22.04

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!

3 Likes

I just grabbed the deb packages from here Index of /ubuntu/pool/main/o/openssl

But perhaps there are some reason against having it properly installed…?
It does not conflict with version 3.x at least.

Ah my worry was making it available for the entire OS.

Do you use qtCreator?
I found some deb package (might be libssl1.1) that helped me through the installation. And qtCreator window open, but when I try to open a project, qtCreator crashes always.
sfdk seems to work in xterm. But I don’t use sfdk much, so I haven’t tested properly.

Here’s the start or the error output:

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland
to run on Wayland anyway.
SOFT ASSERT: “path == QDir::cleanPath(path)” in file …/…/…/…/sailfish-qtcrea
tor/src/libs/sfdk/virtualmachine.cpp, line 750
mer.qmlLive: QmlLive Bench location invalid or not set. QmlLive Bench management
will not work.
inotify_add_watch(/opt/SailfishOS/mersdk/targets/targets.xml) failed: (Permissio
n denied)
SOFT ASSERT: “!reader.hasError()” in file …/…/…/…/sailfish-qtcreator/src/lib
s/sfdk/buildengine.cpp, line 706
sfdk.device: Error updating “/opt/SailfishOS/vmshare/devices.xml” “Cannot create
file /opt/SailfishOS/vmshare/devices.xml: Unknown error”
sfdk.device: Error updating “/opt/SailfishOS/emulator/SailfishOS-4.4.0.58/vmshar
e/devices.xml” “Cannot create file /opt/SailfishOS/emulator/SailfishOS-4.4.0.58/
vmshare/devices.xml: Unknown error”
VBoxManage: error: Could not find a registered machine named ‘Sailfish SDK Build
Engine’

And here’s the last lines:

VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component
VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: “FindMachine(Bstr(VMNameOrUuid).raw(), machine.asOut
Param())” at line 2772 of file VBoxManageInfo.cpp
sfdk.vms: Process “/usr/bin/VBoxManage” exited with unexpected exit code 1 . Ar
guments: (“showvminfo”, “SailfishOS-4.4.0.58”)
ConnectionServer error: “QLocalSocket: Remote closed” “/tmp/QtCreator-vEpDVN/Cla
ngBackEnd-5802”
[1]+ Muistialueen ylitys (luotiin core-tiedosto) /opt/SailfishOS/bin/qtcreator.sh > qtcreator.txt 2>&1

Where ConnectionServer error: ... is printed when I select a project to open.
So I assume that installing openssl-1.1 is not enough to run SDK in Ubuntu 22.04.

As far as I know, OpenSSL 1.1.1 should be enough to get qtCreator running. The error messages you get seem to have more to do with VirtualBox instead. I use the Docker method myself, so I didn’t encounter that.

That being said, I do see stuff like “/opt/SailfishOS/… (Permission denied)” in your error messages. I think the SDK needs to be installed in your local user account rather than in /opt.

1 Like