• 7 Posts
  • 9 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle






  • Many who don’t see the danger were not here in the 2000’s. There are so many great technical achievements that were killed by microsoft, google or facebook EEE’ing the shit out of it. Remember jabber/xmpp? Yeah, both FB and Google implemented the protocol in their chat apps. Everyone was thrilled; I could use my jabber client to connext to fb and talk to my friends. Then they remembered there’s not any money in that and killed the projects.

    Even if it’s good for the fediverse now, as soon as they realize they can make more money by not having to sync with other companies and organizations, they’ll be out of here, leaving nothing behind like a swarm of locusts. The only defense is defederation.



  • Assume you have two flakes A and B, and A takes nixpkgs as an input. Thus, A defines something like inputs.nixpkgs.url = nixos-unstable;. Now, assume B depends on A, so B defines inputs.a.url = "where-to-find-A".

    When you evaluate B, then you pull in A’s dependencies as it is defined by A. So B now depends on nixos-unstable. However, maybe you don’t want to depend on unstable. You could of course just override the input nixpkgs to a paricular version. Or you say “the nixpkgs dependeny of A is the same as the nixpkgs as defined by B”. So you say, in B: inputs.a.nixpkgs.follows = "nixpkgs";.

    So now, A’s nixpks is the same as B’s inputs.nixpkgs when you evaluate B and you didn’t need to touch A.






  • I think most of your concerns have at least one “yes, and…” response.

    For example, yes it’s niche; it also has the most number of first class available software packets out all distributions. So it’s not a little unsupported corner with a small community; it’s quite large actually.

    The security model is inherently at least as good as for any other major community. If package maintainers read the new upstream code, it’s safer, if they don’t it’s not. I don’t know of any useful security mechanisms in debian or arch that don’t exist for nix. However, packaging software IS less cumbersome with nix, once you know how; which leaves more time for code reviews and testing in theory.

    Programmability of software packaging is mostly irrelevant to the normal user. Package maintainers will have to do some special handling for the odd package, and power users might want to put abstractions into their configuration. For normal day-to-day, where you want to package your own project and get a dev shell, it’s mostly straightforward.

    Most of the time, for os features, it’s absolutely not 1:1. Many very useful intents are modeled as nixos configuration flags. In most cases no, you don’t need to figure out what you need to install and what file to change to set the theme in gtk; there’s an option and you’re done. Sure, there are packages with less abstraction, but nixos makes it very easy to add. Furthermore, the options are safe between system upgrades which is not always the case for major software releases.

    Yes. NixOS is complex, yes Nix is hard to learn, there’s no doubt about that. I assume there’s going to be many projects down the line taking nixos ideas and wrap them into nicer UX.