Am Sonntag, den 24.07.2005, 22:17 +0200 schrieb Christoph Wickert:
- Gibt es ein Programm, mit dem ich einigermaßen komfortabel Specfiles
erstellen, vorallem aber verwalten kann? Eigene rpmmacros setzen und so nervige "Kleinigkeiten" wie korrekte Tags im Changelog. Bisher nutze ich meist fedora-newrpmspec, aber das ist ja eine eher einfach gehaltene Vorlage.
Ich kenne da nix sinnvolles außer einem Editor und einem CVS Server.
Ich hab mir dafür ein VIM Makro gemacht:
map ^E /^.changelog/^[o^[k:r ! date '+%a %b %d %G'^MA Stefan Held obi@unixkiste.org^[I* ^[o-
Da ich mir nicht sicher bin ob der Mailinglisten Manager das nicht verhunzt, oder eventuell mein oder dein Mail Programm hab ich nochmal auf meinen Webserver gestellt:
http://unixkiste.org/changelog
und ja, die komischen Zeichen wie ^M gehören da dringend rein :-) Im VIM selbst erzeugst du die mit strg+v und strg+Buchstabe falls du das nicht eh schon weist.
Wenn ich im Kommando Mode bin drücke ich nur noch strg+e und et voilà lande ich direkt am ersten Changelog Eintrag :-)
Kommt halt immer drauf an wie oft man es braucht :-)
- Ich baue Pakete für Core 3 und 4. Ich frage mit, ob es sinnvoll ist,
getrennte SRPMS bereit zu stellen oder ob ich nicht SRPMS bauen soll, die auf beiden Distributionen bauen.
Das wäre imho zu bevorzugen.
- Abhängigkeiten: Ich denke, es ist sinnvoll, die Abhängigkeiten auf
Core 3 oder 4 abzustimmen, man liest ja immer wieder, daß Leute einfach Pakete installieren, die Sie mittels rpmfind gefunden haben ;-) Nehmen wir an, ein Programm braucht gtk >= 2.2 zum compilern. Einerseits soll das Specfile bzw. das SRPM so allgemein gehalten sein, daß es ab gtk 2.2 läuft, das RPM soll aber Release-spezifisch gtk >= 2.8 oder 2.10 haben.
Du kannst mal einen Blick werfen auf das Postfix RPM von Simon Mud => http://postfix.wl0.org/en/available-packages/
Der hat da einige Dinge dabei die sowas tun. Unter anderem auch ein sh script das ihm die abhängigkeiten im spec file korrekt setzt.
Ich könnte natürlich Requires: gtk2 >= 2.10.0 BuildRequires: gtk2-devel >= 2.10.0 machen, aber schon hier müsste ich ja für Core 3 und 4 verschiedene SRPMS haben.
Dann solltest du aber das RPM auch Version Specific labeln nach dem Build.
- Oder kann ich solche Sachen beim rpmbuild mittels "define ..."
setzen, ohne das Specfile ändern zu müssen?
Müsste auch gehen. Ich würde allerdings den User einbeziehen. Komfort ist schön und gut aber naja :-)
- Automatisches Signieren vom Paketen (in Scripten, also ohne die
Passphrase einzugeben?
Uh gute Frage, ich signieren meine Pakete im moment noch nicht, da ich Sie eh nur selbst benutze. Du solltest allerdings in /usr/share/doc/rpm oder auf rpm.org die passende Doku lesen.
Eventuell kann einer der hier mitlesenden Extras Packager ja was dazu sagen *ZuAlexschiel* :-)
Probleme:
- Ich habe ein Paket, das ich nicht mit dem %setup macro entpackt
bekomme. Erstmal erzeugt das Paket kein Verzeichnis, also habe ich setup -n genommen, was aber auch scheitert. Die Datei ist ein .tar.bz2, allerdings kann ich sie nicht wie gewöhnlich mit
$ gzip -dc foo.tar.bz2 | tar -xvvf -
enpacken: gzip: foo.tar.bz2: not in gzip format
hmm ich weis nicht was du da anstellst aber ich hab als
SOURCE0: foo.bar.tar.bz2 drin und dann entpackt mir das %setup das automatisch.
im übrigen ist das oben blödsinn, a.) tar xv'z'f entpackt tar.gz automatisch. Du musst nur auf *BSD und Solaris aufpassen weil dort das standard tar sowas nicht kann.
Für bz2 files kannst du anstatt dem z ein j einsetzen.
sed -e 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/' -) sed -e 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/' -)
Major Version ist die Hauptversions Nummer, die Minor dann die kleinere.
Beim aktuellen gaim also: Major 1 Minor 4.
Ehm ich würde einfach mal sagen, dieser Sed Ausdruck ist kaputt. :-) Ich kann mich aber auch täuschen.