Hallo Forum.
Nun hab ich mal wieder eine dieser blöden Probleme, auf die wohl nie jemand antworten wird... Ich gebs trotzdem mal von mir.
Ich habe folgendes Problem:
Meine Anwendung ktvapp läßt sich mit kdevelop prima übersetzen und auch installieren. Ich möchte aber natürlich auch Binary- und Sourcepakete anbieten. Es gelingt aber nicht, aus kdevelop heraus ein Sourcetarball zu erstellen, welches sich fehlerfrei bauen läßt. Das ist aber die Grundvoraussetzung zum Erstellen von RPMs.
Ich fasse mal zusammen, was ich bisher versucht habe und was dabei an Fehlern aufgetreten ist.
Ich kann mit kdevelop unter Projekt / ausliefern & Paket erstellen ein tarball erzeugen. In dem Tarball fehlt aber die Versionsnummer beim Verzeichnisnamen.
Schon mal schlecht zum RPM erstellen. Versucht man jetzt mit kdevelop ein Binär-RPM zu erstellen, kracht es, weil RPM beim Build nicht in das ausgepackte Sourceverzeichnis wechseln kann.
Habe dann das Tarball ausgepackt, die Versionsnummer angehängt und das Verzeichnis wieder eingepackt. Kann eigentlich nicht der Sinn der Sache sein, wenn kdevelop das Paketbauen anbietet, man dann aber selbst das Source-Tarball umpacken muss.
Dann habe ich mit kdevelop unter Projekt / ausliefern & Paket erstellen ein Source-RPM erzeugen können. Das Specfile hatte ich vorher schon erstellt.
Bis hier könnte man meinen, hat es ja geklappt, dann müsste das Erstellen des Binärpakets ja mit einem Knopfdruck erledigt sein. Und nach diesem Knopfdruck wurde das nächste Problem erst sichtbar. Dieses kommt mir vor wie ein Akte X Fall, bin da völlig ratlos.
In dem tarball fehlen in einer Headerdatei folgende zwei Zeilen für den Präprozessor:
Das führt dazu, dass die Übersetzung mit der Fehlermeldung abbricht, dass Prefs mehrfach definiert sei.
In dem Header im Sourceverzeichnis des kdevelop-Projektordners stehen die zwei Zeilen noch. Im Tarball fehlen sie. Wie kann so etwas passieren?
Aber es kommt noch besser:
Habe im entpackten Buildverzeichnis die fehlenden Zeilen in den Header nachgetragen (mit Copy & Paste aus dem Original-Header) und dann ./configure und make von Hand aufgerufen.
Jetzt beschwert sich der Präcompiler über ein "unterminated ifndef". Was bedeutet das? Ich habe den Header auf Herz und Nieren geprüft, er ist korrekt. Warum kann ich mein Programm nicht aus dem Sourcetarball heraus erstellen?
Ich denke, dass meine kleine Applikation dem einen oder anderen gute Dienste leisten könnte, aber wenn man zum Installieren eine vollständige und eingerichtete kdevelop-Installation benötigt, werden wohl nicht viele diese Applikation testen wollen. Ich wäre darum sehr froh, wenn mir hier jemand weiterhelfen könnte.
Gruß,
Taki
P.S.: ktvapp ist bei kde-apps.org angemeldet. Dort kann man auch das kdevelop-Projektverzeichnis runterladen:
http://www.kde-apps.org/content/show.php?content=23381
Nun hab ich mal wieder eine dieser blöden Probleme, auf die wohl nie jemand antworten wird... Ich gebs trotzdem mal von mir.
Ich habe folgendes Problem:
Meine Anwendung ktvapp läßt sich mit kdevelop prima übersetzen und auch installieren. Ich möchte aber natürlich auch Binary- und Sourcepakete anbieten. Es gelingt aber nicht, aus kdevelop heraus ein Sourcetarball zu erstellen, welches sich fehlerfrei bauen läßt. Das ist aber die Grundvoraussetzung zum Erstellen von RPMs.
Ich fasse mal zusammen, was ich bisher versucht habe und was dabei an Fehlern aufgetreten ist.
Ich kann mit kdevelop unter Projekt / ausliefern & Paket erstellen ein tarball erzeugen. In dem Tarball fehlt aber die Versionsnummer beim Verzeichnisnamen.
Schon mal schlecht zum RPM erstellen. Versucht man jetzt mit kdevelop ein Binär-RPM zu erstellen, kracht es, weil RPM beim Build nicht in das ausgepackte Sourceverzeichnis wechseln kann.
Habe dann das Tarball ausgepackt, die Versionsnummer angehängt und das Verzeichnis wieder eingepackt. Kann eigentlich nicht der Sinn der Sache sein, wenn kdevelop das Paketbauen anbietet, man dann aber selbst das Source-Tarball umpacken muss.
Dann habe ich mit kdevelop unter Projekt / ausliefern & Paket erstellen ein Source-RPM erzeugen können. Das Specfile hatte ich vorher schon erstellt.
Bis hier könnte man meinen, hat es ja geklappt, dann müsste das Erstellen des Binärpakets ja mit einem Knopfdruck erledigt sein. Und nach diesem Knopfdruck wurde das nächste Problem erst sichtbar. Dieses kommt mir vor wie ein Akte X Fall, bin da völlig ratlos.
In dem tarball fehlen in einer Headerdatei folgende zwei Zeilen für den Präprozessor:
Code:
#ifndef PREFS_H
#define PREFS_H
Das führt dazu, dass die Übersetzung mit der Fehlermeldung abbricht, dass Prefs mehrfach definiert sei.
In dem Header im Sourceverzeichnis des kdevelop-Projektordners stehen die zwei Zeilen noch. Im Tarball fehlen sie. Wie kann so etwas passieren?
Aber es kommt noch besser:
Habe im entpackten Buildverzeichnis die fehlenden Zeilen in den Header nachgetragen (mit Copy & Paste aus dem Original-Header) und dann ./configure und make von Hand aufgerufen.
Jetzt beschwert sich der Präcompiler über ein "unterminated ifndef". Was bedeutet das? Ich habe den Header auf Herz und Nieren geprüft, er ist korrekt. Warum kann ich mein Programm nicht aus dem Sourcetarball heraus erstellen?
Ich denke, dass meine kleine Applikation dem einen oder anderen gute Dienste leisten könnte, aber wenn man zum Installieren eine vollständige und eingerichtete kdevelop-Installation benötigt, werden wohl nicht viele diese Applikation testen wollen. Ich wäre darum sehr froh, wenn mir hier jemand weiterhelfen könnte.
Gruß,
Taki
P.S.: ktvapp ist bei kde-apps.org angemeldet. Dort kann man auch das kdevelop-Projektverzeichnis runterladen:
http://www.kde-apps.org/content/show.php?content=23381