Paket sourcen kompilieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Godi
Beiträge: 22
Registriert: 13.05.2011 17:15:01

kde-workspace kompiliert schwarzer Bildschirm

Beitrag von Godi » 08.03.2014 17:38:19

Hallo Zusammen,

<EDIT>
Kurze Zusammenfassung:
Wie kann es sein, dass eine aus den Sourcen eines APT Paketes selbst kompilierte shared library ungleich der mit dem Paket "gelieferten" ist?
Es geht um "libkdeinit4_plasma-desktop.so" einem aus dem Kubuntu backport PPA und einem selbst kompiliert beide Versionsstand 4.11.6
</EDIT>


ich würde gerne eine Änderung am KDE vornehmen. Habe mir zu Testzwecken Kubuntu 12.04 (mit kde aus den Backports) installiert und die Kubuntu sourcen von kde-workspace heruntergeladen. Die Sourcen und die Packport Pakete sind beide Version 4.11.6.
Um es vorab zu testen habe ich die sourcen kompiliert. cmake hat mir ein paar Warnungen ausgegeben, die allerdings "nur" für Entwickler gedacht waren.
Make ist dann ohne Fehler durchgelaufen.

Meine Änderungen betreffen die libkdeinit4_plasma-desktop.so

Die von mir kompilierte Datei ist mit 6MB wesentlich größer als das Original ~500kB. Wenn ich sie mittels "strip --strip-unneeded" bearbeite sind beide Dateien genau gleich groß.
Wenn ich die original kubuntu lib durch die von mir kompilierte ersetzte, und mich mit einem breits vorhanden user anmelde bekomme ich erstmal nur das Hintergrundbild und das Desktop Cashew angezeigt. Panels kann ich über das Desktop Cashew oder mittels Rechtsklick anlegen.
Diese bleiben nach dem Neustart auch erhalten.

Erstelle ich einen neuen Benutzer sehe ich nach der Anmeldung ebenfalls das Hintergrundbild und den Desktop Cashew. Ein klick mit der rechten Maustaste bleibt ohne Funktion. Wenn ich mittels Desktop Cashew ein neues Panel anlege, wird ein Ausschnitt des Panels in der linken oberen Ecke angezeigt, der Rest des Hintergrundes wird dann weiß. Ich kann dann auch mit der rechten Maustaste in dieser Ecke "arbeiten". Das Panel wird nach dem Neustart nicht mehr angezeigt.

Beide Dateien scheinen daher nicht gleich zu sein.

Habt Ihr vielleicht eine Idee woran das liegen kann?

Vielen Dank schonmal...

Godi
Beiträge: 22
Registriert: 13.05.2011 17:15:01

Paket sourcen kompilieren

Beitrag von Godi » 11.03.2014 11:58:57

Hallo,

ich habe von ein Paar Tagen schon einen Thread geöffnet, allerdings hatte bisher leider niemand einen Tip für mich.
Daher möchte ich die Sache mal anders angehen.

>>> Wie würdet Ihr vorgehen, wenn Ihr eine kleine Änderung am kde-workspace Paket machen wolltet???

Hintergrund:
Die Kontrollleiste soll in der Einstellung "Fenster können die Kontrolleiste überdecken" grundsätzlich im Hintergrund bleiben. Also auch dann, wenn die Maus den Rand des Desktops berührt. Ich weiß wie ich den Quellcode anpassen muß um das zu erreichen.
Allerdings ist es so, dass die libkdeinit4_plasma-desktop.so, in die meine Änderungen einfließen, nicht stabil läuft.
Wenn ich die vorhandene lib (aus dem installierten kde-workspace paket) mit der aus den "passenden" Paketsourcen kompilierten Datei vergleiche, muß ich leider feststellen, dass sich beide Dateien unterscheiden. (Obwohl ich an der sourcedatei zu diesem Zeitpunkt noch keine Änderung vorgenommen habe!)

Ich hoffe Ihr könnt mir helfen.

Vielen Dank!

pferdefreund
Beiträge: 3791
Registriert: 26.02.2009 14:35:56

Re: Paket sourcen kompilieren

Beitrag von pferdefreund » 11.03.2014 12:41:19

Die müssen sich ja unterscheiden - irgendwo im Maschinencode befindet sich mit Sicherheit das Compilierungs- oder Linkdatum und schon hat man eine Abweichung. Auch Kompileroptionen oder Versionen führen zu unterschiedlichem Maschinencode.
Habe gerade mal ein Programm von mir mit gcc -o enc enc.c und dann gcc -o enc1 enc.c kompiliert und die sind - auch ohne Sourceänderung unterschiedlich.

Godi
Beiträge: 22
Registriert: 13.05.2011 17:15:01

Re: Paket sourcen kompilieren

Beitrag von Godi » 11.03.2014 13:27:52

Hallo pferdefreund,

(Dein Name passt gut ins Programm - ich komme aus Warendorf ;-) )

vielen Dank für die info. Die Programme sind von der Größe identisch, wenn ich allerdings mit diff -a vergleiche, ist diff zumindest der Meinung, es sei eine Menge unterschiedlich.

Wie dem auch sei, mein build läuft nicht einwandfrei und die Frage ist warum???

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: Paket sourcen kompilieren

Beitrag von peschmae » 11.03.2014 13:44:06

Ich hab die beiden Threads mal zusammengeklebt. Es ist nicht sonderlich sinnvoll zwei Threads mit je der Hälfte der Informationen zu erstellen....

Hast du denn das Paket mit den gleichen Optionen konfiguriert, wie es auch gebaut wird wenn das Paket erstellt wird? Also mit debian/rules? Das sollte dann eigentlich eventuelle Aufrufe von strip auch gleich machen. Oder hast du das irgendwie sonst von Hand gebastelt?

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Godi
Beiträge: 22
Registriert: 13.05.2011 17:15:01

Re: Paket sourcen kompilieren

Beitrag von Godi » 11.03.2014 14:46:14

ähm debian/rules?!? Ich glaube das ist der Schlüssel!!!
Eigentlich brauch ich ja nur die eine lib. Da ich bisher noch keine Pakete gebaut habe, dachte ich, die "Einstellungen" wären alle in den source Paketen enthalten.
Werde das mal googlen, probieren und dann berichten - vielen Dank!!!

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: Paket sourcen kompilieren

Beitrag von peschmae » 11.03.2014 22:24:24

Ja, die Einstellungen sind da im Prinzip alle mit drin. Wobei dort nicht so genau steht was für einen Compiler und Versionen anderer Bibliotheken beim bauen des "offiziellen" Pakets verwendet wurden.

Normalerweise kannst du ein Source-Paket kompilieren und das Binärpaket erstellen mittels Aufruf von fakeroot debian/rules binary im Ordner mit den Paketquellen... (vorausgesetzt du hast die nötigen Abhängigkeiten, was ein dpkg-checkbuilddeps verrät)

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22355
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: Paket sourcen kompilieren

Beitrag von KBDCALLS » 11.03.2014 23:34:30

Im Prinzip müßte man dann die excat gleiche Buildumgebung haben , mit der das Ursprungspaket gebaut worden ist. Also libc6 gcc/c++ und alles was sonst noch gebraucht wird.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Antworten