forked from pisilinux-rs/yali-rs
4.7 KiB
4.7 KiB
🛠 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)
InstallerSteptrait 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ı (
rsyncveyasquashfsaç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-chrootbağımlılığını kaldır:MountBindJobeklendi:/proc,/sys,/dev,/dev/ptsbind mount'ları yapılıyor.UnmountBindJobeklendi: 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
MountBindJobbaşına,UnmountBindJobsonuna eklendi.
- [KRİTİK] initramfs oluşturma adımı:
GenerateInitramfsJobeklendi: öncedracut, hata olursamkinitcpiodeneniyor.- 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-installartık chroot içinde çalışıyor (hem UEFI hem BIOS modu).grub-mkconfigde 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,FsTypetipleriinstaller.rs'e eklendi.GlobalState'ecustom_partitions: Vec<CustomPartition>eklendi.CustomPartitionJob: kullanıcının seçtiği planı uygulayan Job — gelecek.build_custom_job_queue()fabrika fonksiyonu — gelecek.