chore: add English/Turkish changelog cross-links

This commit is contained in:
Erkan IŞIK
2026-06-25 01:33:51 +03:00
parent 7f94c8c0cc
commit 71e2ab3829
14 changed files with 694 additions and 120 deletions
+112
View File
@@ -0,0 +1,112 @@
# YALI (Yet Another Linux Installer) — Rust / egui
A rewritten **Pisi GNU/Linux** installation tool in Rust and egui. YALI installs the system from the live environment, installs packages, and performs basic configuration. It is a modern, fast, and maintainable rewrite of the original Python/Qt version.
## Features
- **10-step installation wizard**: Welcome → Location → Keyboard → Network → Disk Partitioning → Users → Bootloader → Summary → Installation → Finish
- **Two modes**: Graphical interface (default) and automatic installation with answer file (`--auto-install answer.toml`)
- **Demo mode**: Skips system checks, simulates installation (`--demo`)
- **Disk partitioning**: Automatic (GPT/MBR) or manual, LVM and LUKS encryption support
- **Network configuration**: WiFi scanning (nmcli), proxy settings
- **Bootloader**: GRUB device/password/timeout settings, kernel parameters
- **Rescue mode**: Chroot, GRUB reinstallation, Pisi rollback
- **OEM mode**: Predefined settings for manufacturer pre-installation
- **Internationalization**: Turkish and English (with rust-i18n via TOML locale files)
- **Branding system**: Runtime-loadable `branding.toml` for logo, slides, color settings
- **Theme**: Dark/light theme, atomic color management, custom gradient buttons
- **Async job queue**: All installation steps run in separate `tokio` runtime, UI updated via `mpsc` channel
- **System checks**: 8 pre-checks including RAM, disk space, internet, UEFI, CPU, NVMe
- **Slideshow**: Custom branded slides for 9 desktop environments
- **Demo session cleanup**: Removes live environment artifacts, adds production repository
## Usage
```bash
# Normal installation (requires root)
sudo cargo run --release
# Demo mode (no root required)
cargo run --release -- --demo
# Automatic installation (with answer file)
sudo cargo run --release -- --auto-install answer.toml
```
## Project Structure
```
├── src/
│ ├── main.rs # Entry point, eframe App, GUI layout
│ ├── installer.rs # InstallerStep trait, GlobalState, WelcomeStep
│ ├── funct.rs # Shared UI helpers (form fields, language selector)
│ ├── branding.rs # Branding.toml loader (logo, slides, theme, OEM)
│ ├── ui/
│ │ ├── theme.rs # Colors, fonts, Visuals, section_heading, error/warning/success boxes
│ │ ├── buttons.rs # Gradient buttons (primary, secondary, danger, etc.)
│ │ ├── combobox.rs # ComboBox helpers (show_combo_box, selectable_value)
│ │ ├── combobox_stil.rs # ComboBox visual constants (weak_bg, border, text colors)
│ │ ├── slideshow.rs # Auto-advancing slideshow
│ │ └── error_screen.rs # Error screen (log viewer, copy, retry)
│ ├── steps/
│ │ ├── location.rs # Location/timezone + date/time
│ │ ├── license.rs # License agreement
│ │ ├── keyboard.rs # Keyboard layout/variant selection
│ │ ├── network.rs # Network configuration (WiFi, proxy)
│ │ ├── partition.rs # Disk partitioning (automatic + manual + LVM)
│ │ ├── users.rs # User account creation
│ │ ├── bootloader.rs # GRUB configuration
│ │ ├── summary.rs # Installation summary
│ │ ├── execution.rs # Installation execution (progress bar, log)
│ │ ├── finish.rs # Completion screen
│ │ ├── netinstall.rs # Extra package group selection
│ │ └── rescue.rs # Rescue mode (chroot, GRUB, Pisi takeback)
│ ├── jobs/mod.rs # Async job queue and all installation jobs
│ └── autoinstall/
│ ├── mod.rs # Answer file loading and state application
│ └── checker.rs # System pre-checks
├── locales/
│ ├── tr.toml # Turkish translations
│ └── en.toml # English translations
├── assets/
│ ├── icons/ # UI icons (YALI_icon_LIGHT.svg, language-icon.svg, etc.)
│ ├── flags/ # Country flags (~250 SVG)
│ └── *.png # Slide and logo images
├── branding.toml # Default branding configuration
├── branding_en.toml # English branding
├── branding_tr.toml # Turkish branding
└── answer-example.toml # Example answer file
```
## Installation Workflow
1. **Welcome** — Language selection, system checks, rescue mode
2. **Location / Time** — Timezone selection (region/area dual ComboBox), GeoIP, NTP or manual date/time
3. **Keyboard** — Layout/variant selection, search, live preview (setxkbmap)
4. **Network** — WiFi scanning, connection, proxy
5. **Disk Partitioning** — Automatic (guided) or manual, LVM, LUKS
6. **Users** — Account creation, password strength indicator, root password, autologin
7. **Bootloader** — GRUB device, timeout, password, kernel parameters
8. **Summary** — Review all selections
9. **Installation** — Slideshow + progress bar + live log
10. **Finish** — Successful installation, reboot or return to live desktop
## Dependencies
| Dependency | Version | Purpose |
|---|---|---|
| `eframe` | 0.27 (wgpu) | egui framework, WebGPU backend |
| `egui_extras` | 0.27 (image, file, svg) | Image loading, file dialogs, SVG |
| `image` | 0.24 | PNG decoding |
| `serde` / `toml` | 1.0 / 0.8 | Branding and answer file serialization |
| `zbus` | 4.0 | D-Bus communication (COMAR) |
| `tokio` | 1.0 (full) | Async job queue |
| `sysinfo` | 0.30 | System information (RAM, disk, OS) |
| `rust-i18n` | 3.1 | Internationalization |
| `chrono` | 0.4 | Date/time operations |
## License
GNU General Public License v3.0
This project is developed by the Pisi GNU/Linux team.