Something similar happened in the Haskell community, where some people called for Anduril job postings to be removed.
Nix is a software project, not a social movement. The goals of Nix are entirely separate from how the software is used.
I really like Coinbase's statement that is is mission focused (https://www.coinbase.com/en-ca/blog/coinbase-is-a-mission-fo...). Anything that isn't directly related to its mission is out-of-scope. I wish the same was true about software projects like Nix.
If you care about the way your software is used, then by all means, say it in the license! Of course, such software won't get used much.
This stemmed from whether they can publically attach their name to NixCon, which is fundamentally a social event.
Likewise, support or protest against various sides in an international conflict does/should not affect the code/software, but is a product of the people involved and their personal convictions.
HN runs on open source software, but the HN community is strongly opposed to certain things, as is their right.
Before this drama started I had no idea they even existed. Now I know they are a big Nix shop.
Those people who are creating the drama (and looks like they are a small minority) are trying to turn a tech tool into a social movement. This will kill the project.
everyone loves to assert that Nix is this or that. whatever label you fight to place it under, it's a product of some thousands of people. whatever it actually is, it's underpinned by something social.
I think it's appropriate to separate concerns and use categorizations to help us separate ideological goals from practical reality. Paper is also used to fight wars, as are a myriad of other goods and services that exist in a more or less neutral space.
There's an important and very large conversation to be had about what we do and don't think is acceptable use of technology and general goods/services, but issues like the Nix meltdown seem like misapplied frustration at how resources are allocated (to buying things used for war) and an attempt to solve that allocation problem by cutting off supply instead of addressing the allocation of funds at the root.
Clearly some people think this is a good tactic, but I question both the effectiveness and the net good of such a tactic when the slope required to implement said tactic is indeed a slippery one.
I would prefer that code I write is never used for purposes I believe to be harmful. But this is fundamentally incompatible with the OSS model.
I believe people say that in part because every political topic gets dragged into the community. Yes, there is a political aspect to everything, but that doesn't mean everything under the sun has to be dragged in.
Just take a look into some of the discussions that frequently happens in the NixOS offtopic Matrix channel. A small yet vocal portion of the community constantly brings up extremely hot takes on a broad range of topics. Anyone who objects are met with dismissal, condescension, and personal attacks.
Topics include:
* How tech companies should handle takedowns
Many of us probably already know how this is a very complex and controversial issue. But some folks advocate SESTA / SOPA like measures, accusing anyone who objects of supporting Kiwifarms and telling them to shut up.
* The use of the term "enshittfication"
A vocal member expressed annoyance and went into a long rant when someone mentioned the term. Apparently the term is a self-benefitting slogan for privileged folks because it wasn't popularized by someone they approved of. Fortunately, that didn't result in a argument because the other person immediately stopped engaging.
* AI use
In another case, someone who said they use AI was accused of supporting modern slavery. I'm somewhat skeptical of AI too, but this is just absurd. It really looks like the accuser was looking for a fight because "AI" could've been replaced with literally any other commercial product, from the clothes we wear to rare earth materials present in computers we use to write code. It's a modern day supply chain problem, not an AI problem per se.
It's one thing to express these opinions. But the aggression that followed in many of these cases is unacceptable. It seems to me that this constant cycle of hot takes and aggression is in no small part fueling this conflict even further. Like, supporting the same causes as the EFF can get you branded a right winger by very vocal people.
Upholding the status quo is a social (and political) movement, it's just the most popular and accepted one.
Trying to tie that mission to other social movements is a strategic error that will more than likely cause Nix to fail in its primary mission while doing virtually nothing meaningful for any of those other causes.
Do you eat food, drink coffee, chocolate. Do you avail yourself of modern pharmacology. Everything you do upholds a status quo of human suffering. You posting on HN is a political statement, from a place of privilege, by that rational.
It's a software project, dont make it political and it will be successful.
I tend to agree with you on a moral/culpability level: passive acceptance is doing something but I wouldn't call it a "movement."
FSF donor listing/sponsorship listing is... spartan at best.
Compare this to Linux Foundation and LLVM Foundation, and generally wide swaths of both corporate and personally interested parties contributing time and money and tell me that trying to be idealistic is good for FOSS. The evidence I see is to the contrary.
How can you demand support for Ukraine, but then get upset by the people who are meeting actual needs for the war effort?
Anduril exists to protect the order. same as cops, only focused externally instead of domestically. but in a global project where people collaborate with each other as individuals, it's all the same. don't talk to the cops: you only stand to lose.
The author talks about the productivity losses rising from social-issue disagreement in the workplace, but it's rare that you can point to a press release from a C-suite employee and say "this specific document caused one in twenty staff members to leave immediately". The productivity destruction at Coinbase from that press release was enormous.
https://www.coinbase.com/en-gb/blog/a-follow-up-to-coinbase-...
Having a narrow mission focus is the only way to retain your actual best staff.
It's just a fucking circus to prove to everyone on your Instagram how much you care. You really think people give a shit if it's true or not?
Let's take Gaza. Save the dudes who use babies as human shields. Destroy the universities if they resist! Ridiculous.
You can only sponsor people, not software.
Is targeting "ideas rooted in fascism or bigotry" a bad thing?
edit: replaced 'feature' with 'scope' realized I typed an unclear word.
The root of the problem is that it is basically impossible to defend yourself against the accusation that you are secretly a fascist. If you say yes, you admit to being a fascist, if you say no, you're a lying fascist. If you question why the accusation is levied against someone else, you're defending a fascist, if you speak out against the proceedings, you're defending fascism.
The only way to prevent accusations of harboring secret fascist sympathies is to deflect the accusation by lashing out against others with the same sort of accusation, thus demonstrating that you are not secretly a fascist.
This is a dynamic that has repeated itself many times, it's the engine behind countless actual witch hunts, but also metaphorical ones such as the McCarthy-era red scare, the ideological persecution under Stalin.
Stop being lazy, go back to engineering first principles and it makes little sense to stay with Nix. Guix or any rewrite as a library in a well-developed language* makes more sense.
*For example, why are Haskellians using Nix so much instead of integrating its concepts into their own tooling?
https://blog.ezyang.com/2016/05/announcing-cabal-new-build-n...
https://cabal.readthedocs.io/en/2.0/nix-local-build-overview...
Also cabal isn't positioned to be a system level package manager. Haskell programmers are the type to want both their application builds and system dependencies to be reproducible and predictable.
> Stop being lazy, go back to engineering first principles and it makes little sense to stay with Nix. Guix or any rewrite as a library in a well-developed language* makes more sense.
Getting Guix packages to be as complete as nixpkgs isn't a matter of laziness though. One person wouldn't be able to do it no matter how disciplined they were.
That's a bug not a feature.
Every language these days is trying to force you to use its own badly-implemented imitation of Nix. Just look at what cargo does with the target/ directory and wonky "build fingerprints".
It's madness.
The fundamental difference with Guix is that evaluation (what they call "host code" -- everything that happens BEFORE the .drv is written) is wildly impure.
Guile code can access the network, write to the filesystem, heck it can even pull bytes from /dev/random. It can delete your home directory or email your ssh private keys to Zimbabwe.
The Nix language, by contrast, is incredibly restricted in order to make evaluation a deterministic function of the .nix source code you give it, things whose cryptographic hash is in the .nix source code, and nothing else. There is an --impure flag which lets it read from (but not write to) the filesystem but nixpkgs does not use that.
That is a pretty big rift that I find myself unable to cross. I can eval Nix code from any random bozo on the interwebs without having to trust them. If I trust the nix sandbox (which I mostly do) I can even build the resulting drv. I can be sure that evaluating that Nix code will produce exactly the same drv two years from now that it did today. Guix doesn't offer those things. Because scheme. I'm sorry but scheme just isn't the right language for this, it's too powerful.
https://github.com/tvlfyi/tvix
To me, the perfect solution would be to have a base like Nix/Tvix you can build on top of, for example to make a package manager for your language, and have the users of that language's PM interact with TOML or JSON.
Stop being lazy, go back to engineering first principles and it makes little sense to stay with C. [Insert systems programming language du jour] or any other well-developed language makes more sense.
It's the need to maintain super legacy systems and interoperability. There are entire CPU architectures that LLVM does not support and are only commonly supported by C and these things are still everywhere and are really gnarly problems to replace them.
Even if you throw everything away on the software side and start over from scratch, that's going to _force_ you to replace some hardware somewhere that you won't or can't replace.
This is silly - authority in a software community doesn’t come from a nonprofit charter. Being founder is also no guarantee of authority, but it is more relevant because it’s rooted in actions and outcomes.
The more I observe from the sidelines of open source the less attention I pay to these sorts of disputes. In the end they are all adjudicated by delivering useful software and updates quickly to end users. Whoever does that better “wins.”
Sometimes this is the founder of the project and sometimes not. In general I think it’s a mistake to think anyone cares all the much about anything beyond the license, capabilities of the software, and how quickly the community/maintainers fix bugs. They may say they do but people who are taking software for free are in no position to dictate much and at the end of the day they know and accept it (especially something like who sponsors a conference, who is the keynote speaker (Rails incident) etc)
https://thenewstack.io/how-the-u-s-air-force-deployed-kubern...
Be it the first computers, the Internet, RISC CPUs, BSD UNIX and much much more.
You’re free not to like this fact of course, but then using the technologies anyway is a bit of a double standard.
So a better analogy would be swords that can also be used to cut fruit instead of killing maybe.
Well that was kind of my point. I see people act on principles of morality when it doesn't negatively affect their convenience and at the same time ignore those principles when it affects their convenience. For me that is the definition of a double standard.
That's it. I'm not saying we should put these people in jail ;)
Except that's not what I'm doing. It's more like I'm telling anti-capitalists not to trade stock options in order to buy Porsches.
Nix Flakes looking like the real source of the schism in the Nix community.
No. In the talks about the fork because of the real issue of MIC sponsorship there was disagreement about whether flakes should be the default among those against MIC sponsorship.
They are both issues, but the most pressing one causing large contributors to leave is the MIC sponsorship issue. The flakes/no-flakes issue existed before and wasn't causing large contributors to leave.
It became evident after the second time though that this was very on purpose and it was known there would be an issue.
Obviously there's the "people were angry last time, they will likely be angry this time". But that's projecting personal/political views into a sponsorship.
What should have been the right course of action? I'm not sure. "Tech is easy, people are hard"
Maybe the official leadership has a shuffle, maybe it’s even big.
I’m not changing my Nix investment, I discourage others from changing theirs.
GNU Guix provides state-of-the-art package management features such as transactional upgrades and roll-backs, reproducible build environments, unprivileged package management, and per-user profiles. It uses low-level mechanisms from the Nix package manager, but packages are defined as native Guile modules, using extensions to the Scheme language—which makes it nicely hackable.
https://guix.gnu.org/en/about/People who are unhappy with the community or the direction of nix should leave and start their own thing. They'll discover that building something is actually a great deal harder than it looks from the outside.
It sure is remarkable how many people seem to be assuming that the people complaining must just be some outsiders with no involvement in the project. It's maybe worth asking yourself where that assumption comes from.
I wonder what makes some long-lived communities immune to this behavior...OpenBSD comes to mind.
Hygiene, folks.
Also could be the fact that the entire reason OpenBSD exists is that De Raadt got cancelled out of NetBSD: http://mail-index.netbsd.org/netbsd-users/1994/12/23/0000.ht...
They're going to continue to use Nix either way, and in the same way that the community can fork Nix because they're unhappy with the sponsorship, so can Anduril - and their fork might just be private.
Defence companies and all sorts of other companies that people might disagree with heavily use open source projects.
https://www.reddit.com/r/NixOS/comments/1cd5fod/in_case_im_u...
If every member of the community wants one thing, and the leadership doesn't, then the community wins, every time.
Open letter to the NixOS foundation (50 comments) https://news.ycombinator.com/item?id=40107370
The dire state of NixOS's moderation culture (76 comments) https://news.ycombinator.com/item?id=40166912
---
Additionally, these r/NixOS submissions may be of interest:
Jon Ringer: "In case I'm unable to return, wish you all the best" (348 comments) https://old.reddit.com/r/NixOS/comments/1cd5fod/in_case_im_u...
Transparency about jonringer’s suspension (153 comments) https://old.reddit.com/r/NixOS/comments/1ceeg8h/transparency...
Thoughts on Jon Ringer's temporary suspension (71 comments) https://old.reddit.com/r/NixOS/comments/1ceiz36/thoughts_on_...
Moderation no-go zones (55 comments; ongoing) https://old.reddit.com/r/NixOS/comments/1cfv8vo/moderation_n...
---
Finally, the RFC to improve the situation:
It's specifically for quotations that come from other sources and are presented verbatim; In the LWN UI settings: "These preferences affect how text that is quoted from other sources (press articles or whatever) in LWN news articles is rendered in your browser."
Check into any one claim, and you’ll find it’s not the entire story.
This however is true:
> The Foundation board has unrepresentative composition relative to the community because, due to our count, all current members are cisgender, white-passing, men, one of whom has done military service, and one other (Eelco) likely relies on undisclosed military-tech work.
That's not my reading of it.
However my biggest issue is the conflict of interest between Eelco -> DetSys -> Anduril Contract -> Eelco fighting hard for Nix to sponsor Anduril.
As foundation chair he should declare that he doesn't have a conflict of interest and DetSys doesn't have a contract with Anduril or have recused himself from the sponsorship discussion.
As a Nix user I feel like those people who started this whole drama are actually negative to this project. They are trying to use Nix as a tool for their political goals.
I think the best for Nix would be to just move forward and ignore them.
Indeed. If you look at pull request 10513, you see Eelco propose a bug fix, another person point out the flaws in his approach, and Eelco subsequently closing his own pull request and filing a new PR with a different approach.
https://github.com/NixOS/nix/pull/10513
The save-nix-together signatories describe this as “ignoring other people and only considering his way”.
I suppose they were counting on no one bothering to read their citations?
While this may be technically true, the framing seems disingenuous, unless I am missing something. I have not been following the situation closely. My understanding is that Eelco's company, Determinate Systems, _may_ have contracts with customers connected to the military-industrial complex, but I dislike the implication as it renders Eelco as a bad-faith actor. It seems like a circular argument. I also dislike the implication that it is somehow problematic for Eelco's _for profit_, separate entity to have customers that the _community_ finds problematic.
As chair of the foundation, Eelco should do what he can to avoid even the appearance of malfeasance, including declaring or denying conflicts of interest.
Whereas Nix is about reproducibility all the way down to the individual libraries and software.
DDH, Linus, Poettering, Im sure someone is offended by hearing one of these names, but look at the status and reputation of their projects. Now go look at Wayland, or Rust who lack these guiding voices... Note that if you did in deep on these projects your likely going to need some popcorn to go with the soap opera levels of drama.
Nix is going to be interesting to watch in the coming months.
I see that expressed all the time ...
I don't disagree, but it needs to be communicated upfront and transparent without some guise of it being anything else so that potential contributors can decide if it's right for them from the outset.
Oh and ban anyone that openly disagrees with their values.
[Determinate Systems] produces its own installer for Nix that the company promises will provide stable support for some Nix features. The letter states: "This is fine, however, it is questionably acceptable to do that while employing the lead developer of CppNix [the main Nix implementation] and saying nothing about how this will interact with the team's [decision-making] autonomy."
So "DetSys" is a commercial provider of Nix services, making corporate promises about future Nix feature support and (presumably) contracting with Anduril whose current focus is Shahed-inspired kamikaze drones, while wearing a separate hat as board chair of NixOS Foundation.
Effectively the tl;dr is whether Nix foundation should be bankrolled by the DoD, feature roadmap guided by the needs of mass produced suicide drones. And if they are, do other contributors want to continue providing free R&D for that organization?
Yeah, it's a bunch of left-wing malcontents trying to take over a project.
Anyways, Nix is very much decentralized as far as open-source projects go.
Or a bunch of people who were told they have a voice, put in time/work under that assumption, then when it came time for their voice to count were just ignored.
But I bet life sure is easy when you can just label people something nasty and dismiss their worthless opinions outright.
> It is my opinion that it is not for us, as open source software developers, to decide whose views are valid and whose are not, and to allow or disallow project or conference participation as a result.
You really should not be in open source if you believe it is your purview to ideologically police the usage and contribution to your software. That notion is incompatible with the spirit of the endeavor.
The issue here is one of sponsorship.
Contributors to Nix have a problem with contributing to Nix and then seeing sponsors like Anduril advertised.
If Anduril donated but wasn't listed as a sponsor and didn't have a booth, I bet many wouldn't have an issue.
My (possibly wrong) interpretation is that people feel we shouldn't make weapons. That we should just stop fighting entirely. This is clearly an extremist position, I don't think many people in the west think that we should (for example), completely blockade Ukraine from even buying weapons.
Even if you believe we should stop manufacturing weapons, don't you think this isn't likely to be a popular opinion? That it's unreasonable to expect people to share it?
It's a non-sequitur, why have a problem with Anduril being advertised but not have a problem with Anduril using the software (i.e. because it's FOSS)? Anduril also gets much more value out of, and furthers their mission much more by, using the software than they do from advertising. And if you have a problem with software being used for military purposes, why are you contributing to a project with an LGPL license instead of one which forbids military purposes?
I might be misunderstanding, but I thought Anduril was repeatedly rejected as a NixCon sponsor?
>The freedom to run the program as you wish, for any purpose (freedom 0).
>The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
>The freedom to redistribute copies so you can help others (freedom 2).
>The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
https://www.gnu.org/philosophy/free-sw.en.html#four-freedoms
That seems extremely different than targeting particular company for idealogical reasons and trying to remove their rights.
"Well, you see... just keep all politics out of FOSS except for the important FOSS ones I agree with" ;)
>The result would be a system that you could not count on for any purpose. For each task you wish to do, you'd have to check lots of licenses to see which parts of your system are off limits for that task. Not only for the components you explicitly use, but also for the hundreds of components that they link with, invoke, or communicate with.
>How would users respond to that? I think most of them would use proprietary systems. Allowing usage restrictions in free software would mainly push users towards nonfree software. Trying to stop users from doing something through usage restrictions in free software is as ineffective as pushing on an object through a long, straight, soft piece of cooked spaghetti. As one wag put it, this is “someone with a very small hammer seeing every problem as a nail, and not even acknowledging that the nail is far too big for the hammer.”
https://www.gnu.org/philosophy/programs-must-not-limit-freed...
Given that Nix is LGPL 2.1 and Nixpkgs is MIT, the project leans more towards the open source camp than the free software camp.
GNU developers give you some software, you can do whatever you want except making it less free.
the only people that will complain are developers that would like to remove soem of the user freedoms , because this devs want to make money or because they want more freedom for themselves and not for the users.
https://en.wikipedia.org/wiki/Douglas_Crockford#Software_lic...
His article is specifically about pretend free/open source licenses that restrict what software can be used for. But the conclusion applies to similar behaviors around the entire free/open source ecosystem like conferences: it will just drive participants away and strengthen the position of proprietary solutions instead.
I don't actually know his position on this, but mean to communicate I see the use of free software and the sponsorship issue as separate issues.
(Signed, someone who absolutely does not want military contractors in their community, but feels that a license is the wrong place to enforce that.)
It seems like these are questions of conflicts of interest and how the organization is being run. Those seem very relevant.
I absolutely sympathize with them fwiw. I despise DRM and think it's a reprehensible practice, and I would be extremely off-put if my code were being used by one of those companies. I would hate to see them at a conference. But I acknowledge that is my ideological bend, so my opposition there is "ideological"
"If you don't want to help create war machines you can't contribute" is your solution, not mine.
Historically the conventions of open source has been that use is completely without restriction, but there has always been conflict about that. The domain is new enough that I wouldn't consider it settled yet.
> it is in fact your purview to "ideologically police" the uses your work is applied to
But this seems like a fantasy to me and directly at odds with the realities of open source.
The reality is that open source code is used for a myriad of purposes that I would consider myself ideologically opposed to. But this is ultimately the cost and tradeoff of open source in the system we currently have. Similar to the argument for free speech, in which we tolerate the fact that people have the right to say truly awful things because we deem that an acceptable tradeoff and better than censorship.
You may also be right that this is a matter that is not yet settled, and I'd be interested in a serious discussion about what some kind of workable solution might look like, but I don't see how what's happening in the Nix community right now moves anyone towards that, and if people are truly this principled, the Nix project itself should be the least of everyone's worries.
One man's arms dealer is another man's defense against death and destruction. I'm no fan of defense contractors for many reasons, but there is a simple reality that you need weapons, and lots of them, to defend yourself and your nation against aggressors, and someone has to build them. Imagine how much worse the war would be going for Ukraine if they didn't have advanced weaponry being provided to them by defense contractors.
If you don't want arms dealers using your work, then don't release it under an open source license.