Am Sonntag, den 24.07.2005, 22:17 +0200 schrieb Christoph Wickert:
1. 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(a)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 :-)
2. 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.
3. 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.
4. 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 :-)
5. 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:
1. 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.
--
Stefan Held VI has only 2 Modes:
obi(a)unixkiste.org The first one is for beeping all the time,
IRCNet: Obi_Wan the second destroys the text.
---------------------------------------------------------------------------
perl -e'map{print pack c,($|++?1:13)+ord,select$,,$,,$,,$|}split//,ESEL.$/'
---------------------------------------------------------------------------
GPG-Keyprint = EAF2 6A65 D102 F2DB 4970 2A67 455B 98F2 572C 3FA9