Mein Projekt als RPM/DEB Paket packen?
-
- Beiträge: 1582
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Mein Projekt als RPM/DEB Paket packen?
Hallo,
Ich habe ein nettes Programm mittels Lazarus geschrieben, nun möchte ich gerne alle Dateien als RPM zusammen bekommen. Ich habe das noch nie gemacht und weiß also nicht was ich so brauchen.
Um es vorweg zu sagen, mir wäre ein grafischen Tool am liebsten, womit ich das machen kann:
- Dateien angeben
- Festlegen in welchen Ordner die installiert werden
- Bestimmte Dateien (Datenbank, Konfigurationsdateien) dürfen niemals überschrieben werden (weder bei Installation noch bei Update)
- Rechte von einzelnen Dateien abändern
- Links setzen
- Start-Menü Eintrag
- Neuinstallation und Update
- Abhängigkeiten automatisch mit installieren (z.B. libsqlite und kchmviewer)
- Uninstall soll nachfragen ob Datenbank/Konfiguration in takt lassen soll. (Neuinstallation überschreibt diese dann nicht!)
- Compile-Button wo mir dann ein RPM macht.
- zweiter Compile-Button wo mir dann ein DEB macht.
- Ähnlich wie "Inno-Setup" oder "Install-Shield"
In einem anderen Forum kämpft mit diesen SPEC Dateien und Möglichkeiten schon seit 2 Wochen jemand und bekommt das einfach nicht hin, daher möchte ich da mal selbst nach schauen. Ich selbst nutze Windows und habe Suse in einer Virtual Box installiert.
Kann mir bitte jemand weiterhelfen?
Mit den RPM Beschreibungen aus dem Internet komme ich überhaupt nicht klar. Da stehen jede Menge Verweise mit % und irgend welche Makrokürzel uvm. drin, aber ich verstehe nur Bahnhof. Wenn mir das jemand empfiehlt, dann bitte, bitte brauche ich eine Erklärung für jeden Buchstabe.
Grüße Markus.
Ich habe ein nettes Programm mittels Lazarus geschrieben, nun möchte ich gerne alle Dateien als RPM zusammen bekommen. Ich habe das noch nie gemacht und weiß also nicht was ich so brauchen.
Um es vorweg zu sagen, mir wäre ein grafischen Tool am liebsten, womit ich das machen kann:
- Dateien angeben
- Festlegen in welchen Ordner die installiert werden
- Bestimmte Dateien (Datenbank, Konfigurationsdateien) dürfen niemals überschrieben werden (weder bei Installation noch bei Update)
- Rechte von einzelnen Dateien abändern
- Links setzen
- Start-Menü Eintrag
- Neuinstallation und Update
- Abhängigkeiten automatisch mit installieren (z.B. libsqlite und kchmviewer)
- Uninstall soll nachfragen ob Datenbank/Konfiguration in takt lassen soll. (Neuinstallation überschreibt diese dann nicht!)
- Compile-Button wo mir dann ein RPM macht.
- zweiter Compile-Button wo mir dann ein DEB macht.
- Ähnlich wie "Inno-Setup" oder "Install-Shield"
In einem anderen Forum kämpft mit diesen SPEC Dateien und Möglichkeiten schon seit 2 Wochen jemand und bekommt das einfach nicht hin, daher möchte ich da mal selbst nach schauen. Ich selbst nutze Windows und habe Suse in einer Virtual Box installiert.
Kann mir bitte jemand weiterhelfen?
Mit den RPM Beschreibungen aus dem Internet komme ich überhaupt nicht klar. Da stehen jede Menge Verweise mit % und irgend welche Makrokürzel uvm. drin, aber ich verstehe nur Bahnhof. Wenn mir das jemand empfiehlt, dann bitte, bitte brauche ich eine Erklärung für jeden Buchstabe.
Grüße Markus.
Zuletzt geändert von MmVisual am So 9. Jan 2011, 10:49, insgesamt 2-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Mein Projekt als RPM Paket packen?
Dir ist aber schon klar, dass die Paketverwaltungen unter Linux anders funktionieren als eine "Installtion" unter Windows? Ob dein Programm unter einer bestimmten Distribution läuft, hängt nicht zuletzt von den benutzten Bibliotheken ab. Daher werden Pakete in der Regel auch unter der Distribution erstellt, unter der sie eingesetzt werden sollen.MmVisual hat geschrieben:...
- Neuinstallation und Update
- Uninstall soll nachfragen ob Datenbank/Konfiguration in takt lassen soll. (Neuinstallation überschreibt diese dann nicht!)
...
- Compile-Button wo mir dann ein RPM macht.
- zweiter Compile-Button wo mir dann ein DEB macht.
- Ähnlich wie "Inno-Setup" oder "Install-Shield"
Durch den Benutzer erstellte/geänderte Daten werden in der Regel nicht gelöscht und auch nicht danach gefragt, da jede Nachfrage den gesamten Installtionsvorgang (in den nicht unüblicherweise auch andere Pakete involviert sind), unterbricht.
Sind durch freedesktop.org standardisiert und bedürfen daher unabhängig der Desktop-Umgebung (GNOME, KDE, etc.) nur einer Konfigurationsdatei, siehe unter http://standards.freedesktop.org/menu-spec/latest/.MmVisual hat geschrieben:- Start-Menü Eintrag
Edit: Zu deiner eigentlichen Frage, wie man RPM-Pakte baut, kann ich dir mangels Erfahrung nichts sagen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 1582
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Mein Projekt als RPM Paket packen?
>> Dir ist aber schon klar, dass die Paketverwaltungen unter Linux anders funktionieren als eine "Installtion" unter Windows?
Ja. Daher suche ich ein Tool, mit dem man einstellen kann was möglich ist. Ich habe schon ein paar kleine Anforderungen, die sollten doch eigentlich standard sein. Und da ich mit diesen kryptischen SPEC Dateien nicht durchblicke suche ich ein grafische Oberfläche, die das kann. Seit über 10 Jahren gibt es doch schon für Linux den grafischen Bildschirm und auch viele Programme. Daher ist es doch naheliegend, dass es ein (benutzerfreundliches) grafisches Tool auch dafür gibt.
Ja. Daher suche ich ein Tool, mit dem man einstellen kann was möglich ist. Ich habe schon ein paar kleine Anforderungen, die sollten doch eigentlich standard sein. Und da ich mit diesen kryptischen SPEC Dateien nicht durchblicke suche ich ein grafische Oberfläche, die das kann. Seit über 10 Jahren gibt es doch schon für Linux den grafischen Bildschirm und auch viele Programme. Daher ist es doch naheliegend, dass es ein (benutzerfreundliches) grafisches Tool auch dafür gibt.
Zuletzt geändert von MmVisual am So 9. Jan 2011, 10:49, insgesamt 1-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Mein Projekt als RPM Paket packen?
Bisher habe ich für Debian-Pakete auch noch keine GUI zum Erstellen gefunden. Da gibt es nur diverse Hilfsscripts und -programme.MmVisual hat geschrieben:Ja. Daher suche ich ein Tool, mit dem man einstellen kann was möglich ist. Ich habe schon ein paar kleine Anforderungen, die sollten doch eigentlich standard sein. Und da ich mit diesen kryptischen SPEC Dateien nicht durchblicke suche ich ein grafische Oberfläche, die das kann. Seit über 10 Jahren gibt es doch schon für Linux den grafischen Bildschirm und auch viele Programme. Daher ist es doch naheliegend, dass es ein (benutzerfreundliches) grafisches Tool auch dafür gibt.
Ich denke die meisten Anforderungen werden allein schon durch die Paketverwaltung erfüllt, wenn die Pakete richtig erstellt sind.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Mein Projekt als RPM Paket packen?
MmVisual: Für RPMs gibt es graphische Tools. Hatte vor einigen Jahren mal welche probiert; zu der Zeit funktionierten die aber mehr schlecht als recht. Musst mal googln.
Gruß, Euklid
Gruß, Euklid
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Mein Projekt als RPM/DEB Paket packen?
Kryptische SPECs: Ich habe auch eine Weile gebraucht, bei ich das Prinzip verstanden habe, aber es ist einfacher, als es aussieht. Falls du das noch brauchst, kann ich meine SPEC hier posten.
-
- Beiträge: 1582
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Mein Projekt als RPM/DEB Paket packen?
Das wäre super. Im Internet finde ich fast ausschließlich Beschreibungen, die dann noch irgend was kompillieren wollen, was ich ja bei Lazarus nicht brauche.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Mein Projekt als RPM/DEB Paket packen?
Ich hab mir gerade http://fedoraproject.org/wiki/How_to_cr ... ep_section angelesen. Wäre es nicht möglich, dass du die entsprechenden nicht benötigten Abschnitte (Entpacken der Quellen, Patchen, Compilieren, usw.) einfach weg lässt?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Mein Projekt als RPM/DEB Paket packen?
Zuerst muss die richtige Verzeichnisstruktur erstellt werden. rpmbuild macht das vielleicht. Im Verzeichnis BUILDROOT wird dann die Zielstruktur erstellt (vgl. Bild).

Dann erstmal ein Script:
Dann ein SPEC
Meine DEBIAN/control sieht so aus:
Die DEBs benenne ich um und erzeuge 64/32bit neu. Müsste ich eigentlich auch noch irgendwie in das Script einbauen...
Ich hätte es ansonsten auch kürzer formulieren können: Erstelle in BUILDROOT die Zielverzeichnisstrukur mit allen Daten. Den Rest findest du allein raus

Dann erstmal ein Script:
Code: Alles auswählen
#!/bin/sh
rpmbuild -bb --target x86_64 ./SPECS/Scrabbel3D.spec
rpmbuild -bb --target i386 ./SPECS/Scrabbel3D.spec
dpkg -b /home/tietze/Sourcen/Scrabble/v_3.1/Package/Debian
Code: Alles auswählen
Summary: A highly customizable Scrabble game that not only supports Classic Scrabble and Superscrabble but also 3D games and own boards.
Name: Scrabble3D
Version: 3.1.0
Release: 22
License: Creative Commons Attribution-NonCommercial
Group: Amusements/Games/Board/Puzzle
Source: http://scrabble.svn.sourceforge.net/viewvc/scrabble" onclick="window.open(this.href);return false;
URL: http://scrabble.game-server.cc/wiki" onclick="window.open(this.href);return false;
#ExcludeArch: i386
%description
Scrabble3D is a highly customizable Scrabble game that not only supports Classic Scrabble and Superscrabble but also 3D games and own boards. You can play local against the computer or connect to a game server to find other players.
Features:
* Configurable board, letterset and design
* Game against computer with support of multithreading
* Post-hoc game analysis with calculation of best move by computer
* Match with other players connected on a game server
* NSA rating and highscore at game server
* Time limit of games
* Localization; use of non-standard digraphs like CH, RR, LL
* Multilanguage help / wiki
* Network games are buffered and asynchronous games are possible
* Running games can be kibitzed
%files
/usr/bin/Scrabble3D
/usr/share/applications/Scrabble3D.desktop
/usr/share/pixmaps/Scrabble3D.png
%changelog
* Mon Oct 10 2010 (Heiko Tietze)
- First RPM package
Code: Alles auswählen
Package: scrabble3d
Version: 3.1.0-22
Section: games
Priority: optional
Architecture: amd64
Essential: no
Installed-Size: 5810
Maintainer: Heiko Tietze (xxxx)
Homepage: http://scrabble.game-server.cc/wiki" onclick="window.open(this.href);return false;
Provides: Scrabble3D
Description: Scrabble3D is a highly customizable Scrabble game that not only supports Classic Scrabble and Superscrabble but also 3D games and own boards. You can play local against the computer or connect to a game server to find other players.
Features:
* Configurable board, letterset and design
* Game against computer with support of multithreading
* Post-hoc game analysis with calculation of best move by computer
* Match with other players connected on a game server
* NSA rating and highscore at game server
* Time limit of games
* Localization; use of non-standard digraphs like CH, RR, LL
* Multilanguage help / wiki
* Network games are buffered and asynchronous games are possible
* Running games can be kibitzed
Ich hätte es ansonsten auch kürzer formulieren können: Erstelle in BUILDROOT die Zielverzeichnisstrukur mit allen Daten. Den Rest findest du allein raus

-
- Beiträge: 1582
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Mein Projekt als RPM/DEB Paket packen?
Vielen Dank für die ausführliche Info. Ich beise mich da mal durch. 

EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1103
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Mein Projekt als RPM/DEB Paket packen?
Die .spec's von Free Pascal sind auch verfügbar (einen für Doc und einen für FPC selber) :
http://svn.freepascal.org/svn/fpcbuild/trunk/install/" onclick="window.open(this.href);return false;
http://svn.freepascal.org/svn/fpcbuild/trunk/install/" onclick="window.open(this.href);return false;
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Mein Projekt als RPM/DEB Paket packen?
Wäre das nicht mal ein Lazarus-Projekt wert, so einen .deb/.rpm/.exe Generator zu bauen?
-
- Beiträge: 1582
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Mein Projekt als RPM/DEB Paket packen?
Ich bin schon ein ganzes Stück weiter gekommen...
Ich habe folge Zeile im SPEC (Zeile 5):
if [ -f %{prefix}/EleLa/*.sq3 ]; then cp -u %{prefix}/EleLa/*.sq3 %{prefix}/EleLa/Backup/; fi
Die erzeugt aber die Zeile beim ausführem vom Setup:
/var/tmp/rpm-tmp.zbeNT6: Zeile 5: [: /opt/EleLa/EleLa.sq3: Zweistelliger (binärer) Operator erwartet.
Wie kann ich das mit dem Wildcard-Zeichen "*" machen?
Ich habe andere ähnliche Zeilen drin, ohne den Wildcard *, da klappt es ohne Fehlermeldung.
Edit:
Ich konnte das ein weing Eingrenzen, es der Teil:
if [ -f %{prefix}/EleLa/*.sq3 ]; then
bei dem der Fehler auftritt.
Gruß Markus
Ich habe folge Zeile im SPEC (Zeile 5):
if [ -f %{prefix}/EleLa/*.sq3 ]; then cp -u %{prefix}/EleLa/*.sq3 %{prefix}/EleLa/Backup/; fi
Die erzeugt aber die Zeile beim ausführem vom Setup:
/var/tmp/rpm-tmp.zbeNT6: Zeile 5: [: /opt/EleLa/EleLa.sq3: Zweistelliger (binärer) Operator erwartet.
Wie kann ich das mit dem Wildcard-Zeichen "*" machen?
Ich habe andere ähnliche Zeilen drin, ohne den Wildcard *, da klappt es ohne Fehlermeldung.
Edit:
Ich konnte das ein weing Eingrenzen, es der Teil:
if [ -f %{prefix}/EleLa/*.sq3 ]; then
bei dem der Fehler auftritt.
Gruß Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1103
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Mein Projekt als RPM/DEB Paket packen?
Versuche .* , vielleicht ist es ein regex ausdruckMmVisual hat geschrieben: Wie kann ich das mit dem Wildcard-Zeichen "*" machen?
Ein . akzeptiert jedes Zeichen, * gibt an Serien von das Zeichen davor zu akzeptieren. Zusammen ist das ungefähr Windows *
-
- Beiträge: 1582
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Mein Projekt als RPM/DEB Paket packen?
Ich habe mal den Befehl in der Konsole eingegeben:
linux-691y:/opt/EleLa # if [ -f ./*.sq3 ]; then echo "Hallo"; fi
bash: [: ./EleLa.sq3: Zweistelliger (binärer) Operator erwartet.
Der müsste eigentlich "Hallo" schreiben, weil es zwei Dateien *.sq3 gibt.
linux-691y:/opt/EleLa # if [ -f ./*.sq3 ]; then echo "Hallo"; fi
bash: [: ./EleLa.sq3: Zweistelliger (binärer) Operator erwartet.
Der müsste eigentlich "Hallo" schreiben, weil es zwei Dateien *.sq3 gibt.
EleLa - Elektronik Lagerverwaltung - www.elela.de