7 | | This page, as well as the attempt of achieving this build, is work in progress. |
8 | | |
9 | | == Assumptions == |
10 | | |
11 | | * Working Scratchbox setup. Instructions are here: http://www.developer.nokia.com/Community/Wiki/Harmattan:Platform_Guide/Getting_started_with_Harmattan_Platform_SDK/Installing_Harmattan_Platform_SDK |
12 | | * Running N950/N9 with root, security disabled and scratchbox home directory mounted via NFS |
13 | | |
14 | | == Installing Build Dependencies == |
15 | | |
16 | | Inside Scratchbox: |
17 | | |
18 | | * Basic build deps, shared between Qt 5/4 and WebKit stuff: {{{fakeroot apt-get build-dep qt4-x11 libgrob-qtwebkit}}} ('''Yes, the libgrob-qtwebkit part is intentional''') |
19 | | * 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}}} |
20 | | * Ensure the render packages are gone: {{{fakeroot apt-get remove --purge libxcb-render-util0 libxcb-render-util0-dev}}} |
21 | | |
22 | | == Getting the Qt sources == |
23 | | |
24 | | Outside Scratchbox: |
25 | | |
26 | | * {{{git clone git://gitorious.org/qt/qt5.git qt5}}} |
27 | | * {{{cd qt5}}} |
28 | | * Check out the current qt5 revision used by the bot to run tests: {{{git checkout 91f83fa33a1cc5a97b17d8e4d25e1bb952006061}}} |
29 | | * Initialize & Clone the sub-modules needed: {{{./init-repository --module-subset=qtbase,qtxmlpatterns,qtscript,qtdeclarative}}} |
30 | | |
31 | | Note: '''Use the following commands to update from a previous check-out''': |
32 | | * {{{cd qt5}}} |
33 | | * {{{git fetch --recurse-submodules}}} |
34 | | * {{{git checkout 91f83fa33a1cc5a97b17d8e4d25e1bb952006061}}} |
35 | | * {{{git submodule update --recursive}}} |
36 | | |
37 | | If you'd like to clean out everything(!), you can use the following sequence of commands: |
38 | | * {{{cd qt5}}} |
39 | | * {{{git submodule foreach --recursive git clean -fdx}}} |
40 | | * {{{git clean -fdx}}} |
41 | | * {{{./configure ......}}} |
42 | | |
43 | | == Build Instructions for Qt == |
44 | | |
45 | | Note: '''DO NOT USE SHADOW BUILDS OF QT (MODULES) AT THE MOMENT'''. |
46 | | |
47 | | Inside Scratchbox in the {{{qt5}}} directory: |
48 | | ||{{{export -n QTDIR}}}||To unset QTDIR. Or make sure that QTDIR points to your qt5/qtbase directory.|| |
49 | | ||{{{./configure -developer-build -opensource -confirm-license -fast -force-pkg-config -nomake tests -nomake examples -nomake demos -platform linux-g++-maemo }}}||Note the use of the maemo mkspec|| |
50 | | ||{{{make}}}||From the toplevel qt5 directory to build all modules in one shot.|| |
51 | | ||{{{export PATH=$PWD/qtbase/bin:$PATH}}}||Ensure your PATH is up-to-date to use the qt5 qmake instead of the default one.|| |
52 | | |
53 | | == Qt5 packages for Harmattan == |
54 | | |
55 | | If you don't want to build Qt5 from scratch you can use a repository with the Qt5 modules required by QtWebKit. Instructions on Qt wiki: http://wiki.qt-project.org/Qt_5_on_Nokia_N9 |
56 | | |
57 | | == Build WebKit == |
58 | | |
59 | | * {{{perl Tools/Scripts/build-webkit --qt --release --no-3d-canvas --qmakearg="CONFIG+=use_qt_mobile_theme"}}} |
60 | | |
61 | | == Install dependencies on the device == |
62 | | |
63 | | * Some packages are not in the device apt repositories and therefore need to be transfered from scratchbox. |
64 | | * Execute the following lines inside scratchbox: |
65 | | {{{ |
66 | | fakeroot apt-get -d install libxcb-image0 libxcb-keysyms1 libxcb-icccm1 libxcb-aux0 libxcb-event1 libxcb-property1 |
67 | | mkdir ~/swork/packages && cd ~/swork/packages |
68 | | cp /var/cache/apt/archives/libxcb-image0_* . |
69 | | cp /var/cache/apt/archives/libxcb-keysyms1_* . |
70 | | cp /var/cache/apt/archives/libxcb-icccm1_* . |
71 | | cp /var/cache/apt/archives/libxcb-aux0_* . |
72 | | cp /var/cache/apt/archives/libxcb-event1_* . |
73 | | cp /var/cache/apt/archives/libxcb-property1_* . |
74 | | }}} |
75 | | * Now ssh to the device and change into your NFS mounted directory to install the previously downloaded packages |
76 | | {{{ |
77 | | cd /your_nfs_mount/swork/packages/ |
78 | | dpkg -i * |
79 | | }}} |
80 | | |
81 | | == WebKit snapshot packages for N9 == |
82 | | |
83 | | (Almost) Daily snapshots of WebKit are available in the same repository of the Qt5 packages. The package is named 'webkit-snapshot' and the version number indicates the SVN revision that it was built with. The package copies everything from WebKitBuild/Release, except the Source folder, and installs to the same target directory of Qt5, /opt/qt5. |
84 | | |
85 | | Installation (as root through developer mode "devel-su" command): |
86 | | |
87 | | {{{ |
88 | | apt-get update |
89 | | apt-get install webkit-snapshot |
90 | | }}} |
| 7 | See also [wiki:BuildingQtOnLinux Building QtWebKit on Linux] |