
Originally Posted by
RolandHughes
It is a packaging problem. The .deb being created and installed on a bare Ubuntu install is missing something and it is something subtle like a dependency of a dependency of a dependency. Everything works perfectly in development on multiple development machines even when built on multiple versions of Ubuntu. The problem is in packaging this into a .deb which installs on machines that have zero network connection.
Boiling it down, there is a library or background/hidden executable used by WebEngine which isn't being packaged up and failed invocation of it does not log an error anywhere. Not to the terminal, syslog, no place I can find. If it would just stack dump or something it would be a 10 minute task to track down. Whatever this is has a "quietly hidden" failure and one doesn't see the result until that "main" module in webkit exits due to a missing connection number.
Does the same happen if you copy all your executables and libraries to a bare ubuntu VM/chroot (you can create one quickly with debootstrap)? Does it change anything if you install Qt on that VM?
Edit:
QtWebKit doesn't spawn any foreign executables (pstree -p `pidof a`):
a(9252)─┬─{QXcbEventReader}(9253)
├─{Qt HTTP thread}(9262)
├─{Qt bearer threa}(9261)
├─{a}(9254)
├─{a}(9255)
├─{a}(9256)
├─{a}(9257)
├─{a}(9258)
├─{a}(9259)
└─{a}(9260)
a(9252)─┬─{QXcbEventReader}(9253)
├─{Qt HTTP thread}(9262)
├─{Qt bearer threa}(9261)
├─{a}(9254)
├─{a}(9255)
├─{a}(9256)
├─{a}(9257)
├─{a}(9258)
├─{a}(9259)
└─{a}(9260)
To copy to clipboard, switch view to plain text mode
#include <QWebView>
#include <QApplication>
int main(int argc, char **argv) {
QWebView view;
view.show();
view.
setUrl(QUrl("http://www.google.com"));
return app.exec();
}
#include <QWebView>
#include <QApplication>
int main(int argc, char **argv) {
QApplication app(argc, argv);
QWebView view;
view.show();
view.setUrl(QUrl("http://www.google.com"));
return app.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks