[[PageOutline]] = Building the Qt port on MeeGo 1.2 Harmattan with Qt 5 = See also [wiki:BuildingQtOnLinux Building QtWebKit on Linux] This page as well as the attempt of achieving this build is work in progress. It's also our TODO list to get there. == Goal == The goal is to get WebKit trunk running on the N9/N950, to a state where it can be developed sensibly. == Assumptions == * Working Scratchbox setup (url??) * Running N950/N9 with root and scratchbox home directory mounted via NFS * Present clones of qtbase, qtsvg, qtxmlpatterns and qtdeclarative == Build Instructions == * Install dependencies: (TODO: test with clean environment!) * Basic build deps, shared between Qt 5 and 4: {{{fakeroot apt-get build-dep qt4-x11}}} * Dependencies needed for XCB back-end: {{{fakeroot apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm1 libxcb-icccm1-dev libxcb-sync0 libxcb-sync0-dev libxcb-xfixes0-dev}}} * Ensure the render packages are gone: {{{fakeroot apt-get remove --purge libxcb-render-util0 libxcb-render-util0-dev}}} * Configure & build qtbase: {{{cd qtbase && configure -nokia-developer -fast}}} followed by {{{make}}} * Ensure your PATH is up-to-date: {{{cd qtbase && export PATH=$PWD/bin:$PATH}}} * Build QtSvg, QtXmlPatterns and QtDeclarative (in that order): {{{cd module && qmake -r && make}}} * ... * {{{perl Tools/Scripts/build-webkit -2 --qt --release --no-3d-canvas} == Current Issues / TODO == If you find any issues that you're working on, just add them below :) * Qt 5 TODOs: * Touch Input (xi2) support in Qt 5 for Harmattan (Jocelyn) * Input method support in Qt 5 for Harmattan * Most obvious WebKit issues: * Text is funny mis-rendered in MiniBrowser -touch. (Suspect Qt 5 scaled-text-with-raster-engine bug) * MiniBrowser doesn't show any web content on Harmattan * Rewrite MiniBrowser in QML * Figure out "kinetic" scrolling (pending QScroller decision) === Done === * Qt 5 TODOs: * No interaction with page possible when launching MiniBrowser with -touch. Due to broken touch mocking. (Simon)