GNU Guix System
en.wikipedia.org
en.wikipedia.org
I now use Nix to share configuration between my Macbook Pro, NixOS Desktop, VMs in my home lab, etc. Both Guix and Nix are amazing once you've developed your configuration, I'll never go back. I do a simple "./bin/nixos-update" and "./bin/macos-update" and Nix takes care of the rest.
Occasionally I'll pull something upstream that borks my machine; rolling back is so trivial, I'll just check nixpkgs for Issues to see what's going on, where usually I'll find a 1-liner to fix it or I'll wait for the next release.
Links to my configs https://github.com/dustinlyons/guix-config https://github.com/dustinlyons/nixos-config
With Nix, I had to learn how the whole thing works before I could even get started. Nix is not a "normal" language, you're essentially just writing chunks of configuration, organized across different files, building up to one big derivation (as Nix calls it) that gets interpreted.
Nix has syntax on how it expects the configuration to look and what configuration it expects to be defined. You can learn the syntax but it's still confusing (to me) as to what configuration is always expected. And errors can still be cryptic.
To test with your own config, it's easy to instead of importing nixpkgs, to import nixpkgs.applyPatches { patch } with a path to your fix.
And yes, overlays are a great way to quickly override attributes from a package definition, maybe while waiting on others to fix upstream ;)
Because it's under the GNU name and seems somewhat kernel-agnostic, I think this might lead to the case where we can finally point towards a operating system and say "that's GNU".
The big win you get with Guix over the package managers in the other systems you reference (except for Nix) is deterministic, bit-identical, reproducible builds.[1]
"as programmers we tend to lean towards application-specific languages where we ought to favor generic languages for the sake of simplicity"
Guix does use a general purpose programming language: Guile Scheme.
That being said, I will look into guile anyways. I have a little project I'm working on that could benefit from a lisp-like configuration file, and I've currently implemented a crappy s-expression interpreter already.
I can certainly admire and appreciate that level of idealism and adherence to principles, but unfortunately, at least IME, it limits where Guix could be adopted.
They simply do not wish to discuss non-free software in the main official channel. If this is your only holdup, I hope you'll give it another try.
Heck, I recall hitting Google and trying to search for "Guix stock kernel" and finding zero meaningful results beyond some hints of a non-free repo that no one could point to or talk about in any of the "official" project venues.
The biggest negatives are packages being out of date or missing, updates failing due to a broken package, updates taking over 24 hours because you had bad timing and the build server hasn't built all the web browsers yet, and the configuration and packaging can seem complicated to a non-programmer. Oh, and qutebrowser is very broken and no one talks about it for some reason. I suspect at times that I'm its only user on Guix System...
I love having a list of packages easily edited with a text editor and then applied. Rollbacks are easy and useful. Partial upgrades help work around a few misbehaving packages stopping updates (whether broken or just long builds, you can skip them in the moment and then try updating them again later).
Most issues would be solved by having more contributors, which will probably come with time. Although you still need people who care about the same packages as you, or else your Guix Wishlist entries may sit around unpackaged for years, or your packaged things may stay on old versions.
I know several NixOS users, but I have struggled to get new people to stick with Guix System for more than a few weeks.
Things would also improve if I were to learn/contribute more myself, but I don't know that I have the spoons or the time. For now I'll just keep getting by with the little bit I know. Guix feels like the future, so I can't help but want to use it and support it, even when it's rough in some spots.
Politics will always be there, even if they aren't talked about.
https://wingolog.org/archives/2021/03/25/here-we-go-again
http://wingolog.org/archives/2019/10/08/thoughts-on-rms-and-...
regarding "bloody marxist" or whatever.. I like the a-political, personal emphasis of GNU .. that means, I can sit next to a Real Bloody Marxist, and drink coffee and debug $lspci output.. seriously, I am OK with that, it supports a worldview of 'tolerance'.. similarly for people with serious depression, people who have had trouble with food addictions, people who SMOKE TOBACCO ! all of that.. its part of a "plural society" which I personally support everyday.
back to lspci output here
It is encouraging that most free-software users/contributors can see past political squabbles and work on tech that improves society more objectively.
The problem is apolitical can easily be or become amoral, so I can't agree this is a virtue without further clarification. Some differents can and should be tolerated, but in the spirit of the paradox of tolerance others should not.
How would you feel if you released software under an MIT license that helped a neo-Nazi resurgence for instance?
>How would you feel if you released software under an MIT license that helped a neo-Nazi resurgence for instance?
Firstly, I disapprove of permissively-licensed software.
Secondly, if you're making technology whose goal is to empower individuals, and the majority of individuals want to overthrow their free government and replace it with some fascist dictatorship, then there will be some edge cases like that in which that technology has a net-negative effect on global freedom. I have no problem with that, that's the price of individual freedom and the right to self-determination.
I think what you're trying to say here is some variation of popper's paradox, wherein freedom-enabling technology gives people the freedom to take away their own freedom. While it's true to some extent, trying to make direct use of that principle like you're doing here can lead to some pretty disastrous results, because you can basically use it to justify any authoritarian action in the name of freedom. For example, what would you do in this instance? put backdoors in the software that these neo-nazis are using? Any attempt at limiting the anti-institutional power of the technology will certainly have a net-negative impact on global freedom, because the same modes of technology will used be used more crucially against tyrannical institutions than non-tyrannical ones.
Let me say this: I don't fear any of these fascist or communist dictatorships taking over the world. I think those are merely meta-stable ideologies that are eventually toppled if you put power and knowledge in the hands of individuals. What I am worried about is when the western world develops and exports surveillance technology which enables these dictatorships to continue their miserable existence in the first place.
Communism, Fascism, Corporatism, Cronyism: these systems will always come about in one form or another because they are the emergence of mankind's worst characteristics. The only way to eliminate them completely is to remove from man that which makes him human. That is why the tree of liberty must be refreshed from time to time.
Misreprentation, FUD, discrimination, they all are literally faces of slandering, doing them is "doing the deeds of the devil" in a very literal sense.
https://rms-support-letter.github.io/
If you think it's alright to join an organization and then go out of your way to backstab its founder because his social skills are lacking, then you're free to do that.
https://github.com/NixOS/nixpkgs/blob/24903b5de2e07cc7b65eae...
Regardless of the person's views though I think if their code is clean and they're not actively applying said views to harm other contributors, live and let live...