rpmbuild Probleme (für die Experten)

Stefan Held obi at unixkiste.org
Thu Jul 28 01:17:33 UTC 2005


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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.fedoraproject.org/pipermail/de-users/attachments/20050728/19ab943e/attachment.bin 


More information about the de-users mailing list