mirror of
https://gitlab.com/erkanisik/yali-rs.git
synced 2026-07-31 03:09:00 +00:00
107 lines
6.8 KiB
Markdown
107 lines
6.8 KiB
Markdown
# 🛠 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.
|