On Thu, 2020-04-23 at 15:02 +0100, Hamish McIntyre-Bhatty wrote:
> I've gotten a more stable build of wxPython 3.0.2 and wxWidgets 3.0.4 to
> build now. wxPython is now also built against the version of wxWidgets
> that is installed on the system, avoiding ABI mismatch warnings and
> strange behaviour/freezes hat I was experiencing before.

I'm going to recommend nacking this in its current form.

> The test packages can be downloaded from
> https://hamishmb.com/files/cygwin-temp/.
> 
> I say "various other packages", because building wxPython also builds
> the following packages:
> 
> libwx_baseu3.0_0, libwx_gtk3u3.0-devel,  python-wxversion,
> libwx_baseu3.0-devel,  python2-wx, libwx_gtk2u3.0_0, python2-wxversion,
> libwx_gtk2u3.0-devel,  python-wx3.0, wxWidgets3.0-debuginfo,
> libwx_gtk3u3.0_0, python-wx-tools
> 
> The build process is a bit strange because wxPython 3.0.2 ships with
> wxWidgets 3.0.2 instead of the system version (3.0.4), so my build
> script downloads and re-patches the wxWidgets source before proceeding
> with the build. As a result of using wxWidgets 3.0.4 instead of 3.0.2,
> many patches are no longer needed as they were included upstream.
> Removed patches and the reason for removal are listed at the end of this
> email. I've probably got some of this wrong, but it does seem to work
> well at least :)

I do not recommend building both the C++ libraries and Python bindings
from the same source package, for several reasons:

* Python bindings need to be updated/rebuilt with each new version of
Python, which occurs much more frequently than updated versions of
wxWidgets.  Keeping them separate minimizes the rebuild times.

* wxPython and wxWidgets versions don't always match, as you mentioned
above.  Building them separately avoids jumping through those sort of
hoops.

* wxPython 3 is obsolete anyway, with current support only for version
4 (which is still for wxWidgets 3), so this scheme won't carry forward
anyway.

Since the standalone wxWidgets3.0 package is already at 3.0.4, all you
may want to do is revbump and rebuild python-wx.

> Patches removed and the reasons why:
> 
> http://pkgs.fedoraproject.org/cgit/rpms/wxGTK3.git/plain/wxGTK3-3.0.2-abicheck.patch
> - No longer needed as we're now using the same ABI for runtime and build
> versions.

Do NOT drop this patch.  You might be aligned now, but as soon as
gcc/libstdc++ get updated, the mismatch will reoccur, and programs will
unnecessarily fail again.

[snip]
> The few remaining wxGTK* patches:
> - No longer apply without error and don't seem to be needed with the
> newer wxwidgets version.

Patches were added for a reason; if you don't understand what they do
and why they're there, then you should be asking why rather than
dismissing them.  In the case of Gentoo's collision patch, this is
needed to support parallel installations of X.Y versions of wxWidgets. 
The updated patch is named wxGTK-3.0.5-collision.patch.

--
Yaakov


Reply via email to