-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Installing wxPython 4.1.2 on OpenSuSE 15.5 ends with missing wx/setup.h file #2422
Comments
By default, wxPython builds its own copy of wxWidgets, so it should not use your system copy. Is this the entirety of the log? What happened before |
Does this mean that the necessary
The package does contain three files with Please find attached the complete build log. |
I think the issue might be two mismatched libdirs. If you look at your build.log, the setup.h seems to be being created in lib:
However, wxPython then tries to find it in lib64:
I am not sure what to do about it, though. I think the issue might be with wxWidgets' wx-config script. |
See #1067, it seems to be the same issue. You might be able to do a hacky workaround by symlinking lib64 to lib while wxWidgets is building. |
So the issue has been existing for five years and hasn't been resolved yet…? |
Unfortunately, yes. As with many projects, the number of bugs approaches infinity, while the number of active developers approaches zero. I did try again to reproduce the problem yesterday, but I was unable to. So, it seems we need to figure out the difference. |
:-/ I've managed to implant the missing In file included from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:30:0,
from /usr/include/gtk-3.0/gdk/gdk.h:32,
from /usr/include/gtk-3.0/gdk/gdkx.h:28,
from ../../../../sip/cpp/sip_corewxWindow.cpp:48:
/usr/include/gtk-3.0/gdk/gdktypes.h:143:39: error: conflicting declaration ‘typedef struct _GdkWindow GdkWindow’
typedef struct _GdkWindow GdkWindow;
^~~~~~~~~
In file included from ../../../../ext/wxWidgets/include/wx/wx.h:14:0,
from ../../../../wx/include/wxPython/wxpy_api.h:41,
from ../../../../sip/cpp/sipAPI_core.h:22068,
from ../../../../sip/cpp/sip_corewxWindow.cpp:10:
../../../../ext/wxWidgets/include/wx/defs.h:3146:33: note: previous declaration as ‘typedef struct _GdkDrawable GdkWindow’
typedef struct _GdkDrawable GdkWindow;
^~~~~~~~~
../../../../sip/cpp/sip_corewxWindow.cpp: In function ‘wxUIntPtr wxPyGetWinHandle(const wxWindow*)’:
../../../../sip/cpp/sip_corewxWindow.cpp:66:75: error: ‘GtkWidget {aka struct _GtkWidget}’ has no member named ‘window’
GDK_WINDOW_XWINDOW((wxwin)->m_wxwindow->window) : \
^
../../../../sip/cpp/sip_corewxWindow.cpp:66:75: note: in definition of macro ‘GetXWindow’
GDK_WINDOW_XWINDOW((wxwin)->m_wxwindow->window) : \
^~~~~~
../../../../sip/cpp/sip_corewxWindow.cpp:66:35: error: ‘GDK_WINDOW_XWINDOW’ was not declared in this scope
GDK_WINDOW_XWINDOW((wxwin)->m_wxwindow->window) : \
^
../../../../sip/cpp/sip_corewxWindow.cpp:66:35: note: in definition of macro ‘GetXWindow’
GDK_WINDOW_XWINDOW((wxwin)->m_wxwindow->window) : \
^~~~~~~~~~~~~~~~~~
../../../../sip/cpp/sip_corewxWindow.cpp:66:35: note: suggested alternative: ‘GDK_WINDOW_XID’
GDK_WINDOW_XWINDOW((wxwin)->m_wxwindow->window) : \
^
../../../../sip/cpp/sip_corewxWindow.cpp:66:35: note: in definition of macro ‘GetXWindow’
GDK_WINDOW_XWINDOW((wxwin)->m_wxwindow->window) : \
^~~~~~~~~~~~~~~~~~
../../../../sip/cpp/sip_corewxWindow.cpp:67:73: error: ‘GtkWidget {aka struct _GtkWidget}’ has no member named ‘window’
GDK_WINDOW_XWINDOW((wxwin)->m_widget->window)
^
../../../../sip/cpp/sip_corewxWindow.cpp:67:73: note: in definition of macro ‘GetXWindow’
GDK_WINDOW_XWINDOW((wxwin)->m_widget->window)
^~~~~~
Waf: Leaving directory `/tmp/pip-req-build-l5xef92v/build/waf/3.11/gtk3'
Build failed This is the part of #if defined(__WXGTK3__)
typedef struct _GdkWindow GdkWindow;
typedef struct _GdkEventSequence GdkEventSequence;
#elif defined(__WXGTK20__)
typedef struct _GdkDrawable GdkWindow;
typedef struct _GdkDrawable GdkPixmap;
#else
typedef struct _GdkWindow GdkWindow;
typedef struct _GdkWindow GdkBitmap;
typedef struct _GdkWindow GdkPixmap;
#endif Does |
OK, I've made some advancements with patching wxPython:
// Recommended setting: 1, setting it to 0 may be useful to avoid dependencies
// on libcurl on Unix systems.
#define wxUSE_WEBREQUEST 0
// Patch for wxPython 4.2.1.
// Added 2023/07/02 by JR.
#define wxUSE_LIBMSPACK 1
#define wxUSE_XTEST 1
#define wxUSE_SELECT_DISPATCHER 1
#define wxHAS_INOTIFY 1 BUT: I've stumbled over a very strange error with the bitmap types of In file included from ../../../../sip/cpp/sip_corewxZoomGestureEvent.cpp:10:0:
../../../../sip/cpp/sipAPI_core.h:22143:9: error: ‘wxNativePixelData’ does not name a type; did you mean ‘sipType_wxNativePixelData’?
typedef wxNativePixelData::Iterator wxNativePixelData_Accessor;
^~~~~~~~~~~~~~~~~
sipType_wxNativePixelData
../../../../sip/cpp/sipAPI_core.h:22144:9: error: ‘wxAlphaPixelData’ does not name a type; did you mean ‘wxFileData’?
typedef wxAlphaPixelData::Iterator wxAlphaPixelData_Accessor;
^~~~~~~~~~~~~~~~
wxFileData
Adding a line like typedef sipType_wxNativePixelData::Iterator sipType_wxNativePixelData_Accessor;
typedef sipType_wxAlphaPixelData::Iterator sipType_wxAlphaPixelData_Accessor; The types in question are documented here: https://docs.wxwidgets.org/3.0/classwx_pixel_data.html According to the doc, both types, which seem to miss in your code, are implemented on Windows, MacOS X, and Gtk+. So. Why does whis error appear then? |
I hate to say it but I think you're wasting time going down that path. I'd suggest just starting a wxPython install, then while wxWidgets is building, figure out the /tmp directory and symlink lib to lib64 as was done in the other ticket. |
@swt2c Just tried it out with a fresh tarball. It was in fact three The other
BUT: Even if the workaround with the |
Yes, I'm not suggesting that's a permanent solution, just a workaround. As far as fixing the root of the issue, can you please provide the output of |
╭─jacek@epica ~
╰─➤ cat /etc/os-release
NAME="openSUSE Leap"
VERSION="15.5"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.5"
PRETTY_NAME="openSUSE Leap 15.5"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:15.5"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap"
LOGO="distributor-logo-Leap" Installed packages see the file attached. |
Thank you for the package list. The good news is that I was able to reproduce it with that information. The problem is reproducible if the |
OK, so I lied. This has nothing to do with the |
Reported upstream: wxWidgets/wxWidgets#23737 |
OpenSuSE 15.5 Linux (x86_64):
4.2.1 via PyPi:
3.11.2-150400.9.5.3 via official OpenSuSE repo:
File wx/setup.h missing when trying to install wxPython by using pip (despite being installed on my machine)
Error message:
The problem is: I do have a
platform.h
on my machine in the/usr/include/wx-3.1/wx
folder and asetup.h
at/usr/lib64/wx/include/gtk2-unicode-3.1/wx
, but linking it into/usr/include/wx-3.1/wx
did NOT help. On the other hand, I can't find/tmp/pip-req-build-2qaqrik2
anywhere on my machine, which seems contradictory.The text was updated successfully, but these errors were encountered: