GNU Guix is a package management tool for and distribution of the GNU system. Guix makes it easy for unprivileged users to install, upgrade, or remove software packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments.
Will it be possible to port Incus to guix for managing guix containers?
I saw there is a package in Guix for LXD which is LXD 4.24, which is old.
I don’t think you will find much support from LXD.
Here we develop Incus, which is a continuation of LXD.
It looks rather straightforward how to add support for Incus on Guix.
See virtualization.scm\packages\gnu - guix.git - GNU Guix and GNU Guix System which is the configuration file to build all the packages in the Virtualization Guix category. In there, they grab a specific version of the source code from the upstream site, and perform the compilation. The part for each package is quite small and should be feasible to get Incus supported in there with some trial and error.
I meant Incus not LXD so corrected the term. What I meant is making Incus available on Guix Package repository, using incus to orchestrate and monitor cluster of GUIX containers running. Also Guix do not use systemd so make incus to work with Guix Init which is Shepherd.
I think you are describing two things, both of the are interesting and not very difficult.
First, is to create a container image and/or virtual machine image for GUIX so that from within Incus, it would be possible to create GUIX instances.
That is, to be able to
incus launch images:guix/1.4 myguix
To do so, someone needs to create the appropriate configuration file for
distrobuilder so that GUIX is supported. Not too difficult. There are many such images already.
I think this would be high priority.
Second, you can get Incus available as a package within GUIX. It appears that this is also straightforward. Here you can get input from a GUIX developer on how to do it.
Last, you suggest to get Incus used as part of the development infrastructure of GUIX. For this, you would need to look for documents that explain how GUIX works. I roughly understand how non-root users can install packages (like
pip install). You mention GUIX in containers though. Is this separate from the two items that I described earlier?