Files
2026-06-17 10:15:20 +03:00

107 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🛠 Yali-RS (Rust Installer) Yol Haritası
Bu dosya, PisiLinux için geliştirilen yeni Rust tabanlı yükleyicinin (Yali) gelişim sürecini takip eder.
## 1. Temel Altyapı
- [x] Proje iskeletinin oluşturulması (egui + eframe)
- [x] `InstallerStep` trait yapısının kurulması
- [x] Global State yönetimi (Dil, kullanıcı, disk bilgileri)
- [x] **i18n (Çoklu Dil) desteğinin entegre edilmesi**
- [x] Navigasyon sistemi (Geri/İleri/İptal butonları yönetimi)
- [x] Branding config hot-reload (dil değişince logo/slayt yeniden yüklenir)
## 2. Kurulum Modülleri (Calamares Benzeri)
- [x] **Hoşgeldiniz (Welcome):** Sistem gereksinim kontrolü ve dil seçimi.
- [x] **Konum (Location):** Bölge ve zaman dilimi seçimi.
- [x] Sistem saat dilimi yükleme (timedatectl / zone.tab)
- [x] Bölge/alan çift ComboBox (Calamares tarzı)
- [x] GeoIP ile otomatik dil/saat dilimi tespiti
- [x] NTP veya manuel tarih/saat ayarı
- [ ] Harita desteği (gelecek)
- [x] **Klavye (Keyboard):** Klavye düzeni seçimi ve test alanı.
- [x] **Bölümleme (Partition):**
- [x] Disklerin listelenmesi (sysinfo/block-utils).
- [x] Otomatik bölümleme (Tüm diski sil).
- [x] Manuel bölümleme (GParted/KPMCore benzeri yapı).
- [x] Mevcut bölümleri tablo olarak göster.
- [x] Bölüm silme / oluşturma (diyalog penceresi).
- [x] Bağlama noktası (mountpoint) ve dosya sistemi seçimi.
- [x] EFI, swap, kök (/) bölümlerinin manuel atanması.
- [x] Değişiklik planı gösterimi (özet tablo).
- [x] GlobalState'e `custom_partitions: Vec<CustomPartition>` eklenmesi.
- [x] Yeniden boyutlandırma (mevcut bölümleri koruyarak) — iptal.
- [x] **Kullanıcılar (Users):** Kullanıcı adı, parola ve hostname ayarları.
- [x] **Özet (Summary):** Yapılacak işlemlerin son kontrolü.
- [x] **Kurulum (Execution):** Gerçek işlemlerin (rsync, chroot, grub) yapıldığı ekran.
- [x] **Sonuç (Finish):** Yeniden başlatma veya masaüstüne dönme.
## 3. Sistem Arka Plan İşlemleri (Job Queue)
- [x] Disklerin formatlanması (mkfs.ext4, mkswap vb.).
- [x] Sistem dosyalarının kopyalanması (`rsync` veya `squashfs` açma).
- [x] Chroot içine girerek yapılandırma yapılması.
- [x] Bootloader (GRUB) kurulumu.
- [x] COMAR üzerinden servislerin ve tetikleyicilerin çalıştırılması.
- [x] LUKS/GRUB parola yönetimi (stdin pipe, shell injection yok).
## 4. Görsel ve Kullanıcı Deneyimi (UX/UI)
- [x] PisiLinux temasına uygun egui stillerinin uygulanması.
- [x] Özel gradient butonlar (primary, secondary, danger — `buttons.rs`).
- [x] Stil uygulanmış ComboBox yardımcıları (`combobox.rs`).
- [x] ComboBox görsel sabitleri ayrı modülde (`combobox_stil.rs`).
- [x] Gradient arkaplanlı dropdown öğeleri, pointing hand imleci.
- [x] Kurulum sırasında slayt gösterisi (Slideshow).
- [x] Slayt gösterisi öncelikle ortak slaytları göstermeli, sonra masaüstü ortamına özel slaytları göstermeli.
- [x] ISO hangi masaüstü ortamını içeriyorsa onun slaytı gösterilmeli.
- [x] Hata yakalama ve kullanıcıya bildirme ekranları.
- [x] `weak_bg_fill` ile ComboBox popup arkaplan rengi (globalselde ayarlanabilir).
- [x] SVG ikon desteği (egui_extras `svg` feature).
- [x] Tema uygulama sırası düzeltmesi: önce `set_style`, sonra `set_visuals`.
## 5. Test ve Dağıtım
- [x] `--demo` parameteresi ile komutlar aktif çalışmadan sadece görsel arayüzde başlangıçtan bitişe kadar gezinme, slaytlar arasında 5 sn kadar bekleme süresi. Böylece arayüz testi yapılmış olur.
- [ ] ISO ortamında çalışma testleri.
- [ ] Farklı disk yapılarında (UEFI/Legacy, NVMe/SATA) testler.
- [x] Otomatik kurulum (Auto-install/Answer file) desteği.
## 6. Kritik Düzeltmeler (Gerçek Kurulum İçin Zorunlu)
> Bu bölüm, gerçek Live ortamda başarılı kurulum için düzeltilmesi gereken kritik sorunları içerir.
- [x] **[KRİTİK] `arch-chroot` bağımlılığını kaldır:**
- [x] `MountBindJob` eklendi: `/proc`, `/sys`, `/dev`, `/dev/pts` bind mount'ları yapılıyor.
- [x] `UnmountBindJob` eklendi: kurulum sonunda bind mount'lar temizleniyor.
- [x] Tüm `run_cmd("arch-chroot", ...)` çağrıları `run_chroot(...)` helper ile değiştirildi.
- [x] Job Queue'ya `MountBindJob` başına, `UnmountBindJob` sonuna eklendi.
- [x] **[KRİTİK] initramfs oluşturma adımı:**
- [x] `GenerateInitramfsJob` eklendi: önce `dracut`, hata olursa `mkinitcpio` deneniyor.
- [x] GRUB kurulumundan önce Job Queue'ya eklendi.
- [x] **[ÖNEMLİ] Kaynak dizin hardcode — dinamik hale getirildi:**
- [x] `detect_source_dir()` fonksiyonu yazıldı (birden fazla aday dizin deneniyor).
- [x] `build_full_job_queue()` içinde otomatik kullanılıyor.
- [x] **[ÖNEMLİ] GRUB kurulumu chroot içine taşındı:**
- [x] `grub-install` artık chroot içinde çalışıyor (hem UEFI hem BIOS modu).
- [x] `grub-mkconfig` de chroot içinde çalışıyor.
- [x] **[ÖNEMLİ] Lokalizasyon anahtarları güncellendi:**
- [x] Yeni job isimleri (mount_bind, umount_bind, initramfs, bootloader) eklendi.
- [x] Manuel bölümleme UI anahtarları eklendi (en.toml + tr.toml).
- [x] **[ÖNEMLİ] Manuel bölümleme için Job desteği — TAMAMLANDI:**
- [x] `CustomPartition`, `FsType` tipleri `installer.rs`'e eklendi.
- [x] `GlobalState`'e `custom_partitions: Vec<CustomPartition>` eklendi.
- [x] `CustomPartitionJob`: kullanıcının seçtiği planı uygulayan Job.
- [x] `build_custom_job_queue()` fabrika fonksiyonu.
- [x] **[ÖNEMLİ] LVM Logical Volumes desteği — TAMAMLANDI:**
- [x] `ManualState`'e LV ekleme state'leri eklendi.
- [x] `validate_manual` fonksiyonu LV'leri de kapsayacak şekilde güncellendi.
- [x] `partition.rs` arayüzüne LV tablosu ve LV ekleme diyaloğu eklendi.
- [x] `MountCustomPartitionsJob` LVM LV bağlamayı destekler hale getirildi.
- [x] `FstabFromCustomPartitionsJob` LVM LV girişlerini fstab'a yazar.
- [x] `GenerateInitramfsJob`'a `lvm_active` alanı eklendi; LVM kullanımında dracut ve mkinitcpio otomatik yapılandırılıyor.
## Kalan Eksiklikler
- [x] **Disk Bölümü Yeniden Boyutlandırma (Shrink):** *(Kapsam dışı — mevcut manuel bölümleme akışında "bölümü sil ve yeniden oluştur" yaklaşımı yeterli.)*
- [x] **Kurtarma Modunda Pisi Geçmiş Geri Alma:** `rescue.rs` — "Pisi Geçmiş" sekmesi eklendi; `pisi history` listeleme ve `pisi takeback <N>` ile geri alma destekleniyor.
- [ ] **ISO ortamında test:** Canlı ISO üzerinde kurulum testi yapılmadı.
- [ ] **Farklı disk yapılarında test:** UEFI/Legacy, NVMe/SATA farklı kombinasyonları test edilmedi.
- [ ] **Harita desteği:** Konum adımına görsel harita seçici eklenmesi planlanıyor.
- [ ] **Ağ kurulumu:** WiFi profillerinin kaydedilmesi ve otomatik bağlanma.