KiCad 6 on Debian / Multiple Versions with Flatpak

Hello all,

TL/DR: Some notes and comments on installing KiCad 6 on Debian (and similar) via Flatpak and having multiple version installed at the same time.

so running on Debian, I of course was also very eager to try out the new released KiCad 6 (thanks again to all the developers, looks really nice so far!).

If you know Debian, then you of course also know, that packages are in general not updates to the latest release immediately via the package manager, so installing KiCad 6 via apt or apt-get (for now) is not an option.

Therefore, as previously proposed on this forum, I went the approach of installing it via Flatpak.

Now, I already had my working version of KiCad (v5.1.10) installed via Flatpak:

So installing KiCad 6 with

flatpak install --from https://flathub.org/repo/appstream/org.kicad.KiCad.flatpakref

did not work, as it would (rightfully) complain, that KiCad is already installed.

One could here do a

flatpak update org.kicad.KiCad

which would update the existing version 5.1.10 to the current stable release version 6.0.0.

But I did not want to do this, as I might still use the 5.1.10 version for existing projects.

So for anybody having a similar issue, here are two (similar) solutions:

Installation in user-space (via flatpak)

Flatpak allows to install packets in user space (which also does not need root / sudo permissions), via the --user flag. The big advantage here is, that this user installation is completely separate from the default system installation. So two versions of the same package can be installed at the same time, one in the system installation, and one in the user installation.

Assuming, you have a previous installation of KiCad in the system installation, here is how you install KiCad in the user space:

flatpak --user remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak --user install org.kicad.KiCad

After confirming all questions with y and doing flatpak list you will see two versions of KiCad installed:

In this setup, you can then run KiCad 6 via
flatpak --user run org.kicad.KiCad

and the old version of KiCad (in my case 5.1.10) via
flatpak --system run org.kicad.KiCad

Installation in custom system-installation

This solution is very similar to the previous one, but instead of using the user-installation space, we create a new (non-default) system-installation for Flatpak (also see man flatpak-installation).

On Debian we need to first create a flatpak installation config file:

sudo mkdir -p /etc/flatpak/installations.d/
sudo nano /etc/flatpak/installations.d/KiCad-6.conf
sudo mkdir -p /opt/flatpak/KiCad-6

The config file should have the following (similar) content:

[Installation "KiCad-6"]
Path=/opt/flatpak/KiCad-6/
DisplayName=Installation for KiCad-6
StorageType=harddisk

This defines a new flatpak-installation (named KiCad-6) which will be located under /opt/flatpak/KiCad-6/. You can of course change this location to any folder of your choice.

Similar to before, we can now install KiCad 6 in this new installation (which is completely separate from any existing installation):

flatpak --installation=KiCad-6 remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak --installation=KiCad-6 install org.kicad.KiCad

On my computer, this looks then as follows:

You can see, KiCad is now installed in three different places (and with at least two different versions). On your case, you should probably choose, either a custom system installation or the user installation, but probably not both :wink:

Finally to run the KiCad installed here, we can run
flatpak --installation=KiCad-6 run org.kicad.KiCad

Hope this might help some people in the future, who also want to try out KiCad 6!

Cheers,
Johannes

1 Like

Addendum #1: Installing a specific version of KiCad via Flatpak

With flatpak install org.kicad.KiCad by default the current stable version is being installed (as of writing this, it would be version 6.0.0).

Flatpak allows to install specific versions of the app, via a (somehow hidden) mechanism.
I am going to demonstrate here, how to install v5.1.12 in the flatpak user-installation space.

As presented above, we will start out, by installing KiCad in flatpak user-space via

flatpak --user remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak --user install org.kicad.KiCad

This will install the current release, therefore KiCad v6.0.0.

Now using the command flatpak remote-info --user --log flathub org.kicad.KiCad we can see the history of the KiCad flatpak app. The ouput will look similar to this:

What we are interested now, is the commit hash for when version 5.1.12 was published, which is:

83f184bbbf37c88f2ae48235c9255bb7ab98a28b650508a01b21d379343cf6d7

which is annotated in the log with: Update KiCad to 5.1.12 (99bf9234).

Now we can simply run

flatpak --user update --commit=83f184bbbf37c88f2ae48235c9255bb7ab98a28b650508a01b21d379343cf6d7 org.kicad.KiCad

which will update (actually downgrade) the user installation of KiCad to this specific commit (and therefore version 5.1.12). See also: https://github.com/flatpak/flatpak/issues/3097

After this flatpak list will show, that KiCad v5.1.12 is indeed installed in user space:

If you have read the post above, you can see, that I now actually have 3 different versions of KiCad installed, within different flatpak installations (user, system and non-default system KiCad-6).

2 Likes

So, after more in-depth testing, it turns out, that all of this is not working 100% as expected.

The main problem is, that when installing a KiCad version in the --system installation, the flatpak runtime still will load the org.kicad.KiCad.Library... extensions installed in the --user space!
Now the problem is, that the KiCad-5 libraries are not compatible to the KiCad-6 libraries, and therefore the case of the --system install, the symbol and footprint libraries are not present when starting KiCad with

flatpak --system run org.kicad.KiCad

This in my eyes is a bug in flatpak, the corresponding Bug-Report that I filled can be found here: https://github.com/flatpak/flatpak/issues/4656

Is each version a full installation? Can versions be installed without packages?

Am running Debian stable Buster. Has a debian package been compiled for amd64 CPU architecture
for a version of kicad newer than 5.0.2 ?
If not, has anybody made a make file for doing so on my CPU architecture and OS (yeah, it’s getting old).

Do you use backports? Not that this is great at the moment but here is what I see.

image

I have used a backport in the past for kicad, but I forget how I did it. Where did you find that, hermit ?

In your /etc/apt/sources.list
deb http://deb.debian.org/debian bullseye-backports main contrib non-free

I’m not sure if the Ubuntu thing would work.

Thank you for your suggestion, hermit. I added the line you suggested to that file, but got the same version listed:

$apt-cache madison kicad
     kicad | 5.0.2+dfsg1-1 | http://deb.debian.org/debian buster/main amd64 Packages

as before:

$ apt-cache madison kicad
     kicad | 5.0.2+dfsg1-1 | http://deb.debian.org/debian buster/main amd64 Packages

Now I am running buster. Maybe I should try this after I upgrade to bullseye.

https://backports.debian.org/Instructions/

There are hopefully sufficient information about versions and installation of these available on the official web site of KiCad: Install on Debian | KiCad EDA

Debian 10 Buster will probably not get backported versions of Kicad 6.x, at least I’ve no intent to build and prepare something as the build dependencies are critical and the Buster release will not get supported for a long time in the future (approx. until 08-2022). If someone is preparing something for Buster backports I’m happy to prepare an upload.

A first upload of KiCad 6.x to Bullseye backports will happen after the release of 6.0.1. But the required acceptance of the additional KiCad packages in Backports might delay the availability of a backported version.

This is the list of all available versions for KiCad for now:

$ rmadison kicad
kicad      | 0.20140622+bzr4027-3                | oldoldoldstable                  | source, amd64, armel, armhf, i386
kicad      | 4.0.5+dfsg1-4                       | oldoldstable                     | source, amd64, arm64, armel, armhf, i386, mips, mipsel, ppc64el
kicad      | 4.0.7+dfsg1-1~bpo9+1                | stretch-backports                | source, armel, mips, mipsel, ppc64el
kicad      | 4.0.7+dfsg1-1~bpo9+1                | stretch-backports-debug          | source
kicad      | 5.0.2+dfsg1-1~bpo9+1                | stretch-backports                | source, amd64, arm64, armhf, i386
kicad      | 5.0.2+dfsg1-1~bpo9+1                | stretch-backports-debug          | source
kicad      | 5.0.2+dfsg1-1                       | oldstable                        | source, amd64, arm64, armhf, i386
kicad      | 5.1.6+dfsg1-1~bpo9+1                | stretch-backports-sloppy         | source, amd64, armhf, i386
kicad      | 5.1.6+dfsg1-1~bpo9+1                | stretch-backports-sloppy-debug   | source
kicad      | 5.1.9+dfsg1-1~bpo10+1               | buster-backports                 | source, amd64, arm64, armhf, i386, mips64el, ppc64el
kicad      | 5.1.9+dfsg1-1~bpo10+1               | buster-backports-debug           | source
kicad      | 5.1.9+dfsg1-1                       | stable                           | source, amd64, arm64, armhf, i386, mips64el, ppc64el
kicad      | 5.99.0+really5.1.12+dfsg1-1~bpo10+1 | oldstable-backports-sloppy       | source, amd64, arm64, armhf, i386, mips64el, ppc64el
kicad      | 5.99.0+really5.1.12+dfsg1-1~bpo10+1 | oldstable-backports-sloppy-debug | source
kicad      | 5.99.0+really5.1.12+dfsg1-1~bpo11+1 | bullseye-backports               | source, amd64, arm64, armhf, i386, mips64el, ppc64el
kicad      | 5.99.0+really5.1.12+dfsg1-1~bpo11+1 | bullseye-backports-debug         | source
kicad      | 6.0.0+dfsg1-2                       | testing                          | source, amd64, arm64, armhf, i386, mips64el, ppc64el
kicad      | 6.0.0+dfsg1-2                       | unstable                         | source, amd64, arm64, armhf, i386, mips64el, ppc64el
kicad      | 6.0.0+dfsg1-2                       | unstable-debug                   | source

After Mandrake went bust I looked for something that would remain stable so I chose Debian. When I started with Kicad I simply accepted the fact I’d have to build it myself to keep it current.