diff options
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 114 |
1 files changed, 111 insertions, 3 deletions
@@ -23,6 +23,13 @@ Join irc://irc.freenode.net/midori #midori on Freenode https://kiwiirc.com/clien * https://translations.launchpad.net/midori/trunk/+pots/trunk Translate to your own language * https://github.com/eustasy/midori-browser.org/issues Report website bugs * Write http://wiki.xfce.org/midori/tutorial your own extension - granted that's code, too, but maybe a little easier than hacking the core. + +====== Documentation resources ====== + + * https://wiki.gnome.org/Projects/Vala/Tutorial Vala Tutorial + * http://midori-browser.org/docs/api/vala/midori/ Midori Vala Docs + * http://midori-browser.org/docs/api/c/html/ Midori C Docs + ====== Build the code ====== mkdir _build @@ -200,9 +207,11 @@ When built with Granite (-DUSE_GRANITE=1 or --enable-granite) there're a few key * URL completion styling is slightly different * Clear Private Data uses **Granite.Widgets.LightWindow** * Edit Bookmark and Security Details use http://valadoc.elementaryos.org/Granite/Granite.Widgets.PopOver.html Granite.Widgets.PopOver instead of Gtk.Window - * Browser uses **Granite.Widgets.DynamicNotebook** instead of Gtk.Notebook + ====== Midori for Windows ====== -===== Dependencies ===== + +===== For Linux developers ===== +==== Dependencies ==== Midori for Windows is compiled on a Linux host and MinGW stack. For the current build Fedora 18 packages are used. Packages needed are listed below: yum install gcc vala intltool @@ -217,7 +226,7 @@ Packages needed when assembling the archive yum install faenza-icon-theme p7zip mingw32-nsis greybird-gtk3-theme Installing those should get you the packages needed to successfully build and develop Midori for Win32. -===== Building ===== +==== Building ==== For 32-bit builds: mkdir _mingw32 @@ -244,6 +253,105 @@ For testing your changes unfortuantely a real system is needed because Midori an One way around it is to virtualize Windows on a Linux host and mount your MinGW directories as a network drive or shared folder. +===== For Windows developers ===== +Rough list of prerequisites for building with MinGW on Windows + +If in doubt whether to get 32 or 64 bit versions use 32 bit ones, they are more +universal and tend to be less broken. + + +==== MinGW compiler ==== +Compiler should match the one that was used to build packages ideally. + + * We will user *mingw64 rubenvb* release + * Lastest stable release is gcc 4.8.0 + +[[http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting +%20Win64/Personal%20Builds/rubenvb/gcc-4.8-release/|Releases]] + +[[http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting +%20Win64/Personal%20Builds/rubenvb/gcc-4.8-release/x86_64-w64-mingw32-gcc-4.8.0- +win32_rubenvb.7z/download|Download]] + + +==== 7zip ==== +We will need 7zip to extract various archives + +http://www.7-zip.org/download.html Homepage + + +http://downloads.sourceforge.net/sevenzip/7z920.exe 32bit Installer + + +==== Python3 (to extract rpms) ==== +We will need python3 to use download-mingw-rpm.py script. +If you don't plan to use it you can safely skip this step. + +We get python3, whatever is the lastes stable release. + +http://www.python.org/download/releases/3.3.5 Releases + +http://www.python.org/downloads/release/python-335/ Download + +http://www.python.org/ftp/python/3.3.5/python-3.3.5.amd64.msi Installer + +Install Python and be sure to check "addd python.exe to path" installer checkbox. + +==== download-mingw-rpm.py ==== +We get download-mingw-rpm.py script from github. It uses Python3 and should fetch and +unpack rpm files for us. + +[[https://github.com/mkbosmans/download-mingw-rpm/blob/master/download- +mingw-rpm.py|View Script]] + +[[https://github.com/mkbosmans/download-mingw-rpm/raw/master/download- +mingw-rpm.py|Download Script]] + +Usage: + + * Launch cmd.exe + * Navigate to folder where the script was saved + * Make sure that python can access 7z.exe + * Run command and wait, it should extract the packages into your current directory + +c:\Python33\python.exe download-mingw-rpm.py -u http://ftp.wsisiz.edu.pl/pub/linux/fedora/linux/updates/18/i386/ --deps mingw32-webkitgtk mingw32-glib-networking mingw32-gdb mingw32-gstreamer-plugins-good + +[[http://dl.fedoraproject.org/pub/fedora/linux/releases/18/Everything/i386/os/Packages +/m/|Fedora 18 packages]] + +The above URL for some reason does not work with the script. + +==== MSYS ==== +Msys contains shell and some small utilities + +[[http://sourceforge.net/projects/mingw-w64/files/External%20binary +%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/MSYS-20111123.zip/download|Download]] + + +==== CMake ==== +http://www.cmake.org/cmake/resources/software.html Homepage +http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.exe Installer + +When installing check the installer checkbox "add to path" + + +==== Bazaar ==== +http://wiki.bazaar.canonical.com/WindowsDownloads Homepage + +We will get 2.4 Stable Release (standalone) + +http://launchpad.net/bzr/2.4/2.4.2/+download/bzr-2.4.2-1-setup.exe Installer + +When installing check the installer checkbox "add to path" + +==== Vala ==== +http://ftp.gnome.org/pub/gnome/sources/vala/0.20/vala-0.20.0.tar.xz Source + +==== Globbing it all together ==== + +Extracted rpms msys and mingw packages should form uniform unix like folder. +You use msys.bat to launch a shell + ====== Jargon ====== * freeze: a period of bug fixes only eg. 4/2 cycle means 4 weeks of features and 2 weeks to focus on resolving existing problems * MR: merge request, a branch proposed for review |