Files
yali-rs/TODO.md
T
2026-06-01 00:32:03 +03:00

5.7 KiB
Raw Blame History

🛠 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ı

  • Proje iskeletinin oluşturulması (egui + eframe)
  • InstallerStep trait yapısının kurulması
  • Global State yönetimi (Dil, kullanıcı, disk bilgileri)
  • i18n (Çoklu Dil) desteğinin entegre edilmesi
  • Navigasyon sistemi (Geri/İleri/İptal butonları yönetimi)

2. Kurulum Modülleri (Calamares Benzeri)

  • Hoşgeldiniz (Welcome): Sistem gereksinim kontrolü ve dil seçimi.
  • Konum (Location): Bölge ve zaman dilimi seçimi (Harita desteği eklenecek).
  • Klavye (Keyboard): Klavye düzeni seçimi ve test alanı.
  • Bölümleme (Partition):
    • Disklerin listelenmesi (sysinfo/block-utils).
    • Otomatik bölümleme (Tüm diski sil).
    • Manuel bölümleme (GParted/KPMCore benzeri yapı).
      • Mevcut bölümleri tablo olarak göster.
      • Bölüm silme / oluşturma (diyalog penceresi).
      • Bağlama noktası (mountpoint) ve dosya sistemi seçimi.
      • EFI, swap, kök (/) bölümlerinin manuel atanması.
      • Değişiklik planı gösterimi (özet tablo).
      • GlobalState'e custom_partitions: Vec<CustomPartition> eklenmesi.
      • Yeniden boyutlandırma (mevcut bölümleri koruyarak) — gelecek.
  • Kullanıcılar (Users): Kullanıcı adı, parola ve hostname ayarları.
  • Özet (Summary): Yapılacak işlemlerin son kontrolü.
  • Kurulum (Execution): Gerçek işlemlerin (rsync, chroot, grub) yapıldığı ekran.
  • Sonuç (Finish): Yeniden başlatma veya masaüstüne dönme.

3. Sistem Arka Plan İşlemleri (Job Queue)

  • Disklerin formatlanması (mkfs.ext4, mkswap vb.).
  • Sistem dosyalarının kopyalanması (rsync veya squashfs açma).
  • Chroot içine girerek yapılandırma yapılması.
  • Bootloader (GRUB) kurulumu.
  • COMAR üzerinden servislerin ve tetikleyicilerin çalıştırılması.

4. Görsel ve Kullanıcı Deneyimi (UX/UI)

  • PisiLinux temasına uygun egui stillerinin uygulanması.
  • Kurulum sırasında slayt gösterisi (Slideshow).
  • Slayt gösterisi öncelikle ortak slaytları göstermeli, sonra masaüstü ortamına özel slaytları göstermeli.
  • ISO hangi masaüstü ortamını içeriyorsa onun slaytı gösterilmeli.
  • Hata yakalama ve kullanıcıya bildirme ekranları.

5. Test ve Dağıtım

  • --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.
  • 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.

  • [KRİTİK] arch-chroot bağımlılığını kaldır:
    • MountBindJob eklendi: /proc, /sys, /dev, /dev/pts bind mount'ları yapılıyor.
    • UnmountBindJob eklendi: kurulum sonunda bind mount'lar temizleniyor.
    • Tüm run_cmd("arch-chroot", ...) çağrıları run_chroot(...) helper ile değiştirildi.
    • Job Queue'ya MountBindJob başına, UnmountBindJob sonuna eklendi.
  • [KRİTİK] initramfs oluşturma adımı:
    • GenerateInitramfsJob eklendi: önce dracut, hata olursa mkinitcpio deneniyor.
    • GRUB kurulumundan önce Job Queue'ya eklendi.
  • [ÖNEMLİ] Kaynak dizin hardcode — dinamik hale getirildi:
    • detect_source_dir() fonksiyonu yazıldı (birden fazla aday dizin deneniyor).
    • build_full_job_queue() içinde otomatik kullanılıyor.
  • [ÖNEMLİ] GRUB kurulumu chroot içine taşındı:
    • grub-install artık chroot içinde çalışıyor (hem UEFI hem BIOS modu).
    • grub-mkconfig de chroot içinde çalışıyor.
  • [ÖNEMLİ] Lokalizasyon anahtarları güncellendi:
    • Yeni job isimleri (mount_bind, umount_bind, initramfs, bootloader) eklendi.
    • Manuel bölümleme UI anahtarları eklendi (en.toml + tr.toml).
  • [ÖNEMLİ] Manuel bölümleme için Job desteği — TAMAMLANDI:
    • CustomPartition, FsType tipleri installer.rs'e eklendi.
    • GlobalState'e custom_partitions: Vec<CustomPartition> eklendi.
    • CustomPartitionJob: kullanıcının seçtiği planı uygulayan Job.
    • build_custom_job_queue() fabrika fonksiyonu.
  • [ÖNEMLİ] LVM Logical Volumes desteği — TAMAMLANDI:
    • ManualState'e LV ekleme state'leri eklendi.
    • validate_manual fonksiyonu LV'leri de kapsayacak şekilde güncellendi.
    • partition.rs arayüzüne LV tablosu ve LV ekleme diyaloğu eklendi.
    • MountCustomPartitionsJob LVM LV bağlamayı destekler hale getirildi.
    • FstabFromCustomPartitionsJob LVM LV girişlerini fstab'a yazar.
    • GenerateInitramfsJob'a lvm_active alanı eklendi; LVM kullanımında dracut ve mkinitcpio otomatik yapılandırılıyor.

Kalan Eksiklikler

  • Disk Bölümü Yeniden Boyutlandırma (Shrink): (Kapsam notu: ntfsresize/resize2fs entegrasyonu disk I/O riskleri taşıdığından, mevcut manuel bölümleme akışında "bölümü sil ve yeniden oluştur" yaklaşımı yeterli; ayrıca calamares da aynı yolu izler.)
  • Kurtarma Modunda Pisi Geçmiş Geri Alma: rescue.rs güncellendi — "Pisi Geçmiş" sekmesi eklendi; pisi history listeleme ve pisi takeback <N> ile geri alma destekleniyor.