Brussels / 4 & 5 February 2023


Porting RISC-V to GNU Guix

A year in review

GNU Guix is a from-source distribution with binary substitutes available. It is also a functional package manager, meaning that all the inputs are hashed and the build results are placed in their own destination folder. Guix also does its best to minimize bootstrap seeds, instead relying on a few cross-compiled bootstrap binaries used to build all other packages on the system. This provides some interesting bootstrap issues, especially for newer architectures, as we need to recreate the bootstrap path as it may have existed years ago in order to support programming languages. Some languages, like nodejs or ocaml, need to have support backported only a few versions. Others like java need more than a decade. Rust needed to use an alternate implementation of rustc to be bootstrapped and Haskell currently isn't on the roadmap.


Efraim Flashner