summaryrefslogtreecommitdiff
path: root/HACKING
diff options
context:
space:
mode:
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING114
1 files changed, 111 insertions, 3 deletions
diff --git a/HACKING b/HACKING
index 1e416b31..e6a34a25 100644
--- a/HACKING
+++ b/HACKING
@@ -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