Attempting to Use GNU Guix (2019)
amodernist.com
amodernist.com
When I tried it a few years ago I ran into a stance on firmware which amounted to it refusing to run unless you used some other Linux branch which was strongly discouraged on somewhat unclear grounds. I think the idea was that closed-source-firmware shalt not be used, and if you absolutely must, there's something over there that you aren't allowed to talk about.
Is that approach still the dominant one today? I'd like a scheme userspace but I'm not dealing with having to use unofficial linux forks to have a wifi card work.
I see https://gitlab.com/nonguix/nonguix offers:
Guix channel for packages that can't be included upstream.
Please do NOT promote or refer to this repository on any
official Guix communication channels.
but it's hard to determine from the outside whether this is a pragmatic obstacle or not.not always in a negative way.
My servers NICs actually are not even supported by the Linux-libre kernel. I got around that by building a custom installer iso with the mainline Linux kernel. That probably sounds awful, but I have never built a bootable iso for any other distro before, and it was a breeze for me.
It adds non-free softwares, GUI package installer, and GUI config to gnu guix.
pantherx also allows you to pay for support for however many people you want.
Personally I have run Guix System on a ThinkPad X220T and ThinkPad T440p which are old enough to not really need any blobs aside from the ones for WiFi, and you can remove or replace the card in them. I believe any machine newer than this is going to need blobs for the integrated graphics or other things. I have been debating whether I'd run Guix System on my next (newer) machine and as I've never gotten too deep into the weeds understanding Guix stuff despite using it for years, I may opt for a different distro, but I would say if you really want to try it, it's probably not too bad to get up and running with a regular non-libre Linux on Guix System.
If running upstream Linux with guix userspace is a somewhat well established path that solves the firmware problem. I'm a little unclear on what the various distribution patches to the kernel usually achieve but I'm hopeful that moving from Debian's kernel package to upstream would work fine in practice.
I should give it a try. Thanks
It is based on gnu guix. It comes with non-free softwares by default.
It also has GUI package installer and some form of GUI config.
If you want support, you can pay for that, too.
I think pantherx can be easier than ubuntu or fedora due to GUI-centric approach and reproducibility.
https://www.thinkpenguin.com/gnu-linux/wireless-n-m2-ngff-card-v2-tpe-m2ncrd2Some exciting changes are upcoming too, like the addition of being able to boot from UKIs rather than being stuck with GRUB, which probably won't happen for a bit still, however I think this ties into the broader "issue" with Guix.
The community is small, which is definitely a result of it (just like Nix) being more complex than the average distro that people do not want to deal with, compounded by the fact that it uses even less standard utilities to build the system (like not using systemd as a service manager in lieu of shepherd). I feel a lot of the pain points that Guix has can be addressed just by having more eyes and hands on the project. If anyone has more specific questions on using Guix I'd be more than happy to give my view.
Nix actually has a great purpose-built language and the ecosystem is huge, but something about guix feels nicer and more consistent. Also I like having childhurds and dreaming of the day the GNU OS is finally dominant.
What sucks are the packages, specifically the package reviews. Submitting an up to date package is blazingly simple.
Getting it merged and keeping your source tree and upstream stable requires some effort.
- I miss zfs (actually zfs root, with encryption, OOB on NixOS)
- I miss few packages (i.e. RustDesk)
Observing that while Scheme is far more digestible the Guix System config it's not designed in so digestible ways. My take it's that they are too HPC/academic centered to be a generic desktop distro, which is unfortunate because as Microsoft tell the world back then conquering desktop means conquering people, also people who manage server, HPC clusters etc. No one since decades can survive without being on desktop...
Zfs is the sole spread and battle tested moderately modern storage we have in the world, the other but constrained by the OS it support is Hammer. btrfs, lvm, mdraid, luks, stratis are monsters designed by people who do not really understand operation.
Actually they are one of the reasons why GNU/Linux is in a so dire state respect of decade old unices.
I wouldn't say they are monsters. But, they are just not good enough.
Because zfs native encryption is still immature for send/receive, there's still some value in LUKS, and zfs native encryption doesn't yet support multiple key slots because it is essentially unmaintained.
However, a thread from a few years ago seems to imply that I have the wrong mental model of GuixSD and it's not "homebrew but in Guile" rather it's "GNU software all the way down" and since glibc doesn't build on macOS (according to that thread), Nix allegedly sidesteps this by making some of its packages impure and linking to libSystem https://guix-devel.gnu.narkive.com/BnGNBXUh/guix-on-macos#po...
I was happy to see that folks in that thread got GuixSD working for docker images, so that can still be a win, but my current heartburn is not building docker images so I am not the target audience for that
EDIT: I forgot to mention, do not do this. If you want the store in a different location, set up a bind mount. Guix makes assumptions that would make it so you no longer could use substitutes (binary downloads of packages), so keep that in mind.[1]
[1]: https://lists.gnu.org/archive/html/help-guix/2022-02/msg0016...
Then I tried to build it from source, but there were a few dozen issues with po4a, the translations system. Every GNU project is cursed, I swear.