SRPMs Spec ein bisschen ändern und neu bauen
Hi, wenn ich z. B. von pacman.... was runtergeladen habe und es z. B. für meinen Duron optimiert kompilieren möchte, wie gehe ich dann am einfachsten vor? Ein rpm --rebuild --target athlon hat nur bewirkt, dass das RPM ein Byte größer (kleiner?) und unter /usr/src/packages/RPMS/athlon zu finden ist. Die gcc-Kommandos optimieren immer noch -march=pentiumpro -mcpu=pentiumpro Hatte ich auch vermutet, nachdem ich mir per rpm2cpio das spec-file angeschaut habe, aber man kann's ja mal versuchen... Wie entpack und wiederverpack ich also so ein SRPM am einfachsten und richtig? (sprich: mit welchen Optionen macht Ihr das so?) Ré
Am Die, 07 Mai 2002 schrieb René Matthäi:
wenn ich z. B. von pacman.... was runtergeladen habe und es z. B. für meinen Duron optimiert kompilieren möchte, wie gehe ich dann am einfachsten vor? [...] Wie entpack und wiederverpack ich also so ein SRPM am einfachsten und richtig? (sprich: mit welchen Optionen macht Ihr das so?)
Installieren wie ein ganz normales RPM, landet dann unter /usr/src/packages, das spec-File im Unterverzeichnis SPECS. Das kannst Du dann editieren und mit rpm -ba spec-File den Neubau anstoßen. Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Christoph Maurer schrieb
Am Die, 07 Mai 2002 schrieb René Matthäi:
[...] Wie entpack und wiederverpack ich also so ein SRPM am einfachsten und richtig? (sprich: mit welchen Optionen macht Ihr das so?)
Installieren wie ein ganz normales RPM, landet dann unter /usr/src/packages, das spec-File im Unterverzeichnis SPECS.
Das kannst Du dann editieren und mit rpm -ba spec-File den Neubau anstoßen.
bin im Moment auch gerade dran ein spec-File zu verändern, und das ganze dann wieder neu zu Bauen. Bis jetzt hatte ich aber nur Probleme damit. Ich hatte mir das Orginal Qpopper srcpm aus der Serie Zq1 SuSE 8.0 genommen. Dieses habe ich mit rpm -ihv packetname ausgepackt. Dann habe ich das spec-File editiert (hinzufügen eines Patches) danach ein rpm -ba spec-File und dann gab es beim make Fehler und dann schließlich der Abruch. Nun gut dachte ich, probiere ich mal das spec-File nicht zu verändern und siehe da, die Fehler waren auch da. Warum gibt es bei einem Orginal srcpm und ohne das spec-File zu verändern Fehler? Sollte doch nicht sein, Oder? Gruss, Mario
Am Die, 07 Mai 2002 schrieb Mario Duve:
Christoph Maurer schrieb
[RPM aus Source RPM bauen] Das kannst Du dann editieren und mit rpm -ba spec-File den Neubau anstoßen.
bin im Moment auch gerade dran ein spec-File zu verändern, und das ganze dann wieder neu zu Bauen. Bis jetzt hatte ich aber nur Probleme damit. Ich hatte mir das Orginal Qpopper srcpm aus der Serie Zq1 SuSE 8.0 genommen. Dieses habe ich mit rpm -ihv packetname ausgepackt. Dann habe ich das spec-File editiert (hinzufügen eines Patches) danach ein rpm -ba spec-File und dann gab es beim make Fehler und dann schließlich der Abruch. Nun gut dachte ich, probiere ich mal das spec-File nicht zu verändern und siehe da, die Fehler waren auch da.
Warum gibt es bei einem Orginal srcpm und ohne das spec-File zu verändern Fehler? Sollte doch nicht sein, Oder?
Nein, sollte eigentlich in der Tat nicht sein, was sind das denn für Fehler? Ich könnte mir gut vorstellen, daß Du irgendein Paket nicht installiert hast, das zum Kompilieren des Programms gebraucht wird. Es ist ja oft so, daß zum Übersetzen eines Programms aus den Quellen mehr Pakete installiert sein müssen als wenn man es als binary-RPM installieren und nutzen will (Header-Dateien der verwendeten Bibliotheken, Tools wie gcc, make, autoconf, bison, flex). Könnte Dein Problem daran liegen? Bei mir hat eigentlich noch jede Neuübersetzung der Source RPMS funktioniert? Im Spec File sollte eigentlich drinstehen, welche Pakete benötigt werden? Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
----- Original Message -----
From: "Christoph Maurer"
Am Die, 07 Mai 2002 schrieb Mario Duve:
Christoph Maurer schrieb
[RPM aus Source RPM bauen] Das kannst Du dann editieren und mit rpm -ba spec-File den Neubau anstoßen.
bin im Moment auch gerade dran ein spec-File zu verändern, und das ganze dann wieder neu zu Bauen. Bis jetzt hatte ich aber nur Probleme damit.
[...]
Warum gibt es bei einem Orginal srcpm und ohne das spec-File zu verändern Fehler? Sollte doch nicht sein, Oder?
Nein, sollte eigentlich in der Tat nicht sein, was sind das denn für Fehler? Ich könnte mir gut vorstellen, daß Du irgendein Paket nicht installiert hast, das zum Kompilieren des Programms gebraucht wird.
[...]
Im Spec File sollte eigentlich drinstehen, welche Pakete benötigt werden?
Die einige abhängigkeit ist Requires: pam. Das ist installiert. Fehlermeldung ist z.B pop_user.c: In function `pop_user': pop_user.c:133: `DBM' undeclared (first use in this function) pop_user.c:133: (Each undeclared identifier is reported only once pop_user.c:133: for each function it appears in.) geht aber noch so weiter. Wie gesagt, das ganze mit unverändertem spec-File. Gruss, Mario
Am Die, 07 Mai 2002 schrieb Mario Duve:
From: "Christoph Maurer"
Original-Message Header entsorgt! Muß das sein? Lies bitte mal http://learn.to/quote
Am Die, 07 Mai 2002 schrieb Mario Duve:
Christoph Maurer schrieb
[RPM aus Source RPM bauen] Das kannst Du dann editieren und mit rpm -ba spec-File den Neubau anstoßen. [...]
Warum gibt es bei einem Orginal srcpm und ohne das spec-File zu verändern Fehler? Sollte doch nicht sein, Oder?
Nein, sollte eigentlich in der Tat nicht sein, was sind das denn für Fehler? Ich könnte mir gut vorstellen, daß Du irgendein Paket nicht installiert hast, das zum Kompilieren des Programms gebraucht wird.
Und Kammquoting ist auch ätzend.
[...]
Im Spec File sollte eigentlich drinstehen, welche Pakete benötigt werden?
Die einige abhängigkeit ist Requires: pam. Das ist installiert. Fehlermeldung ist z.B
Ich meine nicht, was hinter Requires steht, das betrifft nur das fertige Paket, sondern, was hinter #neededforbuild und #usedforbuild steht. Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Am Dienstag, 7. Mai 2002 16:55 schrieb Mario Duve:
Die einige abhängigkeit ist Requires: pam. Das ist installiert.
Ist auch das pam-devel Paket installiert? Ohne klappt das sicher nicht. -- Machs gut | http://www.iiv.de/schwinde/buerger/tremmel/ Manfred | http://www.knightsoft-net.de
Am Die, 2002-05-07 um 14.56 schrieb René Matthäi:
Hi,
wenn ich z. B. von pacman.... was runtergeladen habe und es z. B. für meinen Duron optimiert kompilieren möchte, wie gehe ich dann am einfachsten vor? Du hast es schon herausgefunden ;)
Ein rpm --rebuild --target athlon hat nur bewirkt, dass das RPM ein Byte größer (kleiner?) und unter /usr/src/packages/RPMS/athlon zu finden ist. Die gcc-Kommandos optimieren immer noch -march=pentiumpro -mcpu=pentiumpro Hatte ich auch vermutet, nachdem ich mir per rpm2cpio das spec-file angeschaut habe, aber man kann's ja mal versuchen...
Wie entpack rpm -U bla.src.rpm
und wiederverpack ich also so ein SRPM am einfachsten rpm --rebuild bla.src.rpm
und richtig? rpm -ba bla.spec
(sprich: mit welchen Optionen macht Ihr das so?) Wenn es um gcc-Optimierung von rpms geht, wäre rpm --target schon richtig.
Diese werden von diversen rpm-Konfigurationsdateien (/usr/lib/rpmrc,/usr/lib/rpm/*, /usr/lib/rpm/*/macros). in entsprechene RPM_OPT_FLAGS u.ä umgesetzt und können (Wenn es im rpm.spec vorgesehen ist und das zu konfigurierende Paket auch verarbeiten kann) in entsprechende CFLAGS u.ä. beim Übersetzen von RPMs verwendet werden. Ohne mir die Details jetzt näher angesehen zu haben, ist es gut möglich, dass SuSE's rpm so konfiguriert ist, dass "athlon" identisch mit i686/pentiumpro ist, da der gcc-2.95.3 keine Athlon-spezifische Optimierung kennt (k6 kennt gcc-2.95.3 allerdings, ob's was bringt, darüber scheiden sich die Geister.). Davon mal abgesehen, sagt die Grösse eines kompilierten Programmes (und damit die Grösse des RPMS) nichts über den Inhalt aus. Der Inhalt kann sich ganz erheblich unterscheiden. Ralf
On Tue, May 07, René Matthäi wrote:
Hi,
wenn ich z. B. von pacman.... was runtergeladen habe und es z. B. für meinen Duron optimiert kompilieren möchte, wie gehe ich dann am einfachsten vor?
Ein rpm --rebuild --target athlon hat nur bewirkt, dass das RPM ein Byte größer (kleiner?) und unter /usr/src/packages/RPMS/athlon zu finden ist. Die gcc-Kommandos optimieren immer noch -march=pentiumpro -mcpu=pentiumpro Hatte ich auch vermutet, nachdem ich mir per rpm2cpio das spec-file angeschaut habe, aber man kann's ja mal versuchen...
Wie entpack und wiederverpack ich also so ein SRPM am einfachsten und richtig? (sprich: mit welchen Optionen macht Ihr das so?)
Zum einfachen recompilieren von SuSE source RPMs gibt es das "build" Script, einfach das build RPM installieren und manual page lesen. Tschau, Thorsten -- Thorsten Kukuk http://www.suse.de/~kukuk/ kukuk@suse.de SuSE Linux AG Deutschherrnstr. 15-19 D-90429 Nuernberg -------------------------------------------------------------------- Key fingerprint = A368 676B 5E1B 3E46 CFCE 2D97 F8FD 4E23 56C6 FB4B
Hallo, Am 07.05.02 schrieb René Matthäi:
Ein rpm --rebuild --target athlon hat nur bewirkt, dass das RPM ein Byte größer (kleiner?) und unter /usr/src/packages/RPMS/athlon zu finden ist. Die gcc-Kommandos optimieren immer noch -march=pentiumpro -mcpu=pentiumpro
Schau dir mal die Datei(en) »rpmrc« an. Dort befinden sich diverse Einstellungen für die verschiedenen Architekturen. Daniel
participants (7)
-
Christoph Maurer
-
Daniel Seuthe
-
Manfred Tremmel
-
Mario Duve
-
Ralf Corsepius
-
René Matthäi
-
Thorsten Kukuk