* lothar.behrens@lollisoft.de (lothar.behrens@lollisoft.de) [20051220 17:21]:
mein tgz File eben. Das soll durch die Angaben des Users irgendwo entpackt werden.
Welches tgz File? Normalerweise besteht ja der Inhalt eines .src.rpm aus einem Tarball, einer .spec Datei und evtl. noch einem oder mehreren Patches.
Das mit make install oder %makeinstall lasse ich besser noch.
Warum? Ist im Prinzip ganz einfach. Bau einfach eine Variable in die Makefiles ein, die normalerweise leer ist. Wenn du automake zum Erstellen der Makefiles benutzt, wird dafür DESTDIR verwendet. Das sieht dann gekürzt so aus: prefix = /usr/local bindir =$(prefix)/bin DESTDIR = install: install -d $(DESTDIR)/$(bindir) install $(PROGRAMS) $(DESTDIR)/$(bindir) Innerhalb der .spec Datei rufst du nun make so auf: make DESTDIR=%{buildroot} Und wenn Buildroot verwendet wird (das sollte immer der Fall sein), wird die Software nun dorthin kopiert und RPM packt sie dann in das .rpm mit den in der %files Sektion angegebenen Pfaden.
Ich mache ein CVS export, um das dann in ein tarball zu packen. Dies wird dann in /usr/src/packages/SOURCES kopiert. Das nimmt rpmbuild auch und es ist dannach im rpm File. Nur die Installation geht nicht - es passiert nichts.
Nimm dir ein beliebiges GNU Paket und schau dir mal an, wie bei 'make dist' der Tarball produziert wird. *So* sollte auch deiner aussehen, sprich ein nicht absolutes Verzeichnis beinhalten, unterhalb dessen der Quellcode-Baum liegt.
Ich verstehe nur nicht, warum ich im %files Zweig die Dateien nochmal angeben muss. Die sind ja im tgz File und das findet rpmbuild ja schon.
Das sind doch zwei Paar Schuhe! In deinem Tarball liegen die *Quellen*. In der %files Sektion gibst du an, welche der Dateien in das zu bauende binäre .rpm gepackt werden sollen. Du willst ja normalerweise nicht, dass dieses auch den Quellcode beinhaltet. [Signatures zitiert man nicht!] Philipp -- Philipp Thomas <pth BEI suse.de> R&D SUSE LINUX Products GmbH, Maxherrnstr. 23, D-90409 Nürnberg