Debian/Ubuntu Pakete erstellen
In diesem Artikel wird beschrieben, wie man vom Invertika Client Pakete für Debian und Ubuntu erstellt.
Inhaltsverzeichnis |
Vorbereitungen
Erzeugung eines gnupg Schlüssels
Um ein Debian- oder Ubuntupaket zu erzeugen benötigt man einen gnupg Schlüssel. Wenn man bereits einen solchen besitzt kann man diesen Abschnitt überspringen.
Um einen Schlüssel zu erstellen muss auf der Konsole folgendes eingegeben werden:
gpg --gen-key
|Launchpad]] Dort wird dann DSA und Elgamal (voreingestellt) ausgewählt. Bei der Schlüssellänge sollte 2048 eingegeben werden. Ber der Gültigkeitsdauer des Schlüssels sollte 5y eingegeben werden. Danach müssen einige Nutzerdaten sowie eine Passphrase angegeben werden. Anschließend bestätigt man den ganzen Prozess mit F. Nun wird der Schlüssel erzeugt. Dies dauert ein paar Minuten.
Weitere Informationen zur Erzeugung und Verwaltung der Schlüssel sind unter http://wiki.ubuntuusers.de/GnuPG zu finden. Dort kann man sich auch das nötige Hintergrundwissen aneignen.
Vorbereitung zum Bauen des Paketes
Um unnötige Schreib- & Sucharbeit zu vermeiden sollte man zuerst einen Ordner mit dem gewünschten Paketnamen und darin darin einen Ordner mit Paketversion erstellen. Auf der Konsole geht das schnell und einfach:
mkdir -p PAKETNAME/PAKETNAME-VERSION
Das ganze könnte dann z.B. so aussehen:
mkdir -p invertika/invertika-0.10
Nun muss der Quellcode noch in den neu erstellten Ordner kopiert werden. Zusätztlich muss man beim ersten Paketieren entweder ein Tar-Archiv der Quellen in den Ordner PAKETNAME legen oder alternativ einen Ordner PAKETNAME-VERSION.orig, in den man den Quellcode zusärtlich kopiert (dieser Ordner wird automatisch gelöscht beim Bau). Außerdem sollten die Pakete dh-make und devscripts installiert werden:
apt-get install dh-make devscripts
Neben diesen Paketen müssen auch die Pakete welche zum kompilieren des Clients benötigt werden installiert werden. Die Auflistung der Pakete ist dabei unter Client_kompilieren zu finden.
Von nun an sollte man eine Konsole auf machen und diese nicht mehr schließen. Nachdem man in das Verzeichnis mit dem Quellcode gewechselt ist gibt man in dieser Konsole folgendes ein:
export DEBEMAIL=EMAILADRESSE export DEBFULLNAME="DEIN VOLLER NAME"
z.B.
export DEBEMAIL=webmaster@invertika.org export DEBFULLNAME="Florian Bottke"
Konfigurationsdateien
Erstellung der Konfigurationsdateien
In der Konsole gibt man nun zuerst, wenn man den Ordner PAKETNAME-VERSION.orig erstellt hat
dh_make -r -c gpl2
Sonst
dh_make -c gpl2 -f TARARCHIV
ein, wobei TARARCHIV der Name des Tararchives ist. Die anschließende Frage:
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?
beantwortet man mit s.
Anschließend wechseln wir mittels
cd debian
in den debian Ordner und bearbeiten dort die Datei README.Debian mittels eines Texteditors z.B. mittels nano
nano README.Debian
Bei der Datei handelt es sich um eine Dokumentation. Wir entfernen nur die Zeile mit dem Text der zwischen den beiden spitzen Klammern (<>) steht. Das Ergebnis wird dann mittels Strg + O gespeichert und der Editor mittels Strg + X verlassen. Danach bearbeiten wir die Datei changelog mittels
nano changelog
In dieser Datei kann man die Verbesserungen eintragen. Wir löschen allerdings nur die Zeile mit dem * und beenden den Editor mittels Strg + X. Als nächster Schritt muss die Datei control editiert werden:
nano control
Hier ändert man Section: unknown zu Section: games und gibt bei Build-Depends: die Abhängigkeiten zum Bau des Clients (kommaseperiert) ein. Bei Description: gibt man eine kurze Beschreibung ein. Eine längere Beschreibung folgt ab der nächsten Zeile mit einem führenden Leerzeichen. Das ganze sieht dann so aus:
Source: invertika
Section: games
Priority: extra
Maintainer: Florian Bottke <webmaster@invertika.org>
Build-Depends: debhelper (>= 7), automake, autoconf, build-essential, libcurl4-openssl-dev, libguichan-dev, libphysfs-dev, libpng12-dev, libpthread-stubs0-dev, libsdl-image1.2-dev, libsdl-mixer1.2-dev, libsdl-net1.2-dev, libsdl-ttf2.0-dev, libxml2-dev, zlib1g-dev, libtool, libenet-dev,
Standards-Version: 3.8.1
Homepage: http://invertika.org
Package: invertika
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Invertika is a german MMORPG.
Invertika is a german MMORPG like old SNES RPGs.
Nun kann man diese Datei speichern und schließen (Strg + O / Strg + X). In die Datei copyright können Informationen über das Copyright eingetragen werden. Die Dateien dirs und docs sind normalerweise von dh_make korrekt angelegt und können ignoriert werden. Existiert eine .menu Datei (z.B: invertika.menu) so kann diese in den debian Ordner kopiert werden und in menuumbenannt werden. Nun muss nur noch die rules Datei angepasst werden. Dazu wird sie sie mittels nano aufgerufen:
nano rules
Hier wird am Anfang (nach der Shebang) der Datei
MAKE=make
hinzugefügt da make zum kompilieren verwendet wird. Nun gibt man unter # Add here commands to configure the package. die Befehle zum Konfigurieren des Paketes ein. Beim Invertika Client sind dies
autoreconf-i ./configure
Die fertige Rules Datei sieht dann z.B. so aus:
#!/usr/bin/make -f # -*- makefile -*- MAKE=make configure: configure-stamp configure-stamp: dh_testdir touch configure-stamp build: build-stamp build-stamp: configure-stamp dh_testdir autoreconf -i ./configure --prefix=/usr --datadir=/usr/share/games --bindir=/usr/games $(MAKE) touch $@ clean: dh_testdir dh_testroot rm -f build-stamp configure-stamp dh_clean install: build dh_testdir dh_testroot dh_prep dh_installdirs $(MAKE) DESTDIR=$(CURDIR)/debian/invertika install # Build architecture-independent files here. binary-indep: install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: install dh_testdir dh_testroot dh_installchangelogs ChangeLog dh_installdocs dh_installexamples dh_link dh_strip dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure
Nach der Bearbeitung kann die Datei dann geschlossen werden. Die Vorbereitungen sind damit abgeschlossen.
Mit Hilfe der vorgefertigten Dateien
Wenn du denn Sourccode von invertika ausgecheckt hast kannst du den Ordner trunk/client/packaging/debian in den Ordner in dem gebaut werden soll kopieren. Dort musst du dann nur die Dateien control und changelog bearbeiten und deinen Namen und deine E-Mailadresse eintragen.
Der Bau des Paketes
Zum Bau des Paketes muss der debian Ordner mittels
cd ..
wieder verlassen werden. Nun gibt es zwei Möglichkeiten das Paket zu bauen. Entweder mittels
debuild
dann wird ein komplettes Paket für die aktuelle Rechnerarchitektur gebaut welches in das eigene Repository hochgeladen werden kann oder mittels
debuild -S
wobei dann nur ein Quellpaket gebaut wird, welches aus dem Quelltext besteht. Dieses Quellpaket wird z.B. für Dienste wie Launchpad[1] um es dort hochzuladen und von Launchpad bauen zu lassen. Mittels
dput ppa:NAME/PPANAME PAKETNAME_VERSION_source.changes
kann man dabei das Paket auf Launchpad hochladen.