Menu

Build Dooble (Qt5 interface) from source (checked out via svn) on Debian GNU/Linux

Help
2014-07-29
2014-08-01
  • Cavan Mejias

    Cavan Mejias - 2014-07-29

    Hello,

    * I'd like to build Dooble, utilizing Qt5. 
    + Followed the instructions in Documentation/COMPILING for Linux 
    + yields a browser w/ Qt4 interface.
    + I have installed Qt5 dev packages found in synaptic.
    

    After some Googling I tried the command "qmake -qt=qt5 dooble.qt5.pro". This yields:

    [Tue 14/07/29 14:26 AST][pts/3][x86_64/linux-gnu/3.15-6.dmz.2-liquorix-amd64][5.0.5]
    <rianav@rianav:~/src-code/dooble-code/browser>
    zsh 11  (svn)-[trunk:5822]-% qmake -qt=qt5 dooble.qt5.pro
    [Tue 14/07/29 14:26 AST][pts/3][x86_64/linux-gnu/3.15-6.dmz.2-liquorix-amd64][5.0.5]
    <rianav@rianav:~/src-code/dooble-code/browser>
    zsh 12  (svn)-[trunk:5822]-% make
    make -C libSpotOn library
    make[1]: Entering directory '/home/rianav/src-code/dooble-code/browser/libSpotOn'
    make -f Makefile.linux library
    make[2]: Entering directory '/home/rianav/src-code/dooble-code/browser/libSpotOn'
    gcc  -fPIC -fstack-protector-all \
    -Wall -Werror -Wextra -Wpointer-arith \
    -Wstack-protector -Wstrict-overflow=5 -Wstrict-prototypes \
    -c -o libspoton.o libspoton.c
    gcc  -shared -Wl,-soname,libspoton.so \
    gcc  -shared -Wl,-soname,libspoton.so \
    -o libspoton.so libspoton.o -lgcrypt -lpthread -lsqlite3
    make[2]: Leaving directory '/home/rianav/src-code/dooble-code/browser/libSpotOn'
    make[1]: Leaving directory '/home/rianav/src-code/dooble-code/browser/libSpotOn'
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/applicationPropertiesWindow.ui -o temp/ui/ui_applicationPropertiesWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/bookmarksPopup.ui -o temp/ui/ui_bookmarksPopup.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/bookmarksWindow.ui -o temp/ui/ui_bookmarksWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/clearContainersWindow.ui -o temp/ui/ui_clearContainersWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/cookieWindow.ui -o temp/ui/ui_cookieWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/downloadPrompt.ui -o temp/ui/ui_downloadPrompt.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/downloadWindowItem.ui -o temp/ui/ui_downloadWindowItem.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/downloadWindow.ui -o temp/ui/ui_downloadWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/errorLog.ui -o temp/ui/ui_errorLog.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/exceptionsWindow.ui -o temp/ui/ui_exceptionsWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/fileManagerForm.ui -o temp/ui/ui_fileManagerForm.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/ftpManagerForm.ui -o temp/ui/ui_ftpManagerForm.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/historySideBar.ui -o temp/ui/ui_historySideBar.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/historyWindow.ui -o temp/ui/ui_historyWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/mainWindow.ui -o temp/ui/ui_mainWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/pageSourceWindow.ui -o temp/ui/ui_pageSourceWindow.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/passphrasePrompt.ui -o temp/ui/ui_passphrasePrompt.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/passwordPrompt.ui -o temp/ui/ui_passwordPrompt.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/reinstateWidget.ui -o temp/ui/ui_reinstateWidget.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/settings.ui -o temp/ui/ui_settings.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/sslciphers.ui -o temp/ui/ui_sslciphers.h
    /usr/lib/x86_64-linux-gnu/qt5/bin/uic UI/statusBar.ui -o temp/ui/ui_statusBar.h
    g++ -c -m64 -pipe -fPIE -fstack-protector-all -fwrapv -mtune=generic -pie -Os -Wall -Wcast-align -Wcast-qual -Werror -Wextra -Woverloaded-virtual -Wpointer-arith -Wstack-protector -Wstrict-overflow=5 -Wall -W -D_REENTRANT -fPIE -DDOOBLE_LINKED_WITH_LIBSPOTON -DDOOBLE_MINIMUM_GCRYPT_VERSION=0x010500 -DDOOBLE_USE_PTHREADS -DQT_NO_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CONCURRENT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I. -IInclude -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebKitWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtQuick -isystem /usr/include/x86_64-linux-gnu/qt5/QtOpenGL -isystem /usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -isystem /usr/include/x86_64-linux-gnu/qt5/QtQml -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebKit -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtXml -isystem /usr/include/x86_64-linux-gnu/qt5/QtSql -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtConcurrent -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Itemp/moc -Itemp/ui -o temp/obj/dbookmarkspopup.o Source/dbookmarkspopup.cc
    In file included from Include/dhistory.h:34:0,
                     from Include/dooble.h:41,
                     from Source/dbookmarkspopup.cc:34:
    Include/ui_historyWindow.h:13:25: fatal error: QtGui/QAction: No such file or directory
     #include <QtGui/QAction>
                             ^
    compilation terminated.
    Makefile:1041: recipe for target 'temp/obj/dbookmarkspopup.o' failed
    make: *** [temp/obj/dbookmarkspopup.o] Error 1
    

    How to proceed? Thank you.

    Regards.

     

    Last edit: Cavan Mejias 2014-07-29
  • Guess Who

    Guess Who - 2014-07-30

    Which Qt 5 packages did you install?

    I consistently build Dooble on Debian 7.6. Although I have Qt 5.3.1 built from source, the compilation completes successfully.

    /usr/local/Qt-5.3.1/bin/qmake -o Makefile dooble.qt5.pro
    make
    ...
    ldd ./Dooble |grep Gui
    libQt5Gui.so.5 => /usr/local/dooble/Lib/libQt5Gui.so.5

     
  • Cavan Mejias

    Cavan Mejias - 2014-07-30

    Which Qt 5 packages did you install?
    I'll search via aptitude and post a list.

    I have Qt 5.3.1 built from source, the compilation completes successfully.
    Could the Qt 5.3.1 for Linux 64bit (444 MB) installer provide such an environment? Thanks.

    /usr/local/Qt-5.3.1/bin/qmake -o Makefile dooble.qt5.pro
    make
    

    On my system I have these qmake binaries:

    [Wed 14/07/30 13:06 AST][pts/4][x86_64/linux-gnu/3.15-6.dmz.2-liquorix-amd64][5.0.5]
    <rianav@rianav:~>
    zsh 18 % locate qmake | grep bin
    /usr/bin/qmake
    /usr/bin/qmake-qt4
    /usr/lib/x86_64-linux-gnu/qt4/bin/qmake
    /usr/lib/x86_64-linux-gnu/qt5/bin/qmake
    /usr/share/qt4/bin/qmake
    

    Substituting /usr/lib/x86_64-linux-gnu/qt5/bin/qmake in the instructions in the second post of this thread yields an error msg.

    g++ -c -m64 -pipe -fPIE -fstack-protector-all -fwrapv -mtune=generic -pie -Os -Wall -Wcast-align -Wcast-qual -Werror -Wextra -Woverloaded-virtual -Wpointer-arith -Wstack-protector -Wstrict-overflow=5 -Wall -W -D_REENTRANT -fPIE -DDOOBLE_LINKED_WITH_LIBSPOTON -DDOOBLE_MINIMUM_GCRYPT_VERSION=0x010500 -DDOOBLE_USE_PTHREADS -DQT_NO_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_CONCURRENT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I. -IInclude -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebKitWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtQuick -isystem /usr/include/x86_64-linux-gnu/qt5/QtOpenGL -isystem /usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -isystem /usr/include/x86_64-linux-gnu/qt5/QtQml -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebKit -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtXml -isystem /usr/include/x86_64-linux-gnu/qt5/QtSql -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtConcurrent -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Itemp/moc -Itemp/ui -o temp/obj/dbookmarkspopup.o Source/dbookmarkspopup.cc
    In file included from Include/dhistory.h:34:0,
                     from Include/dooble.h:41,
                     from Source/dbookmarkspopup.cc:34:
    Include/ui_historyWindow.h:13:25: fatal error: QtGui/QAction: No such file or directory
     #include <QtGui/QAction>
                             ^
    compilation terminated.
    Makefile:1041: recipe for target 'temp/obj/dbookmarkspopup.o' failed
    make: *** [temp/obj/dbookmarkspopup.o] Error 1
    

    Thanks!

     

    Last edit: Cavan Mejias 2014-07-30
  • Guess Who

    Guess Who - 2014-07-30

    I don't know, you may need to install other Debian packages to satisfy Qt. I did in order to build Qt 5.3.1 from source.

    Do you have libQt5Gui.so?

     
  • Guess Who

    Guess Who - 2014-07-30

    And libQt5Widgets.so?

     
  • Cavan Mejias

    Cavan Mejias - 2014-08-01
            Hello,
         The two libraries seem to  be present on the system:
    
    [Fri 14/08/01 09:55 AST][pts/4][x86_64/linux-gnu/3.15-6.dmz.2-liquorix-amd64][5.0.5]
    <rianav@rianav:~>
    zsh 50 % locate libQt5Widgets.so
    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so
    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.3
    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.3.1
    
    [Fri 14/08/01 09:55 AST][pts/4][x86_64/linux-gnu/3.15-6.dmz.2-liquorix-amd64][5.0.5]
    <rianav@rianav:~>
    zsh 49 [127] % locate libQt5Gui.so
    /usr/lib/x86_64-linux-gnu/libQt5Gui.so
    /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
    /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.3
    /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.3.1
    

    I searched for Qt5 packages via aptitude. These are the ones in the output that are marked as installed.

    • i libqt5concurrent5 Qt 5 concurrent module

    • i A libqt5core5a Qt 5 core module

    • i A libqt5dbus5 Qt 5 D-Bus module

    • i A libqt5gui5 Qt 5 GUI module * i A libqt5keychain0 - Qt API to store passwords (QT5 version)

    • i A libqt5multimedia5 - Qt 5 Multimedia module
    • i A libqt5multimedia5-plugins - Qt 5 Multimedia module plugins
    • i A libqt5multimediaquick-p5 - Qt 5 Multimedia Quick module
    • i A libqt5multimediawidgets5 - Qt 5 Multimedia Widgets module
    • i A libqt5network5 - Qt 5 network module

    • i A libqt5opengl5 - Qt 5 OpenGL module

    • i libqt5opengl5-dev - Qt 5 OpenGL library development files

    • i A libqt5printsupport5 - Qt 5 print support module

    • i A libqt5qml5 - Qt 5 QML module
    • i A libqt5quick5 - Qt 5 Quick library
    • i A libqt5quickparticles5 - Qt 5 Quick particules module
    • i A libqt5quicktest5 - Qt 5 Quick Test library
    • i A libqt5quickwidgets5 - Qt 5 Quick Widgets library

    • i A libqt5script5 - Qt 5 script module

    • i libqt5scripttools5 - Qt 5 script tools module

    • i A libqt5sql5 - Qt 5 SQL module

    • i A libqt5sql5-sqlite - Qt 5 SQLite 3 database driver

    • i A libqt5test5 - Qt 5 test module

    • i A libqt5webkit5 - Web content engine library for Qt

    • i libqt5webkit5-dev - Web content engine library for Qt - develo

    • i A libqt5widgets5 - Qt 5 widgets module
    • i A libqt5x11extras5 - Qt 5 X11 extras
    • i libqt5x11extras5-dev - Qt 5 X11 extras development files
    • i A libqt5xml5 - Qt 5 XML module
    • i libqt5xmlpatterns5 - Qt 5 XML patterns module
    • i libqt5xmlpatterns5-dev - Qt 5 XML patterns development files

    • i qdbus-qt5 - Qt 5 D-Bus tool

    • i qt5-default - Qt 5 development defaults package
    • i qt5-qmake - Qt 5 qmake Makefile generator tool
    • i qt5keychain-dev

    Are there any required pkgs missing? Thanks.

     
  • Guess Who

    Guess Who - 2014-08-01

    Try this:
    make distclean
    /usr/lib/x86_64-linux-gnu/qt5/bin/qmake -o Makefile dooble.qt5.pro
    make

     
  • Cavan Mejias

    Cavan Mejias - 2014-08-01

    Hello,
    I don't know what changed. However I got the build process to finish without error. First I checked out a fresh copy of the source from svn, then ran the commands in the post above.

    Subsequently, ./Dooble got me a browser window. Great!
    Oddly, upon manually entering www.cryptome.org in the browser's address bar (Qt5 build), Dooble crashes. Howerver doing the same with www.kde.org, ubuntu.com, bbc.co.uk does not yield a crash. This only happens, so far, if the passphrase set in the Windows -> Settings -> Safe dialog is entered when Dooble launches.
    I have www.cryptome.org as URL0 in Windows -> Settings -> Home dialog. Related?

    The msg is:

    [Fri 14/08/01 15:27 AST][pts/2][x86_64/linux-gnu/3.15-6.dmz.2-liquorix-amd64][5.0.5]
    <rianav@rianav:~>
    zsh 88 [6]  (svn)-[browser:5826]-% export LD_LIBRARY_PATH=libSpotOn && ./Dooble
    terminate called after throwing an instance of 'std::bad_alloc'
      what():  std::bad_alloc
    

    In any event, thank you! Glad to have the Qt5 interface working.

     

    Last edit: Cavan Mejias 2014-08-01
  • Guess Who

    Guess Who - 2014-08-01

    I am not able to reproduce this error. Dooble relies on the safety of WebKit. WebKit will be replaced in Qt 5.4 and Dooble must be modified to support both WebKit and its replacement.

     

Log in to post a comment.