ISO Downloader with native GUI and checksum verification
This commit is contained in:
commit
3038fcf94c
12 changed files with 1470 additions and 0 deletions
91
README.md
Normal file
91
README.md
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
# Glorious ISO Downloader
|
||||
|
||||
Ein grafischer ISO-Downloader für Linux-Distributionen auf Basis von **C++ und Qt6**.
|
||||
Das Programm ermittelt automatisch den aktuellen Download-Link der gewählten
|
||||
Distribution und **verifiziert die heruntergeladene Datei anhand ihrer Prüfsumme**.
|
||||
|
||||
## Funktionen
|
||||
|
||||
- **Automatische Link-Auflösung** — keine manuelle Suche nach Mirrors oder
|
||||
Versionsnummern. Das Programm liest Release-Seiten und Verzeichnislisten aus und
|
||||
ermittelt selbstständig die neueste Version.
|
||||
- **Prüfsummen-Verifikation während des Downloads** — der Hash wird im Stream
|
||||
berechnet (MD5, SHA-1, SHA-256, SHA-512). Stimmt er nicht mit der offiziellen
|
||||
Prüfsumme überein, wird die Datei **automatisch verworfen**.
|
||||
- **50 unterstützte Distributionen**, gruppiert nach Familie (siehe unten).
|
||||
- **Sicherheitshinweise** in der Oberfläche:
|
||||
- Warnung bei unverschlüsselten HTTP-Quellen (verhindert keine, aber meldet
|
||||
Manipulationsrisiken; HTTPS→HTTP-Downgrades bei Redirects werden blockiert).
|
||||
- Warnung, wenn ein Projekt nur schwache Hashes (MD5/SHA-1) anbietet.
|
||||
- Warnung, wenn überhaupt keine Prüfsumme verfügbar ist.
|
||||
- **Versions-Fallback** — ist die scheinbar neueste Version noch nicht vollständig
|
||||
veröffentlicht, probiert das Programm automatisch die nächstniedrigere.
|
||||
|
||||
## Unterstützte Distributionen
|
||||
|
||||
| Familie | Distributionen |
|
||||
|---|---|
|
||||
| **Arch** | Arch Linux, Manjaro KDE, CachyOS, EndeavourOS, Artix, Garuda Dr460nized, ArcoLinux¹, BlackArch |
|
||||
| **Debian** | Debian, Kali, ParrotOS, Tails, Devuan, antiX, MX Linux |
|
||||
| **Ubuntu** | Ubuntu, Kubuntu, Xubuntu, Lubuntu, Ubuntu MATE, Mint, Pop!_OS, KDE Neon, Linux Lite, Trisquel |
|
||||
| **Red Hat / Fedora** | Fedora, Rocky, AlmaLinux, CentOS Stream, Qubes OS |
|
||||
| **SUSE / Slackware / Mandriva** | openSUSE Tumbleweed, Slackware, Mageia, PCLinuxOS |
|
||||
| **Unabhängig & Spezial** | Void, NixOS, Gentoo, Alpine, Deepin, Clear Linux¹, Puppy, TinyCore, GoboLinux¹, KaOS, Calculate Linux, Grml, SystemRescue, Proxmox VE, TrueNAS SCALE, Proxmox Backup Server |
|
||||
|
||||
¹ *ArcoLinux* und *Clear Linux* wurden 2025 eingestellt, *GoboLinux* ist seit 2020
|
||||
inaktiv. Die Einträge sind enthalten, aber entsprechend markiert — die automatische
|
||||
Auflösung kann fehlschlagen, da Mirrors abgeschaltet wurden.
|
||||
|
||||
## Sicherheitshinweis
|
||||
|
||||
Eine Prüfsummen-Verifikation schützt vor **defekten oder veränderten Downloads**, aber
|
||||
nicht vor einer Kompromittierung der Bezugsquelle selbst. Für besonders
|
||||
sicherheitskritische Images (z. B. Tails, Qubes OS, Trisquel) solltest du zusätzlich
|
||||
die **GPG-Signatur** der Prüfsummendatei mit dem offiziellen Schlüssel des Projekts
|
||||
prüfen. Das Programm weist in diesen Fällen darauf hin.
|
||||
|
||||
## Bauen
|
||||
|
||||
Voraussetzungen: **Qt 6** (Widgets, Network), **CMake ≥ 3.21**, ein C++20-Compiler.
|
||||
|
||||
Unter Arch Linux:
|
||||
|
||||
```bash
|
||||
sudo pacman -S qt6-base cmake gcc
|
||||
```
|
||||
|
||||
Bauen:
|
||||
|
||||
```bash
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build build -j$(nproc)
|
||||
```
|
||||
|
||||
## Benutzung
|
||||
|
||||
```bash
|
||||
./build/glorious-iso-dl
|
||||
```
|
||||
|
||||
1. Distribution im Baum links auswählen.
|
||||
2. **„Aktuellen Download-Link ermitteln"** klicken — Version, URL und erwartete
|
||||
Prüfsumme werden angezeigt.
|
||||
3. Zielordner wählen und **„Herunterladen & verifizieren"** klicken.
|
||||
4. Nach Abschluss meldet das Programm, ob die Prüfsumme stimmt.
|
||||
|
||||
## Projektstruktur
|
||||
|
||||
| Datei | Inhalt |
|
||||
|---|---|
|
||||
| `src/Distro.h` | Datenmodell für die deklarativen Auflösungs-Rezepte |
|
||||
| `src/DistroRegistry.cpp` | Definitionen aller unterstützten Distributionen |
|
||||
| `src/Resolver.{h,cpp}` | Dreistufige Link-Auflösung (Version → Seite → Prüfsumme) |
|
||||
| `src/DownloadManager.{h,cpp}` | Download mit Streaming-Hashprüfung |
|
||||
| `src/MainWindow.{h,cpp}` | Grafische Oberfläche |
|
||||
| `src/main.cpp` | Einstiegspunkt |
|
||||
|
||||
## Wartung
|
||||
|
||||
Ändert ein Projekt sein URL-Schema oder seine Verzeichnisstruktur, muss der
|
||||
betreffende Eintrag in `src/DistroRegistry.cpp` angepasst werden. Jeder Eintrag
|
||||
ist deklarativ aufgebaut; das Format ist in `src/Distro.h` dokumentiert.
|
||||
Loading…
Add table
Add a link
Reference in a new issue