Re: Wiki-Artikel über rpmbuild
Christoph Wickert <[email protected]> Fri, 02 Mar 2012 21:33:18 +0100
| Newsgroups | gmane.linux.redhat.fedora.german |
|---|---|
| Message-ID | <[email protected]> |
Am Donnerstag, den 01.03.2012, 22:34 +0100 schrieb Olaf Radicke: > > Hi! > > Langsam entwickele ich einen richtigen inbrünstigen Hass auf rpm/rpmbuild. > > Wenn ihr euch mal mein Beispiel anseht: > https://fedoraproject.org/wiki/How_to_create_a_GNU_Hello_RPM_package/de#Makefile_erstellen > > Dann fällt euch vielleicht im Makefile diese Zeile auf... Warum überhaupt ein Makefile? Das hat nichts mit rpmbuild zu tun und verkompliziert die Sache zusätzlich - was dem Verständnis nicht gerade dienlich ist. Im Gegenteil: Du automatisierst bestimmte Schritte (z. B. Source0 nach SOURCES kopieren), also muss man sie nicht mehr durchführen. Übung macht bekanntlich den Meister, also lass das die Leute doch selbst machen. Lass am besten das ganze Makefile weg, denn das ist echt eine ganz andere Baustelle. Die URL suggeriert zudem, dass es eine Übersetzung des englischen Artikels ist, aber Du machst was ganz anderes. Und sollte die URL dann nicht lauten: https://fedoraproject.org/wiki/Wie_man_ein_GNU_Hello_RPM_Paket_erstellt/de oder https://fedoraproject.org/wiki/Ein_GNU_Hello_RPM_Paket_erstellen/de ? > <snip> > dist-rpm: pre-rpm > <snap> > > Eigentlich ist das "pre-rpm" zu viel, denn es sollte vom Speck-File > aufgerufen werden... Mhh, Speck, lecker! ;) > <snip> > %prep > %setup -q > make PREFIX=$RPM_BUILD_ROOT pre-rpm > <snap> > > Doch dieser Befehl wird nie ausgeführt. Ich habe nie wirklich verstanden was > "%setup -q", aber offenbar führt er dazu, das "%prep" nicht ausgeführt wird. %setup nimmt den source tarball aus SOURCES, entpackt ihn und wechselt in den neu entstandenen Ordner. Also versuchst Du, den tarball zu entpacken, bevor Du ihn mit make pre-rpm überhaupt nach SOURCES kopiert hast. Wie Du richtig sagst ein Henne-Ei-Problem. > Wenn ich "%setup -q" woanders hin verschiebe, wird "%prep" auf ein mal > ausgeführt: > > <snip> > [...] > + cd /home/or/rpmbuild/BUILD > + make PREFIX=/home/or/rpmbuild/BUILDROOT/rpm-uebung-1-1.noarch pre-rpm > make[1]: Entering directory `/home/or/rpmbuild/BUILD' > make[1]: *** Keine Regel, um >>pre-rpm<< zu erstellen. Schluss. > [...] > > <snap> > > Der prefix ist definitiv falsch. Also ersetze ich die Zeile durch... > > <snip> > make PREFIX=%(echo $HOME)/rpmbuild/ pre-rpm > <snap> > > Nun lautet die Fehlermeldung.... > > <snip> > [...] > Ausführung(%prep): /bin/sh -e /var/tmp/rpm-tmp.N9C8lB > + umask 022 > + cd /home/or/rpmbuild/BUILD > + make PREFIX=/home/or/rpmbuild/ pre-rpm > make[1]: Entering directory `/home/or/rpmbuild/BUILD' > make[1]: *** Keine Regel, um >>pre-rpm<< zu erstellen. Schluss. > [...] > <snap> > > ...Ja? Warum sollte jetzt das Makefile auf ein mal in /home/or/rpmbuild/BUILD > sein? Weil 'cd /home/or/rpmbuild/BUILD' teil des %setup Makros ist. Details dazu unter http://www.rpm.org/max-rpm-snapshot/s1-rpm-inside-macros.html > Irgend wie scheint sich auf ein mal rpmbuild nicht mehr zuständig zu > fühlen, das Tar-Archif dort hin auszupacken, wo es es gerne hin haben will... > > > Also wenn ich das richtig sehe, gibt es hier ein Henne-Ei-Problem > (http://de.wikipedia.org/wiki/Henne-Ei-Problem): > > Das Makefile brauch Informationen von rpmbuild mit es die nötigen Vorbereitungen > treffen kann, mit rpmbuild funktioniert. rpmbuild braucht wiederum wiederum > Informationen von Makefile. > > Jetzt könnte man es sich leicht machen und ein autonomes Spec-File machen. Bei > einem Projekt mit einer Bash-Datei kein Problem. Aber bei einem Großen Projekt > mit hunderten Dateien wird man ja schier wahnsinnig ständig zwei Files anpassen > zu müssen. Zumal 95% identisch und redundant ist. Und zwar? Was ist hier redundant? Das Übersetzen der Quellen und das Erstellen eines Paketes sind 2 verschiedene Vorgänge. Das eine wird mit dem Makefile gemacht und das andere mit der spec. Solange man nicht beides vermischt ist da meiner Ansicht nach gar nichts redundant. > Also entweder ich hab irgend was Grundsätzliches an rpmbuild noch nicht > verstanden, oder das Tool ist echt für den Ar***. Ich vermute ersteres. Beste Grüße, Christoph -- de-users mailing list [email protected] https://admin.fedoraproject.org/mailman/listinfo/de-users