Hello,
after some hazzles I was able to successfully configure, compile and
install wxPython 2.5.2.8 for GTK+ 2 on an RedHat 8.0 system
(with all recent updates). For a successful build I had to patch
/usr/include/gtk-2.0/gdk/gdkwindow.h :
--- gtk-2.0/gdk/gdkwindow.h.orig 2004-09-17 17:04:13.000000000 +0200
+++ gtk-2.0/gdk/gdkwindow.h 2004-09-18 19:44:53.000000000 +0200
@@ -104,7 +104,11 @@
GDK_WINDOW_TYPE_HINT_NORMAL,
GDK_WINDOW_TYPE_HINT_DIALOG,
GDK_WINDOW_TYPE_HINT_MENU,
- GDK_WINDOW_TYPE_HINT_TOOLBAR
+ GDK_WINDOW_TYPE_HINT_TOOLBAR,
+ GDK_WINDOW_TYPE_HINT_SPLASHSCREEN,
+ GDK_WINDOW_TYPE_HINT_UTILITY,
+ GDK_WINDOW_TYPE_HINT_DOCK,
+ GDK_WINDOW_TYPE_HINT_DESKTOP
} GdkWindowTypeHint;
(RedHat 8.0 still comes with GTK 2.0.6 and this patch prevents from
having to disable everything in configure that has to do with splash
screens.)
Afterwards, I followed the instructions at
http://wxpython.sourceforge.net/BUILD.html
These are my configure options:
../configure --prefix=/usr/local/kmrc/wx \
--with-gtk \
--enable-unicode \
--without-opengl \
--disable-soname \
--enable-monolithic \
--enable-optimise \
--enable-debug_flags \
--enable-geometry \
--enable-sound --with-sdl \
--with-libpng=builtin \
--with-libjpeg=builtin \
--with-libtiff=builtin \
--with-zlib=builtin
After .make && .make install, the setup in the
wxPython directory went as follows:
python2.3 setup.py \
WX_CONFIG=/usr/local/kmrc/wx/bin/wx-config \
WXPORT="gtk2" UNICODE=1 \
BUILD_GLCANVAS=0 \
build
and the installation
python2.3 setup.py \
WX_CONFIG=/usr/local/kmrc/wx/bin/wx-config \
WXPORT="gtk2" UNICODE=1 \
BUILD_GLCANVAS=0 \
install --prefix=/usr/local/kmrc/wx
All goes well (except for some warnings about probably uninitialized
booleans created1 and created2 while building the python stuff - but
I've seen that before in 2.5.2.7).
And now there's my problem:
[tkurbad@asteria 2004-09-16]$ LD_LIBRARY_PATH="/usr/local/kmrc/wx/lib/" \
PYTHONPATH="/usr/local/kmrc/wx/lib/python2.3/site-packages" \
/usr/local/kmrc/python/bin/python
Python 2.3.4 (#2, Sep 16 2004, 02:27:37)
[GCC 3.2 20020903 (Red Hat Linux 8.0 3.2-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
from wx import *
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/local/kmrc/wx/lib/python2.3/site-packages/wx/__init__.py", line 42, in ?
from wx._core import *
File "/usr/local/kmrc/wx/lib/python2.3/site-packages/wx/_core.py", line 4, in ?
import _core_
ImportError: /usr/local/kmrc/wx/lib/libwx_gtk2u-2.5.so.2: undefined symbol: _ZTI21wxTaskBarIconAreaBase
Of course, the same happens, if I try to run the demos.
Also, the error appears with --disable-monolithic in configure. Then the
message comes from libwx_gtk2u_adv-2.5.so.2
I tracked down the location of the symbol and found the piece of code
in src/unix/taskbarx11.cpp
#ifdef __WXGTK20__
#include "wx/gtk/taskbarpriv.h"
#else
class WXDLLIMPEXP_ADV wxTaskBarIconAreaBase : public wxFrame
{
public:
wxTaskBarIconAreaBase()
: wxFrame(NULL, wxID_ANY, _T("systray icon"),
wxDefaultPosition, wxDefaultSize,
wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR |
wxSIMPLE_BORDER | wxFRAME_SHAPED) {}
bool IsProtocolSupported() const { return false; }
};
#endif
but my knowledge of C++ leaves me there while trying to change
something...
Does anyone have the slightest clue of what is happening here?
Thanks in advance,
Torsten