1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
This package is technically a monorepo that builds builds 3 projects:
- criu, written in the C Programming language
- pycriu, written in Python, with its standalone build-system in lib/
- crit, written in Python, with its standalone build-system in crit/
Additionally, upstream has written a bespoke build system 'nmk'
(cf. scripts/nmk), which is inspired by the Linux kernel Makefiles. This build
system drives the "core" build of criu, as well as preparing the build-tree for
building the python modules. These preparations include generating 'version.py'
files to indicate the criu version numbers and generating python modules for
protobuf interface definitions.
Debian packaging helpers optimize for the case that the upstream source builds
one project. Particular challenge pose the python modules, which need to be
built with 'pybuild', a Debian-specific helper that makes sure the package is
build and installed for potentially multiple python interpreters that Debian
installs by default.
The debian/rules files accounts for all these cases and invokes the build
system multiple times, one for each of the three projects above.
|