Chain of upstream repositories
------------------------------
The immediate upstream for this debian package is:
    [1] https://github.com/canonical/crac-criu

The above repository is a direct downstream of:
    [2] https://github.com/CRaC/criu

The CRaC/criu project itself is based on:
    [3] https://github.com/checkpoint-restore/criu

Delta added by CRaC/criu
------------------------
The CRaC/criu [2] fork has some OpenJDK/CRaC specific features that aren't upstreamed
to checkpoint-restore/criu [1] as yet. 

The CRaC/criu [2] augmentation mainly deals with image compression on checkpoint and
decompression on restore, for which it uses the lz4 compress/decompress algorithm. 
It also lets restore happen in unprivileged environments and enables mmaping of the
image on restore. For compress/decompress, the CRaC/criu project pulls in lz4 as a 
git-submodule.


Delta added by canonical/crac-criu
----------------------------------
This repository has changes tailor-made for Ubuntu/Debian packaging support. Another
consideration in that regard is to remain conflict-free with the original criu package
[4] on Ubuntu. 
 
Ubuntu ships Python 3.12 starting 24.04. The crit component in checkpoint-restore/criu [3]
installs a Python module named pycriu. The installation code needs to be adapted to
Python 3.12 [5]. Further, because we want crac-criu to have an independent identity
in the Ubuntu archive and not conflict with criu [4], names of the binaries installed
by crac-criu have been modified in this delta.

[4] https://github.com/canonical/crac-criu/pull/2

[5] https://github.com/canonical/crac-criu/pull/1

Debian patches
--------------
Further, patches under debian/patches make modifications to the build and installation of
crac-criu. 

Because there is no easy way to distinguish the original crit/pycriu from
the crac-criu versions, and because we don't anticipate developers using the Python
binding in the context of openjdk/crac, crit/pycriu is not installed as a part of
the deb package. See patches/dont-install-crit.patch.

The git-submodule adopted by CRaC/criu [2] to bring in lz4 is replaced by making
lz4 a vendored dependency. It should be possible to make changes and separate lz4
into a build-dependency in future. See patches/disable-warnings-build-lz4.patch.

The deb package does not install criu man pages.
