Gli sviluppatori di NixOS hanno presentato il rilascio NixOS 26.05 «Yarara» — un'altra versione stabile della distribuzione costruita attorno alla configurazione dichiarativa del sistema e al gestore pacchetti Nix. Il rilascio riceverà correzioni di bug e aggiornamenti di sicurezza fino al 31 dicembre 2026, mentre il ramo precedente NixOS 25.11 «Xantusia» è stato dichiarato obsoleto e raggiungerà la fine del supporto il 30 giugno 2026.
Nel processo di rilascio sono stati coinvolti 2842 sviluppatori, che hanno contribuito con 59.703 commit dall'ultimo rilascio. In Nixpkgs sono stati aggiunti 20.442 nuovi pacchetti, aggiornati 20.641 pacchetti, rimossi 17.532 pacchetti obsoleti. In NixOS sono stati aggiunti 85 nuovi moduli e 1547 nuovi parametri di configurazione.
Modifiche principali
Lo Stage 1/initrd ora funziona per default su systemd.
La fase iniziale di caricamento, responsabile della preparazione del sistema prima dell'avvio del sistema operativo principale, è stata convertita in systemd. La vecchia versione basata su script è stata dichiarata obsoleta e programmata per la rimozione in NixOS 26.11. Temporaneamente, è possibile tornare al comportamento precedente tramite boot.initrd.systemd.enable = false, ma gli sviluppatori non raccomandano questo percorso. Per i sistemi con dischi LUKS, sono stati descritti separatamente i dettagli della migrazione, incluso l'indirizzamento corretto di /dev/mapper/ e la modifica del comportamento della richiesta della frase di password.Aggiunto system.nix come punto d'ingresso alternativo per la configurazione.
Oltre ai tradizionali configuration.nix e flake.nix, ora è possibile usare system.nix. Questo permette di configurare NixOS senza nix-channel, ad esempio con un archivio Nixpkgs chiaramente assegnato. Per impostazione predefinita, il file è cercato come /etc/nixos/system.nix, ma il percorso può essere modificato tramite , --file e --attr.Il kernel Linux è stato aggiornato per impostazione predefinita da 6.12 a 6.18.
Le altre versioni supportate del kernel rimangono disponibili, come in precedenza: l'utente può scegliere la versione desiderata tramite la configurazione di NixOS.D-Bus è stato sostituito per impostazione predefinita da dbus-broker.
Invece della classica implementazione di dbus, ora viene utilizzato dbus-broker, che si presenta come più performante e affidabile, mantenendo la compatibilità con l'implementazione di riferimento di D-Bus. Il passaggio all'implementazione richiede un riavvio, poiché non è possibile riavviare D-Bus in modo sicuro durante una sessione utente. Se necessario, è possibile mantenere la vecchia implementazione attraverso services.dbus.implementation = "dbus".Il driver di test NixOS ha ottenuto un backend basato su systemd-nspawn.
I test di integrazione possono ora essere eseguiti non solo in QEMU-VM, ma anche in container systemd-nspawn. Ciò dovrebbe accelerare i test e ridurre il consumo di risorse dove non è necessaria una virtualizzazione completa. la macchina virtuale Si segnala in particolare la possibilità di testare carichi GPU/CUDA montando bind host device nodes all'interno dei container.Sono stati aggiornati i componenti chiave di Nixpkgs.
GCC è stato aggiornato da 14 a 15, Node.js per impostazione predefinita — da 22 LTS a 24 LTS, Ruby — da 3.3 a 3.4. Per GCC e Node.js, gli sviluppatori avvertono specificamente di possibili modifiche retrocompatibili.GNOME è stato aggiornato alla versione 50 "Tokyo".
La release include GNOME 50, per il quale sono stati annunciati miglioramenti nell'accessibilità, nella gestione dei display e altre modifiche all'ambiente desktop.L'ultima versione di Nixpkgs con supporto per x86_64-darwin.
Nixpkgs 26.05 sarà l'ultima versione con supporto per Intel macOS. Le build binarie e il supporto della piattaforma continueranno fino alla fine del ciclo di vita di 26.05, ma a partire da 26.11 le build per x86_64-darwin e il supporto per le build da sorgente saranno interrotti.
Nuovi moduli
In NixOS 26.05 sono stati aggiunti molti nuovi moduli per servizi e programmi. Tra i più significativi:
- services.openthread-border-router — modulo per OpenThread Border Router, un gateway tra le reti mesh Thread e le reti IP.
- programs.atuin — integrazione di Atuin per sincronizzazione, ricerca e backup della cronologia della shell.
- services.meshtasticd — supporto per Meshtastic, una rete mesh decentralizzata per dispositivi a bassa potenza.
- services.reaction — demone simile a fail2ban: analizza l'output dei programmi e può bloccare gli indirizzi in caso di ripetute errori di autorizzazione.
- services.vinyl-cache — nuovo modulo dopo la rinomina del progetto Varnish Cache in Vinyl Cache; il vecchio services.varnish è ancora disponibile per la migrazione.
- services.rqbit — client BitTorrent in Rust con API HTTP e interfaccia web.
- services.tailscale.serve — configurazione dichiarativa di Tailscale Serve per la pubblicazione di servizi locali in tailnet.
Sono stati aggiunti moduli per ImmichFrame, PdfDing, mangowc, papra, kiwix-serve, nohang, Clevis/LUKS askpass, Rustical, Ente Auth, linkding, Tinyauth, Dawarich, Perses, tabbyAPI, Headplane e molti altri servizi.
Modifiche per amministratori e postazioni di lavoro
La configurazione NVIDIA è diventata più dichiarativa.
È stato aggiunto il parametro hardware.nvidia.branch per selezionare il ramo del driver, è stata aggiornata l'associazione del modulo NixOS con il nuovo layout del pacchetto nvidia-x11, e i parametri del modulo del kernel possono ora essere impostati tramite hardware.nvidia.moduleParams, dopo di che vengono scritti nella configurazione modprobe e non passati tramite la riga di comando globale del kernel.Wine è stato aggiornato alla versione 11.0.
Per gli utenti che eseguono applicazioni e giochi Windows tramite Wine, ciò significa il passaggio a un nuovo ramo principale di Wine all'interno del set di pacchetti stabili NixOS 26.05.I certificati ACME hanno ottenuto un tempo di rinnovo dinamico.
Se security.acme.defaults.validMinDays non è impostato, NixOS ora calcola il momento del rinnovo tenendo conto della durata dei certificati: per i certificati normali il rinnovo avviene dopo due terzi della vita, per quelli a breve termine dopo metà durata.OpenSSH ha ricevuto nuovi parametri.
Ora è possibile generare le chiavi host tramite services.openssh.generateHostKeys = true, anche se il server SSH stesso non è attivo. Questo è utile per i sistemi che necessitano di chiavi host SSH per altri scopi, come agenix o sops-nix. È stato aggiunto anche il parametro services.openssh.enableRecommendedAlgorithms, che consente di rinunciare all'insieme di algoritmi consigliati da NixOS.Nextcloud si aggiorna automaticamente alla versione 33 per i nuovi sistemi.
Per le configurazioni con system.stateVersion >= 26.05, viene utilizzato per impostazione predefinita pkgs.nextcloud33. Gli sviluppatori avvertono che l'aggiornamento diretto da Nextcloud 31 o versioni più vecchie alla 33 non è possibile: è necessario prima passare attraverso una versione intermedia.È stata disattivata la registrazione rumorosa delle connessioni rifiutate dal firewall.
Il parametro networking.firewall.logRefusedConnections ora per impostazione predefinita è uguale a false, poiché su server, accessibili da internet, tali messaggi possono rapidamente riempire il kernel ring buffer e spingere fuori informazioni diagnostiche più utili.glibc è stata aggiornata alla versione 2.42.
La nuova versione non rende più eseguibile lo stack se la shared library lo richiede. Gli sviluppatori considerano tali casi un errore e propongono di correggere la compilazione tramite -z,noexecstack o di rimuovere il flag tramite patchelf —clear-execstack; non è consigliato abilitare globalmente il comportamento precedente per motivi di sicurezza.
NixOS 26.05 – una release con notevoli cambiamenti infrastrutturali: passaggio di initrd a systemd, abbandono del vecchio D-Bus di default, nuovo modo di descrivere il sistema attraverso system.nix, grande aggiornamento di Nixpkgs e preparazione per la rimozione di piattaforme e moduli obsoleti.
Fonte: linux.org.ru
