Live data from Hacker News

I Love Arch, but GNU Guix Is My New Distro

boilingsteam.com

211–220 of 318 posts

Re: I Love Arch, but GNU Guix Is My New Distro

#211
post #20

Is there a reason neither Guix nor Nix have made an LTS-type repo? A rolling release seems at odds with the stability granted by reproducible builds. Maybe I have a miopic view, but what's nice with Ubuntu LTS is you know everyone and their mothers has built and tested their packages/libraries/executable against the lib versions provided by Ubuntu 18.04 or 20.04 or whatever. You also know those libs, at their given v…

> A rolling release seems at odds with the stability granted by reproducible builds.

GuixSD and NixOS aren't subject to some of difficulties of traditional rolling release Linux distributions.

You are exposed to upstream behavior changes and upstream bugs more or less as soon as they arrive, just like on Arch Linux or something like that. But most of the other risks and maintenance burdens of ‘running a rolling release’ aren't borne by GuixSD and NixOS users.

This is not so much due to the reproducibility of Nix builds as to the hermeticity and statelessness of Nix and Guix builds.

The hermeticity means that you don't have to worry about ABI breakages in the same way, since packages that need incompatible versions of the same library will each find their respective version of that dependency sitting safely isolated from one another in the package store. This spares you from a few maintenance burdens:

• installation of new packages causing/requiring upgrades of ‘unrelated’ packages because they share some dependency with the new one (this one affects standalone package managers like Homebrew as well as rolling releases of entire operating systems like Arch)

• having to upgrade before installing new things, every time you update your package sources

• having to rebuild some packages that are not part of your main OS configuration because you upgraded your main OS (e.g., Arch updates breaking AUR packages, or system upgrades breaking software you compiled manually or your Python virtualenvs, etc.). (You do have to inform the package manager that you don't want these externally-depended-on packages garbage collected, though. For Nix, for example, you can do that automagically by running fc-userscan against your project directories: https://github.com/flyingcircusio/userscan )

The statelessness is related to reproducibility in that it's a result of the functional package management approach to reproducibility. Since every version of your whole system is generated without reference to previous versions (indeed, from scratch!), the OS never has to navigate state transitions for its packages. It doesn't have to worry about converting configuration files from one format to another, or replacing defaults, or the implicit dependencies of your system undergoing name changes or being replaced. Nix and Guix don't need Debian-style transitional packages and similar tricks. That means you aren't punished, on a per-package basis, for not updating your system constantly.

For example, I recently took some neglected, non-internet-facing NixOS servers and updated them from an early 2018 release of NixOS to the latest NixOS unstable rolling release. While I did have to first work a forward incompatibility issue in Nix itself, the rest of the upgrade was a single step, and I didn't have to worry about finding a valid ‘upgrade path’.

It's worth noting that in a strict sense, the reproducibility is all still there, even for NixOS releases that no longer receive updates. If you need to use an old version of some piece of software for compatibility reasons, in a safe environment, you can use the latest and greatest Nix to install packages from NixOS releases that are 2 or 4 or 6 or 8 years old— including on top of a bleeding edge system running NixOS Unstable.

But you have a point: it would be awesome if there were long-term releases, you would get a different kind of reproducibility— one which is less strict but more useful in some ways. For example, you could take a Nix expression that someone posted in a Gist on GitHub 4 years ago, for what was back then the latest NixOS stable release. If that release were also an LTS, you could not just reproduce what they actually had, but apply it against the latest version of the same LTS to get a system that should be totally compatible in terms of behavior, but suitable for running in production without modification, thanks to up-to-date security patches.

Re: I Love Arch, but GNU Guix Is My New Distro

#212

Earlier quoted context omitted.

what does adapting to the times mean? FSF and GNU seem to be about fundamentals of computing and software. have these fundamentals changed?

The line between hardware and software has been heavily blurred in the past 30 years. The FSF continue to draw an arbitrary line where none can be drawn, and then say only one side needs to be Free. Since there is no longer any clear line, this gives them the freedom (ha) to deceptively do so in a way that is convenient to them and makes their followers believe they are getting some kind of special Freedom, when in r…

> while their policies have absolutely nothing to do with improving users' security or privacy

IIRC Stallman criticized Ubuntu for collecting users' search info by default-- something they used to do[1].

It's unfortunate to see a call to nuance paired with an exaggerated claim that is so easily disproven.

1: https://www.gnu.org/philosophy/ubuntu-spyware.en.html

Re: I Love Arch, but GNU Guix Is My New Distro

#213
post #195
post #146

Earlier quoted context omitted.

> And usually you have package maintainers doing this, not actual software developers. This is a weird thing to say. The package maintainers doing substantive backporting work for any distribution absolutely are actual developers. > There's no reason to run LTS unless for corporate insanity purposes. LTS releases also give you stability of behavior, which can be valuable even outside of corporate environments. Plus s…

> The package maintainers doing substantive backporting work for any distribution absolutely are actual developers. The maintainers doing the backporting are affiliated with the distro rather than being developers of the software they're doing backports for. That is a big distinction because it determines who has to incur the costs of compensating them/recruiting them to volunteer

Oh! On this interpretation, the GP comment is basically missing an instance of the definite article there:

> And usually you only have package maintainers doing this, not the actual developers.

It's not super unusual for the maintainers of some program's packages in several distros to also be core developers of the project, but yeah, that's a good point.

Re: I Love Arch, but GNU Guix Is My New Distro

#214

Earlier quoted context omitted.

>To them, all visible blobs are equally bad, regardless of whether one can completely compromise your system and another one is completely harmless and requires no trust. For a company that values software freedom above all else this is completely fine. If they are called Secure Software Foundation then your arguments would hold more weight. For example, I really doubt that FSF would claim that GNU Guix is more secur…

The FSF have repeatedly associated software freedom (by their definition) with security and privacy. This is just one example, there are many others: https://www.fsf.org/bulletin/2020/spring/privacy-encryption

but security is associated with free and open source software. i think this is a common position of a vast majority of security experts. to make your claim that FSF deceives or misleads people you need to do a LOT more. for example, can you provide an example where someone claims that GNU Guix is secure by design[0]

i think that taking a position that free software supports security and also that free software principles come before security considerations is not contradictory let alone deceptive

[0]EDIT: i just searched the RYF site and did not obtain a signle result for the term 'security'

https://ryf.fsf.org/search/node?keys=security

Re: I Love Arch, but GNU Guix Is My New Distro

#215
post #4

> In short, GNU Guix is both a package manager you can use in any distro and a full-fledged GNU/Linux distribution, that is modern and advanced Why not just use Nix, which is more battle tested?

Author is a lisper, is a good reason. And while nix may be battle tested that doesn’t translate to a good experience, the learning curve is high and the documentation while plentiful is not really good or helpful to beginners. Plus the entire thing is in flux right now between flakes, home-manager, and a desire to kill nix-env.

> Plus the entire thing is in flux right now between flakes, home-manager, and a desire to kill nix-env.

This is my big gripe with Nix. There are so many things that are almost ready, or almost integrated, and advanced users are typically already using them. It makes it feel like next year will always be a better time to recommend Nix to newbies.

And a lot of the more ambitious contributions to Nix and Nixpkgs that are really, really exciting as a user tend to sit in pull request limbo for a very long time, sometimes dying on the vine. Guix doesn't seem to have that problem yet, but I don't follow it as closely.

It's painful to feel sort of totally married to it but also like I can't whole-heartedly recommend picking it up to most people I know who might enjoy it once they got going.

Re: I Love Arch, but GNU Guix Is My New Distro

#216

As much as I love lisp and hate the Nix expression language, I'm interested in actually getting things done more than I am in preserving software freedom, so I'm on NixOS.

Guix makes it very easy to add whatever non-free software you want via channels. You just won't get it with the default installation.

Re: I Love Arch, but GNU Guix Is My New Distro

#217

Earlier quoted context omitted.

In theory a government could force AMD or Intel to sign a malicious firmware. That could be distributed as the normal firmware or used to target a specific person. Firmware that ships with the actual CPU is a bit 'safer' because it has a lot more users and eyes looking at it (sort of). Depends on what your attack vector is. Another aspect is that while this policy is worse for Linux-libre users, it is sort of a prote…

Nobody is looking at Intel's microcode mask ROM. It's in ROM. You can't even look at it. Microcode is a bad example because the updates are encrypted too, but for the vast majority of the blobs that the FSF hates so much, at least you can look at them and audit them with a disassembler. Meanwhile, the devices with giant firmware ROMs that they openly endorse are not auditable, as you can't see the blob. This policy i…

so after so many posts this is the only one that expresses your point clearly. notice how it does not contain any FUD

to the said point, this is definitely a VALID security concern. FSF needs to make these concerns clear. you seem to be very invested in this matter. have you raised these concerns with them?

EDIT: having thought about it some more. doesnt isolating blobs to ROMs restrict the problems to ROMs? i mean non-RYF certified hardware already has this problem. the strategy might them be to focus efforts on opening up ROMs. note that this is simply a question. i am not an expert in this field but i am trying to form an informed opinion

Re: I Love Arch, but GNU Guix Is My New Distro

#218
post #198
post #189

Earlier quoted context omitted.

I believe that argument is based on the same FUD that I addressed here: https://news.ycombinator.com/item?id=29290087 ...at least, I don't see any such code in the actual deblobbing script: https://linux-libre.fsfla.org/pub/linux-libre/releases/5.15.... edit: since you called linux-libre a "fork", I feel compelled to point out that Linux-Libre is just the vanilla Linux kernel with that script applied. No more, no les…

I'm sorry, but this (and a bunch of other similar blocks) seem pretty intentional... # Do no recommend non-Free microcode update. announce X86_LOCAL_APIC - Undocumented clean_blob arch/x86/kernel/apic/apic.c clean_kconfig arch/x86/Kconfig X86_LOCAL_APIC clean_mk CONFIG_X86_LOCAL_APIC arch/x86/kernel/apic/Makefile

If the kernel can't load it without code changes and recompilation, due to the de-blobbing process, it doesn't make much sense to recommend to users that they load it.

Re: I Love Arch, but GNU Guix Is My New Distro

#219
post #89

Earlier quoted context omitted.

There is no nuance there. Without free software there is no software freedom. If blobs are allowed at all that is already a measure to have a system that works in practice, but in no way makes it the position against closed software and blobs wrong. The people criticizing the FSF here act as if Stallman were wrong about these issues because he said it back then already. While in reality again and again he was right a…

They aren't taking away Intel's ability to push updates to people's computers, because they never had that ability. What the FSF and that Linux fork are doing is taking away users' right to be informed about security vulnerabilities in their system so they can make the choice whether to trust Intel's update or not. By withholding that information they are effectively eliminating the choice, and restricting users' fre…

That's not true. If distros package closed source firmware updates the manufacturer has the ability to provide updates to people's computer via that system. I mean, that's the whole point and in a trustworthy environment that's a good thing. Maybe have a look at https://wiki.debian.org/Microcode#CPU_microcode_non-freeness (I'm not sure whether I'm just misinterpreting your comment or whether there is a knowledge gap, just to make sure we talk about the same thing :) ).

> By withholding that information they are effectively eliminating the choice, and restricting users' freedom.

You are mixing up agency and software freedom, it's clear that you won't see eye to eye with the FSF as long as you do so.

I'm not even vigorously defending not showing the note about existing firmware updates, if Guix really does so. I'd prefer a note. Just what it would mean and how problematic closed firmware would be seemed like it needed a clarification here.

Re: I Love Arch, but GNU Guix Is My New Distro

#220

> Guix System is an advanced distribution of the GNU operating system. It uses the Linux-libre kernel It's worth pointing out that the linux-libre kernel is developed under the FSF doctrine that "binary blobs are bad unless you can't see them". This has been taken to its logical extreme here, where this Linux fork actively removes security warnings informing users that they need to update their CPU microcode , becaus…

Guix the package manager can work on top of a different Linux installation, and can even manage other things than distro packages. This is one of the things I'm planning to do.

BTW same thing is with Nix: you may not like the choices of NixOS but still enjoy most of the advantages Nix has to offer.

Post reply on HN