Mathias' Blog

Occasional musings and technical posts…

12 Jan 2024

The Path to Incus in Debian

Post updated on 2024-01-13

A Brief Recap

It’s been an interesting six months or so in the Linux Containers world. Just a month after the Debian bookworm release, which was the first to officially include LXD (yay!), news broke that Canonical was taking the LXD project in-house (hmm…) following the departure of Stéphane Graber from Canonical. While I didn’t think that was a great decision, it really didn’t impact my plans for continuing to help package LXD for Debian.

Shortly after Canonical’s announcement, a fork of LXD was announced – Incus. I filed a bug to track its progress and see about possibly packaging it for Debian. There’s nothing keeping LXD and Incus from being co-installed, and providing both would offer Debian’s users the choice to use whichever they want.

Fellow Debian Developer Free Ekanayaka (@freee) reached out in September to see about helping to package Incus and its various dependencies, and we’ve been working these past few months to get Incus packaged.

Things came to a head in December when Canonical announced a license change and CLA requirement for LXD. I was not pleased by this change, and there’s been discussion about what the future of LXD in Debian will look like. The fundamental issue is that it is unclear which source files are covered under what license(s), which means any further updates in Debian will require a ton of fine-toothed examination of the source code. Additionally, as a downstream packager I don’t intend to sign a CLA just to report/fix issues found while helping maintain LXD in Debian. (Add to that, Canonical seems to be doubling down on snaps, and native .deb packages aren’t something they really care about.)

LXD’s Future in Debian

So, where does this leave LXD? Unfortunately, unless someone else wishes to step up and do the work to process the licensing changes, LXD won’t receive any further updates in Debian beyond 5.0.2+git20231211.1364ae4, which is a snapshot of the stable-5.0 branch prior to the licensing changes. I plan to ensure the snapshot of LXD works for the upcoming trixie release, but beyond that I expect my effort to be minimal for LXD packaging. (If there’s no interest from others in helping, I plan to modify src:lxd to no longer provide binaries just after the trixie release. The source package will still exist to build the -dev package, which is needed to build Incus.)

The recommended path forward will be for users to upgrade to trixie, then install Incus and run lxd-to-incus to migrate their cluster from LXD to Incus. Speaking of Incus…

Incus Accepted to NEW

Earlier today Incus was accepted into NEW. Eventually it will be accepted into unstable, then migrate to testing for inclusion in the trixie release. I am also planning to upload an official backport for bookworm at that time, as the dependencies don’t seem too bad to build it in bookworm.

Thanks to Free for helping with packaging Incus and its dependencies, and to Stéphane for helping with a few issues found while packaging.

…and already in unstable!

Update 2024-01-13: In what might be a record for quickest acceptance through NEW (~19 hours), this morning Incus was accepted into unstable! The buildds are running, and there’s a few builds to fix, but Incus is now officially in Debian and will be included in the trixie release!