Celestia: ein Debian Stretch-Paket bereitstellen

Erstellt am 22. Juni 2017  ·  20Kommentare  ·  Quelle: CelestiaProject/Celestia

oder vielleicht sogar ein Basisverzeichnis /debian/ bereitstellen.

Kontext: Stretch (neuer Stall), Celestia fallengelassen. Das ist ein großer Verlust für das Debian-Ökosystem und die Benutzer.
(und übrigens auch der Verlust der Quelle möglicher Mitwirkender)

packaging

Hilfreichster Kommentar

Hi,

Hier kommt meine Schritt-für-Schritt-Anleitung zum Erstellen eines Celestia-Pakets für Debian 9.

Viel Spaß beim Bauen :-)

Build-Abhängigkeiten installieren

apt-get install git build-essential autoconf debhelper freeglut3-dev liblua5.1-dev libgnomeui-dev libgtkflext1-dev libtheora-dev chrpath libjpeg-dev

Holen Sie sich die Quelle

git-Klon https://github.com/CelestiaProject/Celestia.git

Konfigurieren Sie es

CD Celestia
autoreconf -iv
./configure --with-gnome --enable-cairo --enable-theora --with-lua --disable-warnings --prefix=/usr

Kompilieren

mache -j2

Problemumgehung für Fehler machen

export MKDIR_P='mkdir -p'

Debian-Paket erstellen

checkinstall -D --pkgversion 1.6.1 make install-strip

Paketabhängigkeiten abrufen

mkdir debian
berühren debian/control
dpkg-shlibdeps /usr/bin/celestia
Katze debian/substvars

Paket extrahieren

dpkg-deb -R celestia_1.6.1-1_amd64.deb .

Abhängigkeiten zu DEBIAN/control hinzufügen (neue Zeile hinzufügen mit "Depends:")

Menüeintragsdatei ändern: usr/share/applications/celestia.desktop

[Desktop-Eintrag]
Kodierung=UTF-8
Version=1.6.1
Typ=Anwendung
Exec=celestia -c /usr/share/celestia/celestia.cfg
Symbol=celestia
X-GNOME-DocPath=
Terminal=falsch
Name=Celestia
Kommentar=Weltraumsimulator
StartupNotify=true
Kategorien=Astronomie;Wissenschaft;Anwendung;Bildung;

Geändertes Paket erstellen

dpkg-deb --build . ../celestia_1.6.1-1_amd64.deb

Alle 20 Kommentare

@drzraf Alexell funktioniert nicht mit Linux und ist mit dem oben genannten absolut nicht vertraut. Jetzt haben wir keine Person, die den Celestia-Code für Linux versteht.
Bitte beschreiben Sie, was genau wir tun sollen, um das Problem zu lösen? Wer kann dies tun?

[ ] jemand, der Debian verwendet und bereits ein Debian-Paket erstellt hat (oder es lernen möchte)
[ ] Installieren Sie die erforderliche Linux-Build-Umgebung für Celestia
Am Standard sind die benötigten Build-Tools (Autotools, cmake, ..) je besser/einfacher
[ ] Celestia unter Debian erstellen, ausführen und testen

Daraus könnte man für Debian notwendige Dateien erstellen (möglicherweise die alte Version modifizieren), die einige Eigenschaften des Programms festlegen.
[ ] die zu erstellenden Abhängigkeiten [Software/Versionen]
[ ] die Abhängigkeiten, die ausgeführt werden müssen [Software/Versionen]

Wenn es aus irgendeinem Grund abstürzt, Fehler, ... werden einige benutzerdefinierte Patches benötigt
und dies ist oft die schmerzhafteste Arbeit für Debian-Betreuer.
Die meisten Fixes schnell im Upstream-Code zu haben, hilft hier sehr.

Im besten Fall bräuchte Debian/Linux keine zusätzlichen Patches, weder zum Erstellen noch zum Ausführen. Dann wäre das Packen nur ein paar grundlegende Dateien entfernt (https://wiki.debian.org/Packaging) und dann einfach herunterladbar/installierbar.

Das Paket (wieder) in Debians 9-Repository verteilen zu lassen, ist ein bisschen mehr "soziale Arbeit", aber ich denke, Softwareentwicklung/Stabilität unter Linux ist der einzig mögliche Show-Stopper.

Eine andere/Alternative Richtung übrigens: flatpak

@drzraf Du

Ich habe versucht, Celestia auf Stretch zu installieren und hatte Probleme mit glu.h, libjpg, libpng und die angeforderte Version von lua ist zu alt, auch nachdem das Make erfolgreich konfiguriert wurde
kann hilfreich sein

ok, ich und vor allem meine Kinder vermissen Celestia schon seit einiger Zeit. Mein erster Versuch war auch, einfach aus dem Code für 1.6.1 von der Celestia-Projetc-Seite zu bauen (wie schwer kann das sein...). Einige Codefixes später hat mich ein Linker-Fehler gestoppt. Heute habe ich es zum ersten Mal nach einigen Jahren auf Ububtu 17.10 zum Laufen gebracht.

Was als nächstes? Gibt es eine Möglichkeit, meine Änderungen bereitzustellen und Celestia irgendwann zurückzubringen?

Eine Frage, da ich definitiv kein Automake-Guru bin ... Ich musste einen Aspekt auf der Befehlszeile umgehen:

-ldl -llua5.1 ../celengine/libcelengine.a -ldl ../celtxf/libceltxf.a

Das Problem war, dass alle Celestia-Bibliotheken in einer Automake-Variablen $(all_libraries) sind und aus irgendeinem Grund muss die -ldl genau hinter libcelengine.a stehen.... die erste -ldl hilft nicht. Kann ich ein Linker-Flag für eine bestimmte Bibliothek wie libcelengine.a setzen?

Ich helfe gerne dabei, es zurückzubekommen - meine Kinder werden sich freuen hat Celestia ist wirklich eine großartige und interessante Möglichkeit, unser Universum zu sehen :).

Großartig @TheBigW.
Glaubst du, dass der Compilation-Tweak -ldl dieser im vorherigen Celestia Debian-Paket war ?
Siehe https://sources.debian.net/src/celestia/1.6.1%2Bdfsg-3.1/debian/patches/ (OP) für die Liste der Patches, die zum Erstellen von Celestia in früheren Debian-Versionen benötigt werden.

Ich habe den Eindruck, dass ausgehend vom Verzeichnis debian/ des Pakets 1.6.1 die richtige Richtung sein könnte. Dann sollten Sie mit dpkg-buildpackage in der Lage sein, ein Debian-Paket zu erstellen.

Was wahrscheinlich aus dem aktuellen debian/-Verzeichnis angepasst werden müsste, sind wahrscheinlich:

  • Build-/Laufzeit-Abhängigkeiten-Versionen in der control Datei (verwenden Sie die Stretch-Version von Debian)
  • Patches/ für die es eine Seriendatei gibt , die bestimmt, welche in welcher Reihenfolge gelten und welche nicht
  • vielleicht Changelog
    (einige wurden möglicherweise in Celestias Git integriert, andere möglicherweise nicht, aber die meisten sollten es wahrscheinlich tun)

Ich würde mich freuen, dpkg-buildpackage selbst (ich bin auf Debian Stretch) mit den Änderungen, die Sie dem debian/-Verzeichnis hinzufügen, bearbeiten zu können. Dann könnte ich die Stabilität des resultierenden Pakets testen.
(Irgendwann könnten Sie einen ITP-Bug ( Intend to Package ) auf Debians Bugtracker öffnen und hoffen, dass ein stabiles Paket in den Repositories zurückkommt und so vielen Debian-Benutzern gefällt.

Hallo drzraf,
das oben erwähnte -ldl sollte funktionieren, aber soweit ich gesehen habe, behebt es es nur in der Konfigurationsdatei. Wenn ich mich nicht irre, würde das nächste ./configure es überschreiben - aber zum Erstellen des Pakets wird dies funktionieren (immer noch besser als manuelles Verlinken auf der Befehlszeile :) ).
Eine Frage: Ich habe das Ubuntu src-Paket verwendet, das ich als Zip zum Download gefunden habe. Dies funktioniert für mich, aber natürlich fehlen alle Debian-Spezifika (Changelog usw.). Wissen Sie, wie ich das vorherige Debian-Celestia-src-Paket auf einem anderen Linux zum Laufen bringen kann (ich bin auf Ubuntu 17.10). Ich weiß, dass ich im schlimmsten Fall Jessie in eine VM bekommen und eine "apt-get source" erstellen kann, aber ein einfacherer Weg ist vorzuziehen.

ok, ich habe hier ein Quellpaket gefunden (im Wesentlichen das gleiche wie auf der Ubuntu-Paketseite):
http://http.debian.net/debian/pool/main/c/celestia/celestia_1.6.1+dfsg.orig.tar.gz
Das Problem ist, dass ich wahrscheinlich den vollständigen Debian-Unterordner von Ihrem Quelllink benötigen würde, um den Verlauf, das Änderungsprotokoll usw. zu verwalten. Wenn es in Ordnung ist, aus dem obigen Quellpaket von Grund auf neu zu erstellen, kann ich fortfahren, aber der vorherige Deb-/Paketverlauf würde verloren gehen, selbst wenn ich zumindest das Änderungsprotokoll kopiere. Lohnt es sich noch weiterzumachen?

und um (vielleicht) konkreter zu antworten:

Lass uns Ex-Maintainer @gsliepen / uploader

... und zitiere das ursprüngliche Problem, das vor 2 Jahren zum Verwaisen von Paketen führte:

Upstream hat in den letzten 4 Jahren keine Neuerscheinungen produziert.
In der Zwischenzeit sammelt das Paket Fehler aufgrund von Bitrot an. Es schon
war kein problemloses Paket, aufgrund einiger recht wichtiger Ressourcen nicht
DFSG-konform sein.

Um Celestia wieder in Debian zu bekommen, müssen Sie die Gründe ansprechen, warum ich es überhaupt entfernen musste:

  • Machen Sie die richtigen Freigaben.
  • Wenn Sie Celestia im Hauptarchiv von Debian haben möchten, stellen Sie sicher, dass es mit DFSG-kompatiblen Datendateien geliefert wird.
  • Stellen Sie sicher, dass es auf moderner Hardware mit Linux ordnungsgemäß ausgeführt wird. Testen Sie es mit relativ aktuellen AMD-, Intel- und Nvidia-Karten.
  • Stellen Sie sicher, dass es ohne Warnungen kompiliert wird (nicht nur der Code, sondern auch autoconf und automake sollten ohne Warnungen laufen) und ordnungsgemäß mit Bibliotheken in Debian funktioniert.
  • Stellen Sie sicher, dass es einen dedizierten Betreuer für das Debian-Paket gibt (der nicht ich sein werde).

Zu guter Letzt braucht Celestia wirklich eine ernsthafte Überarbeitung. Wechseln Sie zu C++11, verwenden Sie die Standardbibliothek und ggf. Boost, ändern Sie die Rendering-Engine so, dass OpenGL ES 2.0 erforderlich ist, und stellen Sie die Unterstützung für alle älteren Versionen ein. Versuchen Sie nicht, 5 verschiedene Frontends unter Linux zu unterstützen (und das gilt nicht einmal für Windows- und Mac-Sachen), sondern entscheiden Sie sich für etwas, das wirklich plattformübergreifend ist, und bleiben Sie dabei. Wenn Sie auf ein ausgewachsenes Widget-Toolkit verzichten können, würde ich mich für SDL2 entscheiden, ansonsten würde ich Qt5 empfehlen. Wenn Sie sich nicht dazu verpflichten, sehe ich für Celestia leider keine glänzende Zukunft.

gerade als ich fertig war, die ersten unsignierten Deb-Pakete zum Testen zu erstellen :). Grundsätzlich wäre es für mich (und vielleicht andere) in Ordnung, wenn es eine Möglichkeit gibt, es wieder auf Debian/Ubuntu zu installieren/auszuführen. Dies bedeutet nicht unbedingt, dass es Teil des Debian-Hauptarchivs ist.
Das Problem ist im Moment, dass keines der Pakete (weder das alte deb-Paket noch das Paket direkt von der Celestia-Site) über das Kompilieren hinauskommt...

Ich kann mit den Codeaspekten umgehen, solange es Aufräumarbeiten bedeutet (warnfrei, C++11 usw.) - alles weitere ist eine ziemlich große Aufgabe. Do-Over klingt interessant ... vielleicht etwas zum Nachdenken ...

Ok, das celestia-Team hat uns anscheinend gehört und entwickelt gerade eine neue QT5-Version für Windows :) :

https://github.com/CelestiaProject/Celestia

Ich habe es jetzt für Ubuntu kompiliert und es funktioniert sofort. Ich werde mit ihnen besprechen, wie ich meine Änderungen zurückbekomme, und ich werde auch sehen, wie ein .deb-Binärpaket erstellt wird.

Ist dies noch einmal in Betracht zu ziehen oder soll ich mich eher darauf konzentrieren, dass die Linux-Unterstützung für sie funktioniert und sie nur auf ihrer Seite gehostet wird?

Hi,

Hier kommt meine Schritt-für-Schritt-Anleitung zum Erstellen eines Celestia-Pakets für Debian 9.

Viel Spaß beim Bauen :-)

Build-Abhängigkeiten installieren

apt-get install git build-essential autoconf debhelper freeglut3-dev liblua5.1-dev libgnomeui-dev libgtkflext1-dev libtheora-dev chrpath libjpeg-dev

Holen Sie sich die Quelle

git-Klon https://github.com/CelestiaProject/Celestia.git

Konfigurieren Sie es

CD Celestia
autoreconf -iv
./configure --with-gnome --enable-cairo --enable-theora --with-lua --disable-warnings --prefix=/usr

Kompilieren

mache -j2

Problemumgehung für Fehler machen

export MKDIR_P='mkdir -p'

Debian-Paket erstellen

checkinstall -D --pkgversion 1.6.1 make install-strip

Paketabhängigkeiten abrufen

mkdir debian
berühren debian/control
dpkg-shlibdeps /usr/bin/celestia
Katze debian/substvars

Paket extrahieren

dpkg-deb -R celestia_1.6.1-1_amd64.deb .

Abhängigkeiten zu DEBIAN/control hinzufügen (neue Zeile hinzufügen mit "Depends:")

Menüeintragsdatei ändern: usr/share/applications/celestia.desktop

[Desktop-Eintrag]
Kodierung=UTF-8
Version=1.6.1
Typ=Anwendung
Exec=celestia -c /usr/share/celestia/celestia.cfg
Symbol=celestia
X-GNOME-DocPath=
Terminal=falsch
Name=Celestia
Kommentar=Weltraumsimulator
StartupNotify=true
Kategorien=Astronomie;Wissenschaft;Anwendung;Bildung;

Geändertes Paket erstellen

dpkg-deb --build . ../celestia_1.6.1-1_amd64.deb

Am Montag, den 04. Dezember 2017 um 06:26:59 +0000 schrieb m23project:

Hier kommt meine Schritt-für-Schritt-Anleitung zum Erstellen eines Celestia-Pakets für Debian 9.

So sollten richtige Debian-Pakete NICHT gebaut werden. Das wird nie
in Debian akzeptiert werden, und ich denke, Sie tun anderen keinen Gefallen, indem Sie
diese Anleitung vorlegen.

Siehe https://wiki.debian.org/Packaging/Intro und/oder die Links
gepostet von @dzraf.

--
Met vriendelijke groet / mit freundlichen Grüßen,
Guus Sliepen [email protected]

Hi,

es war nicht meine Absicht, ein wertvolles Paket für Debian zu bauen.
Es ist nur eine Schritt-für-Schritt-Anleitung für Leute, die ein Paket selbst erstellen möchten.

Cu Hauke

Hi! Ich arbeite derzeit an einem Paket für die debian-basierte Distribution HuayraLinux . Wenn ich ein meist verwendbares Paket habe (mit dem Qt5-Frontend) (und den debian/ Ordner, der es neu erstellt), werde ich dies aktualisieren.

Ich habe gesehen, dass frühere Versionen von Celestia unter Debian in mehrere Pakete aufgeteilt wurden (hauptsächlich aus rechtlichen Gründen). Kann mir jemand bei dem was-geht-waren helfen? Ich habe keine Erfahrung mit rechtlichen Fragen, aber wenn ich ein brauchbares Paket bauen kann, denke ich, dass es für die Weiterverteilung von Celestia wirklich nützlich sein kann.

PS: Mach weiter so! Celestia ist eine wunderbare Software!

EDIT: Ich habe eine quick & dirty Arbeitspaket , das die WorkInProgress debian verwendet cspice Paket

Ich würde es sehr begrüßen, wenn Sie Snap- oder Flatpack-Bilder zur Verfügung stellen.

wir bieten *.deb und *.appimage über https://build.opensuse.org/package/show/home :munix9:unstable/celestia

Hi,

Ich bin vom Debian Astro- Team.

Da die Debian-Dateien schon recht gut aussehen: Würden Sie in Betracht ziehen, das Paket direkt in Debian zu pflegen? Dies würde es den Leuten ermöglichen, Celestia ohne zusätzlichen Aufwand auf die übliche Weise zu installieren.

Mit freundlichen Grüßen

Ole

Hallo Ole,

Das war eigentlich mein Plan aber wenn 1.7 veröffentlicht wird. Für eine kommende Version 1.6.2 haben wir noch das alte Problem mit Lizenzen für einige Texturen. Und für Unix-ähnliche Systeme bietet 1.6.x nur glut- und gtk2-Schnittstellen und ich fürchte, Debian wird es (gtk2) früher oder später fallen lassen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Panterstruck picture Panterstruck  ·  9Kommentare

furquan-lp picture furquan-lp  ·  8Kommentare

CelestiaProject picture CelestiaProject  ·  8Kommentare

munix9 picture munix9  ·  28Kommentare

shujaatak picture shujaatak  ·  9Kommentare