[packman] Vorstellung: R. Eimann
Manfred Tremmel
manfred at links2linux.de
Mon Oct 4 21:21:55 CEST 2004
Hallo Marco, Hallo Raimund,
wenn ihr gestattet, würde ich mal meine Empfehlung für Repackager
abgeben, wie man sich das am einfachsten/besten einrichtet.
1. Natürlich braucht jeder seinen eigenen gpg Key, soweit ich weiß ist
das eh Voraussetzung für das mitmachen hier bei Packman. Mit dem Key
sollten dann nicht nur E-Mails sondern auch Pakete signiert werden.
Schaut euch dazu bitte in der Developer Faq folgenden Punkt an
http://packman.links2linux.de/?action=devel-faq#3 (den Rest
durchzulesen schadet sicher auch nicht).
Damit die Leute die Signatur prüfen können, brauchen sie aber auch
euren Public Key, da gibts ne Datei auf dem FTP Server die Rainer Lay
pflegt (wenn ich mich nicht irre) und seit kurzem gibts auch noch ein
RPM (http://packman.links2linux.de/?action=450), das ich manage. Wer
es noch nicht getan hat, bitte schickt uns beiden die Public GPG
Keys.
2. Wer Uploads auf den Packman-Server automatisieren will, sollte sich
auch einen SSH2-Key generieren und die Authentifizierung damit durch-
führen. Siehe
http://www2.uibk.ac.at/zid/software/unix/linux/ssh-publickey.html
3. Zum Thema Automatisierung ist natürlich in erster Linie das Script
packmanrobot.py von Hendrik Muhs zu erwähnen. Ich weiß gar nicht, wie
viele Stunden mir das schon eingespart hat, die ich vorher mit dem
Eintragen ins Webinterface verbracht habe (insbesondere bei nem
neuen xine-lib Release mit all den Kommentaren zu jedem RPM).
Wichtig für das Script ist, sich eine Konfigurationsdatei anzulegen,
die ~/.packmanrobot enthält folgende Daten (ohne die Kommentare):
packmanuser=zzzzzz <- Benutzername bei Packman
packmanpassword=xxxxx <- Passwort bei Packman
mantra=yyyyyyyyyy <- GPG Passphrase, wahlfrei, spart das
Tippen beim Signieren, ist aber
sicherheitstechnisch riskant, wenn
auch andere Zugriff auf den Rechner
haben
rpmbin=/usr/bin/rpmbuild <- Ab SuSE 9.0 wie hier, sonst nur
/usr/bin/rpm
rpmtopdir=/usr/src/packages <- Build directory
gpgbin=/usr/bin/gpg <- das gpg binary
scpbin=/usr/bin/scp <- das scp binary
target=i586 <- Standard Target, bei den AMD64ern ist
das dann wohl x86_64
distversion=9.1 <- Version der SuSE Distribution
Wer sich ein Source-RPM installiert, das SPEC-File angepasst hat,
./packmanrobot.py --remove --forceremove <specfile>
Den Upload, den Eintrag ins Webinterface und das Löschen von älteren
Versionen selbständig machen lassen.
Ach ja, SPEC-Files müssen entsprechend vorbereitet sein, spezielle
Kommentare liefern die Daten, die RPM selbst nicht bieten kann.
4. Wer noch etwas mehr Automatismus haben will, kann sich meine Build
Scripte anschaun, fürs neubauen bestehender Pakete ist
packman_rebuild.sh gedacht, aufgerufen mit
./packman_rebuild.sh x86_64 <Source-RPM>
entpackt es das RPM, passt das SPEC-File an (Eintrag des Packagers,
und der Distribution), hängt die libGL.so.1 von NVidia aus, wenn der
NVidia-Treiber verwendet wird (der sorgt immer für dämliche Abhängig-
keiten) und nach dem Build wieder ein. Das RPM wird dann mit Hindriks
Script gebaut und hochgeladen. Für vorige Tests reicht es ein
export NICHT_UPLOADEN=yes
einzutippen und es wird nur das RPM gebaut, es geht aber nichts nach
außen.
Auch für das Script gibts eine Konfigurationsdatei, nennt sich
packager_profile und liegt im Selben Verzeichnis wie das Script (ich
empfehle die Anlage eines Verzeichnisses ~/packmanbuild in dem man
sich dann austoben kann). Es sind allerdings nur drei kleine
Variablen drin und nichts geheimes, hier z.B. meine:
#
# Einstellungen zum Packager
export PACKAGER="Manfred Tremmel <Manfred.Tremmel\@iiv.de>"
export PACKAGER_NAME="Manfred Tremmel"
export VENDOR="Packman"
PACKAGER ist Name und E-Mail-Adresse (sollte zum GPG-Key passen),
wobei das @ mackiert sein muß, PACKAGER_NAME ist der Name und VENDOR
sollte man einfach auf Packman setzen.
Wichtig zu wissen ist, dass packman_rebuild.sh nicht mit jedem RPM
funktioniert, wenn der Aufbau nicht stimmt, klappts mit dem ersetzen
nicht und die Sache wird abgebrochen. Sind die RPMs mit meinem Script
packman_build.sh erstellt, sollte es grundsätzlich keine Probleme
geben (bei den Pakete von Rainer und mir z.B.).
5. Schaut euch mal in den Home-Verzeichnissen der anderen Packager um
(nach dem Anmelden seit Ihr im eigenen Verzeichnis, eine ebene hoch
und ihr sollte die anderen sehen), da finden sich nicht nur die
genannten Scripte, sondern noch einiges anderes interessante. Wer
mein packman_build.sh script verwendet hat z.B. automatisch gleich
zu den erstellten Paketen die Scripte und SPEC-Vorlagen mit auf dem
Server, da lässt sich vielleicht das ein oder andere lernen.
So, dass wars fürs erste mal.
--
Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/
Manfred | http://packman.links2linux.de/
More information about the Packman
mailing list