Hallo Archlinux now uses libpng15. This version is not API-compatible with libpng14 which I have used on my last build. As i am using pywebkitgtk as engine for pyjamas desktop i have errors.
In short pyjams desktop doesn't work anymore on my Arch box. Now i try to rebuild pythonwebkit..... As Arch has updated perl to version 5.14 i had to do some patches in the *.pl files (Switch module is deprecated). This was easy to do. In addition I have patched PNGImageDecoder.cpp (as of linpng15). Here in detail what i have done: ---------------------------------------------------------------------- git clone git://git.savannah.gnu.org/pythonwebkit.git cd pythonwebkit git checkout python_codegen As of perl 5.12 the Switch module is deprecated. The following modules must be adjusted: WebKit/scripts/generate-webkitversion.pl -> Imported but not used, just remove `use Switch;` at line 39 WebCore/dom/make_py_names.pl -> Replace `switch-case` statements with `given-when` statements (replace `else-case` with `default-case` as well) WebCore/dom/make_names.pl -> Imported but not used, just remove `use Switch;` at line 38 WebCore/make-hash-tools.pl -> Replace `switch-case` statements with `given-when` statements See http://pyjs.org/wiki/pyjamasubuntuwebkitgtk/#index4h2 Currently there is a bug with pythonwebkit code and gcc 4.6.1 so you need to edit the file `JavaScriptCore/wtf/ByteArray.cpp` and add `#include <cstddef>` at line 29 With libpng15 the file WebCore/platform/image-decoders/png/PNGImageDecoder.cpp must be adjusted. A patch is avaiable here http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTikh8Aeq2ogX_fEG3MsoJEundn0Fhti8m5cvpUjE%40mail.gmail.com&forum_name=png-mng-implement I don't know if one can apply the patch directly (i have done the changes by hand). On Arch-Linux /usr/bin/python points to python3. Change this before build. S=$(pwd) cd /usr/bin sudo mv python python.ori sudo ln -s python2 python cd $S mkdir build cd build export LANG=en_US.UTF-8 ../autogen.sh ../configure --disable-gobject-bindings Build configuration: Enable debugging (slow) : no Enable GCC build optimization : yes Code coverage support : no Unicode backend : icu Font backend : freetype Optimized memory allocator : yes Features: 3D Transforms : no Blob support : no Directory upload : no Fast Mobile Scrolling : no JIT compilation : yes Filters support : yes Geolocation support : no JavaScript debugger/profiler support : yes MathML support : no HTML5 offline web applications support : yes HTML5 channel messaging support : yes HTML5 client-side session and persistent storage support : yes HTML5 client-side database storage support : yes HTML5 FileSystem API support : no HTML5 ruby support : yes HTML5 sandboxed iframe support : yes HTML5 server-sent events support : yes HTML5 video element support : yes Icon database support : yes Image resizer support : no Opcode stats : no SharedWorkers support : yes Speech input support : no SVG support : yes SVG animation support : yes SVG fonts support : yes SVG foreign object support : yes SVG as image support : yes SVG use element support : yes WML support : no Web Sockets support : yes Web Timing support : no Web Workers support : yes XHTML-MP support : no XPATH support : yes XSLT support : yes GTK+ configuration: GTK+ version : 2.0 GDK target : x11 Use GTK+ : 2.0 Hildon UI extensions : no Introspection support : no Python bindings : yes GObject bindings : no ---------------------------------------------------------------------- make Many many many module compile fine (including PNGImageDecoder.cpp). But I have the following error then: ---------------------------------------------------------------------- make all-am make[1]: Entering directory `/home/rene/Local/pyweb2/pythonwebkit/build' CXX WebKit/gtk/WebCoreSupport/libwebkitgtk_python-1_0_la-InspectorClientGtk.lo CXX WebKit/gtk/webkit/libwebkitgtk_python-1_0_la-webkitprivate.lo CXX WebKit/gtk/webkit/libwebkitgtk_python-1_0_la-webkitversion.lo CXX WebKit/gtk/webkit/libwebkitgtk_python-1_0_la-webkitwebsettings.lo CXX DerivedSources/python/libwebkitgtk_python-1_0_la-PyWebkit.lo ../pywebkitgtk/wkcodegen/_pywebkit.override: In function ‘PyObject* DOMObject_getptr(PyDOMObject*, PyObject*)’: ../pywebkitgtk/wkcodegen/_pywebkit.override:71:42: error: ‘PyInt_FromLong’ was not declared in this scope ../pywebkitgtk/wkcodegen/_pywebkit.override: At global scope: ../pywebkitgtk/wkcodegen/_pywebkit.override:95:1: warning: converting to non-pointer type ‘int’ from NULL [-Wconversion-null] ../pywebkitgtk/wkcodegen/_pywebkit.override:149:1: warning: missing braces around initializer for ‘PyObject {aka _object}’ [-Wmissing-braces] ../pywebkitgtk/wkcodegen/_pywebkit.override:149:1: error: too many initializers for ‘PyTypeObject {aka _typeobject}’ ../pywebkitgtk/wkcodegen/_pywebkit.override:149:1: warning: missing initializer for member ‘PyVarObject::ob_size’ [-Wmissing-field-initializers] ../pywebkitgtk/wkcodegen/_pywebkit.override:149:1: error: invalid conversion from ‘const char*’ to ‘Py_ssize_t {aka long int}’ [-fpermissive] ../pywebkitgtk/wkcodegen/_pywebkit.override:149:1: error: invalid conversion from ‘long int’ to ‘const char*’ [-fpermissive] ../pywebkitgtk/wkcodegen/_pywebkit.override:149:1: error: cannot convert ‘PyMethodDef*’ to ‘PyMemberDef*’ in initialization ../pywebkitgtk/wkcodegen/_pywebkit.override:149:1: error: invalid conversion from ‘PyObject* (*)(PyTypeObject*, PyObject*, PyObject*) {aka _object* (*)(_typeobject*, _object*, _object*)}’ to ‘freefunc {aka void (*)(void*)}’ [-fpermissive] ../pywebkitgtk/wkcodegen/_pywebkit.override:416:6: error: ‘cmpfunc’ was not declared in this scope ../pywebkitgtk/wkcodegen/_pywebkit.override:416:14: error: expected ‘}’ before numeric constant ../pywebkitgtk/wkcodegen/_pywebkit.override:416:14: warning: missing braces around initializer for ‘PyObject {aka _object}’ [-Wmissing-braces] ../pywebkitgtk/wkcodegen/_pywebkit.override:416:14: error: expected ‘,’ or ‘;’ before numeric constant ../pywebkitgtk/wkcodegen/_pywebkit.override:457:1: error: expected declaration before ‘}’ token ../pywebkitgtk/wkcodegen/_pywebkit.override:26:13: warning: ‘void py_wk_exc(WebCore::ExceptionCode&)’ defined but not used [-Wunused-function] ../pywebkitgtk/wkcodegen/_pywebkit.override:389:1: warning: ‘int ScheduledActionBase_init(WebCore::ScheduledActionBase*, PyObject*, PyObject*)’ defined but not used [-Wunused-function] make[1]: *** [DerivedSources/python/libwebkitgtk_python-1_0_la-PyWebkit.lo] Error 1 make[1]: Leaving directory `/home/rene/Local/pyweb2/pythonwebkit/build' make: *** [all] Error 2 ---------------------------------------------------------------------- Does one of you have a suggestion? Best regards René

