https://chaos.social/@ktemkin/112392108881500298
https://chaos.social/@ktemkin/112392108893774195
This isn’t just a fork of Nix—this is the work of a team of 10+ people near-constantly since early February. (Technically, us too — but our task is really just enabling others.)
Some serious work has gone into ensuring it improves on upstream without having the regressions that have plagued them last three major versions!
And, since this will matter to some — it’s not a project of the NixOS foundation, but an independent organization that takes its responsibility to its community seriously.
So why should we use this instead of just saying lixmaballs and using nix/aux/nux/whatever other fork?
I suspect the reason why the full story isn’t being told here is because the creators of Lix don’t want the project to be seen as purely some “left wing” fork. I don’t blame them, especially considering Lix has far more merit than merely “Nix’s leadership sucks.” Regardless, I’ll see if I can give you an overview:
Basically, NixOS’s leadership has been seen for a long while as bureaucratic and sloooow even when it comes to core things like UX changes in Nix itself. When it comes to social issues, they have been dragging their heels even more. A lot of discontent has been brewing for years but the most notable conflicts have been when NixOS’s leadership accepted funding from Anduril to fund NixCon 2023. Anduril was then dropped as a sponsor, but NixCon North America 2024 again got sponsored by Anduril. Anduril, in case you didn’t know, is part of the military industrial complex, and is run by Palmer Luckey, a noted Israel supporter in the ongoing genocide against Palestine.
NixCon getting Anduril sponsorship again ticked off a lot of people. This petition was then opposed by a particularly loud and irritating chunk of the community, including Jon Ringer, a (now former) release manager for NixOS, and most notably, an Anduril employee. Jon maintains that his Anduril employment was irrelevant to his work on Nix, which may very well have been true; up until the point where he started going on rants about Nix becoming “political” in discussions about the sponsorship. He stifled a ton of discussion around this issue, and NixCon went ahead with the Anduril sponsorship. Now that he has been “doxxed” (his employment details were public on LinkedIn, he uses this term to drum up more support for himself dishonestly) he has gone full mask off, and now spends time on the grifter’s
shitholeparadise r/NixOS to complain about how the “woke left” is supposedly trying to infiltrate Nix’s leadership and “take over the project” (partly because of the Anduril sponsorship response, partly because of this one RFC where someone dared to advocate for minority representation).People have been advocating for leadership change to at least try and get NixOS’s leadership to do more, but apart from Eelco (the BDFL) stepping down there hasn’t been a whole lot that’s changed. After reading a lot of these discussions and seeing just how inactive some of this moderating has been (and the fact that when a mod does try to clean up the forums, the grifters cry that the mods are being “political” or whatever the fuck), I’m personally throwing my whole weight behind Lix, because I appreciate project leadership that aims to have a safe community. That, and I also like a project that isn’t scared of breaking experimental features.
This is a fork or other form of replacement for nix as in the package manager. It does not replace NixOS, but can be used on NixOS and Darwin.
What makes this different from https://aux.computer? And with just ten people - such a small community, to maintain what, a parallel fork that will eventually be forced to accept patches from Nix repos? How does it protect against, let’s say, corporate decisions? Wouldn’t that seep into their project too? Not trying to demotivate them, but I fear that this could be the fate of their project.
There’s Guix, which is an official GNU project. If anyone is willing to learn a little bit of Guile Scheme - look, the language is great, the project isn’t contaminated with multiple scripts, project skeleton is much better, the modules are well written, so why not move over there? Sure, it’s still in the early version, so some stuff will be hard to work with, but personally, I think it’s a really nice hard-fork.
https://forum.aux.computer/t/the-future-of-nixcpp-lix/483
The announcement resolves one of my last fears for Aux: development on Nix itself. It is no secret that the number of people knowledgeable about the project and are willing to work on this CPP codebase is small. You have probably seen me mention multiple times by now that @sig_cli needs all of the help that we can get. Lix resolves this entirely with a trusted team of experts. This means that Aux is now able to remove Nix development from our priorities and can instead collaborate with Lix moving forward.
Oh, so from what I see, Aux is responsible for working on the Aux tooling, which is basically Nix CLI fork. And Lix is the operating system itself, including infrastructure and clones of Nix essentials like Nixpkg, Hydra, etc? I could definitely see these folks collaborating with each other.
I think that’s backwards. Lix is a replacement for the nix package manager, while aux is a replacement for NixOS.
Aux looks like it will now use Lix for it’s package manager, instead of trying to make its own fork of nix.
Lix is the Nix CLI, Aux is everything else.
If anyone is willing to learn a little bit of Guile Scheme - look, the language is great, the project isn’t contaminated with multiple scripts, project skeleton is much better, the modules are well written, so why not move over there?
The language is great, but the ecosystem is on life support, and I don’t see it getting anywhere close to nix soon. I believe it’s especially crippled by being Linux only and forcing free software to the point you’re not allowed to even mention the non-free repo in the guix irc.
Random Devs and companies aren’t going to use it for their projects, and so there far less maintainers to solve issues like having a node version that’s not in maintenance for half a year and 4 major versions behind, or having automated npm package conversions.
Realistically it’s currently only useful for a few languages with abysmal PMs, most of which are lisps, and like Haskell.
Right now, I am struggling because of unemployment and job shortage in the tech-market, but I’m planning to share my own patches to essential software, like you’ve mentioned - probably within the end of this month. I think projects like Node, Ruby and Python need to be maintained well enough.
So if I have a chance to, I’ll probably work on either one of them, especially Node - that seems to be quite dated, and they’ve also skipped on v16, which hurts people who are still on it and don’t want to migrate immediately - because there’s no inferiors to pin to - while there’s multiple commits at least for 10, 14 and 18. Working on it would make Guix convincing as a third-party system package manager. I don’t know the state of Ruby or Python, but Zig seems to be in a decently good condition. Rust may be removed probably to avoid trademark violations, or they’ll probably create a fork and rename it.
About the FOSS extremism, it is not that bad, and I honestly like it the way they’ve maintained it - in a way, it is very similar to how Fedora separates their free and non-free repositories. This is not to say that there’s provisions for no non-free drivers - in fact, I personally use them for my Wi-Fi drivers to work correctly. Given the state of FLOSS-respecting Wi-Fi hardware, Wi-Fi 5 devices still don’t have their respective open-source drivers, so 6, 6E and 7 are still going to be unsupported for a long time with the libre kernel. For folks who want to setup a working system easily, nonguix ISOs are readily available, so that would probably be the best place for anyone to start at.
Now that I think of it, a guix fork would be far more useful than a nix one. You could forgo some of the FOSS extremism, and allow your users to install it without an ethernet cable, and maybe even on the infidel Operating Systems (even though guix is in the official repo for Debian + wsl).
And I bet guile could really use the attention. AFAIK it’s mainly developed by one dude, and he made some impressive improvements. Just check out the release speeches on youtube, massive jumps between versions.
Best of all, the GNU people could focus on building a better core, and choose to adopt only some changes, while preserving the purity of their system.
I believe https://www.pantherx.org/ is both Guix based and, I think, more relaxed on the non-guix issue. Don’t know much else tbh, but peeps interested can check it out.
I would be for that fork. I used Guix a long time ago and got really frustrated with non-free and binaries. Guix is really nice to use though and it’s fast.
Aux is still keeping all of their code on Microsoft GitHub, Lix isn’t
Aux is only keeping the code on GitHub temporarily because money is tight and there are very few options for a soft fork of a repo as huge and active as nixpkgs. Plus, they want ease of accessibility for devs considering it’s a very new project.
Long term plans are to move off of GitHub. I’m pretty sure some people are talking to Codeberg to see how feasible it would be to move there in the future.
I would believe that when I see it. They said they would not use GitHub-only features & they already are. These things don’t tend to move once actually set up. You also look at the language around trying to “cast a wide net” being thrown out before “what are our principles” & compromising on that so early is a big oof from me. Folks that can’t be bothered to create a new account or learn a new forge or version control system are not the folks that would be bothered to switch from Nix to Aux.
Literally any other option would offer easier escape …with the exception of the size of Nixpkgs & the fact that most developers don’t understand how to do patches without a pull request on the host platform rendering the D in distributed version control system moot so everyone clamors nothing can scale without Microsoft (allow requests off the centralized forge, allow patches to a mailing list, seed it with Radicle, etc.). The foundations are being built wrong.
i really want to like Nix.
gave it a shot a few years ago, but i felt like documentation and community support wasn’t really there yet. this was long before Nix surpassed Arch in terms of number of available packages. now people still complain about documentation, especially of the Nix language. i see a lot of package authors using it, and that kind of tempts me to start using at least the package manager. but a lot of packages don’t. the allure of GitOpsing my entire OS is very tempting, but then there’s been these rumors (now confirmed) of new forks, while Guix splintered off much earlier. for something that’s ostensibly supposed to be the most stable OS, that makes me nervous. it also seems to have some nontrivial overhead—building packages, retaining old packages, etc.
the pitch for Nix is really appealing, but with so much uncertainty it’s hard to pull the trigger on migrating anything. heck, if i could pull off some PoCs, i think my enterprise job might consider adopting it, but it’s a hard recommend for me today as it was 5 years ago.
The problem with Nix and its forks, imho, is that it takes a lot of work, patience, time and the willingness to learn yet another complex workflow with all of its shortcomings, bits and quirks to transition from something tried, tested and stable to something very volatile with no guaranteed widespread adoption.
The whole leadership drama and the resulting forks, which may or may not want to achieve feature parity or spin off into their own thing, certainly doesn’t make the investment seem more attractive, either.
I, too, like the concept of Nix very, very much. But apart from some experimental VMs, I’m not touching it on anything resembling a production environment until it looks to like it’s here to stay (predictable).
Another one?
This is a fork of the evaluator/language implementation/daemon/builder/whatever you want to call it. The other one (Auxolotl) is a fork of Nixpkgs, the repository of build scripts and all the NixOS misc pieces.
Or put into other terms, this is a fork of APT/RPM as well as their associated builder tools, while Aux is a fork of Debian/Fedora/whatever. The Nix evaluator is a much more complex piece of software than most other package managers so it does benefit from having a dedicated team working on it.
I use NixOS, and I’m confused. Why is a fork of Nix necessary? I’m out of the loop.
edit: currently looking at lix.systems and aux.computer for info.
So… should I just switch to Lix? Like are there any problems I should expect?
edit 2: i tried switching to it, but got an infinite recursion error in my
flake.nix
, and honestly i don’t feel like dealing with it right now.Are your dotfiles public? I’d be interested in taking a look.
Unfortunately, my dotfiles aren’t public
Lixma balls
Does nix package manager have some issues adressed by this implementation or was it born for another reason?
The short version is that community lost faith in nix governance.
It’s basically focused on establishing good community-centered governance, cleaning up the codebase, standardizing workflows (reconciling disparate parts of nix), and (I think?) eventually reimplementing the whole thing in Rust instead of C++.
(as a side note, Lix (and Aux and whatever else) is going to need an easy, clear, DOCUMENTED (and preferably automated) migration path)
Mix is right there
How confusing will looking up “elixir mix Linux” be in web searches though 👀
This is very cool. Im a fan of Nix from a tech perspective but im still not sold because of its poor UX, among many other complaints. IMO it’s the future of the Linux distro, but now that might be closer than before!
Never enough forks! Don’t like it? Fork it! Fork me and fork you! So much effort lost in all those forks.
No man is an island, but they can fork one!
At least, for me, Nix was never attractive, and it should be by all means, the features it provides. I still see this as an alternative, where I’m more than satisfied with my bash scripts and git repos, syncthing backups to rebuild the whole system.
And, on the second part, this schism that happened in Nix is the same recipie that happened in other projects. I just find it funny.
Looks terrible tbh, it doesn’t do anything Nix doesn’t.
Removed by mod
^ the NixOS leadership tolerating people like this is one of the reasons why Lix exists, in case you were wondering
Oc the og based gigachad PhD holder didn’t just force through a RFC which causes thousands of regressions in the main repo. Nix community is sure healthy under this kind of leadership.
This is what is so ridiculous to me. The Nix team does borderline incompetent shit like this, but the real problem with the project is “le woke”? Give me a break.