NixOS ist ein wunderbares Betreibssystem. Vor einiger Zeit hat sich mir dann auch mal der Gedanke ins Hirn geschlichen "Was kommt nach NixOS?" bzw. "Gibt es Alternativen wenn NixOS wegfällt?". So ganz in die falsche Richtung gedacht war das gar nicht, denn die letzten Wochen ist einiges passiert in der NixOS Welt, das genau diese Gedanken wieder auf meinen Radar gebracht haben. Die Gründe fasse ich hier nur mal Oberflächlich zusammen. Angefangen hat es mit der NixCon 2023 in Darmstadt.
Hier tauchte plötzlich ein Sponsor auf, der einen mindestens sauer aufstoßen lässt - "Anduril". Ein astreines MiliTech unternehmen, dass Waffensysteme produziert und diese mit NixOS betreibt. "Anduril" ist aber nicht nur Sponsor sondern auch Contributer in den Nix Packages. Irgendwie find ich es nicht so geil das Corpos die aktiv Tötungsmaschinerie bauen, Teil der Community sind. Auf der NixCon 2023 konnte - dank Zivilklausel der TU Darmstadt (diese untersagt die Beteiligung an Forschung
im militärischen Bereich) - Anduril als Sponsor ausgeschlossen werden. Das gab ein kurzes Aufatmen. Was allerdings skeptisch hätte machen können, war die zögerliche Haltung beim entfernen von Anduril aus dem Sponsorship.
Leider traten Anduril wenig später wieder auf anderen NixOS Events als Sponsor auf. Das Thema war also nicht grundlegend vom Tisch und hat die Community doch mehr aufgewühlt als es anfangs den Anschein hatte. Zudem kamen auch noch andere Problematiken zu Tage die wohl schon längere Zeit in der NixOS Community brodelten. Eelco Dolstras (der Hauptinitiator von Nix) soll Entscheidungen unabgesprochen getroffen haben, die Befangenheit von Dolstra (DetSys als Contractor von Anduril) toxische Teile der Community und besagte MiliTech Contributers dank nicht
eindeutiger Code of Conducts. Also alles in allem ziemlich viel Kram der nicht gut riecht.
Natürlich bekommt man direkt hohen Puls und Angstschweiß, dass man womöglich doch wieder zurück auf ein OS muss, das bei weitem nicht so performant ist wie NixOS, aber wie heißt es so schön: "DON'T PANIC!".
Zum einen ist man zum Glück nicht der einzige Mensch den dieser Zustand stört und zum anderen sind genau diese Menschen (die etwas tiefer in der ganzen Materie drinstecken) auch voller Tatendrang und wollen diese Situation nicht so belassen.
So gab es in den letzten Wochen zum einen neue Projekte die daraus hervorgingen aber auch bei NixOS selber hat sich viel Intern getan. So ist bspw. Eelco Dolstra aus dem Communityboard zurückgetreten, es gibt Gruppen die sich die Nächte um die Ohren schlagen um eine bessere, offener und humanere Community zu schaffen und auch an den Codes of Conducts wird geschraubt.
Das "DON'T PANIC" hat sich bewährt und es bewegt sich etwas.
Wer sich mit der Thematik auseinandersetzen will findet hier ein paar Links die das ganze Geschehen festhalten:
-
[GitHub] Nix Drama explained
-
[Web] Open letter about Dolstras leadership
-
[Discourse] über das 2023 Sponsorship
- Nein Anduril verlinke ich nicht!
OK. Also eine ganze Menge Themen die es gilt aufzuarbeiten und ich habe das Vertrauen in die NixOS Community, dass auch genau das passieren wird. Diese Ereignisse haben aber auch einen netten Nebeneffekt. Als das ganze hochgekocht ist, gab es auch die ersten Rufe nach soft und Hard-Forks und GUIX als Alternative zu NixOS.
0x01 - GUIX
Wenn man sich mit NixOS beschäftigt, stößt man unweigerlich auf GUIX. GUIX ist, wie NixOS auch, mit deklarativem Ansatz und Fokus auf Reproduzierbarkeit gebaut. GNU wird hier groß geschrieben (und das so oft wie möglich ;) ). Das bringt für mich immer einen leichten Beigeschmack von Apologetik mit sich, die in vielen GNU-Projekten vorherscht. Aber das ist nur mein persönliches Empfinden. Der erste Faktor der mich von GUIX abgehalten hat, ist die Anzahl der ferfügbaren Packages
(GUIX: ~28.000 | NixOS: ~100.000). Nun könnte man sagen, ich brauche nicht alle 100.000 Packages die NixOS zur Verfügung stellt. Richtig. Nur stolpere ich etwas, wenn die Tools die ich im täglichen Gebrauch habe, nicht in den GUIX Packages entahlten sind.
Der zweite Faktor der mich davon abgehalten hat auf GUIX zu wechseln, ist GNU GUILE auf dem GUIX aufbaut. Ich bin froh die nix-lang einigermaßen oberflächlich verstanden zu haben. Schau ich mir nun aber GNU GUILE bzw. GUILE SCHEME an, fange ich bei Null an und mein Wille sich in etwas einzuarbeiten was auf LISP basiert, geht ebenfalls in die Richtung meines Wissenstandes über GUILE SCHEME.
GUIX hat mit Sicherheit seine Anhängerinnenschaft und Daseinsberechtigung aber nicht für mich.
0x02 - FORKS
Weiter oben habe ich bereits erwähnt, dass es Menschen gibt, die sich der Problematik angenommen haben und eigene Projekte starten die die gleichen Ansätze wie Nix bzw. NixOS verfolgen und das ganze auf der nix-lang aufbauen. Zwei Projekte die am meisten Aufmerksamkeit bekommen, sind
AUXOLOTL und
LIX.
Beide Projekte sind in sehr kurzer Zeit von der puren Idee hin zum benutzbaren Soft-Fork im Beta Status gewachsen und schon testbar. Auch die Intention, die beide Projekte verfolgen, sind nahezu identisch: deklarativ und reproduzierbar mit dem Bonus: menschenfreundlich.
AUX | AUXOLOTL
Der erste Fork den es mir vor die Füße gespühlt hat war
AUX (ja zu diesem Zeitpunkt hieß es auch noch
AUX). Das Projekt wurde von
JAKE HAMILTON geforkt und hat sich rasend schnell von einer Website mit einer Idee und einem Plan dahinter, Nix zu forken zu
AUXOLOTL entwickelt. Einem Softfork der als Alternative zu
Nix benutzt werden kann.
AUXOLOTL definiert sich selber wie folgt:
- ein simples Community-Führung
- bringt in Zukunft technische Neuerungen in
Nix und
NixOS
- ist aktuell kompatibel zu
Nix
AUXOLOTL ist noch im Aufbau und so ist auch die Doku noch nicht Vollständig, aber ich denke wenn ihr in ein paar Tagen hier
[LINK] vorbei schaut, steht da die komplette Instalations Anleitung.
LIX
Der andere Fork der mir ein wenig später begegnet ist, ist
LIX von dem auch das "declarativ. reproducible. human-friendly." geliehen ist.
LIX ist, wie auch
AUXOLOTL komplett kompatibel zu
Nix.
LIX beschreibt sich selber als "built for a community, not for a corporation", "A safe community for developers of all backgrounds". Hier nimmt
LIX die Thematik der NixOS-Community Differenzen und den Anduril-DetSys-Komplex auf, distanziert sich davon und
gibt die Entscheidungskraft in die Community. Außerdem nennt sich
LIX weiter "a correct implementation of the Nix language", "a more modern implementation of Nix" und "a language with room to grow".
LIX benutzt das
MESON BUILD system. Dieses soll laut eigene Angaben deutlich effizienter, schneller und benutzerinnenfreundlicher sein. Die Ausbaufähigkeit will
LIX durch das eingesetzte language versioning system garantieren
und das sowohl in der Sprache seber als auch im Tooling.
0x03 - FAZIT
... gibt es keins. Aber es ist zum einen spannend zu sehen wie schnell die
NixOS Community auf Missstände reagiert. Hier wird gerade viel disskutiert und weiteres Vorgehen geplant aber auch den Tatendrang vieler Community member und die wirklich abgefahrene Geschwindigkeit in der Dinge passieren. Auch wenn das
NixOS Ökosystem seine Defizite in den Griff bekommt (und ich bin sehr zuversichtlich) wird der frische Wind der durch
LIX und
AUXOLOTL reinweht, definitiv
was gutes haben und das Projekt voran bringen und auch diverser machen. Am Ende haben die Problematiken die sich aufgetan haben sogar etwas gutes hervorgebracht und heben
NixOS noch weiter hoch als eh schon. Wir werden sehen.
Wenn ihr
LIX oder
AUXOLOTL testen wollt, bedenkt es ist BETA. Also alles auf eigene Gefahr.
Hier noch die Links zu beiden Projekten:
LIX [https://lix.systems]
AUXOLOTL [https://auxolotl.org]
Viel Spaß beim testen!