Readme
Dies ist ein Port des GNU Privacy Guard (kurz: GnuPG oder gpg) Version 1.4.7 nach OS/2.
Zitat aus der GnuPG README (übersetzt):
"GnuPG ist das GNU Tool zur sicheren Kommunication und Dateispeicherung.
Es kann zur Verschlüsselung von Daten und zur Erzeugung digitaler Signaturen eingesetzt werden.
Es enthält umfangreiche Möglichkeiten zum Keymanagement und ist zum vorgeschlagenen OpenPGP Internet Standard (RFC2440) kompatibel."
Neuer GnuPG für OS/2 Maintainer gesucht
24. Februar 2007:
Ich bin auf der Suche nach jemandem, der in Zukunft das Portieren neuer Releases von GnuPG auf OS/2 übernehmen kann.
Natürlich würde ich am Anfang so gut ich kann dabei behilflich sein, den ersten Compilerlauf über GnuPG und das erste Erstellen eines Port-Packages zu meistern.
Das Portieren neuer Releases der gpg 1.x Serie ist übrigens gar nicht mal so viel Arbeit, da die Hauptarbeit darin besteht, die Source Code Änderungen aus dem Diff File des vorherigen Releases auf den neuen Source Code anzuwenden.
In 90% der Fälle klappt das auch sofort.
Wenn ich schätzen müsste, wie lange das Portieren einer neuen gpg Version der 1.x Serie dauert, würde ich sagen, dass das normalerweise in weniger als einer Stunde machbar ist.
Also: wenn sie ein GnuPG User mit einer funktionierenden Innotek GCC Installation und ein wenig Erfahrung mit UNIX Ports sind und Lust haben, das Portieren von gpg in Zukunft zu übernehmen, schreiben Sie mir eine Email (tobias {at} tobiashuerlimann.de).
Für den Fall, dass Sie sich fragen, warum ich das Portieren aufgeben möchte: da gibt es zwei verschiedene Gründe.
Der erste ist, dass ich vor anderthalb Jahren einen Mac Laptop gekauft habe, der inzwischen meine Haupt-Arbeitsmaschine geworden ist.
Ich habe zwar noch meinen OS/2 Desktop Computer, den ich aber kaum noch für das Arbeiten benutze, sondern nur noch für einige Rechenjobs, die ich lieber auf meinem (schnelleren) Desktop PC erledige.
Es war zwar etwas traurig, OS/2 nach all den Jahren zu verlassen, aber ich konnte es mir zeitlich einfach nicht mehr leisten, unzählige Stunden nur dafür aufzuwenden, ein paar einfache USB Geräte zum Laufen zu bringen.
Der zweite Grund ist, dass ich diesen Sommer mit meinem Studium fertig werde und danach mehr oder weniger sofort meinen ersten Job antrete.
Dann werde ich wahrscheinlich nicht mehr die Zeit haben, weiterhin regelmäßig GnuPG zu portieren, zumal da ich es selbst gar nicht mehr unter OS/2 benutze.
News
11. März 2007: GnuPG 1.4.7 für OS/2 ist fertig
20. Dezember 2006: Ich habe eine geupdatete Version des GnuPG 1.4.6 Ports hochgeladen, die Patches von Peter Weilbacher enthalten, welche es ermöglichen, GnuPG in ein einziges Verzeichnis zu installieren.
12. Dezember 2006: GnuPG 1.4.6 für OS/2 ist fertig – ein Update ist sehr empfehlenswert (1.4.6 behebt eine wichtige Sicherheitslücke)!
11. September 2006: GnuPG 1.4.5 für OS/2 ist fertig
19. April 2006: GnuPG 1.4.3 für OS/2 ist fertig
14. September 2005: GnuPG 1.4.2 für OS/2 ist fertig
22. Januar 2005: Die neue Ausgabe des OS/2 e-Zine bringt eine Anleitung zur Installation von GnuPG und EnigMail, geschrieben von John Bijnens.
2. Januar 2005: GnuPG 1.4.0 für OS/2 fertig
22. Oktober 2004: Endlich: Enigmail wurde erfolgreich portiert, siehe diese Site! Beachten Sie, dass der Port noch ein paar kleine Probleme hat, weshalb es ratsam sein kann zu warten, bis die Patches in den offiziellen Mozilla/Thunderbird Tree gegangen sind. Nichtsdestotrotz, ein großes "Dankeschön!" geht an Davide Bresolin für den Port!
27. Juli 2004: GnuPG 1.2.5 für OS/2 fertig: bitte beachten Sie, dass dieses Release die Innotek GCC Runtime anstatt EMX benötigt!
26. Dezember 2003: GnuPG 1.2.4 für OS/2 fertig. Auch neu: rndos2 0.91
27. November 2003: Es wurde ein Fehler ein GnuPG gefunden, durch den bei Benutzung von ElGamal Keys zum Signieren private Keys kompromittiert werden können!
Bitte beachten Sie, dass ElGamal Signatur-Keys in GnuPG nur durch Ausnutzung normalerweise versteckter Optionen und nach dem Ignorieren einer Warnung erzeugt werden können.
ElGamal Signatur-Keys können nicht auf dem standardmäßigen Weg der Keyerstellung erzeugt werden, deshalb ist die Wahrscheinlichkeit, dass Sie betroffen sind, sehr gering.
Werfen Sie trotzdem besser selber einen Blick auf die Details!
17. September 2003: GnuPG 1.2.3 für OS/2 fertig
9. August 2003: Es gibt ein GnuPG WarpIN Paket!
Softwarevoraussetzungen
- Innotek GCC Runtime 0.6.1 (einfach die libc06.dll irgendwo in Ihrem LIBPATH platzieren).
- rndos2.dll oder RexxEGD
- OS/2 Warp 4 FP13+, Warp Server for eBusiness oder eCS und einen 32-Bit IP Stack (beides nur nötig für rndos2.dll, siehe unten)
- GnuPG funktioniert nur korrekt auf Dateisystemen mit langen Dateinamen (HPFS, JFS, ...)
Installation
GnuPG wurde so portiert, dass es von der Existenz einer UNIX-ähnlichen Verzeichnishierarchie ausgeht, in der es seine Dateien findet.
Um zu bestimmen, unter welchem Verzeichnis sich diese Hierarchie befindet, wird die Umgebungsvariable UNIXROOT gelesen.
Deshalb einfach das Archiv mit den Binaries in dem Verzeichnis entpacken, auf das UNIXROOT zeigt.
Mehr Informationen zu dieser Verzeichnishierarchie und der Variable UNIXROOT finden Sie auf den UnixOS2 Seiten.
Zusätzlich wird noch die Umgebungsvariable HOME benötigt, die bestimmt, wo GnuPG die Schlüssel speichert.
Außerdem muß einer der beiden möglichen Zufallszahlengeneratoren, rndos2.dll oder RexxEGD, installiert sein.
Folgende Umgebungsvariablen werden von GnuPG gelesen:
-
HOME
HOME bestimmt das Heimatverzeichnis eines Users.
GnuPG speichert die persönlichen Einstellungen und Schlüssel im Unterverzeichnis .gnupg.
Das .gnupg Unterverzeichnis wird automatisch angelegt, aber das Verzeichnis, auf das HOME zeigt, muß vorher bereits existieren.
Haben Sie noch kein Homeverzeichnis, können Sie zum Beispiel C: nehmen:
-
UNIXROOT
Die Umgebungsvariable UNIXROOT soll auf das Verzeichnis zeigen, unter dem eine UNIX-artige Dateisystemhierarchie aufgebaut ist.
Beispiel: Sie haben den OS/2 Port der GNU Fileutils (ls, cp, dd, touch, ...) und die OS/2 Bash Shell unter C:\Tools\UNIX\bin installiert, so sollte Ihre UNIXROOT Variable auf das Verzeichnis C:\Tools\UNIX zeigen:
SET UNIXROOT=C:/Tools/UNIX
-
LANG
LANG ist bei den meisten OS/2 Installationen schon vorhanden, es bestimmt, welche Sprache der User wünscht.
In Deutschland wird diese Variable wahrscheinlich den Wert "de_DE" haben, in Österreich "de_AT", in Italien "it", ...
Haben Sie diese Variable noch nicht in Ihrer CONFIG.SYS, setzen Sie sie auf das Länderkürzel, das zu Ihrer Sprache gehört, also zum Beispiel für "Deutsch":
Hier ein Überblick über die Verzeichnisse, die von GnuPG verwendet werden:
-
%HOME%/.gnupg/
Dieses Verzeichnis wird, falls es noch nicht existiert, beim ersten Start von GnuPG angelegt.
GnuPG versucht dann, in diesem Verzeichnis die Konfigurationsdatei gpg.conf anzulegen, indem es eine Kopie der Datei %UNIXROOT%/usr/share/gnupg/options.skel erstellt.
Hier werden später die erzeugten und importierten Schlüssel gespeichert.
-
%UNIXROOT%/usr/lib/gnupg/
In diesem Verzeichnis sucht GnuPG den Zufallsgenerator rndos2.dll und eventuelle Plug-Ins (zum Beispiel für IDEA).
-
%UNIXROOT%/usr/share/gnupg/
In diesem Verzeichnis sucht GnuPG nach der Datei "options.skel", die als Vorlage für die Datei %HOME%/.gnupg/gpg.conf dient.
-
%UNIXROOT%/usr/share/locale/
Hier erwartet GnuPG die Übersetzungsbibliotheken für den Natural Language Support (NLS).
Die Bibliotheken liegen im Unterverzeichnis LC_MESSAGES/<Sprache>/, wobei <Sprache> für das entsprechende Länderkürzel (zum Beispiel "de" für "Deutsch") steht.
Welche Sprache gewählt wird, bestimmt die Umgebungsvariable LANG.
Für den Fall, dass Sie sich mit der Idee von UNIXROOT gar nicht anfreunden wollen und den klassischen OS/2 Weg bevorzugen, können Sie auch alternativ folgendes tun:
Erstellen Sie ein Verzeichnis für GnuPG, zum Beispiel C:\Programme\GnuPG und kopieren Sie die Dateien diese Dateien in jenes Verzeichnis:
- usr/bin/gpg.exe
- usr/bin/gpgv.exe
- usr/bin/gpgsplit.exe
- usr/lib/gnupg/rndos2.dll
- usr/share/book/gpg.inf
- usr/share/gnupg/FAQ
- Eventuell vorhandene Plug-In DLLs
Damit dürfte GnuPG auch lauffähig sein, allerdings müssen Sie dabei Einschränkungen hinnehmen wie zum Beispiel, dass NLS nicht funktioniert.
Die Variable HOME sollten Sie auch in diesem Fall setzen, zum Beispiel auf Ihr GnuPG Verzeichnis.
Dokumentation
Eine OS/2 Hilfedatei im INF Format mit den Man Pages von gpg.exe und gpgv.exe wird unter %UNIXROOT%/usr/share/book/ installiert.
Die GnuPG FAQ in HTML- und im Text-Format liegt im Verzeichnis %UNIXROOT%/usr/share/gnupg/.
Ein richtiges Handbuch für GnuPG und weiterführende Dokumente finden Sie auf der GnuPG Website unter http://www.gnupg.org/documentation/.
OS/2 spezifische Bugs und Einschränkungen
-
Kein Support für Smart Cards.
Ich bezweifle, dass es irgendwo Smart Cards und -Reader gibt, die OS/2 unterstützen.
-
Die Keyserver Utilies (gpgkeys_hkp, gpgkeys_ldap, gpgkeys_mailto) sind nicht portiert.
Der Grund dafür ist unter anderem das Fehlen eines freien LDAP Toolkits für OS/2 (wer portiert OpenLDAP?).
Die in GnuPG selbst eingebauten Keyserver-Routinen sollten aber funktionieren.
Die Pseudo-Zufallszahlengeneratoren
Dieser Port kann zwei verschiedene Programme als Zufallszahlenquelle verwenden, rndos2.dll oder RexxEGD.
Möchte man rndos2.dll als Zufallszahlenquelle verwenden, muß man die Datei rndos2.dll so platzieren, dass GnuPG sie findet.
GnuPG sucht in folgenden Verzeichnissen in dieser Reihenfolge nach rndos2.dll:
- Im Verzeichnis %UNIXROOT%/usr/lib/gnupg/
- Im Verzeichnis, in dem sich gpg.exe befindet
- Im LIBPATH
Findet GnuPG die Datei rndos2.dll in keiner dieser Verzeichnisse, wird versucht, RexxEGD zu verwenden.
Wird RexxEGD auch nicht gefunden, bricht das Programm mit einer entsprechenden Meldung ab.
Technische Informationen zu rndos2.dll finden Sie auf einer eigenen Seite.
RexxEGD basiert auf dem Perlscript EGD ("Entropy Gathering Daemon") und ließt die Ausgabe von Programmen wie netstat.exe und go.exe ein, um damit seinen Entropy Pool zu füllen.
Die Zufallsdaten können über eine Named Pipe abgefragt werden.
RexxEGD und die Quellcode Modifikationen, um RexxEGD nutzen zu können, stammen von Russell O'Connor.
Die URL seiner Website ist http://math.berkeley.edu/~roconnor/.
Port Changelog
-
Sun Mar 11, 2007: Update auf Version 1.4.7
GPG 1.4.7 fixt ein Sicherheitsproblem.
-
Thu Dec 28, 2006: Neue Version des 1.4.6 Ports
Ich habe einige Patches von Peter Weilbacher (Danke!) eingebaut, welche es ermöglichen, alle wichtigen Dateien von GnuPG in ein einzelnes Verzeichnis zu installieren.
Wenn Sie das tun möchten, downloaden Sie das Binary ZIP Archiv und kopieren Sie alle .exe und .dll Dateien in das eine Verzeichnis.
Wenn Sie Sprachenunterstötzung haben möchten, erstellen Sie ein Unterverzeichnis namens "locale" in dem Verzeichnis und kopieren Sie den Inhalt des usr/share/locale Ordners aus dem ZIP Archiv in diesen.
Stellen Sie dann sicher, dass die Umgebungsvariable UNIXROOT nicht gesetzt ist und definieren Sie stattdessen die Variable GPGDIR, z.B. via SET GPGDIR=C:\Programme\GnuPG.
-
Mon Dec 12, 2006: Update auf Version 1.4.6
Dieses Release behebt wiederum einige Sicherheitslücken, darunter auch eine schwerwiegende.
Das offizielle Announcement finden Sie auf der GnuPG Website.
Meinen Port betreffend: diese Version behebt auch einen einen kleinen Bug im OS/2-spezifischen Code, der allerdings wahrscheinlich in der Praxis bisher niemals aufgetreten ist ;-)
Außerdem ist dieses Release jetzt mit GCC 3.3.5-ga2 kompiliert, welche die im Moment aktuelle Version von GCC für OS/2 zu sein scheint.
Als Konsequenz daraus wird fŸr dieses Release jetzt die Innotek libc Runtime in der Version 0.6.1 benötigt (Downloadlink siehe oben).
-
Mon Sep 11, 2006: Update auf Version 1.4.5
Dieses Release fixt einige wichtige Sicherheitslücken.
Die offizielle Ankündigung finden Sie auf der GnuPG Website.
-
Wed Apr 19, 2006: Update auf Version 1.4.3
Es gab keine (offiziellen) OS/2 Releases von GnuPG 1.4.2.1 und 1.4.2.2 von mir, da meine Freizeit immer knapper wird.
In dieser 1.4.3 Ausgabe habe ich einen Bug gefixt, der die Zusammenarbeit mit RexxEGD verhindern konnte (mein Dank geht an Alexander Conon, der mich darauf aufmerksam gemacht hat).
Wie üblich können Sie die offizielle Ankündigung in der GnuPG Mailing List Archiven nachlesen.
-
Wed Sep 14, 2005: Update auf Version 1.4.2
Es ist eine Weile her seit dem letzten Update, außerdem habe ich nie ein 1.4.1 Binary veröffentlichen können.
Der Grund dafür ist, dass ich nach einem Update auf den neuesten GCC compiler auf ein Problem stieß, welches GnuPG beim Start coredumpen (crashen) lies.
(wenn es Sie interessiert: nachdem ich diesen Bug ein paar Monate gejagt hatte, fand ich schließ die---sehr einfache---Antwort auf dieses Problem: neuere Innotek GCC Versionen scheinen nicht mehr das alte __EMX__ Symbol zu definieren. Dies führte dazu, dass mein OS/2-spezifischer Code niemals ausgeführt wurde. Verdammt!)
Dieses Release sollte das Keyserver-Problem beheben, dass mindestens seit der 1.4.0 Version besteht.
Das Suchen und Importieren eines Keys von einem Keyserver sollte nun wieder funktionieren (zumindest für HKP und HTTP Keyserver).
Eine letzte Sache: tut mir Leid, aber aus Zeitgründen konnte ich das OS/2 INF Helpfile dieses Mal leider nicht aktualisieren.
Obwohl es im Titel "Version 1.4.2" sagt, stammt es tatsächlich noch von Version 1.4.0.
Allerdings hat sich bei den Command Line Parametern sehr wenig geändert zwischen diesen beidne Versionen.
Das offizielle GnuPG 1.4.2 Announcement can hier gefunden werden.
-
Sun Jan 2, 2005: Update auf Version 1.4.0
Das übliche offizielle Announcement gibt es hier.
Eine erwähnenswerte Änderungen im OS/2 Port ist, dass bzip2 Komprimierung nun unterstützt wird – und deshalb auch die bzip2 Library zum Re-Kompilieren installiert sein muß.
-
Tue Jul 27, 2004: Update auf Version 1.2.5 und Wechsel zu Innotek GCC
In den letzten Monaten bin ich von meinem alten 3.2.1 GCC zum neueren Innoteks GCC umgestiegen.
Deswegen wird auch GnuPG jetzt mit dem neuen Compiler kompiliert und einige Kleinigkeiten im Source mussten angepasst werden.
Neben diesem gibts keine für den User sichtbaren Veränderungen, außer natürlich die, die dieses Release ausmachen.
Ach ja: Innoteks gettext Tools scheinen ein paar Probleme mit den NLS Übersetzungen von GnuPG zu haben.
Deshalb sind leider folgende Übersetzungen nicht mehr dabei: et und jp.
-
Fri Dec 26, 2003: Update auf Version 1.2.4
Wie üblich keine OS/2-spezifischen Veränderungen.
Mein Port kommt nun mit rndos2 in Version 0.91, die einen Bug im OS/2 Kernel vermeidet, der zu einem TRAP führen kann (Details auf der rndos2 Seite).
Diese Version 1.2.4 ist wieder ein Bug-Fix Release, lesen die Liste mit Änderungen im offiziellen Announcement.
-
Tue Sep 16, 2003: Update auf Version 1.2.3
Keine erwähnenswerten OS/2-spezifischen Veränderungen.
Lesen Sie das offizielle GnuPG 1.2.3 Announcement, um die wirklichen Neuerungen zu erfahren.
Neben den üblichen ZIP Paketen gibt er jetzt auch Binary-Pakete für WarpIN und für das UnixOS/2 Build System.
Das UnixOS/2 Paket ist ungetestet, ich habe nur die Anleitung auf http://unixos2.org/pages/UX2-PackageCreationHOW-TO.html befolgt.
-
Sat Jul 10, 2003: Ein WarpIN Paket existiert!
Besonderer Dank geht an Jeff Robinson für die WarpIN Script Vorlagen.
Die OS/2 Makefiles wurden so erweitert, dass sie nun automatisch ein WPI oder ZIP Package erstellen können.
Ein winziger Fehler in einem Makefile wurde behoben, wegen dem die gnupg(7) Man Page in ein falsches Verzeichnis (usr/share/man1 statt usr/share/man7) installiert wurde.
Außerdem sind die Dateien COPYING und README nun auch in den Binary Paketen dabei.
-
Fri May 09, 2003: Update auf Version 1.2.2.
Die Abhängigkeit von shm.dll (für shared memory) wurde entfernt.
Davon mal abgesehen, gibt's nur ein paar kleinere Fixes im Port.
Lesen Sie das offizielle GnuPG 1.2.2 Announcement um die wirklichen Neuerungen zu sehen.
Dieses Release ist hauptsächlich ein Bug-Fix für einen Key Verifizierungsbug.
-
Sat Nov 02, 2002: Update auf Version 1.2.1.
Im Port selber gibts eigentlich kaum Änderungen, die größte wäre da noch, dass die gnupg(7) man page in gpg.inf integriert wurde ;-)
Lesen Sie das offizielle GnuPG 1.2.1 Announcement um die wirklichen Neuerungen zu sehen.
Lizenz
GnuPG unterliegt der GNU General Public Licence (GPL).
Bitte lesen Sie die Datei COPYING für Details.
Die rndos2 Bibliothek unterliegt der BSD Lizenz.
Wenn Sie Fragen zum Port, Kritik -- oder besser noch: Source Code Patches -- loswerden wollen: tobias@tobiashuerlimann.de.