Bug 1222761

Summary: wxWidgets needs to be compiled with spellcheck
Product: [openSUSE] openSUSE Distribution Reporter: Aaron Williams <aaron.w2>
Component: OtherAssignee: Jan Engelhardt <jengelh>
Status: RESOLVED WORKSFORME QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Leap 15.5   
Target Milestone: ---   
Hardware: Other   
OS: openSUSE Leap 15.5   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Aaron Williams 2024-04-15 01:04:43 UTC
I am trying to build an updated kiCad 8.0 and it requires wxWidgets and wxPython with Python > 3.6. Kicad requires wxWidgets >= 3.0.5 so I am trying to build with wxWidgets 3.2. Unfortunately, the wxWidgets supplied with OpenSUSE is not built with spellcheck enabled which is required for wxPython. Can wxWidgets be built with --enable-spellcheck in the configure phase?
Comment 1 Aaron Williams 2024-04-15 01:26:38 UTC
Note that this also requires gspell-devel/gspell for the gtk version of wxWidgets.
Comment 2 Jan Engelhardt 2024-05-21 12:02:10 UTC
How is wxPython needing spelling support? What is the error message?
Comment 3 Aaron Williams 2024-05-21 20:51:22 UTC
Kicad 8 requires wxPython (Phoenix), but it also requires Python > 3.6. Installing wxPython with Python 3.11 via pip3.11 install wxPython fails with a number of problems, not the least of which is it can't find wx/setup.h.

 [ 11/939] Compiling sip/cpp/sip_corewxZoomGestureEvent.cpp
  In file included from ../../../../ext/wxWidgets/include/wx/defs.h:45:0,
                   from ../../../../ext/wxWidgets/include/wx/wx.h:14,
                   from ../../../../wx/include/wxPython/wxpy_api.h:41,
                   from ../../../../sip/cpp/sipAPI_core.h:22068,
                   from ../../../../sip/cpp/sip_corewxZoomGestureEvent.cpp:10:
  ../../../../ext/wxWidgets/include/wx/platform.h:159:10: fatal error: wx/setup.h: No such file or directory
   #include "wx/setup.h"
            ^~~~~~~~~~~~
  compilation terminated.

  ../../../../sip/siplib/siplib.c: In function ‘parsePass1’:
  ../../../../sip/siplib/siplib.c:3900:20: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
               *selfp = va_arg(va, PyObject *);
                      ^

This is despite the fact that the GTK3 wxwidgets devel package is installed.
Comment 4 Jan Engelhardt 2024-05-22 02:43:42 UTC
If it cannot find wx/setup.h, that is a sign that it failed to run, and use the output from, `wx-config --cflags`.

The /electronics/kicad package in OBS already has kicad 8, and that build generally succeeds past 11/939, so I presume it's fine on wx/setup.h; if not, point me to an alternate OBS package where the issue is visible.
Comment 5 Aaron Williams 2024-05-23 04:55:48 UTC
According to the Electronics repository, kicad is 7.0.9-lp155.127.1 but other components are 8.0. They all must be 8.0, especially the kicad component.  Kicad is tricky to build on OpenSUSE for several reasons. For one, it heavily makes use of WxWidgets and wants 3.1.x or later as well as requiring Python 3.8 or later (not the default 3.6). I have 3.11 installed, but cannot get wxPython (Phoenix) for Python 3.11 to build or install with the wxWidgets included with OpenSUSE.

In order to build my own Kicad 8.0 I have had to build my own copy of WxWidgets 3.2 as well as build my own wxPython linked against my local build of wxWidgets. I also ran into problems in that it required the wxWidgets spell check be enabled (which it is not in OpenSUSE. I have been building up-to-date Kicad for some time on OpenSUSE and I have never been able to get it to build or run with the included wxWidgets.

I do a fair bit of PCB work and use Kicad quite a bit.
Comment 6 Aaron Williams 2024-05-23 04:59:20 UTC
Currently, Kicad 7 cannot be installed because it requires version 7 of all the libraries, which are version 8. The other components of Kicad do not need to be built. If I had to guess, whoever maintains this is having difficulty building Kicad 8 on OpenSUSE.
Comment 7 Jan Engelhardt 2024-05-27 10:41:46 UTC
>According to the Electronics repository, kicad is 7.0.9-lp155.127.1

» sosc r -v electronics/kicad
openSUSE_Tumbleweed  i586       succeeded
openSUSE_Tumbleweed  x86_64     succeeded
openSUSE_Tumbleweed  aarch64    succeeded
SLE_12_SP5           x86_64     disabled
15.6                 x86_64     unresolvable: 
      nothing provides wxGTK3-devel >= 3.2.4
      (got version 3.1.5-150400.3.7.1 provided by wxGTK3-3_2-devel)
15.6                 aarch64    unresolvable: 
      nothing provides wxGTK3-devel >= 3.2.4
      (got version 3.1.5-150400.3.7.1 provided by wxGTK3-3_2-devel)
15.5                 x86_64     unresolvable: 
      nothing provides wxGTK3-devel >= 3.2.4
      (got version 3.1.5-150400.1.14 provided by wxGTK3-3_2-devel)


The problem *isn't* that wxWidgets is built without spelling, it's that wx 3.2 does not exist for Leap. In fact, the TW build is just fine without spelling specifically enabled.
Comment 8 Jan Engelhardt 2024-06-08 10:38:18 UTC
No further comment, so I take it this is resolved.