rpmbuild Probleme (für die Experten)

Christoph Wickert christoph.wickert at gmx.de
Sun Jul 24 20:17:21 UTC 2005


Hallo allerseits!

Ich habe einige Grundsatz-Fragen und einige Probleme beim Bauen einiger
RPMs.

Grundsatzfragen:

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.

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.

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.

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.

4. Oder kann ich solche Sachen beim rpmbuild mittels "define ..."
setzen, ohne das Specfile ändern zu müssen?

5. Automatisches Signieren vom Paketen (in Scripten, also ohne die
Passphrase einzugeben?

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

mit bunzip2 -dc ... geht, aber wie sieht das als rpmmarco aus?

2. Ich habe das gaimnosd-0.7-1.4.0.src.rpm von 
https://sourceforge.net/project/showfiles.php?group_id=96242
gegen gaim-1.4.0 gebaut, allerdings verstehe ich was nicht: Aus dem
Specfile:

> %define gaim_major_ver %(echo %{gaimver} | sed -e 's/\\([[0-9]]*\\).\\([[0-9]]*\\).\\([[0-9]]*\\)/\\1/' -)
> %define gaim_minor_ver %(echo %{gaimver} | sed -e 's/\\([[0-9]]*\\).\\([[0-9]]*\\).\\([[0-9]]*\\)/\\2/' -)
                                                                                                     ^^^
Wo ist der Unterschied zwischen Major und Minor Version? Beide sed 
Ausdrücke liefern bei mir das gleiche zurück...

Viele Fragen, ich weiß. Danke für Antworten, Links, RTFMs etc.

Christoph





More information about the Fedora-de-list mailing list