Incus project, a fork of LXD container and virtual machine manager, emerged this year in August as a response to Canonicalโs takeover of LXD. Beyond new features, the latest LXD 5.20 release also introduced a significant transition: it shifted from the existing Apache2 license to AGPLv3.
Canonical has decided to change the default contributions to the LXD project to AGPLv3 to align with our standard license for server-side code. All Canonical contributions have been relicensed and are now under AGPLv3. Going forward, any contribution to LXD will be made under AGPLv3 by default.
However, this move presents significant challenges for the Incus project. But before proceeding further, since they are both open-source licenses, itโs essential to clarify their main differences for our audience.
The AGPLv3 is a strong copyleft license. If you modify and then distribute a program or run a modified version on a server, you must release the entire source code under the AGPLv3. This is designed to ensure that all users can benefit from modifications, even when the software is run as a service over a network.
At the same time, Apache2 is a more permissive open-source license in that you can use, modify, and distribute the licensed software without the requirement to release your modifications under the same license. So, itโs favored for its ability to integrate into proprietary and open-source projects without the strong copyleft requirements.
Impact of the Revised LXD License Policy
The shift in LXDโs license policy from Apache2 to AGPLv3 for the end user has little to no impact. The software remains open-source and freely available to everyone. However, this doesnโt apply if you develop and distribute software that incorporates LXD to others.
As we already mentioned, the AGPLv3 license has stricter requirements compared to Apache2, especially in terms of sharing modifications and derivative works. Companies and developers unwilling to comply with these requirements may need to reconsider using LXD or look for alternatives.
At the same time, the shift of LXD to AGPLv3 raises several uncertainties regarding the future of the Incus project. Primarily, the prior cooperation and mutual contributions between LXD and Incus seem over.
Incus intends to stick firmly to its current licensing policy relying on Apache2, making it virtually impossible to use source code from a project protected and licensed under AGPLv3.
On the other hand, the LXD project cannot continue to rely on fixes brought in by Incus, as the mix of different license policies creates significant legal challenges. As a result, the differences and incompatibilities between the two projects will only grow from here.
Last but not least, introducing the Canonical CLA (Contributor License Agreement) further adds a layer of complexity to contributing to the LXD project. Contributors will now have to agree to the terms of this CLA, which typically includes provisions that grant the project maintainer certain rights to the contributed code.
Overall, the circumstances are complex and without an obvious resolution. Viewed by some as an intentional move by Canonical against the Incus project, the switch in LXDโs licensing policy was surprising and unexpected. So, we will keep a close eye on how this situation unfolds.