EPHEMERIS CORE MANAGER 0.2.1
=============================

Zweck
-----

Der Manager installiert den veröffentlichten Ephemeriden-Rechenkern in der
Programmiersprache, die der Anwender auswählt. Unter Windows ist er ein
eigenständiger nativer Installationsassistent. Er startet keinen lokalen
Webserver und öffnet beim Programmstart keinen Browser.

Der Assistent führt in vier verständlichen Schritten durch:

1. Programmiersprache, Dokumentationssprache und Zielordner auswählen.
2. Benötigten Compiler oder die Laufzeit automatisch finden. Fehlt das
   Programm, bietet der Assistent je nach Sprache die automatische kostenlose
   Installation mit der Windows-Paketverwaltung, die offizielle Downloadseite
   oder die Auswahl eines vorhandenen Programmordners an.
   Fortran wird automatisch über das freie WinLibs-Paket installiert. Es
   enthält GNU Fortran (gfortran), GCC und MinGW-w64 und entspricht der
   Toolchain, mit der der Fortran-Rechenkern unter Windows geprüft wurde.
3. Gemeinsame Planeten- und N16-Daten sowie den lokalen Rechenkern-Test
   auswählen. Die voraussichtliche Testdauer und die mögliche Dauer der
   N16-Erzeugung werden vorher genannt.
4. Eine vollständige Zusammenfassung prüfen und die Installation starten.

Der Anwender muss in der grafischen Oberfläche weder einen Befehl noch einen
„Toolchain“-Pfad eingeben. Der technische Begriff Toolchain bezeichnet
Compiler, Laufzeit und gegebenenfalls weitere Programme, die zum Prüfen des
Quellcodes benötigt werden. Er bleibt nur in der CLI-Dokumentation erhalten.
x64 und ARM64 werden automatisch erkannt. Der Rechenkern wird niemals in den
Ordner der Programmiersprache installiert.
Alle Schaltflächen zeigen beim Verweilen des Mauszeigers einen kurzen
erklärenden Hilfetext.

Prüfkette
---------

1. Das Sprachpaket wird aus einer lokalen Offline-Quelle oder über HTTPS
   bezogen.
2. Der vollständige SHA-256-Wert muss zum Veröffentlichungsmanifest passen.
3. Unsichere ZIP-Pfade, symbolische Links und übergroße Archive werden
   abgelehnt.
4. Pflichtdateien und die sprachrichtige Hilfe müssen vorhanden sein.
5. Der echte Compiler oder die Laufzeit auf dem Zielrechner wird gestartet
   oder bei reinen Entwicklungsumgebungen sicher auf Vorhandensein geprüft.
6. Wo ein belastbarer Befehl hinterlegt ist, folgt zusätzlich ein lokaler
   Kompilier- oder Syntaxtest in einem Wegwerfverzeichnis. Vorher nennt der
   Manager die geschätzte Dauer. Der Anwender kann den Selbsttest starten,
   überspringen oder die Installation abbrechen.
7. Erst danach wird das Paket aktiviert. Die vorige Fassung bleibt für eine
   Rückkehr erhalten.

Beim Überspringen entfallen ausschließlich die optionalen Kompilier- oder
Syntaxbefehle. SHA-256-, Archivpfad-, Pflichtdatei- und Toolchainprüfungen sind
Sicherheitsprüfungen und können nicht übersprungen werden. Im
Installationsnachweis und im Zielsystembericht steht ausdrücklich, ob der
Selbsttest bestanden, übersprungen oder für das Paket nicht vorhanden war.
Die geschätzte Dauer ist ein Erfahrungswert für den ersten Lauf. Rechnerlast,
Virenscanner und die erste Initialisierung einer Toolchain können sie
verlängern. Jeder einzelne Selbsttest wird nach spätestens zehn Minuten
abgebrochen.

Der SHA-256-Wert bindet die Installation an exakt das Quellpaket, das bei der
Freigabe mit 20 astronomischen Referenzzeilen geprüft wurde. Der Manager
wiederholt nicht ungefragt den vollständigen Lauf aller Programmiersprachen.

Gemeinsame Daten
----------------

Planetendaten für 1850-01-01 bis 2150-01-01 werden einmal unter
core-data\planets installiert und von allen Sprachkernen gemeinsam verwendet.
N16 wird nicht als fertige Datentabelle verteilt. Der Manager lädt den
Erzeuger für Betriebssystem und Architektur, prüft dessen SHA-256-Wert und
erzeugt N16 lokal unter core-data\n16.

CLI
---

Ohne Parameter startet unter Windows der native Installationsassistent.

EphemerisCoreManager [gui] [gemeinsame Optionen]
EphemerisCoreManager list [gemeinsame Optionen]
EphemerisCoreManager status [gemeinsame Optionen]
EphemerisCoreManager probe --language ID [--toolchain PFAD]
EphemerisCoreManager install --language ID [--toolchain PFAD] [--skip-self-test]
EphemerisCoreManager verify --language ID
EphemerisCoreManager rollback --language ID
EphemerisCoreManager uninstall --language ID
EphemerisCoreManager planets
EphemerisCoreManager n16 [--start JJJJ-MM-TT] [--stop JJJJ-MM-TT]
EphemerisCoreManager report [--output DATEI]
EphemerisCoreManager update

--root PFAD
    Setzt den vollständig vom Manager verwalteten Datenordner.

--source-root PFAD
    Verwendet eine lokale Offline-Quelle. Darin muss downloads\ liegen.

--locale de|en
    Wählt das deutsche oder englische Sprachpaket.

--portable
    Legt den Datenordner neben dem Programm an.

--language ID
    Wählt die Paket-ID oder den ausgeschriebenen Sprachenname.

--toolchain PFAD
    Gibt eine ausführbare Toolchain-Datei oder deren Ordner an, wenn sie nicht
    über den normalen Suchpfad gefunden wird.

--skip-self-test
    Überspringt bei install den angekündigten optionalen lokalen Kompilier-
    oder Syntaxtest. Die nicht überspringbaren Sicherheits- und
    Strukturprüfungen werden weiterhin ausgeführt. Ohne diese Option nennt die
    CLI vor dem Start die geschätzte Dauer und führt den Selbsttest aus.

--start und --stop
    Legen den N16-Zeitraum fest. Standard und erforderlicher Mindestbereich
    sind 1850-01-01 bis 2150-01-01. Ein früherer Beginn oder ein späteres Ende
    ist zulässig. Ein kürzerer Zeitraum wird vor dem Download zurückgewiesen.

report --output DATEI
    Erzeugt einen Zielsystembericht und eine SHA-256-Datei. Der Bericht
    enthält keine Installations-ID, Benutzernamen, Rechnernamen, verwalteten
    Wurzelpfade oder Toolchainpfade. Linux- und macOS-Anwender können diesen
    Bericht zur späteren Projektprüfung zurückgeben.

--help und -h
    Zeigen die vollständige Kommandozeilenhilfe.

Update und Datenschutz
----------------------

Die höchstens tägliche Updateprüfung sendet nur eine zufällig erzeugte UUID4
als installation_id. Sie enthält keine Hardware-, Konto-, Rechner-, E-Mail-
oder Lizenzdaten. Unter Windows wird sie in einer Datei gespeichert und
benutzerspezifisch in HKCU gespiegelt. Ein Netzfehler startet keine Frist.
Erst der erfolgreiche Nachweis einer neueren Version startet die 90-Tage-
Frist. Paketdownloads enthalten keine Installations-ID.

Amrum Software ist eine Projekt- und Sammelbezeichnung der Softwareangebote
von Jost Jahn.
