Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
midori:contribute [2013/09/18 20:47] – kalikiana | midori:contribute [2014/03/16 17:05] – kalikiana | ||
---|---|---|---|
Line 23: | Line 23: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
- | * Write [[tutorial|your own extension]] - granted that's code, too, but maybe a little easier than hacking the core. | + | * Write [[http:// |
+ | |||
+ | ====== Documentation resources ====== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
====== Build the code ====== | ====== Build the code ====== | ||
Line 32: | Line 39: | ||
sudo make install</ | sudo make install</ | ||
- | //Advanced Tip: Pass "-G Ninja" to cmake to use [[http:// | + | //Advanced Tip: Pass "-G Ninja" to cmake to use [[http:// |
- | If using GTK+3 you'll want to add <code bash> | + | If using GTK+3 you'll want to add <code bash> |
Midori can be **run without being installed**. | Midori can be **run without being installed**. | ||
Line 53: | Line 60: | ||
Testing an installed release may reveal crashers or memory corruption which require investigating from a local build and obtaining a stacktrace (backtrace, crash log). | Testing an installed release may reveal crashers or memory corruption which require investigating from a local build and obtaining a stacktrace (backtrace, crash log). | ||
- | <code bash> | + | <code bash> |
If the problem is a warning, not a crash GLib has a handy feature | If the problem is a warning, not a crash GLib has a handy feature | ||
- | <code bash>env G_DEBUG=all _build/default/ | + | <code bash>env G_DEBUG=all _build/ |
For more specific debugging output, depending on the feature in question you may use | For more specific debugging output, depending on the feature in question you may use | ||
- | <code bash>env MIDORI_DEBUG=help _build/default/ | + | <code bash>env MIDORI_DEBUG=help _build/ |
To verify a regression you might need to revert a particular change: | To verify a regression you might need to revert a particular change: | ||
Line 196: | Line 203: | ||
| webkit | 1.8.3-1.fc17 | 1.10.0-0ubuntu1 | | | webkit | 1.8.3-1.fc17 | 1.10.0-0ubuntu1 | | ||
====== Midori with(out) Granite ====== | ====== Midori with(out) Granite ====== | ||
- | When built with Granite (--enable-granite) there' | + | When built with Granite (-DUSE_GRANITE=1 or --enable-granite) there' |
* Preferences uses a [[http:// | * Preferences uses a [[http:// | ||
* URL completion styling is slightly different | * URL completion styling is slightly different | ||
* Clear Private Data uses **Granite.Widgets.LightWindow** | * Clear Private Data uses **Granite.Widgets.LightWindow** | ||
* Edit Bookmark and Security Details use [[http:// | * Edit Bookmark and Security Details use [[http:// | ||
- | * Browser uses **Granite.Widgets.DynamicNotebook** instead of Gtk.Notebook | + | |
====== Midori for Windows ====== | ====== 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: | 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: | ||
Line 212: | Line 221: | ||
For cross-compilation | For cross-compilation | ||
- | <code bash>yum install mingw{32, | + | <code bash>yum install mingw{32, |
Packages needed when assembling the archive | Packages needed when assembling the archive | ||
- | <code bash> yum install faenza-icon-theme p7zip mingw32-nsis</ | + | <code bash> yum install faenza-icon-theme p7zip mingw32-nsis |
Installing those should get you the packages needed to successfully build and develop Midori for Win32. | Installing those should get you the packages needed to successfully build and develop Midori for Win32. | ||
- | + | ==== Building ==== | |
- | ===== Building | + | |
For 32-bit builds: | For 32-bit builds: | ||
<code bash> | <code bash> | ||
- | mingw32-env | + | mkdir _mingw32 |
- | ./ | + | cd _mingw32 |
+ | mingw32-cmake .. -DUSE_ZEITGEIST=0 | ||
make | make | ||
sudo make install</ | sudo make install</ | ||
Line 229: | Line 238: | ||
For 64-bit builds: | For 64-bit builds: | ||
<code bash> | <code bash> | ||
- | mingw64-env | + | mkdir _mingw64 |
- | ./ | + | cd _mingw64 |
+ | mingw64-cmake .. -DUSE_ZEITGEIST=0 | ||
make | make | ||
sudo make install</ | sudo make install</ | ||
Line 239: | Line 249: | ||
64-bit build: | 64-bit build: | ||
<code bash>env MINGW_PREFIX="/ | <code bash>env MINGW_PREFIX="/ | ||
- | |||
===== Testing ===== | ===== Testing ===== | ||
For testing your changes unfortuantely a real system is needed because Midori and WebKitGTK+ don't work properly under Wine. Even if it works some problems are not visible when using Wine, but are present when running under a real Windows system and vice versa. | For testing your changes unfortuantely a real system is needed because Midori and WebKitGTK+ don't work properly under Wine. Even if it works some problems are not visible when using Wine, but are present when running under a real Windows system and vice versa. | ||
One way around it is to virtualize Windows on a Linux host and mount your MinGW directories as a network drive or shared folder. | 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:// | ||
+ | %20Win64/ | ||
+ | |||
+ | [[http:// | ||
+ | %20Win64/ | ||
+ | win32_rubenvb.7z/ | ||
+ | |||
+ | |||
+ | ==== 7zip ==== | ||
+ | We will need 7zip to extract various archives | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | |||
+ | [[http:// | ||
+ | |||
+ | |||
+ | ==== 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:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | 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:// | ||
+ | mingw-rpm.py|View Script]] | ||
+ | |||
+ | [[https:// | ||
+ | mingw-rpm.py|Download Script]] | ||
+ | |||
+ | Usage: | ||
+ | |||
+ | - launch cmd.exe | ||
+ | - and navigate to folder when the script was saved make sure that python can access | ||
+ | 7z.exe | ||
+ | - run command and wait, it should extract packages into your current directory | ||
+ | |||
+ | c: | ||
+ | http:// | ||
+ | webkitgtk mingw32-glib-networking mingw32-gdb mingw32-gstreamer-plugins-good | ||
+ | |||
+ | [[http:// | ||
+ | /m/|Fedora 18 packages]] | ||
+ | Above url for some reason does not work with the script. | ||
+ | |||
+ | |||
+ | ==== MSYS ==== | ||
+ | Msys contains shell and some small utilities | ||
+ | |||
+ | [[http:// | ||
+ | %20packages%20%28Win64%20hosted%29/ | ||
+ | |||
+ | |||
+ | ==== CMake ==== | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | |||
+ | When installing check the installer checkbox "add to path" | ||
+ | |||
+ | |||
+ | ==== Bazaar ==== | ||
+ | [[http:// | ||
+ | |||
+ | We will get 2.4 Stable Release (standalone) | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | When installing check the installer checkbox "add to path" | ||
+ | |||
+ | ==== Vala ==== | ||
+ | [[http:// | ||
+ | |||
+ | ==== 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 ====== | ====== Jargon ====== |