4 ms·
I've had good fun learning to program with Guix lately. It's easy to start packaging software and get contributions into a real project, But it's also a large s
by brendyn 9y ago
I've had good fun learning to program with Guix lately. It's easy to start packaging software and get contributions into a real project, But it's also a large system, with complex internals that I'm gradually learning more about, like G-Expressions[1]. I'm also studing SICP on the side, so it's nice that they use essentially the same language.
I have high hopes for Guix. I conjecture that GuixSD can become the distro-makers goto basis for creating new systems. Other distros have simpler sh-like languages for building packages, which creates a system which is very much a house of cards. Every time I look at debian package definitions for help, I come out with one extra grey hair.
I think Guix can build a much taller house of cards than other packaging systems. For example, suppose you want to build a Audio focused distro, and you'd like a PREEMPT_RT patched kernel, I haven't bothered making this myself but it basically just requires `inherit'-ing the linux-libre package definition, and then adding the PREEMPT_RT patch to the list of patches to be applied. Whenever linux-libre is updated, your linux-libre-lts will automatically include those changes too and be updated. Naturally, incompatible updates can happen that break things, but that is unavoidable.
Then, you would create in your git repo all the package definitions and customisations needed, and then finally a file containing the system definition that is the actual distro. Other GuixSD users can try out your distro by running sh $(guix system vm my-super-distro.scm --fallback) to boot up a virtual machine running your system. Or guix system reconfigure my-super-distro.scm will install it on the system in a non destructive way than can be rolled back or reconfigured back to the previous system definition.
What's else? Scientific Guix? Educational Guix? One can share git repos including .scm file that can easily be launched to show of their riced desktop without borking other peoples systems? I admit I haven't looked at how debian based distros are made, but I imagine it's not so simple to convert one dpkg based distro into another one and then back again without any destructive changes.
[1] https://www.gnu.org/software/guix/manual/html_node/G_002dExpressions.html https://www.gnu.org/software/guix/manual/html_node/G_002dExp...