I'm returning to this forum after a long period of not using Scribus.
I have Scribus Version 1.4.3.svn installed on Ubuntu 14.04 32 bit .. although I have not used Scribus for some time.
I thought I would update to scribus-trunk (version 1.5) and I added PPA to install daily build.
So I have two versions of Scribus installed.
When I try to launch /usr/bin/scribus-trunk .. scribus crashes.
I get a clue by running command .. scribus-trunk --version
scribus-trunk --version
This application failed to start because it could not find or load the Qt platform plugin "xcb".
Reinstalling the application may fix this problem.
Aborted (core dumped)
I searched around and read these posts ..
http://stackoverflow.com/questions/17106315/failed-to-load-platform-plugin-xcb-while-launching-qt5-app-on-linux-without (http://stackoverflow.com/questions/17106315/failed-to-load-platform-plugin-xcb-while-launching-qt5-app-on-linux-without)
https://lemirep.wordpress.com/2013/06/01/deploying-qt-applications-on-linux-and-windows-3/ (https://lemirep.wordpress.com/2013/06/01/deploying-qt-applications-on-linux-and-windows-3/)
Now quite separately I am trying out different versions of Qt5 and currently I have Qt 5.5.1 installed in /opt/qt55 .. not the usual location.
After reading the second post above I added these vars to ~/.profile
export LD_LIBRARY_PATH="/opt/qt55/lib":${LD_LIBRARY_PATH}
export QML_IMPORT_PATH="/opt/qt55/qml"
export QML2_IMPORT_PATH="/opt/qt55/qml"
export QT_QPA_PLATFORM_PLUGIN_PATH="/opt/qt55/plugins/platforms"
and rebooted.
But I'm stilll missing the xcb plugin and scribus-trunk still crashes.
Scribus 1.4.3 svn continues to launch without problems.
Can you advise on installing scribus-trunk daily build alongside scribus 1.4.3 on Ubuntu 14.04?
Researching here ...
https://forum.qt.io/topic/38094/solved-qt5-2-1-platform-issue-on-deployment-could-not-find-xcb-plugin-linux/13
I believe that scribus-trunk is looking for
/opt/qt55/plugins/platforms/libqxcb.so
So how do I get scribus-trunk to find libqxcb.so
I've tried setting LD_LIBRARY_PATH but no joy ...
echo $LD_LIBRARY_PATH
/opt/qt55/plugins/platforms:/opt/qt55/lib:/usr/lib/i386-linux-gnu/:/usr/lib/
[later edit]
Jump to final post to see why the above LD_LIBRARY_PATH is incorrect.
I'm still stuck on this issue ..
Can you clarify what versions of Qt 5 are used to build scribus-ng and scribus-trunk?
hey
can you give us your parameters to the cmake command?
if you have a self compiled qt, you have to set the path to it both when compiling scribus and when running it...
all in all, you'd better use a version of ubuntu where you can compile scribus without having to compile your copy of qt...
Thanks for responding.
I was hoping to avoid compiling scribus-ng and scribus-trunk and instead to simply install them (from PPA) via
sudo apt-get install scribus-ng
sudo apt-get install scribus-trunk
as I did to get scribus 1.4 to work in Ubuntu 14.04 (32 bit).
So I have no cmake parameters to show you.
I have never built scribus from source. I hoped to just install latest binaries from PPA repo.
In fact in /user/bin/ I now have these three binaries ...
scribus 11.8 MiB
scribus-ng 17.2 MiB
scribus-trunk 20.1 MiB
If I run commands .. ldd scribus-ng .. or .. ldd scribus-trunk .. I see no dependency errors (but equally I see no references to Qt path /opt/qt55).
If I try to launch scribus-ng (with QT_DEBUG_PLUGINS=1 scribus-ng) I see this error ...
In /opt/qt55/plugins/platforms/libqxcb.so:
Plugin uses incompatible Qt library (5.5.1) [release]
"The plugin '/opt/qt55/plugins/platforms/libqxcb.so' uses incompatible Qt library. (5.5.1) [release]"
not a plugin
I have cleared all attempts to set env vars through ~/.profile.
I can provide more detailed diagnostics if it helps to answer this.
Is the conclusion that I must now compile scribus-ng / scribus-trunk source to work with Qt 5.5.1 paths?
mmm... i guess you're running too fast. :-)
next question: why do you have a custom qt5?
ciao
a.l.e
Quotenext question: why do you have a custom qt5?
This is a long story of development experiments ...
Quite separately from Scribus I wanted to experiment with Qt 5.* + Python bindings (PyQt) for app development (aiming at desktop initially). Previously I had Qt 4 on Ubuntu. I now have Qt 5.5.1 + PyQt + eric6 IDE working.
I also wanted to install latest Scribus for project documentation although I have Scribus 1.4.3 svn installed..
I have the Qt packages as listed here ..
http://askubuntu.com/questions/508503/whats-the-development-package-for-qt5-in-14-04
But .. the Ubuntu 14.04 repo stops at
Qt 5.2.1.
The reason I opted for installing
Qt 5.5.1 is the eric6 IDE dependency
While attempting to install latest
eric6 IDE, with earlier version of Qt installed, I encountered this error ..
"Sorry, you must have Qt version 4.8.0 or better or 5.3.0 or better".
So I decided to uninstall Qt 4 and upgrade (manually) to Qt 5.5.1 and then install latest PyQt snapshot and eric6 IDE.
I purged all older Qt versions and now have Qt 5.5 Creator working as before. Qt 5.5.1 examples work. PyQt works. eric6 IDE works.
...
Then I attempted to install Scribus-ng/Scribus-trunk and hit the 'xcb' plugin roadblock as reported earlier.
...
My latest attempt to correct this is to place a qt.conf file in same folder as scribus executables (/usr/bin).
Contents ..
[Paths]
Prefix= ../../opt/qt55
Translations=i18n
Libraries=lib
Plugins=plugins
But that didn't help. same plugin error seen.
...
The confusing point is that scribus wiki
http://wiki.scribus.net/canvas/Building_SVN_versions_with_CMake#Version_1.5.x
reads ... dependency .. Qt (
version >= 5.2; see below for details)
If I were to now try purging Qt 5.5.1 what earlier version of Qt would work with scribus-ng (the binary)?
Thanks again.
what about upgrading your ubuntu?
if you're not bound to that version of ubuntu, it's probably the better choice, if you want to try out the newest version of scribus and eric...
Upgrade what? Ubuntu 14.04, Qt or Scribus? There is plenty of life left in 14.04 LTS.
What I did try today was installing a second (earlier) version of Qt .. in fact Qt 5.3.2 ..
and adding path /opt/Qt5.3.2/5.3/gcc/bin to $PATH and to qt.conf.
Quoteqmake -v
QMake version 3.0
Using Qt version 5.3.2 in /opt/Qt5.3.2/5.3/gcc/lib
Then I ran .. QT_DEBUG_PLUGINS=1 scribus-ng
and the debug output was similar to previous reports ...
QuoteIn /opt/Qt5.3.2/5.3/gcc/plugins/platforms/libqxcb.so:
Plugin uses incompatible Qt library (5.3.2) [release]
"The plugin '/opt/Qt5.3.2/5.3/gcc/plugins/platforms/libqxcb.so' uses incompatible Qt library. (5.3.2) [release]"
not a plugin
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
This application failed to start because it could not find or load the Qt platform plugin "xcb".
But clearly the reference to path "/usr/bin/platforms" is an error (this path doesn't exist in /usr/bin).
Is Scribus searching for /plugins/platforms/?
...
Please answer my earlier question.
What version of Qt was used to build scribus-ng and scribus-trunk?
What Qt library is "compatible"?
I will then try to launch scribus-ng in that same environment used by Scribus build team.
...
I don't have these problems with other apps, some more demanding in resources than Scribus.
Problem resolved.
After much trial and error I hit on the combination to get scribus-ng and scribus-trunk to launch without the xcb plugin error.
(1) Place qt.conf file in same folder as scribus-ng and scribus-trunk executables (/usr/bin/qt.conf).
qt.conf ... settings for Qt 5.5.1 path ...
[Paths]
Prefix= ../../opt/qt55
Translations=i18n
Libraries=lib
Plugins=plugins
(2) Set environment variables in ~/.profile then reboot
export PATH="/opt/qt55/bin":$PATH
export LD_LIBRARY_PATH="/opt/qt55/lib":${LD_LIBRARY_PATH}
This works for the two different versions of Qt I installed (the paths have to be amended if default Qt version is changed).
e.g. Earlier version of Qt 5.3.2 required these settings
in ~/.profile ...
export PATH="/opt/Qt5.3.2/5.3/gcc/bin":$PATH
export LD_LIBRARY_PATH="/opt/Qt5.3.2/5.3/gcc/lib":${LD_LIBRARY_PATH}
and in qt.conf ...
Prefix= ../../opt/Qt5.3.2/5.3/gcc
Note that in qt.conf the Prefix var defining path to Qt is relative to the folder (/usr/bin) where qt.conf is placed.
Read more here on using qt.conf ... http://doc.qt.io/qt-5/qt-conf.html
These vars could be setup in a bash script.