Fix Available for Double Window Border on elementaryOS

The wxWidgets project has implemented a fix for the double window border bug that shows up on elementaryOS and Mint.

When can we start looking for an updated build of KiCAD that includes their fix?

It should already possible to build KiCad with the latest wxWidgets on Linux, but you should ask those who create the packages for those platforms. Remember that Minit and elementaryOS aren’t officially supported. Mint uses the Ubuntu packages by @jsreynaud.

But it also depends on the wxWidgets version which is found from the repositories of each distro. Therefore you may need to ask those packagers, not KiCad packagers.

If wxWidgets is a dynamic library then an update to that package will fix it without any effort on Kicad’s part. I’m assuming the Python bindings are not involved or haven’t changed.

Edit: It’s a dynamic library on my Linux, probably yours too:

$ ldd $(which kicad) | grep -i wx
        libwx_gtk2u_aui-suse.so.3 => /usr/lib64/libwx_gtk2u_aui-suse.so.3 (0x00007f75a4dd4000)
        libwx_gtk2u_adv-suse.so.3 => /usr/lib64/libwx_gtk2u_adv-suse.so.3 (0x00007f75a4a12000)
        libwx_gtk2u_html-suse.so.3 => /usr/lib64/libwx_gtk2u_html-suse.so.3 (0x00007f75a4739000)
        libwx_gtk2u_core-suse.so.3 => /usr/lib64/libwx_gtk2u_core-suse.so.3 (0x00007f75a3f70000)
        libwx_baseu_net-suse.so.3 => /usr/lib64/libwx_baseu_net-suse.so.3 (0x00007f75a3d33000)
        libwx_baseu-suse.so.3 => /usr/lib64/libwx_baseu-suse.so.3 (0x00007f75a38f9000)

Please kept in mind that wxWidgets has a basic simple release strategy. Releases with a minor version number that is even are stable releases for productions (e.g. 3.0.x), all minor numbers that are odd aren’t ABI stable and therefore not intended for production usage (e.g. the current versions of 3.1.x). Every new new development version requires a potential library transition within the Linux distributions.

Unfortunately the wxWidgets people aren’t willing to backport non critical changes to 3.0 and breaking their own rules and suggesting people to use the development releases for production. This is ridiculous!

Simply because of the non stable ABI Debian and also Ubuntu wont introduce any current development version of wxWidgets, even not within Debian experimental as it’s simply not working this way. There is a wishlist bug for packaging 3.1.x for Debian with further information.

The only reliable way is to bother wxWidgets upstream to backport such features. If this is done the rest is getting provided by a library update automatically without any further work within KiCad.

The 5.1 branch is only officially supporting the 3.0 versions of wx. It may or may not compile with the most recent versions due to their constant changing of the API in the 3.1 series. We try to keep master working with wx 3.1, but it is a moving target and it can’t compile against the current wx master branch right now (due to a change in their API).

In this case the patch was backported to the 3.0 stable branch as well, so if they release a new 3.0 version it can be picked up there (or your distro wx packager could choose to pick it up themselves if you ask them). I have poked wx upstream about a new patch release for 3.0 (since it has been >2 years and 100 commits since the 3.0.4 release), so we will see what they say.

2 Likes

From a small conversation with one of the wxWidgest maintainers in Debian I can say that they try eventually to prepare a new package upload of a some HEAD of the stable release tree of wxWidgest 3.0.4. They also asked upstream about back-porting stuff from the current devel release, but the feedback from the wxWidgets maintainers wasn’t very positive and there is not much what package maintainers from the distros can do here. So it’s also up to the projects that using wxWidgest to encourage wxWidgest upstream to back-port functions or to consider seriously preparing a new stable release version. From a time perspective a new stable release is long overdue. :slight_smile:

Yea, the main upstream wx dev effort is focused on the 3.1 branch, and 3.0 seems to be an afterthought/lower priority (it also doesn’t help that their code has diverged a lot over the years, so fixes aren’t easily backported).

There is some movement on a new stable release:
https://groups.google.com/forum/m/?fromgroups#!topic/wx-dev/jIt8cNPnNMo, so we could have a new version released in the near future (then it is up to the distributions to update - but this maintains ABI at least.

In other news Fedora just got wx 3.1 packaged into Rawhide (future Fedora 33), so both 3.0 and 3.1 are now available there - but that was mainly done since some apps have actually stopped supporting wx 3.0 and only work on 3.1.

WxWidgets has released 3.0.5. It isn’t in elementaryOS’s repositories yet, but I downloaded and built the source from github. It fixes the double window border problem.

1 Like