Difference between revisions of "Black&White Project/Automatic compilation"

Jump to navigation Jump to search
no edit summary
Line 1: Line 1:
<noinclude>
== Deliverables ==
== Deliverables ==
* DVD launcher and installer for Windows 32/64 bits
* DVD launcher and installer for Windows 32/64 bits
Line 47: Line 46:
# makefile kiwix-serve deb
# makefile kiwix-serve deb


</noinclude>
== Porting to Gecko2.0+ ==
 
Current code is tied to Gecko 1.x API/ABI. As Gecko 1.9 is now getting pushed out of distributions, it is important for the sake of future maintenance that we update to Gecko2.0+
 
# '''XulRunner removed from Ubuntu 11.10+'''. Ubuntu decided to remove xulRunner package from its repositories. It means we will have to use Kiwix with Firefox instead of xulrunner.
# '''New registration API'''. Gecko 2+ has a new registration API with macros for backward compatibility with Gecko 1.9.
# '''ABI breaks every 6 weeks'''. Since Gecko 2.0, the binary compatibility is broken with each new major release (which happens every six weeks). It means we will have to compile a version of the components for each FF release.
# '''js-ctypes[https://developer.mozilla.org/en/js-ctypes] is the recommended way'''. In order to avoid the burden of recompiling components for every FF release, Mozilla recommend the use of ''js-ctypes'', a JS module which allows interaction between JS and C libraries.
#* Porting our components to ''js-ctypes'' seems to be the best long-term move regarding Mozilla strategy.
#* It will require a lot of work: rewrite a lot of the C++ code into JS '''and''' wrap all the C++ code into C code as ''js-ctypes'' only support C libraries calls.
#* It probably makes sense to separate the low-level (C/C++) code from Mozilla in case we need to not use Gecko in the future or on another platform.
8,027

edits

Navigation menu