Building on Debian 10 (Buster)

I upgraded my Debian to 10 today. Now when I run kicad:

kicad: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3’ not found (required by kicad)

When I try to build it from source after doing git pull, I get:
~/dev/kicad/build/release$ cmake -DCMAKE_BUILD_TYPE=Release …/…/
– KiCad install dir: </usr/local>
– Check for installed GLEW – found
CMake Error at CMakeLists.txt:589 (MESSAGE):

GLM version 0.9.9.3 is incompatible with KiCad using GCC.

Please downgrade to GLM version 0.9.9.2 or older or use clang instead

– Configuring incomplete, errors occurred!
See also “/home/USER/dev/kicad/build/release/CMakeFiles/CMakeOutput.log”.

I haven’t upgraded yet. Figured I’d give it a few weeks to work out bugs. Was the version that you were using something you compiled? What version? Looks like it was good of me to be lazy and not jump up yet. :wink:

You will need to do what it says at least for a little while until we update things. You can install libglm-dev from the .deb file from Debian directly. Just avoid 9.9.3, which has a bug in it.

http://ftp.us.debian.org/debian/pool/main/g/glm/

Thanks, now, after removing glm with sudo apt remove libglm-dev, and installing older libglm you pointed with sudo dpkg -i libglm-dev_0.9.8.3-3_all.deb
I get:
~/dev/kicad/build/release$ cmake -DCMAKE_BUILD_TYPE=Release       …/…/
– KiCad install dir: </usr/local>
– Check for installed GLEW – found
– Boost version: 1.67.0
– Check for installed Python Interpreter – found
– Python module install path: lib/python2.7/dist-packages
– Found wxPython 3.0.2.0/gtk3 (wxWidgets 3.0.2.0)
CMake Error at /usr/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
 Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
 wxWidgets_INCLUDE_DIRS) (Required is at least version “3.0.2.0”)
Call Stack (most recent call first):
 /usr/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
 CMakeModules/FindwxWidgets.cmake:944 (find_package_handle_standard_args)
 CMakeLists.txt:795 (find_package)

– Configuring incomplete, errors occurred!
See also “/home/USER/dev/kicad/build/release/CMakeFiles/CMakeOutput.log”.

This is not a painless process if your machine is not set up for compiling KiCad already. There will be more of these. You can follow the instructions at http://docs.kicad.org/doxygen/md_Documentation_development_compiling.html

I recommend using apt build-dep, see SOLVED: Compiling V5 RCs on Debian.

Thank you for your effort, but I couldn’t move further. I compiled Kicad earlier, in Debian 9, but now:
$ cmake -DCMAKE_BUILD_TYPE=Release ../../
-- KiCad install dir: </usr/local>
-- Check for installed GLEW -- found
-- Boost version: 1.67.0
-- Check for installed Python Interpreter -- found
-- Python module install path: lib/python2.7/dist-packages
-- Found wxPython 3.0.2.0/gtk3 (wxWidgets 3.0.2.0)
CMake Error at /usr/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
wxWidgets_INCLUDE_DIRS) (Required is at least version "3.0.2.0")
Call Stack (most recent call first):
/usr/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
CMakeModules/FindwxWidgets.cmake:944 (find_package_handle_standard_args)
CMakeLists.txt:795 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/USER/dev/kicad/build/release/CMakeFiles/CMakeOutput.log".

$ sudo apt build-dep kicad
Reading package lists... Done
E: You must put some 'source' URIs in your sources.list

As I wrote in the other thread:

Make sure you have the source repository enabled, not just the binary repository. Then run “sudo apt build-dep kicad”.

EDIT: and you have to have the PPA or other repository having KiCad enabled which is as close to the to-be-compiled version as possible. If the build dependencies have changed between the repository version and the self-compiled version you have to add packages manually.

Debian 10 doesn’t have gtk2 wxwidgets anymore, you have to switch to gtk3 and wxpython4.

I use this command:
cmake -DCMAKE_BUILD_TYPE=Release -DKICAD_SCRIPTING_ACTION_MENU=ON -DwxWidgets_CONFIG_OPTIONS="--toolkit=gtk3" -DKICAD_SCRIPTING_PYTHON3=ON -DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON -DPYTHON_SITE_PACKAGE_PATH=/usr/local/lib/python3.6/dist-packages ../

You may have python 3.7 so update accordingly.

And make sure you have libwxgtk3.0-gtk3-dev installed.

2 Likes

Now, one step further:
~/dev/kicad/build$ cmake -DCMAKE_BUILD_TYPE=Release -DKICAD_SCRIPTING_ACTION_MENU=ON -DwxWidgets_CONFIG_OPTIONS="--toolkit=gtk3" -DKICAD_SCRIPTING_PYTHON3=ON -DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON -DPYTHON_SITE_PACKAGE_PATH=/usr/local/lib/python3.7/dist-packages ../
-- KiCad install dir: </usr/local>
-- Check for installed GLEW -- found
-- Boost version: 1.67.0
-- Check for installed Python Interpreter -- found
-- Python module install path: /usr/local/lib/python3.7/dist-packages
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'wx'
CMake Error at CMakeModules/FindwxPython.cmake:52 (message):
wxPython/Phoenix does not appear to be installed on the system
Call Stack (most recent call first):
CMakeLists.txt:741 (find_package)

-- Configuring incomplete, errors occurred!

Error message is telling you that you are missing wxpython.
Install python-wxgtk3.0. You can find name of the package to install with a bit of googling.

I read the thread again but didn’t see what KiCad version you want to compile. The latest development version?

The one with which I could continue with my PCB project.

$ git branch
* 5.1
master

But I wanted something closer to stable, at least 5.1.2.

python-wxgtk3.0 is installed

Do you mean “5.1” branch?

5.1.2 is already compiled in testing, but if you don’t want to mix repositories it’s out of question. On the other hand if some libraries are required for self-compiled 5.1.2 which are only in testing you have to use testing anyways, or you are out of luck.

I don’t know, I just want to use Kicad on Debian 10 and not older than latest stable Win version.
I would happily install it from packages if it would be available and working…

In that case you can add the testing repository, install kicad 5.1.2 and disable the testing repository. Only kicad packages are installed from testing, it doesn’t draw in any dependencies as far as I can tell.

Of course you could have told in the beginning what you actually need…

Well, then please just wait a few days … KiCad isn’t a package that is build and uploaded in a few seconds.
Debian 10 is just 3 days old.

The download section for Debian on the KiCad website is also holding some information about the build dependencies. Please scroll down to the end of the page (maybe this need to be updated a bit in between times).

Or use the suggestion from @eelik about using apt build-dep kicad.

And please use quoting tags. :wink:

If python-wxgtk3.0 doesn’t work try python3-wxgtk4.0 and as a last resort pip3 install wxpython.

There is no need to use pip, all requirements are packaged!
And there are the typical tools available to install the requirements like apt build-dep or if you want to install them manually just use apt install $packagelist.

The long list of build depending packages can simply be inspected by viewing the debian/control file for the kicad package.

$ LANG= apt build-dep kicad --dry-run
NOTE: This is only a simulation!
      apt needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  asciidoc-dblatex libboost-atomic1.67-dev libboost-date-time-dev libboost-date-time1.67-dev libboost-filesystem-dev libboost-iostreams-dev
  libboost-iostreams1.67-dev libboost-locale-dev libboost-locale1.67-dev libboost-program-options-dev libboost-regex-dev libboost-thread-dev
  libboost-thread1.67-dev libbz2-dev python3-all texlive-fonts-extra xmlto
0 upgraded, 17 newly installed, 0 to remove and 0 not upgraded.
Inst asciidoc-dblatex (8.6.10-3 Debian:testing [all])
Inst libboost-atomic1.67-dev (1.67.0-13 Debian:testing [amd64])
Inst libboost-date-time1.67-dev (1.67.0-13 Debian:testing [amd64])
Inst libboost-date-time-dev (1.67.0.1 Debian:testing [amd64])
Inst libboost-filesystem-dev (1.67.0.1 Debian:testing [amd64])
Inst libboost-iostreams1.67-dev (1.67.0-13 Debian:testing [amd64])
Inst libboost-iostreams-dev (1.67.0.1 Debian:testing [amd64])
Inst libboost-locale1.67-dev (1.67.0-13 Debian:testing [amd64])
Inst libboost-locale-dev (1.67.0.1 Debian:testing [amd64])
Inst libboost-program-options-dev (1.67.0.1 Debian:testing [amd64])
Inst libboost-regex-dev (1.67.0.1 Debian:testing [amd64])
Inst libboost-thread1.67-dev (1.67.0-13 Debian:testing [amd64])
Inst libboost-thread-dev (1.67.0.1 Debian:testing [amd64])
Inst libbz2-dev (1.0.6-9.1 Debian:testing [amd64])
Inst python3-all (3.7.3-1 Debian:testing [amd64])
Inst texlive-fonts-extra (2018.20190227-2 Debian:testing [all])
Inst xmlto (0.0.28-2.1 Debian:testing [amd64])
Conf asciidoc-dblatex (8.6.10-3 Debian:testing [all])
Conf libboost-atomic1.67-dev (1.67.0-13 Debian:testing [amd64])
Conf libboost-date-time1.67-dev (1.67.0-13 Debian:testing [amd64])
Conf libboost-date-time-dev (1.67.0.1 Debian:testing [amd64])
Conf libboost-filesystem-dev (1.67.0.1 Debian:testing [amd64])
Conf libboost-iostreams1.67-dev (1.67.0-13 Debian:testing [amd64])
Conf libboost-iostreams-dev (1.67.0.1 Debian:testing [amd64])
Conf libboost-locale1.67-dev (1.67.0-13 Debian:testing [amd64])
Conf libboost-locale-dev (1.67.0.1 Debian:testing [amd64])
Conf libboost-program-options-dev (1.67.0.1 Debian:testing [amd64])
Conf libboost-regex-dev (1.67.0.1 Debian:testing [amd64])
Conf libboost-thread1.67-dev (1.67.0-13 Debian:testing [amd64])
Conf libboost-thread-dev (1.67.0.1 Debian:testing [amd64])
Conf libbz2-dev (1.0.6-9.1 Debian:testing [amd64])
Conf python3-all (3.7.3-1 Debian:testing [amd64])
Conf texlive-fonts-extra (2018.20190227-2 Debian:testing [all])
Conf xmlto (0.0.28-2.1 Debian:testing [amd64])

That’s why I said as a last resort. Back when I built kicad 5.1 on gtk3 with python3 python3-wxgtk4.0 was not in the repos.
Thanks for the link to debian packaging config, I always was curious how that is set up but was too lazy to look it up :slight_smile: