AppImage testing

Hi Folks!

A few weeks ago, we put out a call to find a developer who could help us build the AppImage CI/CD pipeline.

We’ve had a very skilled developer (Dmitrii S.) take this on. Their first build is available for testing at

If you run Linux, it would helpful to get your feedback at Initial bringup (!1) · Merge requests · KiCad / KiCad Packaging / Kicad Appimage · GitLab

Just download the appimage, make it executable and run. It should take parameters like ./KiCad-nightly-20250302-x86_64.AppImage kicad-cli to invoke subprograms

Let us know if you find any issues on your machine. This is particularly useful to know if you run an esoteric or older Linux distro so that we know the limits of our process.

1 Like

I just tried it, but it seems not to be able to find the libkigal file, as shown below. Please let me know if there is more info that I can provide on this.

beast$ chmod 755 ./KiCad-nightly-20250302-x86_64.AppImage 
beast$ ./KiCad-nightly-20250302-x86_64.AppImage 
Checking module /tmp/.mount_KiCad-HkvCK8/opt/glibc
Checking module /tmp/.mount_KiCad-HkvCK8/opt/glibstdcpp
/tmp/.mount_KiCad-HkvCK8/usr/bin/kicad: error while loading shared libraries: libkigal.so.9.99.0: cannot open shared object file: No such file or directory

Gentoo here:

dlopen(): error loading libfuse.so.2

It appears to be linked against an older version of fuse. Luckily fuse-2.9.9 can be slotted

Once installed kicad launches as expected

1 Like

Looks ok here, just a bit slower than usual when launching.

Application: KiCad x86_64 on x86_64

Version: 9.99.0-unknown, release build

Libraries:
	wxWidgets 3.2.2
	FreeType 2.12.1
	HarfBuzz 6.0.0
	FontConfig 2.14.1
	libcurl/7.88.1 GnuTLS/3.7.9 zlib/1.3 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0 nghttp2/1.52.0 librtmp/2.3 OpenLDAP/2.5.13

Platform: Ubuntu 24.04.2 LTS, 64 bit, Little endian, wxGTK, X11, mate, x11

Build Info:
	Date: Mar  2 2025 18:56:24
	wxWidgets: 3.2.2 (wchar_t,wx containers) GTK+ 3.24
	Boost: 1.74.0
	OCC: 7.6.3
	Curl: 7.88.1
	ngspice: 39
	Compiler: GCC 12.2.0 with C++ ABI 1017
	KICAD_IPC_API=ON

Locale: 
	Lang: en_US
	Enc: UTF-8
	Num: 1.234,5
	Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)

Hi,

Slower with launching than “my” version of AppImage (see below). Added 3D model dir and nightly has the same problem with 3D models. It is not visible. See image:

PS. I’ve modified appimage scripts from CyberCircuits in order to build version 9.x. Maybe something from this could be looked at. GitHub - slawekmikula/kicad-appimage

Interestingly I’ve build version 8.0.9 from mentioned above scripts and with version 8.0.9 the 3D models are visible and working OK. Haven’t found core problem with rendering. I’ve created topic post here: AppImage for 9.0 without 3d model visualization - which libraries? but without any luck finding the real culprit.

Thanks, with this docker builder I’ve been able to build kicad version 5, 6 and 7, been able to run old releases side by side on modern linux distro!
:+1:

Hi folks,
I am using KiCad as AppImage a lot. Different Versions.
I did try building it via CyberCircuits github build but came to the same results. always 3d missing.
I thought yay i go the gitlab way ( kicad/packaging/kicad-appimage ) well i did epic fail.
I am too stupid to setup the VM with Docker and all needed stuff. It includes some stuff from gitlab paths which he expects local.
Attached the log output.

kicad-appimage$ docker build .
[+] Building 1.8s (11/11) FINISHED                                                                                 docker:default
 => [internal] load build definition from Dockerfile                                                                         0.0s
 => => transferring dockerfile: 8.86kB                                                                                       0.0s
 => WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 217)                                             0.0s
 => CANCELED [internal] load metadata for docker.io/library/appimage-builder-src:latest                                      1.7s
 => CANCELED [internal] load metadata for docker.io/library/debian:bookworm                                                  1.7s
 => CANCELED [internal] load metadata for docker.io/library/kicad-src:latest                                                 1.7s
 => ERROR [internal] load metadata for docker.io/library/symbols-src:latest                                                  1.7s
 => CANCELED [internal] load metadata for docker.io/library/footprints-src:latest                                            1.7s
 => CANCELED [internal] load metadata for docker.io/library/occt-src:latest                                                  1.7s
 => CANCELED [internal] load metadata for docker.io/library/templates-src:latest                                             1.7s
 => CANCELED [internal] load metadata for docker.io/library/python:3.12-bookworm                                             1.7s
 => CANCELED [internal] load metadata for docker.io/library/ngspice-src:latest                                               1.7s
 => CANCELED [internal] load metadata for docker.io/library/packages3d-src:latest                                            1.7s
------
 > [internal] load metadata for docker.io/library/symbols-src:latest:
------

 1 warning found (use docker --debug to expand):
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 217)
Dockerfile:154
--------------------
 152 |     
 153 |     FROM build-dependencies AS build-symbols
 154 | >>> COPY --from=symbols-src . /src
 155 |     RUN /build-library.sh
 156 |     FROM scratch AS symbols
--------------------
ERROR: failed to solve: symbols-src: failed to resolve source metadata for docker.io/library/symbols-src:latest: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

Maybe You find it helpful.

I would love to be able to build the nightly to test if the symbols are finally in.

I always run the appimage with the “appimagename”.config and .data folder alongside. it really helps to keep everything in one place. I sync the folders around my network so it doesnt matter which workstation i use. everything there always. also makes resetup a breeze. just copy the containing folder. thats it. Important folders from within the data folder are symlinked in the main folder for me for easy access.

Thanks for reading my mess :slight_smile:

If i can provide more logs or more infos just ask.

Greetings lexarion

You can read the script at .gitlab-ci.yml · main · KiCad / KiCad Packaging / Kicad Appimage · GitLab

But you are probably better off trying one of our pre-built images. We’ll have them listed on the website soonish. In the meantime, here is today’s build: https://r2-ci-scratch.kicad.org/appimage/KiCad-nightly-20250427-x86_64.AppImage

If I might to complain (sorry), the 3D models are not visible running latest (mentioned by you) AppImage build. The same as mentioned earlier. If someone with more knowledge about the rendering/model loading knowledge can provide me some hints where/what to look/test I can try to pinpoint the exact bug, but I’m just a very seasoned KiCad user.

CyberCircuits built 2 versions of 8.0.9 with and without 3D models so it’s some option to the build. The recently released 9.0.1 image only comes without 3D models but I last checked a couple of days ago.

yeah, i’ve made patches for cybercircuits for build it, but didn’t have clue what the problem is :wink:

Thank You for the Link.

I will test the nightly.
Also i will do some try with the gitlab-ci and check how to build a standart docker setup.
( I failed badly with my github pipeline. I am a usual " make my own build VM system yada yada yada)
Anyway will report back.

I am building a new state of the art CAR ECU. and i want to do it with kicad. I am an altium baby so i have a lot to learn. :slight_smile:

I FOUND IT.
I FOUND THE MISTAKE YAYYYYYYY

Somehow this is setted in kicad:

${KICAD8_3DMODEL_DIR}/Package_QFP.3dshapes/TQFP-144_20x20mm_P0.5mm.wrl

( maybe some prefix or so. )

I changed it to

${KICAD_3DMODEL_DIR}/Package_QFP.3dshapes/TQFP-144_20x20mm_P0.5mm.wrl

and then clicked on the Browse icon… BAAAAAM the model there.

I just removed the 8 from the VAR name.

MAybe in the Program define aliases:

define KICAD8_3DMODEL_DIR = KICAD_3DMODEL_DIR

I hope the info helps.

I tested it by opening example project kit_dev_coldfire…
I was wondering why only the plug and the switch and the tactile buttons had 3D models…
So i did investigate. FOUND IT.

a short grep -rnw -e “KICAD_3DMODEL_DIR” did give back nothing
but a -e “KICAD8_3DMODEL_DIR”

/kicad/common/settings/settings_manager.cpp:633: wxT( “KICAD8_3DMODEL_DIR” ),

and a lot of stuff from the examples.
so i did look there:


const std::vector<wxString> libKeys = {
            wxT( "KICAD6_SYMBOL_DIR" ),
            wxT( "KICAD6_3DMODEL_DIR" ),
            wxT( "KICAD6_FOOTPRINT_DIR" ),
            wxT( "KICAD6_TEMPLATE_DIR" ), // Stores the default library table to be copied
            wxT( "KICAD7_SYMBOL_DIR" ),
            wxT( "KICAD7_3DMODEL_DIR" ),
            wxT( "KICAD7_FOOTPRINT_DIR" ),
            wxT( "KICAD7_TEMPLATE_DIR" ),
            wxT( "KICAD8_SYMBOL_DIR" ),
            wxT( "KICAD8_3DMODEL_DIR" ),
            wxT( "KICAD8_FOOTPRINT_DIR" ),
            wxT( "KICAD8_TEMPLATE_DIR" ),

            // Deprecated keys
            wxT( "KICAD_PTEMPLATES" ),
            wxT( "KISYS3DMOD" ),
            wxT( "KISYSMOD" ),
            wxT( "KICAD_SYMBOL_DIR" ),
        };

well… go for the hunt… Oh i see settings window…

there was then also a surprise.

Only the KICAD9 were there but not all. only 2 were correctly setted…

anyway. continuing playing around till it breaks :slight_smile:

Hope this helps so far.

MAny greetings

Another sucessful test.:

Bildschirmfoto vom 2025-04-28 15-31-35

after this. i could sucessfull open the 6 and 8 projects without issue.

some are still missing because the model is not in the library. but. it works now.

I did check. the SO-8_5.3x6.2mm_P1.27mm.step is not in the library but it is ok.