Add a section on Nix, Nixos and related tools #30
2 changed files with 23 additions and 4 deletions
BIN
_git.tar.gz
(Stored with Git LFS)
BIN
_git.tar.gz
(Stored with Git LFS)
Binary file not shown.
|
@ -43,7 +43,8 @@ There are two partially difficult problems in computer science:
|
||||||
|
|
||||||
Nix falls into this last pitfall.
|
Nix falls into this last pitfall.
|
||||||
The programming language used by teh Nix package manager is called Nix, not Nixlang (as like Erlang) but rather the same name as primary tool that uses it.
|
The programming language used by teh Nix package manager is called Nix, not Nixlang (as like Erlang) but rather the same name as primary tool that uses it.
|
||||||
For clarity for teh remainder of this subsection we are only talking about Nix the language.
|
For clarity for teh remainder of this subsection we are only talking about Nix the language.
|
||||||
|
The Nix Package manager is sometimes known as CppNix for reasons we will get into later.
|
||||||
|
|
||||||
Nix is a lazily evaluated functional language which al has REPL (Read, Evaluate, Print, and Loop) capability like what you would see in Python.
|
Nix is a lazily evaluated functional language which al has REPL (Read, Evaluate, Print, and Loop) capability like what you would see in Python.
|
||||||
As a whole it takes strong influences from OCaml and other ML derived languages.
|
As a whole it takes strong influences from OCaml and other ML derived languages.
|
||||||
|
@ -118,6 +119,22 @@ For example [this file][nix_dns] turns a list of attributes.
|
||||||
Into a config usable by the BIND DNS server.
|
Into a config usable by the BIND DNS server.
|
||||||
|
|
||||||
### Lix
|
### Lix
|
||||||
|
Nix is an old enough project now, and as such has accumulated crust over the years.
|
||||||
|
This is a combination of technical and societal/governance.
|
||||||
|
|
||||||
|
On the technical side nix is built using c++ and a max of build systems that make it hard to expand it.
|
||||||
|
For a good long time the nix binary used in the package manager was locked at v2.18 due to issues.
|
||||||
|
It took most of a year for a higher version to be used on an official basis.
|
||||||
|
|
||||||
|
Regarding governance there has been several attempts to make it better for folks to contribute and to decouple everything from requiring Eelco to have an input.
|
||||||
|
Those attempts did not succeed.
|
||||||
|
The final straw for some of the more technical core contributors was Eelco's forming a company, hiding it from the community and trying to get military sponsorship.
|
||||||
|
This did not vibe well with folks.
|
||||||
|
|
||||||
|
Due to all of this many core maintainers forked Nix at 2.18 and started working to apply fixes for both code and organisational.
|
||||||
|
The result of their efforts is [Lix][nix_lix].
|
||||||
|
For a full explanation of its key features I would like to point you to the [Lix About page][nix_lix_about].
|
||||||
|
We use Lix instead of CppNix as the goals of Lix align with the viewpoints and ideologies that our members hold and what we want to represent as a (computer) society.
|
||||||
|
|
||||||
## Why we use it
|
## Why we use it
|
||||||
{Details of how the config was ascattered and hard to find}
|
{Details of how the config was ascattered and hard to find}
|
||||||
|
@ -146,4 +163,6 @@ Into a config usable by the BIND DNS server.
|
||||||
[nix_guide_pills]: https://nixos.org/guides/nix-pills/#
|
[nix_guide_pills]: https://nixos.org/guides/nix-pills/#
|
||||||
[nix_pkgs_sieve]: https://github.com/NixOS/nixpkgs/blob/a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c/pkgs/by-name/si/sieve-editor-gui/package.nix
|
[nix_pkgs_sieve]: https://github.com/NixOS/nixpkgs/blob/a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c/pkgs/by-name/si/sieve-editor-gui/package.nix
|
||||||
[nix_flake]: https://wiki.nixos.org/wiki/Flakes
|
[nix_flake]: https://wiki.nixos.org/wiki/Flakes
|
||||||
[nix_dns]: https://forgejo.skynet.ie/Skynet/nixos/src/branch/main/applications/dns/dns.nix
|
[nix_dns]: https://forgejo.skynet.ie/Skynet/nixos/src/branch/main/applications/dns/dns.nix
|
||||||
|
[nix_lix]: https://lix.systems/
|
||||||
|
[nix_lix_about]: https://lix.systems/about/
|
Loading…
Reference in a new issue