Files
yali-rs/TODO.md
T
2026-05-22 23:35:27 +03:00

4.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 — state hazır:
    • 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 — gelecek.
    • build_custom_job_queue() fabrika fonksiyonu — gelecek.