m4_dnl -*-html-*-
m4_include(`template.m4')
m4_dnl $Id$
m4_define(`DE')
m4_define(`EN_FILE', `build-installer-gnulinux.html')
PAGE_START
Bau von Gpg4win unter GNU/Linux
Dieses Beispiel beschreibt konkret die Herstellung eines neuen
Gpg4win Installers auf Debian GNU/Linux 'Etch' 4.0.
Grundsätzlich können auch andere GNU/Linux Systeme verwendet werden.
Zurück zur Übersicht zum Installer-Bau
Den Gpg4win Installer direkt bauen
- Typische Pakete die noch auf dem Debian GNU/Linux 4.0 nachinstalliert werden müssen
(ggf. fehlen bei Ihnen aber noch weitere, die dann im Verlauf der Konfiguration gemeldet
werden):
# apt-get install mingw32 nsis stow unzip texinfo imagemagick
# apt-get install libglib2.0-dev tetex-bin tetex-extra gs-common hyperlatex
- Die Quellen anonym (also ohne Schreibrechte) holen:
$ svn checkout https://svn.wald.intevation.org/svn/gpg4win/trunk/
oder das Quelltextpaket gpg4win-n.n.n.tar.gz herunterladen, auspacken
und in das Verzeichnis gpg4win-n.n.n wechseln. Wir empfehlen, mit der
SVN version zu arbeiten wenn Sie mehr als nur ein Modul aktualisieren
wollen.
- Alle notwendigen Gpg4win-Module aus dem Internet herunterladen:
$ cd packages
$ sh download.sh
(dauert nun eine Weile, besonders beim ersten mal)
$ cd ..
- Falls Sie mit der SVN-Version arbeiten:
$ ./autogen.sh
$ ./configure --enable-maintainer-mode --host=i586-mingw32msvc
ansonsten:
$ ./configure --host=i586-mingw32msvc
- Nun das Gpg4win Installationpaket bauen:
$ make
Das war es schon. Das fertige Installationspaket liegt unter:
src/gpg4win-n.n.n.exe
Das zugehörige Quelltextpaket (mit den Quelltexten sämtlicher Module, sehr gross!) unter:
src/gpg4win-src-n.n.n.exe
Ein einzelnes Modul für Gpg4win aktualisieren
Hierfür sollte man schon einmal ein Installationspaket wie oben beschrieben
hergestellt haben. Im Folgenden nehmen wir an, sie möchten das Modul
gnupg aktualisieren.
- Zuerst ist die alte Version zu löschen:
$ cd packages
$ rm gnupg-*
- Danach laden Sie die gewünschte Version herunter; z.B:
$ wget ftp://ftp.gnupg.org/gnupg/gnupg-1.4.3.tar.bz2
$ wget ftp://ftp.gnupg.org/gnupg/gnupg-1.4.3.tar.bz2.sig
$ gpg --verify gnupg-1.4.3.tar.bz2.sig
Nur wenn das letzte Kommando eine gültige Signatur anzeigt,
dürfen Sie fortfahren. Weitere Erklärungen finden Sie auf GnuPG
Webseite. Falls das Modul keine Signatur bereitstellt,
sollten Sie sich auf eine andere Art der Authentizität des Moduls
vergewissern.
- Bauen Sie eine neuen Installer:
$ cd ..
$ make clean
$ ./configure --host=i586-mingw32msvc
$ make
Achtung: Sie dürfen das Skript download.sh jetzt nicht mehr
aufrufen, da es die aktuelle Standardversion des Moduls wieder
installieren würde. Für eine dauerhafte Aktivierung der neuen Modul-Version
des offiziellen Gpg4win Installationspaketes sind folgende Schritte zu erledigen.
Voraussetzung dabei ist, dass man Schreibrechten auf
das SVN Verzeichnis besitzt (also ein Benutzerkonto auf
wald.intevation.de mit Entwickler-Status für Gpg4win).
- Anpassen der Datei
packages.current
für die neue Modulversion (lesen Sie für die Syntax den Kopf
dieser Datei) und laden Sie sie in das Subversion repository hoch:
$ svn commit packages.current
- Erstellen Sie eine Signatur für diese Datei:
$ gpg -sb packages.current
- Falls Sie bisher noch nie eine Aktualisierung der Paketliste
autorisiert haben, müssen Sie zunächst Ihren PGP-Schlüssel
an den Schlüsselbund
packages.keys
anhängen:
$ gpg --export --armor YOUR-KEY-ID > gpg_pub_key.asc
$ gpg --no-default-keyring --keyring ./packages.keys --import gpg_pub_key.asc
Eine Liste der bisher eingetragenen Schlüssel erhalten Sie so:
$ gpg packages.keys
- Laden Sie die beiden Dateien
auf die Website von Gpg4win hoch:
$ make update
Ein neues Modul in Gpg4win einbauen
Hierfür sollte man schon einmal ein Installationspaket wie oben beschrieben
hergestellt haben und dabei die Version aus SVN benutzt haben.
- Für Ihr neues Modul 'MYMOD' erstellen Sie zunächst Konstanten
in der Datei include/config.nsi.in indem Sie folgende drei
Zeilen hinzufügen:
@HAVE_PKG_MYMOD@
!define gpg4win_pkg_mymod @gpg4win_pkg_mymod@
!define gpg4win_pkg_mymod_version @gpg4win_pkg_mymod_version@
Sie finden in der Datei genügend Beispiele, z.B. 'HAVE_PKG_WINPT'.
- Das NSIS Installations-Skript
src/inst-mymod.nsi
schreiben. Im selben Verzeichnis liegen viele Beispiele
an denen man sich orientieren kann.
- Das NSIS Deinstallations-Skript
src/uninst-mymod.nsi
schreiben. Im selben Verzeichnis liegen viele Beispiele
an denen man sich orientieren kann.
- Das NSIS Haupt-Skript
src/inst-sections.nsi
um MYMOD erweitern. Orientieren Sie sich einfach an den
schon existierenden Einträgen und den Hilfe-Kommentaren.
- Nun tragen Sie in die Datei
configure.ac
Vorschriften zur Integration in den Bauprozess ein.
Dafür können Sie die Makros aus der Datei
m4/gpg4win.m4
verwenden. Durch die bereits integrierten Module
sind bereits zahlreiche Beispiele gegeben. Hauptsächlich
muss unterschieden werden ob das Modul Cross-Compiliert
oder als einfaches bereits andersweitig
für Windows kompiliertes Binärobjekt integriert werden soll.
- Jetzt noch die Datei
packages/packages.current
wie weiter oben beschrieben aktualisieren.
- Gpg4win muss für das neue Modul erneut konfiguriert werden:
$ AUTOMAKE_SUFFIX=-1.9 ./autogen.sh
$ ./configure --enable-maintainer-mode --host=i586-mingw32msvc
- Der letzte Schritt ist der Bau des Installationpaketes:
$ make
Das fertige Installationspaket liegt unter:
src/gpg4win-n.n.n.exe
Das zugehörige Quelltextpaket (mit den Quelltexten sämtlicher Module, sehr gross!) unter:
src/gpg4win-src-n.n.n.exe