[GRASS-user] wxpython and wxgtk c++ abi mismatch error - how to fix?

My system info:

OS: Arch Linux
GRASS: 7.8.5
wxgtk3: 3.0.5.1
python-wxpython: 1:4.0.7.2

To compile GRASS I have python-wxpython set as a dependency and it builds fine but I always get this warning on startup of GRASS:

% grass78 --gui
Starting GRASS GIS…
12:54:21: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1014,wx containers,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8).

Recently, the GUI started to crash without any error or warning. It launches a location/project and as soon as the two windows load (map and layer windows) they just crash after a few seconds. No output in terminal to indicate the cause. Can still execute command line GRASS no problem though, so it doesn’t crash the entire program just the GUI.

I’ve never really understood what causes the warning and now this crash - do I need to re-compile wxgtk3[1] and python-wxpython[2] to fix it? They do take a little bit of time to compile so curious if anyone has encountered this as well and has some insight before I dive in!

I’m thinking the error is because the compiler used has some differences to it as seen from C++ ABI 1014 and 1016.

The wxgtk package in Arch Linux has a 6 year old patch[3] applied that has that exact warning in it and the comment for the patch in the PKGBUILD is:

C++ ABI check is too strict and breaks with GCC 5.1

https://bugzilla.redhat.com/show_bug.cgi?id=1200611

Thanks,

Donovan (saultdon)

[1] https://github.com/archlinux/svntogit-packages/blob/packages/wxgtk/trunk/PKGBUILD
[2] https://github.com/archlinux/svntogit-community/blob/packages/python-wxpython/trunk/PKGBUILD
[3] https://github.com/archlinux/svntogit-packages/blob/packages/wxgtk/trunk/make-abicheck-non-fatal.patch

As a former Gentoo user, I feel your pain. Unfortunately there is
nothing we can do, you must rebuild wxgtk and then rebuild wxpython as
building one and not other with the same g++ version is a path to hard
to predict random failures. And pray the mighty toolchain goods that
you have only one version of wxgtk installed as otherwise build
process might compile wxpython against a different wxgtk version than
one used during runtime (= leading to a fail).

Good luck & wait for winter when recompiling will pay off by reduce
your heating bills :wink:
Māris.

2021-08-02 23:23 GMT+03:00, Donovan Cameron <sault.don@gmail.com>:

My system info:

OS: Arch Linux
GRASS: 7.8.5
wxgtk3: 3.0.5.1
python-wxpython: 1:4.0.7.2

To compile GRASS I have python-wxpython set as a dependency and it
builds fine but I always get this warning on startup of GRASS:

    % grass78 --gui
    Starting GRASS GIS...
    12:54:21: Warning: Mismatch between the program and library build
    versions detected.
    The library used 3.0 (wchar_t,compiler with C++ ABI 1014,wx
    containers,compatible with 2.8),
    and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1016,wx
    containers,compatible with 2.8).

Recently, the GUI started to crash without any error or warning. It
launches a location/project and as soon as the two windows load (map and
layer windows) they just crash after a few seconds. No output in
terminal to indicate the cause. Can still execute command line GRASS no
problem though, so it doesn't crash the entire program just the GUI.

I've never really understood what causes the warning and now this crash
- do I need to re-compile wxgtk3[1] and python-wxpython[2] to fix it?
They do take a little bit of time to compile so curious if anyone has
encountered this as well and has some insight before I dive in!

I'm thinking the error is because the compiler used has some differences
to it as seen from C++ ABI 1014 and 1016.

The wxgtk package in Arch Linux has a 6 year old patch[3] applied that
has that exact warning in it and the comment for the patch in the
PKGBUILD is:

    # C++ ABI check is too strict and breaks with GCC 5.1
    # https://bugzilla.redhat.com/show_bug.cgi?id=1200611

Thanks,

Donovan (saultdon)

[1]
https://github.com/archlinux/svntogit-packages/blob/packages/wxgtk/trunk/PKGBUILD
[2]
https://github.com/archlinux/svntogit-community/blob/packages/python-wxpython/trunk/PKGBUILD
[3]
https://github.com/archlinux/svntogit-packages/blob/packages/wxgtk/trunk/make-abicheck-non-fatal.patch

Hi,

from what you describe I had the same problem and was able to fix it. I
believe the issue is that wxpython 4.0.7.2 is outdated as the
maintainer never got a more recent version to build. However, you can
obtain version 4.1.1 for your current user via pip:

pip install --user --update wxpython

This should allow the GUI to run with no warnings or crashes.

Best,
Max

On Mon, 2021-08-02 at 13:23 -0700, Donovan Cameron wrote:

My system info:

OS: Arch Linux
GRASS: 7.8.5
wxgtk3: 3.0.5.1
python-wxpython: 1:4.0.7.2
To compile GRASS I have python-wxpython set as a dependency and it
builds fine but I always get this warning on startup of GRASS:

> % grass78 --gui
> Starting GRASS GIS...
> 12:54:21: Warning: Mismatch between the program and library build
> versions detected.
> The library used 3.0 (wchar_t,compiler with C++ ABI 1014,wx
> containers,compatible with 2.8),
> and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1016,wx
> containers,compatible with 2.8).
>

Recently, the GUI started to crash without any error or warning. It
launches a location/project and as soon as the two windows load (map
and layer windows) they just crash after a few seconds. No output in
terminal to indicate the cause. Can still execute command line GRASS
no problem though, so it doesn't crash the entire program just the
GUI.

I've never really understood what causes the warning and now this
crash - do I need to re-compile wxgtk3[1] and python-wxpython[2] to
fix it? They do take a little bit of time to compile so curious if
anyone has encountered this as well and has some insight before I
dive in!

I'm thinking the error is because the compiler used has some
differences to it as seen from C++ ABI 1014 and 1016.

The wxgtk package in Arch Linux has a 6 year old patch[3] applied
that has that exact warning in it and the comment for the patch in
the PKGBUILD is:

> # C++ ABI check is too strict and breaks with GCC 5.1
> # https://bugzilla.redhat.com/show_bug.cgi?id=1200611
>

Thanks,

Donovan (saultdon)

[1]
https://github.com/archlinux/svntogit-packages/blob/packages/wxgtk/trunk/PKGBUILD
[2]
https://github.com/archlinux/svntogit-community/blob/packages/python-wxpython/trunk/PKGBUILD
[3]
https://github.com/archlinux/svntogit-packages/blob/packages/wxgtk/trunk/make-abicheck-non-fatal.patch
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Very cool! So I took the extra step of self-compiling python-wxpython to 4.1.1 and now GRASS runs super smooth again and no warnings in the console!

The key was removing the --use_syswx part of the build.

Thanks for your help and for anyone else, here’s some related bug reports that help explain the issue [1][2][3].

[1] https://github.com/wxWidgets/Phoenix/issues/1911
[2] https://bugs.archlinux.org/task/69393?project=5&string=python-wxpython
[3] https://github.com/OSGeo/grass/issues/1261

On Tue, Aug 3, 2021 at 2:23 AM Maximilian Stahlberg <maximilian.stahlberg@tu-berlin.de> wrote:

Hi,

from what you describe I had the same problem and was able to fix it. I
believe the issue is that wxpython 4.0.7.2 is outdated as the
maintainer never got a more recent version to build. However, you can
obtain version 4.1.1 for your current user via pip:

pip install --user --update wxpython

This should allow the GUI to run with no warnings or crashes.

Best,
Max

On Mon, 2021-08-02 at 13:23 -0700, Donovan Cameron wrote:

My system info:

OS: Arch Linux
GRASS: 7.8.5
wxgtk3: 3.0.5.1
python-wxpython: 1:4.0.7.2
To compile GRASS I have python-wxpython set as a dependency and it
builds fine but I always get this warning on startup of GRASS:

% grass78 --gui
Starting GRASS GIS…
12:54:21: Warning: Mismatch between the program and library build
versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1014,wx
containers,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1016,wx
containers,compatible with 2.8).

Recently, the GUI started to crash without any error or warning. It
launches a location/project and as soon as the two windows load (map
and layer windows) they just crash after a few seconds. No output in
terminal to indicate the cause. Can still execute command line GRASS
no problem though, so it doesn’t crash the entire program just the
GUI.

I’ve never really understood what causes the warning and now this
crash - do I need to re-compile wxgtk3[1] and python-wxpython[2] to
fix it? They do take a little bit of time to compile so curious if
anyone has encountered this as well and has some insight before I
dive in!

I’m thinking the error is because the compiler used has some
differences to it as seen from C++ ABI 1014 and 1016.

The wxgtk package in Arch Linux has a 6 year old patch[3] applied
that has that exact warning in it and the comment for the patch in
the PKGBUILD is:

C++ ABI check is too strict and breaks with GCC 5.1

https://bugzilla.redhat.com/show_bug.cgi?id=1200611

Thanks,

Donovan (saultdon)

[1]
https://github.com/archlinux/svntogit-packages/blob/packages/wxgtk/trunk/PKGBUILD
[2]
https://github.com/archlinux/svntogit-community/blob/packages/python-wxpython/trunk/PKGBUILD
[3]
https://github.com/archlinux/svntogit-packages/blob/packages/wxgtk/trunk/make-abicheck-non-fatal.patch


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user