Installation depuis les sources
L'installation à partir du code source est nécessaire si vous souhaitez bénéficier des dernières fonctionnalités, si la version précédente est devenue obsolète, si vous souhaitez participer à l'amélioration de Siril ou ne pas utiliser toutes les dépendances.
Récupérer les sources
Les sources sont stockées sur un dépôt git, que vous pouvez télécharger avec cette commande la première fois :
git clone --recurse-submodules https://gitlab.com/free-astro/siril.git
Et mettez-le à jour les fois suivantes à l'aide de ces commandes dans le répertoire de base de siril :
git pull
git submodule update --recursive
Dépendances
Siril dépend d'un certain nombre de bibliothèques, dont la plupart devraient être disponibles dans votre distribution Linux ou dans le gestionnaire de paquets de votre choix. Les noms des paquets spécifiques aux systèmes d'exploitation sont indiqués dans chaque section ci-dessous. Les dépendances obligatoires sont :
gtk+3 (bibliothèque d'interface utilisateur graphique), au moins la version 3.20.
adwaita-icon-theme (icônes) pour supporter l'apparence de gtk.
cfitsio (support des images FITS).
fftw (Bibliothèque de Transformée de Fourier Discrète).
gsl (The GNU Scientific Library), version 1 ou 2 à partir de la version 0.9.1 ou révision SVN 1040.
OpenCV et un compilateur C++ pour certaines opérations sur les images.
Little CMS un système de gestion des couleurs open source
wcslib pour la gestion du système de coordonnées mondiales, les annotations et l'étalonnage photométrique des couleurs.
gtksourceview4 for multiline text editing. GtkSourceView adds support for syntax highlighting, undo/redo, file loading and saving, search and replace, a completion system, printing, displaying line numbers, and other features typical of a source code editor.
Note
Même si Siril peut fonctionner en console depuis la version 0.9.9, il est toujours lié aux bibliothèques graphiques, donc vous avez toujours besoin de GTK+ pour le compiler et le faire fonctionner.
Les dépendances optionnelles sont :
openmp pour le multithreading. Bien qu'optionnelle, cette dépendance est fortement recommandée car les performances seront bien meilleures. Le drapeau de cette option est mis à true par défaut. Cela signifie que si openmp n'est pas installé sur votre machine, vous devez ajouter
-Dopenmp=false
dans la configuration de meson.libraw, libtiff, libXISF <https://gitea.nouspiro.space/nou/libXISF>, libjpeg, libjxl, libpng, libheif pour l'importation et l'exportation d'images RAW, TIFF, XISF, JPEG, JPEG XL, PNG et HEIF. Les bibliothèques sont détectées lors de la compilation.
libraw, libXISF, libheif pour l'importation RAW, XISF, HEIF et AVIF. La bibliothèque est détectée à la compilation.
FFMS2 pour le support natif des films en tant que séquences d'images. Il permet également d'extraire des images de nombreux types de films, à d'autres fins que l'astronomie. Les versions < 2.20 ont un bug gênant. Il est recommandé d'installer la dernière version.
ffmpeg (ou libav), fournissant libavformat, libavutil (>= 55.20), libavcodec, libswscale et libswresample pour l'exportation de séquences mp4.
wcslib pour la gestion du système de coordonnées mondiales, les annotations et l'étalonnage photométrique des couleurs.
Exiv2 pour gérer les métadonnées des images.
libcurl pour les requêtes d'astrométrie et de photométrie.
libgit2 pour maintenir un clone local du dépôt siril-scripts.
Dépendances de la compilation
Pour l'installer à partir du code source, vous devrez installer les paquets de développement de base :
git, autoconf, automake, libtool, intltool, pkg-tools, make, cmake, gcc, g++
Les compilateurs gcc et g++ de cette liste peuvent être remplacés par clang et clang++ (nous les utilisons pour le développement), et probablement d'autres aussi.
Les packages autotools (autoconf, automake, probablement d'autres) peuvent être remplacés par meson.
Processus de compilation général
Siril peut être compilé à l'aide d'autotools ou de meson.
Meson
La méthode recommandée est d'utiliser meson et ninja :
meson setup _build --buildtype release
cd _build
ninja
ninja install
Pour désactiver certaines dépendances ou fonctionnalités, utilisez les options meson -Dfeature=false
ou -Denable-feature=yes
en fonction des cas.
Le tableau ci-dessous énumère toutes les options configurables.
Option |
Type |
Valeur |
Choix |
Description |
---|---|---|---|---|
relocatable-bundle |
combo |
platform-default |
[ 'yes', 'no', 'platform-default' ] |
construire avec les ressources considérées comme regroupées sous le même préfixe |
openmp |
booléen |
vrai |
N/A |
construire avec le support OpenMP |
exiv2 |
booléen |
vrai |
N/A |
construire avec le support exiv2 |
libgit2 |
booléen |
vrai |
N/A |
construire avec l'intégration de git libgit2 |
libraw |
booléen |
vrai |
N/A |
construire avec le support LibRaw |
libtiff |
booléen |
vrai |
N/A |
construire avec le support TIFF |
libjpeg |
booléen |
vrai |
N/A |
construire avec le support JPEG |
libjxl |
booléen |
vrai |
N/A |
avec prise en charge de JPEG XL |
libpng |
booléen |
vrai |
N/A |
construire avec le support PNG |
libheif |
booléen |
vrai |
N/A |
construire avec le support HEIF |
libXISF |
booléen |
vrai |
N/A |
construire avec le support XISF |
ffms2 |
booléen |
vrai |
N/A |
construire avec le support FFMS2 |
ffmpeg |
booléen |
vrai |
N/A |
construire avec le support FFmpeg |
libcurl |
booléen |
vrai |
N/A |
Utiliser libcurl pour l'accès au web |
criterion |
booléen |
faux |
N/A |
construire avec le support criterion |
flatpak-id |
chaîne de caractères |
N/A |
set by flatpak-builder if building a flatpak |
Autotools
La méthode autotools est bien connue dans le monde unix, une fois que les sources ont été téléchargées et que les prérequis ont été installés, la façon générale de compiler le logiciel est la suivante :
./autogen.sh
make
make install
éventuellement avec des privilèges de superutilisateur pour la dernière ligne.
Vous pouvez vouloir passer des options spécifiques au compilateur, par exemple si vous voulez que l'optimisation et l'installation se fassent dans /opt
au lieu du /usr/local
par défaut :
CFLAGS='-mtune=native -O3' ./autogen.sh --prefix=/opt
Pour lancer Siril, le nom de la commande est siril ou siril-cli.
Installation sur les systèmes de type Debian
Vous pouvez vouloir construire un paquet .deb
au lieu d'utiliser une version non empaquetée, dans ce cas voir cette help. En particulier, pour installer des dépendances, vous pouvez utiliser la commande :
apt build-dep siril
Sinon, voici la liste des paquets pour la version actuelle :
Paquets nécessaires au système de compilation :
autoconf automake make gcc g++ libtool intltool pkg-config cmake
Liste des paquets pour les dépendances obligatoires :
libgtk-3-dev libcfitsio-dev libfftw3-dev libgsl-dev libopencv-dev
liblcms2-dev wcslib-dev libgtksourceview-4-dev
Liste des paquets pour les dépendances optionnelles :
libcurl4-gnutls-dev libpng-dev libjpeg-dev libtiff5-dev
libraw-dev gnome-icon-theme libavformat-dev libavutil-dev libavcodec-dev
libswscale-dev libswresample-dev libgit2-dev libheif-dev
libexiv2-dev libjxl-dev
pour la prise en charge des films (AVI et autres) :
libffms2-dev
Installation sous Arch Linux
Deux paquets sont disponibles sur AUR : siril et siril-git
. Téléchargez le PKGBUILD
ou le dépôt, installez les dépendances, exécutez makepkg pour construire le paquet et pacman -U
pour l'installer.
Dépendances (obligatoires et quelques unes optionnelles) :
pacman -S base-devel cmake git intltool gtk3 fftw cfitsio gsl opencv
exiv2 libraw wcslib gtksourceview4
version de LittleCMS
Siril nécessite lcms2 >= 2.14 pour être compilé. Cette version est nécessaire afin d'assurer l'optimisation du code de gestion des couleurs. Une version suffisante est disponible dans les tests Debian et Ubuntu 23.04, mais la version actuelle d'Ubuntu LTS fournit une version plus ancienne, et d'autres distributions de système d'exploitation peuvent également le faire. Si vous vous trouvez sur un système d'exploitation plus ancien qui ne fournit pas lcms2 >= 2.14, vous pouvez soit installer manuellement les packages à partir d'une version plus récente de votre distribution, soit créer et installer lcms2 à partir du code source. La source lcms2 est disponible sur leur dépôt git.
Échecs de compilation
Chaque commit sur le git de Siril est automatiquement construit dans un environnement de construction standard pour Linux, Windows et MacOS en utilisant l'infrastructure gitlab CI. Cela signifie que nous avons une grande confiance dans le fait que la branche master, ainsi que les versions taguées, se construiront avec succès dans un environnement de construction correctement configuré avec les dépendances nécessaires installées.
Si vous rencontrez un échec de compilation, il est probable que cela indique un problème avec votre environnement de construction ou des dépendances mal installées - rappelez-vous que de nombreuses distributions nécessitent l'installation séparée de paquets de développement qui contiennent les fichiers d'en-tête nécessaires. Vérifiez le rapport du CI pour le commit git que vous essayez de compiler. Dans le cas improbable où un échec de compilation est affiché, soyez assuré que l'équipe travaille à le corriger. Dans le cas contraire, si le pipeline CI affiche des coches vertes, vous devrez examiner et corriger les problèmes dans votre propre environnement de construction.
Si vous pensez toujours avoir trouvé un problème de compilation qui n'a pas été signalé par le pipeline CI - par exemple si vous construisez sur une plateforme différente, comme BSD, que les développeurs n'utilisent pas régulièrement - alors n'hésitez pas à soulever un problème sur gitlab.
Notez que les problèmes ne doivent être soulevés que pour la branche principale (master) ou les versions taguées. Si vous testez de nouvelles fonctionnalités dans le cadre de demandes de fusion, veuillez fournir un retour d'information dans les commentaires de la demande de fusion concernée.
System Python
If you are building Siril yourself you need to ensure you have a working system Python installation including pip and venv. Note the last point because on some systems (at least Debian / Ubuntu based systems, possibly others) Python is split into many packages and you must ensure the packages that provide pip and venv are installed.