On Sun, 4 Mar 2012 20:25:11 +0100 (CET), OR (Olaf) wrote:
Als User brauchst du maximal drei Befehle: "make" &
"make install".
Manchmal noch eine "configure".
Äh? "configure" hat mit "Make" erstmal überhaupt nichts zu tun.
Wenn Du die Autotools in die Sache hineinziehst, geht der Spaß richtig
los. Dann ist weit mehr Lesen von Dokumentation notwendig, um allein
die speziellen Namensgebungsschemata für Variablen zu lernen. Es finden
sich immer wieder Entwickler, die daran scheitern oder deshalb auf die
Autotools verzichten und komplexe Makefiles allein schreiben wollen.
Für ein einfaches Makefile für ein "Hello, world!" Programm reicht
Lesen von "man make" auch nicht. Im info basierten Make Manual gibt es
schon reichlich zu lesen.
Als rpmbuild-User musst du wissen:
1.) Das du ein Tar-Archiv des Codes brauchst.
Nicht zwingend.
2.) Das er an einer ganz bestimmten stelle abgelegt werden muss (die
auf
unterschiedlichen Distributionen unterschiedlich sein kann).
Ergibt sich [notfalls] auch aus den Fehlermeldungen.
3.) Das das Verzeichnis im Tar-Archiv den gleichen Namen haben muss
(einschlislich
Versionsnummer) wie das Ziel (das rpm), was nicht selbstverständlich ist.
Nicht zwingend. Das %setup Makro versteht diverse Optionen, mit denen
Du auch andere "topdir" Verzeichnisnamen im tarball nutzen kannst.
Hunderte, ach, Tausende source tarballs haben ein topdir
$(PACKAGE_NAME)-$(PACKAGE_VERSION), nicht nur GNU Projekte.
4.) Das rpmbuild noch Parameter erwartet. Mindestens den Namen des
Spec-File.
Meist noch weitere, die man durch das lesen des Spec-Files oft nicht
ableiten
kann (im Gegensatz zu make).
Der Anfang von "man rpmbuild":
SYNOPSIS
BUILDING PACKAGES:
rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [rpmbuild-options] SPECFILE ...
rpmbuild {-ta|-tb|-tp|-tc|-ti|-tl|-ts} [rpmbuild-options] TARBALL ...
rpmbuild {--rebuild|--recompile} SOURCEPKG ...
Das sind im Vergleich nun wahrlich nicht soviele Befehle, als daß sie einen
erschlagen würden.
5.) Das dass fertige rpm nicht dort gespeichert wird, wo man das
Spec-File
aufgerufen wird.
Ist das so schlimm? rpmbuild gibt doch die Pfade am Ende deutlich zu
erkennen aus.
6.) Das unter bestimmten Umständen die rpmbuild-Umgebung nicht
automatisch
erstellt wird.
Vage. Aber auch nicht das unüberwindliche Hindernis.
7.) Das die rpmbuild-Umgebung von mehr als einem Paket verwendet
wird.
Ja nun, bist Du auf dieser Mailing-Liste, um etwas zu RPM und rpmbuild
lernen zu wollen? Oder liegt Dir mehr am Herumstänkern?
rpmbuild ist eindeutig für Maintainer und Distributoren gemacht.
Allgemein: für RPM Paketierer. Und für einfache Pakete ist eine spec
Datei nur eine Mischung aus Shell Skript und Config Datei. Dazu gibt
es Beispiele zu Hauf.
Nur sind
wir Heute in der glücklichen Lage, das mehr Software für Linux hergestellt
wird, als die Maintainer der Distributionen jemals verwalten können. Nicht
ohne Grund gibt es so was wie EPEL.
EPEL gibt es nur, weil es sich nicht mit dem Produkt RHEL zusammenlegen läßt
wie es bei Fedora Core und Fedora Extras geschehen war. Gleiches gilt für
jedes 3rd party repository. Übrigens, EPEL ist nicht unumstritten.
> > jede Distribution noch ihre eigenen "ungeschriebenen
Gesetze" also
> > Konventionen.
> >
>
> Die von Fedora sind dokumentiert.
Sicher sind sie das! Genauso wie für Red Hat, Red Falg Linux, CentOS, SuSE
Linux, Oracle Linux, Conectiva, Berry Linux, Yellow Dog Linux, Scientific Linux,
Mandriva Linux <
http://distrowatch.com/mandriva> , Mageia, uvam...
Was soll Deine Aussage sein? Makefiles gleichen sich auch nicht alle.
Weder reines Make/GNU Make, noch Autoconf/Automake/Libtool basierende.
Du nennst Dich selbst "Make Guru". Spätestens echte Gurus leben sich
manchmal in ihren Makefiles aus und verzichten z.B. auf viele implizite
Regeln.
Und du erwartest tatsächlich, das Entwickler sich damit beschäftigen
wollen?
Wurdest Du gezwungen, einen Wiki Artikel zum Thema "rpmbuild und Makefile
Integration" zu schreiben? Wurdest Du gezwungen, zu einem Projekt nicht
nur eine einfache spec Datei zu erstellen, sondern die ins Makefile zu
integrieren?
Also bitte! Ganz zu Anfang erwähntest Du schon "inbrünstigen Hass auf
rpm/rpmbuild". Ahnst Du, wieviele Leser da abgetörnt wegclicken und
überhaupt nicht mehr daran denken, Dir eventuell zu helfen? Und auf
Christophs Antwort folgt nur noch Jammerei. Wohin soll das denn führen?