[3dprinter-general] libcharon: cmake vs pybuild

Gregor Riepl onitake at gmail.com
Mon Sep 7 11:55:27 BST 2020

Hi myon,

> does anyone have a clue why libcharon is using pybuild+cmake in salsaci
> https://salsa.debian.org/3dprinting-team/libcharon/-/jobs/982230
> but pybuild only on the buildds?
> https://buildd.debian.org/status/fetch.php?pkg=libcharon&arch=all&ver=4.7.1-1&stamp=1599427690&raw=0
> The difference is that charon.service is not installed in the 2nd
> case. (I'm not sure we want that, but it's weird anyway.)

I do know why we're using pybuild+cmake:

- Upstream uses cmake to build all Cura components
- The first Debian packages were built with only cmake
- During a Python transition (I believe it was 3.5 -> 3.6), it was
discovered that a pure cmake build would only produce binaries for one
single Python version
- When enabling pybuild together with cmake, pybuild will ensure that
SIP modules are compiled once for each Python version; it will still use
cmake to do the actual compilation

I don't know why buildds will only use pybuild now. The combination has
worked fine for Arcus and Savitar so far.

It looks like the difference is that Charon is a pure Python library, so
it won't require any Python-specific compilation at all. Perhaps this is
the reason?

Although: It's probably not a good idea to put an executable
(/usr/lib/python3/dist-packages/Charon/Service/main.py), a DBus config
(/usr/share/dbus-1/system.d/nl.ultimaker.charon.conf) and a service file
(/usr/lib/systemd/system/charon.service) into a -python3 package.
Perhaps these should be put into a separate, optional, "charon" package.

More information about the 3dprinter-general mailing list