Nixpkgs İsimlendirme Krizi: Antigravity FHS ve Wayland Çökmeleri
NixOS unstable kanalında inşa ettiğiniz bir sistem ne kadar sarsılmaz görünürse görünsün, sessiz sedasız değişen paket isimlendirmeleri tüm konfigürasyonunuzu bir anda kırabilir. Bugün Antigravity IDE’yi rutin olarak başlattığımda doğrudan “Not Logged In” hatasıyla karşılaştım. Uygulama sadece asistan token yetkisini reddetmekle kalmıyor, arayüzü yükleyemeden arka planda Wayland üzerinden bir SIGSEGV core dump atıp doğrudan çöküyordu.
Klasik monolitik sistemlerde bu tarz çekirdek düzeyindeki grafik ve yetkilendirme çökmeleri genelde formatlık veya en azından saatler sürecek bağımlılık krizleridir. NixOS üzerinde kurduğum Sovereign mimaride ise bu krizi bizzat sorunu yaratan uygulamanın izole ortamı üzerinden debug ederek çözdüm.
Krizin Anatomisi: Libsecret ve FHS Eksikliği
Geçici bir çözüm olarak terminalden NIXPKGS_ALLOW_UNFREE=1 nix run nixpkgs/nixpkgs-unstable#antigravity --impure komutuyla uygulamayı ayağa kaldırdım. Bu komut, uygulamanın bozuk olan yerel sistem konfigürasyonunu es geçerek izole bir ortamda temiz haliyle çalışmasını sağladı. Uygulama bu şekilde sorunsuz açıldığında hatanın sistemin deklaratif katmanında olduğu tamamen netleşti.
Nisan ayında yazdığım ADR-024 mimari kararında çok net bir kural koymuştum: Electron tabanlı araçlar standart Nix ortamında çalıştırıldıklarında sistemin şifre cüzdanına ve Gnome Keyring servisine erişim sağlayamıyor. Bu yüzden bu tip uygulamaların mutlak suretle FHS paketleriyle kurulması gerekiyordu. Aksi takdirde uygulama kimlik doğrulama tokenlarını cüzdana yazamıyor ve sisteme entegre olamıyordu.
O dönem ilgili paket Nixpkgs üzerinde google-antigravity ismiyle yönetiliyordu. Biz sistemi stabil şekilde kullanırken, Nixpkgs geliştiricileri arka planda isimlendirme şemasını tamamen değiştirmiş. Yeni yapıda salt Nix versiyonu doğrudan antigravity ismini alırken, FHS destekli çalışan sürüm antigravity-fhs olarak ayrılmış.
Benim apps.nix modülümde tanımlı olan paket pkgs.unstable.antigravity olduğu için, sistem son senkronizasyonda yanlışlıkla doğrudan salt Nix versiyonunu çekiyordu. Cüzdana erişememe ve uygulamanın Wayland grafik katmanıyla çelişip SIGSEGV hatası vererek patlama sebebi tamamen buydu.
Deklaratif Müdahale ve Anında Aktivasyon
Sorunun kök nedenini belirledikten sonra çözüm sadece tek bir satırı değiştirmekten ibaretti. Sistemdeki modules/desktop/apps.nix dosyasını açıp ilgili satırı düzelttim:
# Eski Hatalı Satır
pkgs.unstable.antigravity
# Yeni FHS Destekli Satır
pkgs.unstable.antigravity-fhs
Klasik sistemlerin aksine grafik hızlandırma ve kimlik doğrulama katmanlarını ilgilendiren bu seviyedeki bir değişiklikte bile reboot atmaya gerek yok. Yaptığım tek şey terminalden yapılandırmayı derlemek oldu:
cd /persist/nixos-config && just rebuild
Yeni NixOS jenerasyonu derlenip aktifleştikten sonra hatalı çalışan geçici oturumu kapattım. Rofi üzerinden aracı tekrar başlattığımda, uygulama cüzdan yetkilerini sorunsuz alarak ve tek bir Wayland hatası vermeden ayağa kalktı.
Sistemi baştan aşağı kendiniz tasarladığınızda ve aldığınız kararları ADR dokümanlarıyla logladığınızda, devasa görünen çökmeleri teşhis etmek ve çözmek yalnızca dakikalar alıyor. NixOS’un asıl gücü paket yöneticisinde değil, size sunduğu bu mutlak kontrol yeteneğindedir.