No description
Find a file
2026-06-13 10:55:39 +02:00
src ISO Downloader with native GUI and checksum verification 2026-06-13 10:55:39 +02:00
.gitignore ISO Downloader with native GUI and checksum verification 2026-06-13 10:55:39 +02:00
CMakeLists.txt ISO Downloader with native GUI and checksum verification 2026-06-13 10:55:39 +02:00
README.md ISO Downloader with native GUI and checksum verification 2026-06-13 10:55:39 +02:00

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:

sudo pacman -S qt6-base cmake gcc

Bauen:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)

Benutzung

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