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é

Reply via email to