Portierung der Legacy-Astrologie-Software AstroUnivers v0.04Beta (1996) aus dem
Verzeichnis legacy/ (16-bit Borland C++ / Windows) nach C++20/Qt6
Cross-Platform-Architektur.
- Präzise Berechnungen - Swiss Ephemeris (eingebettet, Cross-Platform)
- Cross-Platform - Linux, macOS, Windows
- Legacy-Kompatibel - Liest AstroUnivers .dat Dateien
- Open Source - GPL v2
Ubuntu/Debian:
sudo apt-get install build-essential cmake git qt6-base-dev qt6-tools-devmacOS:
xcode-select --install # Xcode Command Line Tools (clang++)
brew install cmake qt@6Windows:
- Visual Studio 2022 mit C++ Desktop Development (MSVC) oder Qt 6 mit MinGW
- CMake (z.B.
winget install Kitware.CMake) - Qt6 Installer: https://www.qt.io/download-qt-installer (Beispielkonfiguration mit MinGW siehe
build_windows_release.bat)
cd astrouni2026
mkdir build && cd build
cmake ..
cmake --build . -j$(nproc)Für fertige Releases gibt es drei Skripte im Projektwurzelverzeichnis.
cd astrouni
bash build_linux_release.shFür maximale Kompatibilität (glibc 2.31, Ubuntu 20.04) kann der Linux-Release auch Docker-basiert gebaut werden:
cd astrouni
bash build_linux_release_docker_ubuntu2004.sh(optional, falls das Docker-Image bereits gebaut wurde: bash build_linux_release_docker_ubuntu2004.sh --skip-build)
Linux-Kompatibilität (Binary-Release):
- Architektur: x86_64
- glibc: mindestens 2.31 (Release-Build-Baseline: Ubuntu 20.04)
- Hinweis: Das Release bündelt Qt-Libs und Qt-Plugins (u.a.
xcb) inlib/undplugins/.
Typische Distributionen/Versionen mit glibc ≥ 2.31:
- Ubuntu: 20.04, 22.04, 24.04
- Debian: 11 (bullseye), 12 (bookworm)
- Linux Mint: 20.x, 21.x
- Pop!_OS: 20.04, 22.04
- Fedora: 34+
- Arch/Manjaro: Rolling Releases
- RHEL/Rocky/Alma: 9+
Das Skript:
- prüft/ installiert Abhängigkeiten (über
apt, falls vorhanden) - baut
astrouni2026im Verzeichnisastrouni2026/build-linux-release - erstellt ein Minimal-Release in
astrouni2026/dist/linuxmit:astrouni2026(Binary)data/astroorg.dat,data/astroger.dat,data/europa.dat(Orte)data/default.dat(Standard-Orben)resources/(Icons etc., falls vorhanden)
- erzeugt zusätzlich (falls
zipinstalliert ist) ein Archivastrouni2026/dist/astrouni2026-linux-release.zip
Start des Releases:
cd astrouni2026/dist/linux
./run_astrouni2026.shWarum run_astrouni2026.sh:
- Start unabhängig vom aktuellen Working Directory (Pfadauflösung immer relativ zum Programmverzeichnis)
- Setzt
LD_LIBRARY_PATHund Qt-Plugin-Pfade auf die mitgeliefertenlib/undplugins/Ordner
Alternativ (falls das System bereits passende Qt6-Libs bereitstellt oder RPATH ausreicht):
cd astrouni2026/dist/linux
./astrouni2026cd astrouni
bash build_macos_release.shDas Skript:
- prüft Abhängigkeiten (Xcode Command Line Tools, CMake, Qt6 über Homebrew)
- baut
astrouni2026im Verzeichnisastrouni2026/build-macos-release - erstellt ein Minimal-Release in
astrouni2026/dist/macosmit denselben Minimaldaten wie unter Linux (astroorg.dat,astroger.dat,europa.dat,default.datundresources/)
Start des Releases (Terminal):
cd astrouni2026/dist/macos
./astrouni2026Systemanforderung: Windows 10 oder neuer erforderlich.
cd astrouni
build_windows_release.batDas Skript:
- prüft Abhängigkeiten (CMake, C++-Compiler, Qt6) und gibt bei Bedarf Download-Links und Beispielkonfigurationen aus
- baut
astrouni2026.exeim Verzeichnisastrouni2026/build-windows-release - erstellt ein Minimal-Release in
astrouni2026/dist/windowsmit:astrouni2026.exedata/astroorg.dat,data/astroger.dat,data/europa.dat,data/default.datresources\(falls vorhanden)
- erzeugt zusätzlich (falls PowerShell verfügbar ist) ein Archiv
astrouni2026\dist\astrouni2026-windows-release.zip
Wichtig (Windows / Qt + MinGW):
-
Vor dem Aufruf des Skripts müssen die Qt-Umgebungsvariablen gesetzt sein (entweder in der Shell oder über die Default-Logik im Skript):
rem Beispiel (an eigene Installation anpassen): set Qt6_DIR=C:\Qt\6.10.1\mingw_64 set PATH=C:\Qt\Tools\mingw1310_64\bin;%PATH%
-
Im Batch-Skript ist ein entsprechender Beispiel-Schnipsel kommentiert; dort ggf. Version/Pfad an die eigene Qt-Installation anpassen.
Start des Releases:
astrouni2026\dist\windows\astrouni2026.exeastroorg.dat,astroger.dat,europa.dat
Orte-Datenbanken. Mindestens eine dieser Dateien sollte vorhanden sein, empfohlen sind alle drei.default.dat
Standard-Orben und Voreinstellungen für Aspekte.
Ohne diese Dateien startet das Programm zwar, es fehlen dann aber Ortsdaten bzw. sinnvolle Orben-Vorgaben.
Weitere .dat-Dateien (z.B. astronam.dat, astroini.dat, astrorad.dat,
astronot.dat) sind optional und werden bei Bedarf neu angelegt.
Hinweis zur Weiterverwendung bestehender Daten:
- Vorhandene
.dat-Dateien aus der Legacy-Installation (AstroUnivers v0.04Beta) können weiterverwendet werden, indem sie in das Verzeichnisastrouni2026/data/kopiert werden.
Für die originalgetreue Darstellung der Astrologie-Symbole (Planeten, Sternzeichen, Aspekte) kann der AstroUniverse-Font installiert werden:
- Die Font-Datei
asu_____.ttfbefindet sich unterresources/fonts/ - Installation:
- Windows: Rechtsklick auf die Datei → "Installieren" oder "Für alle Benutzer installieren"
- Linux: Kopieren nach
~/.local/share/fonts/undfc-cache -fvausführen - macOS: Doppelklick auf die Datei → "Font installieren"
Wenn der Font nicht installiert ist, verwendet das Programm automatisch Unicode-Symbole als Fallback (☉☽☿♀♂♃♄ etc.), die auf allen modernen Systemen verfügbar sind.
cd astrouni2026/build
ctest --output-on-failure./astrouni2026 # Linux/macOS
astrouni2026.exe # Windowsastrouni2026/
├── CMakeLists.txt # CMake Build-Konfiguration
├── src/
│ ├── main.cpp # Entry Point
│ ├── core/ # Berechnungs-Engine
│ │ ├── constants.h # Konstanten
│ │ ├── data_types.h # RADIX, ORTE, AU_INIT
│ │ ├── calculations.h # Mathematik
│ │ ├── chart_calc.h # Horoskop-Berechnung
│ │ ├── transit_calc.h # Transit-Berechnung
│ │ └── swiss_eph.h # Swiss Ephemeris Wrapper
│ ├── data/ # Daten-I/O
│ │ ├── legacy_io.h # .dat Dateien
│ │ ├── orte_db.h # Orte-Datenbank
│ │ └── person_db.h # Personen-Datenbank
│ └── gui/ # Qt6 GUI
│ ├── main_window.h
│ ├── radix_window.h
│ ├── chart_widget.h
│ └── dialogs/ # Dialoge
├── swisseph/ # Swiss Ephemeris (eingebettet)
│ ├── src/ # Quellcode (Cross-Platform)
│ └── ephe/ # Ephemeriden-Dateien
├── data/ # Legacy .dat Dateien
├── tests/ # Unit Tests
└── docs/ # Dokumentation
#include "core/swiss_eph.h"
#include "core/chart_calc.h"
#include "core/calculations.h"
using namespace astro;
// Swiss Ephemeris initialisieren
swissEph().setEphePath("swisseph/ephe");
// Radix-Daten vorbereiten
Radix radix;
radix.rFix.vorname = "Max";
radix.rFix.name = "Mustermann";
radix.rFix.tag = 15;
radix.rFix.monat = 6;
radix.rFix.jahr = 1990;
radix.rFix.zeit = 14.5; // 14:30
radix.rFix.breite = 52.52; // Berlin
radix.rFix.laenge = 13.40;
radix.rFix.zone = 1.0; // MEZ
radix.hausSys = TYP_PLACIDUS;
// Chart berechnen
ChartCalc::calculate(radix);
// Planeten ausgeben
for (int i = 0; i < radix.anzahlPlanet; ++i) {
QString pos = Calculations::degToString(radix.planet[i], true, true);
qDebug() << "Planet" << i << ":" << pos;
}- C++20 - Modern C++ Standard
- Qt6 ≥ 6.2 - GUI Framework (Cross-Platform)
- CMake 3.16+ - Build System
- Swiss Ephemeris 2.10 - Eingebettet (keine externe Abhängigkeit)
GNU General Public License v2.0
AstroUniverse ist freie Software unter der GPL v2 Lizenz.
- Swiss Ephemeris - GPL v2 / LGPL (Astrodienst AG)
- Qt6 - LGPL v3 (The Qt Company)
- GPL v2 oder LGPL für Open Source
- Kommerzielle Lizenz verfügbar (~CHF 750)
- Siehe: https://www.astro.com/swisseph/
- GCC 11+ oder Clang 15+ oder MSVC 2022 (C++20)
- CMake 3.16+
- Qt6 ≥ 6.2
cd astrouni2026
# Debug-Build
cmake -DCMAKE_BUILD_TYPE=Debug -B build-debug
cmake --build build-debug
# Release-Build (optimiert)
cmake -DCMAKE_BUILD_TYPE=Release -B build
cmake --build build
# Ohne Tests
cmake -DBUILD_TESTS=OFF -B build- Fork das Repository
- Feature-Branch erstellen (
git checkout -b feature/amazing-feature) - Änderungen committen (
git commit -m 'Add amazing feature') - Branch pushen (
git push origin feature/amazing-feature) - Pull Request öffnen
- Projekt: AstroUniverse
- Status: Qt6 GUI in Entwicklung
- Version: 2026.1.0
- Original AstroUnivers v0.04Beta: Legacy Windows-Software (16-bit Borland C++)
- Swiss Ephemeris: Astrodienst Zürich (https://www.astro.com/swisseph/)
- Portierung: Modern C++20 mit Qt6
Stand: Dezember 2025