# NixOS Meetup Darmstadt 2024/04
Wann: 22.04.2024, Einlass ab 18:30 Uhr, Beginn 19:00 Uhr
Pad vom letzten Meetup: https://md.darmstadt.ccc.de/nixda-202402
Pad vom nächsten Meetup: https://md.darmstadt.ccc.de/nixda-202406
## Vorstellungsrunde
Wir sind 25 Personen!
## Talks (0/2)
- [name=piegames] ~~Nixfmt: How an autoformatter works on the inside~~
- [name=niklaskorz] [Nix for Monorepos](https://rheinneckar.events/events/a3499b99-5816-4bd2-9189-d339d4e0153f)
- https://dl.korz.dev/nixda-monorepos.pdf
### Themensammlung
- [name=r4ndom] Development environment
Aktuell nutze ich dafür [`devenv.sh`](https://devenv.sh/), aber vielleicht gibt es ja noch Alternativen, die in Betracht gezogen werden sollten.
Motivator: Ich hatte Probleme beim Aufsetzen eines Projekts, welches Jupyter Notebook und Numpy, Co. verwendet hatte. Auf Arch lief es direkt (nach dem install der Dependencies), aber NixOS wollte nur mittels devenv.sh und dann auch nicht alles (spacy hatte noch Probleme gemacht).
- ✔ Python Environment bauen:
```nix
python3.withPackages (ps: with ps; [
requests
]) # Python mit Dependencies im Runtime Environment
```
- x Folgendes funktioniert nicht für Python Environments, weil kein `PYTHONPATH` konstruiert wird
```nix
buildInputs = with python3Packages; [
space-transformers
jupyter
]; # PATH=$out1:$out2
```
- Am besten mit konkretem Code und Fehlermeldungen ins Treffen kommen :wink:
- [name=r4ndom] Wie gehe ich mit Updates um, wenn einzelne Packages Probleme machen, z.B., aufgrund von Sichtheitsproblemen? Gibt es Optionen, diese einfach zu ignorieren und aus dem System zu entfernen (mit entsprechendem Hinweis beim Build), bis die Schwachstellen gefixt sind? Wenn ich aber so genau darüber nachdenke, stünde dies einem reproduzierbarem Build im Wege.
- `nixpkgs.config.permittedInsecurePackages = [ "package-name-1.0.69" ];`
- [name=polybos] KDE/Plasma Erfahrungen/Tipps?
Gibt es BestPractices/Erfahrungsberichte im Umgang mit Plasma (@wayland) und KDE Gears (z.B. Kontact, etc.)? Manches Verhalten ist auf NixOS "speziell", z.B.:
- Einstellung eines Skalierungsfaktors wird zur Laufzeit (vor Neustart) nicht von allen Applikationen korrekt angewandt
- Manche Dinge werden nicht richtig gespeichert (z.B. VPN-Credentials beim NetworkManager-Applet, Adressbuch bei KMail)
- [name=polybos] NixShell (oder ähnliches) mit non-bash?
Die standard NixShell (`nix-shell …`) scheint mir nicht sehr komfortabel zu sein - gibt es da Tipps?
Hintergrund: Ich habe mir z.B. für Rust eine Nix-Shell nach https://wiki.nixos.org/wiki/Rust#Installation_via_rustup erstellt - und würde auch da gern auch eine komfortablere Shell nutzen - das kann auch bash sein, aber "schick" konfiguriert; sonst nutze ich z.B. in der Regel fish und finde da viele Defaults angenehm. Vielleicht gibt es auch Alternativen zu nix-shell, die auch eine "gekapselte Umgebung" erzeugen?
- Hacky Lösung: https://github.com/haslersn/any-nix-shell
- https://direnv.net/ mit [nix-direnv](https://github.com/nix-community/nix-direnv)
- Devenv
- [zsh function](https://cyberchaos.dev/leona/nixfiles/-/blob/55f4888607befd6d846f39f1a7e969dd912cd42e/users/leona/importable.nix?ref_type=heads#L45-55), um im `nix shell` die gleiche shell zu haben
- [name=oliver] Workflow empfehlungen um nixos Konfigurationen in VMs zu testen.
Aktuell starte ich bei jedem rebuild die qemu vm neu, dauert recht lange.
- https://github.com/Mic92/nixos-shell
- [nixos-rebuild build-vm](https://nixos.wiki/wiki/NixOS:nixos-rebuild_build-vm)
- https://github.com/astro/microvm.nix
- [name=lgcl] (Wie) kann man eine Liste aller Derivations, die zum Evaluieren gebaucht werden, bekommen?
- Bauen mit IFD disabled (printet das ggf. einen trace?)
- nix mit genug `-v`
- `grep` nach typischen IFD funktionen (`readFile`, `readDir`, etc) https://nixos.org/manual/nix/unstable/language/import-from-derivation
- [name=atemu] Erfahrungen mit nixd? (Oder andere Nix LSP)
- https://discourse.nixos.org/t/nixd-2-0-2-released/43891