| Title: Extend Guix Linux with the nonguix repository | |
| Author: Solène | |
| Date: 27 May 2021 | |
| Tags: guix | |
| Description: | |
| # Introduction | |
| Guix is a full open source Linux distribution approved by the FSF, | |
| meaning it's fully free. However, for many people this will mean the | |
| drivers requiring firmwares won't work and their usual software won't | |
| be present (like Firefox isn't considered free because of trademark | |
| issue). | |
| A group of people is keeping a parallel repository for Guix to add some | |
| not-100% free stuff like kernel with firmware loading capability or | |
| packages such as Firefox, this can be added to any Guix installation | |
| quite easily. | |
| nonguix git repository | |
| Guix project website | |
| # Configuration | |
| Most of the code and instructions you will find here come from the | |
| nonguix README, you need to add the new channel to download the | |
| packages or the definitions to build them if they are not available as | |
| binary packages (called substitutions) yet. | |
| Create a new file /etc/guix/channels.scm with this content: | |
| ``` | |
| (cons* (channel | |
| (name 'nonguix) | |
| (url "https://gitlab.com/nonguix/nonguix") | |
| ;; Enable signature verification: | |
| (introduction | |
| (make-channel-introduction | |
| "897c1a470da759236cc11798f4e0a5f7d4d59fbc" | |
| (openpgp-fingerprint | |
| "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) | |
| %default-channels) | |
| ``` | |
| And then run "guix pull" to get the new repository, you have to restart | |
| "guix-daemon" using the command "herd restart guix-daemon" to make it | |
| accounted. | |
| # Deploy a new kernel | |
| If you use this repository you certainly want to have the kernel | |
| provided that allow loading firmwares and the firmwares, so edit your | |
| /etc/config.scm | |
| ``` | |
| (use-modules (nongnu packages linux) | |
| (nongnu system linux-initrd)) | |
| (operating-system ;; you should already have this line | |
| (kernel linux) | |
| (initrd microcode-initrd) | |
| (firmware (list linux-firmware)) | |
| #... | |
| ``` | |
| Then you use "guix system reconfigure /etc/config.scm" to rebuild the | |
| system with the new kernel, you will certainly have to rebuild the | |
| kernel but it's not that long. Once it's done, reboot and enjoy. | |
| # Installing packages | |
| You should also have packages available now. You can enable the | |
| channel for your user only by modifying ~/.config/guix/channels.scm | |
| instead of the system wide /etc/channels.scm file. Note that you may | |
| have to build the packages you want because the repository doesn't | |
| build all the derivations but only a few packages (like firefox, | |
| keepassxc and a few others). | |
| Note that Guix provide flatpak in its official repository, this is a | |
| workaround for many packages like "desktop app" for instant messaging | |
| or even Firefox, but it doesn't integrates well with the system. | |
| # Gaming | |
| There is also a dedicated gaming channel! | |
| Guix gaming channel | |
| # Conclusion | |
| The nonguix repository is a nice illustration that it's possible to | |
| contribute to a project without forking it entirely when you don't | |
| fully agree with the ideas of the project. It integrates well with | |
| Guix while being totally separated from it, as a side project. | |
| If you have any issues related to this repository, you should seek help | |
| from the nonguix project and not Guix because they are not affiliated. |