Packaging and distributing

Gramine project aims to support two most recent releases of the long-lived distributions (e.g. Debian, Ubuntu LTS, AlmaLinux and other CentOS replacements, …).

Currently officially supported distributions:

  • Ubuntu (24.04 LTS, 22.04 LTS, 20.04 LTS);

  • RHEL-8-like distributions (like AlmaLinux 8, Rocky Linux 8, …);

  • experimentally, RHEL-9-like distros (packages are not fully validated).

Exceptions

Linux kernel

Because upstream support for SGX was only merged relatively recently and in non-longterm release, together with the fact that EPID attestation is unsupported in upstream driver, it is acceptable to require the user to use kernel other that provided by distro.

glibc

Glibc is a special case, because we need to provide the version supported by the distribution or a later version, which is inverse from the usual dependency relation that we need to support the version from distro or earlier. Therefore we will provide some reasonably new version under the assumption that older software will be able to run against new glibc version.

musl

See glibc. Same thing applies to musl.

varia

Maintainer tools, examples, etc. need not run on all distros.

Packaging guide

TBD

Acknowledgements

Distro support policy was inspired by Libvirt’s policy.