spec file - Dateien austauschen - Hilfe gesucht

Alles, was sonst nirgendwo reinpasst

spec file - Dateien austauschen - Hilfe gesucht

Beitragvon zven » 01.10.08 17:23

Hallo,
kennt sich einer zufällig mit spec-Files aus? Die benutze ich beim OpenSuse Buildservice. Mein Wissen ist sich auf dem Gebiet der spec- und make-files doch sehr begrenzt. Konkret will ich ein tar-Archiv mit eigenen Dateien patchen, um nicht jedes mal das Archiv neu verpacken zu müssen.
Normale Patches mit diff habe ich schon erstellt, nur die verändern nur Dateien, tauschen aber keine kompletten Dateien aus.
Vielleicht weiß der ein oder andere ein Beispiel, welches ich mir anschauen könnte.
Grüße, Sven
zven
Promoter
 
Beiträge: 701
Registriert: 12.09.05 19:12
Studiengang: ?
Studiert seit: ?

Beitragvon oxygen » 01.10.08 17:42

spec files sind Beschreibungsdateien um RPM Pakete aus den Sourcen zu bauen. Ich denke nicht, dass du das willst.

Für mich klingt das eher, als wäre hier ein Shell Script die richtige Wahl.
oxygen
 
Beiträge: 1054
Registriert: 16.12.05 23:05
Wohnort: Bergheim
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: Medizin

Beitragvon zven » 01.10.08 18:05

Doch, genau das will ich. OpenSuse-Buildservice ermöglicht es einem, rpms aus sourcen für verschiedene Suse Versionen und Architekturen zu kompilieren und in rpms zu verpacken. Und dieser Vorgang wird mit den spec-files gesteuert. Es existieren entsprechende Marker für Source-Dateien, Patch-Dateien und so weiter.
Irgendwie kann man nach dem Entpacken der Sourcen und vor dem Kompilierungsvorgang dazwischenfuschen und das ganze manipulieren. Dies wird beispielsweise bei PHP gemacht, wo der Suhosin-Patch eingespielt wird. Habe nur keine Ahnung wie dies genau gemacht wird.

Nachtrag: Beim Kopfreimachen von Malo mit dem Hund ne Runde draußen gehen, ist mir dann eingefallen, dass du da Recht hast. Ich hatte in Gedanken der spec-file eine zu große Macht zukommen lassen. Es läuft wohl auf eine Kombination von spec-file-Anweisungen mit einem shell-update-Skript hinaus. Nur habe ich keine Ahnung, wie man da an der richtigen Stelle eingreift, um seine Sourcen in die Sourcen des eigentlichen Programms hineinschmuggeln zu können.
zven
Promoter
 
Beiträge: 701
Registriert: 12.09.05 19:12
Studiengang: ?
Studiert seit: ?

Beitragvon oxygen » 01.10.08 18:58

schau dir vielleicht mal portage bzw. das ebuild System von Gentoo an. Das tut genau was du willst.
Oder einfacher die Ports Collection von FreeBSD, die das ganze auf Grundlage von Makefiles macht.
oxygen
 
Beiträge: 1054
Registriert: 16.12.05 23:05
Wohnort: Bergheim
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: Medizin

Beitragvon HE » 02.10.08 09:38

zven hat geschrieben:Nachtrag: Beim Kopfreimachen von Malo mit dem Hund ne Runde draußen gehen, ist mir dann eingefallen, dass du da Recht hast. Ich hatte in Gedanken der spec-file eine zu große Macht zukommen lassen.


Nein, die paßt genau. specs sind Turing-vollständig. Du willst wohl in etwa das folgende:

Code: Alles auswählen
%prep
cp stuff/from/here to/there
rm other/stuff
perl -pi -e 's|\${prefix}|%prefix|' README
other cool shell magic


Du solltest wohl am besten mal http://docs.fedoraproject.org/drafts/rpm-guide-en/ lesen.

oxygen hat geschrieben:schau dir vielleicht mal portage bzw. das ebuild System von Gentoo an. Das tut genau was du willst.
Oder einfacher die Ports Collection von FreeBSD, die das ganze auf Grundlage von Makefiles macht.


Die tun's genauso wie .spec. Oder debian/rules. Also eigentlich kann man alle build-Systeme nehmen, weil die, oh Wunder, alle relativ flexibel sind. Manche sind dabei sogar brauchbar!

Marc
Benutzeravatar
HE
 
Beiträge: 453
Registriert: 09.03.07 12:20
Wohnort: Aachen
Studiert seit: WS 06/07
Anwendungsfach: Mathe


Zurück zu Off-Topic