KiCad AppImage for Linux

Hi all, I am working on a KiCad AppImage for most Linux distributions.

An AppImage has, among others, these advantages:

  • Works for most Linux distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • Release and nightly versions available, can have them in parallel
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Just one format for all major distributions
  • Works out of the box, no installation of runtimes needed
  • Optional(!) desktop integration with appimaged
  • Binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can GPG2-sign your AppImages (inside the file)

If you would like to test, download the AppImage file from
https://bintray.com/probono/AppImages/KiCad#files

Download, make it executable, and run. Should work on most 2014-ish and later Linux distributions. Some fine-tuning may be necessary, let me know how it goes.

3 Likes

To generate the AppImage from the existing ppa, you can

wget "https://github.com/probonopd/AppImages/raw/master/recipes/meta/Recipe"
bash Recipe KiCad

using any debian or Ubuntu 64-bit Linux build host. The resulting AppImage should run on most 2014-ish and later distribution (because the ingredients for the AppImage come from the trusty ppa).

For the nightly, do

wget "https://github.com/probonopd/AppImages/raw/master/recipes/meta/Recipe"
bash Recipe KiCad-nightly

instead.

These files configure the ppa to AppImage conversion:

For more information, see

I’ve just tried installing daily build image. Schematic run fine but pcbnew crashed immediately with this message in the console.

Fatal Error: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1002,wx containers,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.8).
Aborted

I think it’s conflicting with my local installation?

My system is Linux Mint 18 (based on ubuntu 14.04).

Thanks for reporting @hyOzd. This is clearly a bug. wxPython is bundled inside the AppImage and that version should be used over any version that may or may not be installed on the distribution.

Please retry with today’s version. And let’s collect results from more users.

Still the same error.

1 Like

A self-standing wxWidgets installation is included in the AppImage and the AppImage is running for me on openSUSE and on Ubuntu (systems on I didn’t install wxWidgets). I really wonder what causes this mixup on your machine, and why it seems to prefer to load some parts of wxWidgets from outside the AppImage on your system. Sorry that I don’t have a solution available right now.

Do others experience this too? Is there a way to replicate?

Well i would like to test it. But fedora uses dnf as package manger and not apt like your recipe.
Is there a way to get this stuff to use dnf?

And why does it need the package manager in the first place? This does not seem like it is standalone if it uses the package manager.

Just tried both versions on Xubuntu 16.10 and pcbnew generates an error. EEschema seems to be ok

Fatal Error: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1002,wx containers,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.8).
Aborted (core dumped)

@Rene_Poschl if you would like to test, download the AppImage file from
https://bintray.com/probono/AppImages/KiCad#files10
No Ubuntu or debian needed for that.

@slc do you have KiCad or wxWidgets installed on your host system?

Both
I have compiled Kicad from source several times in the last few months

Aaagh I hit the wrong key too soon.

I will try removing wxwidgets later an see what happens

The promise of this appimage is that you don’t need to remove wxwidgets from your system. It should have its own version. It should not use the systems stuff.
Don’t remove your version. Other applications might be depending on it.
(this wx stuff is the reason why some distros don’t get kicad anymore. Kicad uses an outdated version that is not compatible with the newer versions. Same goes for the python boost libraries.)

Uninstalling & reinstalling things is not a problem, this is a machine I use for development.

Removing wxWidgets seems to have fixed things.There is definitely a problem with the appimage.

1 Like

The problem is the wxpython. I’ve tried removing wx-python from my system and it worked. Removing wxpython with below command breaks the system but doesn’t remove any other packages so it’s easy to fix (just install it back with apt).

sudo dpkg -r --force-all python-wxgtk3.0

@probono I think you should configure bundled python to load python modules only from the appimage never from the system.

I had the same problem a few days ago. It compiled if I turned off scripting support though. So if scripting is not important to you try turn it off.

You can take a look at the versions of the dependencies In Install.txt

https://github.com/KiCad/kicad-source-mirror/blob/master

I had to downgrade gcc to 4.9 iirc. Upgrade libboost-dev and turn off scripting to get it to compile. I run mint 17.3.

1 Like

Now that is strange. This means that for some reason which I don’t understand yet, the system wxpython seems to win over the bundled wxpython. Does anyone know how I can turn that around, so that the bundled one always wins over the system one?

I think you will have to patch kicad for this. I found this fix in kicad source. But it is only enabled for windows. Maybe enabling it would help?

Very interesting indeed @hyOzd. Unfortunately I don’t know how KiCad or wxPython work internally. Perhaps a KiCad developer sees this here and can comment?