Brute force updating Unigine Superposition QT5 to 5.9.5 (AKA fixing it for Ubuntu 18.04.1 and Fedora 28)

So you have Ubuntu 18.04.1 but you have KDE installed. KDE somehow causes a conflict with Unigine Superposition and it just won’t run. Instead of trying to fix the ancient version of QT5 in Superposition, (cause it doesn’t use the OS’ QT5 version by default, likely for safety reasons) let’s brute force an update to it’s bundled QT5 to what Ubuntu 18.04.1 uses: QT5 5.9.5

The gist of it is simple. Inside each folder of /Unigine_Superposition-1.0/bin/qt is the base version of QT5 that Superposition was based off of, not anticipating new OpenSSL/libcrypto versions to ever arise, causing it to fail.

We’re going to one by one replace the contents of the folders in /bin/qt with stuff from our pre-installed QT 5.9.5

for /qt/lib, Grab the liqt5*.so.5 symlinks and the libqt5*.so.5.9.5 files and copy and paste them from /usr/lib/x86_64-linux-gnu. If any extra files remain in /Unigine_Superposition-1.0/bin/qt/lib, you will have to grab them with apt install, then continue copying over from x86_64-linux-gnu. On 18.04.1, the usual naming format of the packages is libqt5*5 for the stuff in the x86_64-linux-gnu folder.

Delete the libicu*.so.56 files. In my testing, they don’t affect the benchmark or QT5 at all on Ubuntu 18.04 or Fedora 28, as they use libicu*.so.60. For Fedora 27 though, you will have to package the libicu*.so.60* files (and potentially symlinks) with your /bin/qt/lib folder, as the version on Fedora 27 is still stuck on *.so.57.

In my experience, these are missing from the stock 18.04.1 install:

Just run apt install libqt5quickparticles5 libqt5quicktest5 libqt5websockets5 (though yours may vary based on distro spins)

In /qt/plugins, copy from /usr/lib/x86_64-linux-gnu/qt5/plugins the entire xcbglintegrations folder and only libqxcb.so from the platforms folder.

In /qt/qml, things get interesting. /qt/qml/Qt/labs is supposed to have 2 folders to replace, but on a stock 18.04.1 installation, only one is present in /usr/lib/x86_64-linux-gnu/qt5/qml/Qt/labs: folderlistmodel. That folder can be copied over immediately, but for settings, you’ll have to use apt install qml-module-qt-labs-settings to get that folder in /usr/lib/x86_64-linux-gnu/qt5/qml/Qt/labs.

Going back up a few levels to /qt/qml, QtGraphicalEffects, QtQuick and QtQuick2 can all be directly copied over from /usr/lib/x86_64-linux-gnu/qt5/qml to /qt/qml. If any of those are missing, use apt install qml-module-qtgraphicaleffects qml-module-qtquick qml-moduleqtquick2

That should be all the files replaced.

Fedora 28 bases it’s QT5 version off of QT5 5.11, so the same method will not work here. It needs to strictly be QT5 5.9.5. The solution is to copy and paste the /bin/qt folder you made in 18.04.1 and paste it into the extracted Superposition on Fedora 28, with one extra step.

18.04.1 built QT5 5.9.5 with libdouble-conversion.so.1. This is not present in Fedora 28, but can be gotten with dnf install double-conversion and voila! Also working on Fedora 28!

Hopefully this is helpful to get Superposition working if you have a older archive of it.

Unigine did push out a fix with the current archives of simply an older version of OpenSSL together with the archives with the same old version of QT5… Uh, bit of a security risk there. I think replacing the QT5 version should be safer. If you get one of these newer archives, delete the libssl and libcrypto .so files in /bin/qt, and continue with the rest of the procedure to upgrade the QT5 version. It will still work afterwards, and will instead use the latest OpenSSL version installed with Ubuntu/Fedora.

6 Likes

Great job @FurryJackman. Thanks for the contribution!