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 ?

    Thanks.



  • 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
    @haCha20Poly1305Decrypter::ChaCha20Poly1305Decrypter()
    : AeadBaseDecrypter(0, kKeySize, kAuthTagSize,
    kNoncePrefixSize) {
    }

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

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

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

    @*aead = EVP_aead_chacha20_poly1305();@

    and

    @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
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.