Installation aus den Quelldateien

Die Installation aus dem Quellcode ist erforderlich, wenn Sie die neuesten Funktionen nutzen möchten, wenn die vorherige Version veraltet ist, wenn Sie an der Verbesserung von Siril teilnehmen möchten oder nicht alle Abhängigkeiten verwenden möchten.

Beschaffung der Quelldateien

Die Quelldateien werden in einem Git-Repository gespeichert, das Sie beim ersten Mal mit diesem Befehl herunterladen können:

git clone --recurse-submodules https://gitlab.com/free-astro/siril.git

Aktualisieren Sie es regelmäßig durch Eingabe von git pull im Siril-Basisverzeichnis:

git pull
git submodule update --recursive

Abhängigkeiten

Siril ist auf eine Reihe von Bibliotheken angewiesen, von denen die meisten in der Linux-Distribution oder im Paketmanager Ihrer Wahl verfügbar sein sollten. Die Namen der betriebssystemspezifischen Pakete sind in den einzelnen Abschnitten unten aufgeführt. Obligatorische Abhängigkeiten sind:

  • gtk+3 (Bibliothek für die grafische Benutzeroberfläche), mindestens Version 3.20

  • adwaita-icon-theme (Icons) um das "look and feel" der Benutzeroberfläche zu unterstützen.

  • cfitsio (Unterstützung des FITS-Dateiformats).

  • fftw (Bibliothek zur diskreten Fourier Transformation).

  • gsl (The GNU Scientific Library), Version 1 oder 2 beginnend mit Siril 0.9.1 or SVN Revision 1040.

  • OpenCV und ein C++ Compiler für einige Funktionen der Bildbearbeitung.

Bemerkung

Auch wenn Siril seit Version 0.9.9 in der Konsole laufen kann, ist es immer noch gegen die grafischen Bibliotheken gelinkt, so dass Sie immer noch GTK++ benötigen, um es zu kompilieren und auszuführen.

Optionale Abhängigkeiten sind:

  • openmp für Multithreading. Obwohl optional, wird diese Abhängigkeit dringend empfohlen, da die Leistung dadurch wesentlich besser ist. Das Flag dieser Option ist standardmäßig auf true gesetzt. Das heißt, wenn openmp nicht auf Ihrem Computer installiert ist, müssen Sie „-Dopenmp=false“ im Meson-Setup hinzufügen.

  • libraw, libtiff, libjpeg, libpng, libheif für den Im- und Export von RAW-, TIFF-, JPEG-, PNG- und HEIF-Bildern. Die Bibliotheken werden zum Kompilierungszeitpunkt ermittelt.

  • FFMS2 für die native Unterstützung von Videodateien als Bildsequenzen. Es ermöglicht auch die Extraktion von Einzelbildern aus vielen Arten von Videodateien, auch für andere Zwecke als Astronomie. Versionen <2.20 haben einen lästigen Fehler. Es wird empfohlen, die neueste Version zu installieren.

  • ffmpeg (or libav), providing libavformat, libavutil (>= 55.20), libavcodec, libswscale und libswresample für die Unterstützung des Exports von MP4-Sequenzen.

  • gnuplot für die Erzeugung photometrische Grafiken (wird nicht während der Kompilierung benötigt).

  • wcslib für die Verarbeitung des Welt-Koordinatensystems (WCS), Objektnamen und photometrische Farbkalibrierung.

  • libconfig (Structured configuration files support), wird benutzt um die Konfigurationsdateien der Versionen bis 1.0 zu lesen, wird nur noch genutzt um alte Einstellungen zu lesen

  • libjson-glib um auf Updates zu prüfen (nutzlos, wenn Sie eine Nicht-Release-Version bauen).

  • Exiv2 um Metadaten der Bilder zu verwalten.

  • libcurl OR glib-networking mit seinem HTTP-Backend für Online-Operationen wie Prüfung von Updates, Astrometrie und photometrischen Anfragen.

Build-Abhängigkeiten

Für die Installation aus dem Quellcode müssen Sie die Basisentwicklungspakete installieren:

git, autoconf, automake, libtool, intltool, pkg-tools, make, cmake, gcc, g++

Die Compiler gcc und g++ aus dieser Liste können durch clang und clang++ ersetzt werden (wir verwenden sie für die Entwicklung), wahrscheinlich auch durch andere.

The autotools packages (autoconf, automake, probably some others) can be replaced by meson.

Grundsätzlicher Build-Prozess

Siril kann entweder mit autotools oder mit meson kompliert werden.

Meson

Der empfohlene Weg ist es, meson und ninja zu verwenden:

meson setup _build --buildtype release

cd _build
ninja
ninja install

Um einige Abhängigkeiten oder Funktionen zu deaktivieren, verwenden Sie je nach Fall die Meson-Optionen „-Dfeature=false“ oder „-Denable-feature=yes“.

Die folgende Tabelle listet alle konfigurierbaren Optionen auf.

Option

Typ

Wert

Auswahl

Beschreibung

relocatable-bundle

combo

platform-default

[ 'yes', 'no', 'platform-default' ]

bauen mit Ressourcen, die unter demselben Präfix gebündelt werden

openmp

Boolean

true

Unbekannt

bauen mit OpenMP-Support

json_glib

Boolean

true

Unbekannt

build with json glib support

exiv2

Boolean

true

Unbekannt

bauen mit exiv2-Support

libraw

Boolean

true

Unbekannt

bauen mit LibRaw-Support

libtiff

Boolean

true

Unbekannt

bauen mit TIFF-Support

libjpeg

Boolean

true

Unbekannt

bauen mit JPEG-Support

libpng

Boolean

true

Unbekannt

bauen mit PNG-Support

libheif

Boolean

true

Unbekannt

bauen mit HEIF-Support

ffms2

Boolean

true

Unbekannt

bauen mit FFMS2-Support

ffmpeg

Boolean

true

Unbekannt

Bauen mit FFmpeg-Support

enable-libcurl

combo

platform-default

[ 'yes', 'no', 'platform-default' ]

Libcurl an Stelle von GIO verwenden

libconfig

Boolean

false

Unbekannt

build with libconfig support

criterion

Boolean

false

Unbekannt

bauen mit Criterion-Support

wcslib

Boolean

true

Unbekannt

build with WCSLIB support

Autotools

Die Autotools-Methode ist in der Unix-Welt bekannt. Sobald der Quellcode heruntergeladen und die Voraussetzungen installiert wurden, ist die allgemeine Methode zum Erstellen wie folgt:

./autogen.sh
make
make install

Für die letzte Zeile benötigen Sie möglicherweise Superuser-Rechte.

Es kann sein, dass Sie dem Compiler bestimmte Optionen übergeben möchten, z.B. wenn Sie die Optimierung und die Installation in /opt anstelle des Standardverzeichnisses /usr/local wünschen:

CFLAGS='-mtune=native -O3' ./autogen.sh --prefix=/opt

Um Siril zu starten, lautet der Befehlsname siril oder siril-cli.

Installation auf Debian-ähnlichen Systemen

Es kann sein, dass Sie ein .deb-Paket bauen möchten, anstatt eine nicht-paketierte Version zu benutzen. In diesem Fall lesen Sie diese Hilfe. Insbesondere, um die Abhängigkeiten zu installieren, können Sie diesen Befehl verwenden:

apt build-dep siril

Ansonsten finden Sie hier die Liste der Pakete für die aktuelle Version:

  • Für das Build-System benötigte Pakete:

autoconf automake make gcc g++ libtool intltool pkg-config cmake
  • Liste der Pakete für obligatorische Abhängigkeiten:

libfftw3-dev libgsl-dev libcfitsio-dev libgtk-3-dev libopencv-dev
libexiv2-dev
  • Liste der Pakete für optionale Abhängigkeiten:

wcslib-dev libcurl4-gnutls-dev libpng-dev libjpeg-dev libtiff5-dev
libraw-dev gnome-icon-theme libavformat-dev libavutil-dev libavcodec-dev
libswscale-dev libswresample-dev libjson-glib-dev libheif-dev

für die Unterstützung von Videodateien (AVI und andere):

libffms2-dev

Installation auf Arch Linux

Zwei Pakete sind im AUR verfügbar: siril und siril-git. Laden Sie PKGBUILD oder das Repository herunter, installieren Sie die Abhängigkeiten, lassen Sie makepkg laufen, um das Paket zu bauen und pacman -U, um es zu installieren.

Abhängigkeiten (obligatorisch und einige optional):

pacman -S base-devel cmake git intltool gtk3 fftw cfitsio gsl opencv
exiv2 libraw wcslib

Fehler beim Erstellen

Jeder Commit für Siril Git wird automatisch in einer Standard-Build-Umgebung für Linux, Windows und MacOS mithilfe der Gitlab-CI-Infrastruktur erstellt. Dies bedeutet, dass wir sehr zuversichtlich sind, dass der Master-Zweig sowie getaggte Releases erfolgreich erstellt werden, sofern eine korrekt eingerichtete Build-Umgebung mit den erforderlichen installierten Abhängigkeiten vorhanden ist.

Wenn ein Build-Fehler auftritt, deutet dies wahrscheinlich auf ein Problem mit Ihrer Build-Umgebung oder falsch installierte Abhängigkeiten hin. Denken Sie daran, dass viele Distributionen eine separate Installation von Entwicklungspaketen erfordern, die die erforderlichen Header-Dateien enthalten. Überprüfen Sie den CI-Bericht für den Git-Commit, den Sie erstellen möchten. Für den unwahrscheinlichen Fall, dass ein Build-Fehler angezeigt wird, können Sie sicher sein, dass das Team daran arbeitet, das Problem zu beheben. Andernfalls, wenn die CI-Pipeline grüne Häkchen anzeigt, müssen Sie alle Probleme mit Ihrer eigenen Build-Umgebung überprüfen und beheben.

Wenn Sie immer noch der Meinung sind, dass Sie ein Build-Problem gefunden haben, das von der CI-Pipeline nicht gemeldet wurde – beispielsweise wenn Sie auf einer anderen Plattform wie BSD bauen, die die Entwickler nicht regelmäßig verwenden –, können Sie gerne ein Problem melden auf gitlab.

Beachten Sie, dass Probleme nur für den Master-Zweig oder getaggte Releases gemeldet werden sollten. Wenn Sie neue Funktionen in Merge-Requests testen, geben Sie bitte Feedback in den Kommentaren zum entsprechenden Merge-Request.