fuetti
Aktives Mitglied
Ich habe heute versucht siril 1.4.1 auf OpenSuSE 15.5 zu kompilieren, um meine dort sauber installierte NVIDIA-Karte nutzen zu können.
Da diese inzwischen angelaufene Distro bei Siril 1.2 stehen geblieben ist, musste ich also selbst kompilieren, was ich schon oft erfolgreich machen konnte.
Z.B. das neueste stellarium war hier völlig schmerzlos, aber siril1.4 wurde ein absoluter Albtraum.
git clone FA / Siril · GitLab
cd siril
meson setup _build --buildtype release
und dann kamen Fehlermeldungen.
Nach Nachinstallation zahlreicher Bibliotheken bin ich fast an lcms2 gescheitert, weil meine Version veraltet war.
Also habe ich den Sourcecode heruntergeladen und in /opt installiert. Alles nochmals gut gegangen!
Doch dann scheiterte ich, da die glibc nicht aktuell genug war.
Nebenbemerkung: Die 15.5 ist wirklich nicht sehr alt, bis vor kurzem war die 15.6 die aktuellste Version, gerade ist 16.0 rausgekommen.
Jetzt ist es hier gescheitert und hat den Header nicht gefunden:
#include <filesystem>
^~~~~~~~~~~~
Also habe ich den Standard-C- und C++- Compiler auf Version 10 gesetzt und der Fehler verschwand.
Dann wollte er eine merkwürdige Biblio für ein exotisches Kameraformat: xisf. Das habe ich manuell (!) aus meson.build entfernt,
denn ich werde dieses Format nie verwenden. Warum erkennt das meson Skript das nicht, und bereitet das Kompilieren entsprechend vor?
Normalerweise sollten optionale Biblios automatisch durch if-Abfragen im meson-Script geprüft und entsprechend ausgeschlossen.
Der User sollte davon nichts merken - Pustekuchen!
Schließlich sollte man doch wählen könne welche optionalen Features man mitnehmen möchte, so ist das jedelfalls gedacht.
Dann machte opencv4 Probleme - ich hatte nur V3. Eigentlich sollte es auch ohne opencv funktionieren,
denn siril ist kein stellarium oder Game, in dem der Screen ultraschnell gerendert werden muss.
Ich hatte es also nicht installiert, V3 scheint nicht zu passen (warum?) und eigentlich sollte auch hier das Skript das erkennen
und automatisch das Makefile entsprechend einrichten.
Wie sollte das sein?
Im meson.build findet man:
some_target = executable('foo', sources, dependencies: opencv_dep)
Besser wäre demnach:
if opencv_dep.found()
some_target = executable('foo', sources, dependencies: opencv_dep)
else
some_target = executable('foo', sources)
endif
D.h. wenn opencv nicht installiert ist, fährt er automatisch ohne diese Lib weiter - easy-peasy!
So gab es eine harte Fehlermeldung und ich konnte nicht fortschreiten mit ninja -C _build -j4.
Diese Bibliothek war nicht nachzuinstallieren, ohne das ganze System zu beschädigen.
Also versuchte ich alles opencv4 aus dem meson-Skript zu entfernen, doch bestrafte mich meson mit Fehlermeldungen, es gab keinen Ausweg mehr.
Nach 4 Stunden musste ich aufgeben.
Ich klassifiziere daher dieses Installationsskript als mangelhaft und User-feindlich.
Das Durchgehen des Source-Codes habe ich mir erspart, ich hoffe, dass er wenigstens sauber modular aufgebaut ist.
Die Entwickler haben nicht auf Rückwärts-Kompatibilität geachtet, was eigentlich Industriestandard ist.
Ich erwarte ja keine Kompatibilität mit OpenSuSE 10.2 von vor 10 Jahren oder noch älter, aber die zweitneueste Distro sollte schon noch funktionieren.
Fazit: Das Meson-Script ist unausgereift, ja schlampig erstellt, denn es erlaubt nicht, die Kompilation sauber zu konfigurieren,
z.B. unnötige oder ungewünschte Komponenten abzuschalten, was eigentlich der Sinn von meson ist.
Thumbs down, liebe siril-Entwickler!
Claus
Da diese inzwischen angelaufene Distro bei Siril 1.2 stehen geblieben ist, musste ich also selbst kompilieren, was ich schon oft erfolgreich machen konnte.
Z.B. das neueste stellarium war hier völlig schmerzlos, aber siril1.4 wurde ein absoluter Albtraum.
git clone FA / Siril · GitLab
cd siril
meson setup _build --buildtype release
und dann kamen Fehlermeldungen.
Nach Nachinstallation zahlreicher Bibliotheken bin ich fast an lcms2 gescheitert, weil meine Version veraltet war.
Also habe ich den Sourcecode heruntergeladen und in /opt installiert. Alles nochmals gut gegangen!
Doch dann scheiterte ich, da die glibc nicht aktuell genug war.
Nebenbemerkung: Die 15.5 ist wirklich nicht sehr alt, bis vor kurzem war die 15.6 die aktuellste Version, gerade ist 16.0 rausgekommen.
Jetzt ist es hier gescheitert und hat den Header nicht gefunden:
#include <filesystem>
^~~~~~~~~~~~
Also habe ich den Standard-C- und C++- Compiler auf Version 10 gesetzt und der Fehler verschwand.
Dann wollte er eine merkwürdige Biblio für ein exotisches Kameraformat: xisf. Das habe ich manuell (!) aus meson.build entfernt,
denn ich werde dieses Format nie verwenden. Warum erkennt das meson Skript das nicht, und bereitet das Kompilieren entsprechend vor?
Normalerweise sollten optionale Biblios automatisch durch if-Abfragen im meson-Script geprüft und entsprechend ausgeschlossen.
Der User sollte davon nichts merken - Pustekuchen!
Schließlich sollte man doch wählen könne welche optionalen Features man mitnehmen möchte, so ist das jedelfalls gedacht.
Dann machte opencv4 Probleme - ich hatte nur V3. Eigentlich sollte es auch ohne opencv funktionieren,
denn siril ist kein stellarium oder Game, in dem der Screen ultraschnell gerendert werden muss.
Ich hatte es also nicht installiert, V3 scheint nicht zu passen (warum?) und eigentlich sollte auch hier das Skript das erkennen
und automatisch das Makefile entsprechend einrichten.
Wie sollte das sein?
Im meson.build findet man:
some_target = executable('foo', sources, dependencies: opencv_dep)
Besser wäre demnach:
if opencv_dep.found()
some_target = executable('foo', sources, dependencies: opencv_dep)
else
some_target = executable('foo', sources)
endif
D.h. wenn opencv nicht installiert ist, fährt er automatisch ohne diese Lib weiter - easy-peasy!
So gab es eine harte Fehlermeldung und ich konnte nicht fortschreiten mit ninja -C _build -j4.
Diese Bibliothek war nicht nachzuinstallieren, ohne das ganze System zu beschädigen.
Also versuchte ich alles opencv4 aus dem meson-Skript zu entfernen, doch bestrafte mich meson mit Fehlermeldungen, es gab keinen Ausweg mehr.
Nach 4 Stunden musste ich aufgeben.
Ich klassifiziere daher dieses Installationsskript als mangelhaft und User-feindlich.
Das Durchgehen des Source-Codes habe ich mir erspart, ich hoffe, dass er wenigstens sauber modular aufgebaut ist.
Die Entwickler haben nicht auf Rückwärts-Kompatibilität geachtet, was eigentlich Industriestandard ist.
Ich erwarte ja keine Kompatibilität mit OpenSuSE 10.2 von vor 10 Jahren oder noch älter, aber die zweitneueste Distro sollte schon noch funktionieren.
Fazit: Das Meson-Script ist unausgereift, ja schlampig erstellt, denn es erlaubt nicht, die Kompilation sauber zu konfigurieren,
z.B. unnötige oder ungewünschte Komponenten abzuschalten, was eigentlich der Sinn von meson ist.
Thumbs down, liebe siril-Entwickler!
Claus
Zuletzt bearbeitet:
Wobei ich helfen kann
Wobei ich nicht helfen darf