Qt World Summit: Register Today!

WebEngine & raspberry pi

  • I have managed to crossbuild Qt5.4.0 from the opensource version, but building webengine will fail, mentionning that only Linuc GCC / Windows / OSX are supported.

    Is that still possible to build it for a raspberry pi ? if not yet is there any plan to have it possible to build in a near future ?


  • Here is how I compiled webengine for raspberry pi (raspbian wheezy).

    Edit qtwebengine/tools/qmake/mkspecs/features/functions.prf and
    enable webengine when compiling for raspberry pi:
    @ boot2qt: return(true)

    • linux-rasp-pi-g++:return(true)@

    Add arm-sysroot -symlink
    @ln -s / qtwebengine/src/3rdparty/chromium/arm-sysroot@

    Disable chacha:
    Edit qtwebengine/src/3rdparty/chromium/third_party/openssl/openssl.gyp and add 'OPENSSL_NO_CHACHA' to target_arch==arm -block
    @'defines': [ '<@(openssl_arm_defines)', 'OPENSSL_NO_CHACHA' ],@

    Declare that chacha is not supported:
    Edit qtwebengine/src/3rdparty/chromium/net/quic/crypto/chacha20_poly1305_decrypter_openssl.cc
    : AeadBaseDecrypter(0, kKeySize, kAuthTagSize,
    kNoncePrefixSize) {

    bool ChaCha20Poly1305Decrypter::IsSupported() { return false; }

    Edit qtwebengine/src/3rdparty/chromium/net/quic/crypto/chacha20_poly1305_encrypter_openssl.cc
    : AeadBaseEncrypter(0, kKeySize, kAuthTagSize,
    kNoncePrefixSize) {
    bool ChaCha20Poly1305Encrypter::IsSupported() { return false; }@

    Edit qtwebengine/src/3rdparty/chromium/third_party/openssl/openssl/ssl/ssl_ciph.c

    @*aead = EVP_aead_chacha20_poly1305();@


    @return 0;@

    Add a missing define to qtwebengine/src/core/gl_surface_qt.cpp
    @#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200@

    I managed to compile this in banana pi running raspbian in a chroot but I needed to switch to gold linker to avoid running out of memory (32-bit system).

    For compiling in a chroot without proc and sys you need to tell gyp not to do parallel processing:

    Edit qtwebengine/src/core/gyp_run.pro, add --no-parallel to GYP_ARGS

  • Thanks for that detailed reply mijutu2, very much appreciated :)

    By the way did you also managed to build webengine on RPI ?
    I'm wondering if the chacha patches would be required as we have the neon support now for ssl .. :)

Log in to reply