Re: Wiki-Artikel über rpmbuild

Olaf Radicke briefkasten at olaf-radicke.de
Sun Mar 4 09:32:57 UTC 2012


Hi Christoph!



Christoph Wickert <christoph.wickert at googlemail.com> hat am 2. März 2012 um
21:33 geschrieben:

> 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.

Software fällt nicht vom Himmel. Die wird von Softwareentwicklern gemacht.
Zu 99,9% wird ein Entwickler(-Team) zuerst ein Buildsstem wie make, cmake,
qmake, ant oder der gleichen verwenden. rpmbuild ist das letzte Glied in dem
Erstellungsprozess.

Gute Entwickler hassen es Dinge zweimal tun zu müssen. Wenn du mit rpmbuild
Entwickler zwingst alle doppelt machen zu müssen, wirst du auf Granit beißen.
make ist steinalt. Die Schnittstellen haben sich in den Jahren kaum geändert.
In make hast du dich schnell eingearbeitet. Nach ca. 30 Min. hast du dein
erste funktionierendes Makefile gebaut. Nach einer Woche bist du "make-Guru".
Die Arbeitsweise von make ist Transparenz und wenig überraschend (im negativen
Sinne).

Wie schaut es bei rpm aus?
Nach einer halben Stunde bist du mit rpm noch nicht viel weiter als am Anfang.
Nach einer Woche tut es rpmbuild irgend wie, aber nicht so wie du es willst.
Das Hauptproblem ist - aus meiner Sicht - das zu viel mit "schwarzer Magie"
gearbeitet
wird. Es passieren zu viel Dinge im Hintergrund mit überraschendem Resultat.
Das es viel Doku zu rpmbuild gibt, werde ich nicht unbedingt als Plus. Offenbar
ist rpmbuild ohne umfassende Erläuterung unbedienbar.

Erschwerend kommt hinzu, das rpm es nicht geschafft hat ein selbständiges
Projekt zu werden, was die Entwicklung zentral vorantreibt. Stattdessen
sieht sich der Entwickler mit einen regelrechten Zoo gepachter RPM-Versionen
verschiedenster Distributionen konfrontiert. Und zu allem Überfluss, hat
jede Distribution noch ihre eigenen "ungeschriebenen Gesetze" also Konventionen.



> 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 ?

Sollte es möglich sein, tatsächlich eine gültige Lösung zu finden,
für das an sich triviale Problem, bin ich absolut dafür, sich ein
zutreffenden Namen für den Artikel zu überlegen.


> > <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.

Egal ob ich die Zeile...
 make RPM_ROOT=$RPM_BUILD_ROOT set-rpm

...nach setup oder pre-rpm schiebe: es geht nicht.


Gruß

Olaf


More information about the de-users mailing list