This is a port of the GNU Privacy Guard ("GnuPG" or "gpg") version 1.4.2 to OS/2. Quoting from the GnuPG README: "GnuPG is GNU's tool for secure communication and data storage. It can be used to encrypt data and to create digital signatures. It includes an advanced key management facility and is compliant with the proposed OpenPGP Internet standard as described in RFC2440." News 14. September 2005: GnuPG 1.4.2 now available for OS/2 22. January 2005: The current issue of OS/2 e-Zine features a guide for setting up GnuPG and EnigMail, written by John Bijnens. 2. January 2005: GnuPG 1.4.0 now available for OS/2 22. October 2004: Finally: Enigmail has been successfully ported! Have a look at this site. Note that the port still has some small glitches, so maybe wait until the patches have gone into the official Mozilla/Thunderbird tree. Anyway, a huge "Thank you!" goes to Davide Bresolin for the port! 27. July 2004: GnuPG 1.2.5 now available for OS/2: please note that this release needs the Innotek GCC Runtime instead of EMX! 26. December 2003: GnuPG 1.2.4 now available for OS/2. Also new: rndos2 0.91 27. November 2003: There is a flaw in GnuPG that can compromise private keys when ElGamal keys are used for signing! Please note that ElGamal signing keys can only be created in GnuPG by using hidden options and ignoring a warning message. They can not be created in a standard way, so the probability that you are affected is really small. However, better take a look at the details yourself! 17. September 2003: GnuPG 1.2.3 now available for OS/2 9. August 2003: A GnuPG WarpIN Package is now available! Requirements * Innotek GCC Runtime 0.6r1 (just make sure that libc06r1.dll is somewhere in your LIBPATH). * rndos2.dll or RexxEGD * OS/2 Warp 4 FP13+, Warp Server for eBusiness or eCS and a 32-bit IP stack (only needed for rndos2.dll, see below) Installation GnuPG has been configured to assume that a unixish file hierarchy exists, where it looks for its files. The environment variable UNIXROOT is used to determine in which directory that hierarchy is located. To install GnuPG you just have to extract the binary archive in the directory that UNIXROOT points to. More information about that file hierarchy and the env var UNIXROOT can be found at the UnixOS2 site. GnuPG also needs the environment varibale HOME, which determines where GnuPG saves its keyrings. And at least one of the two possible PRNG (Pseudo Random Number Generators), rndos2.dll or RexxEGD, has to be installed. The following environment variables are used by GnuPG: * HOME HOME points to the user's home directory. GnuPG stores the personal options and keys in the subdirectory ".gnupg". If you do not have a home dir, you may choose C: for example: SET HOME=C: * UNIXROOT The env var UNIXROOT should point to the directory, in which a unixish filesystem hierarchy exists. Example: set UNIXROOT to G: and gpg.exe will be located in G:\usr\bin SET UNIXROOT=G: * LANG LANG should already exist at most OS/2 installations because it is also used be OS/2 itself. It is used to determine the language GnuPG will use. Example: if you want GnuPG to 'speak' italian, you set: SET LANG=it Here's a summary of the directories that are used by GnuPG: * %HOME%/.gnupg/ If this directory does not exist, it will be created the first time GnuPG starts. Then GnuPG tries to create the personal configuration file "gpg.conf" by copying %UNIXROOT%/usr/share/gnupg/options.skel. %HOME%/.gnupg/ is also used to story the created and imported keys. * %UNIXROOT%/usr/lib/gnupg/ In this directory GnuPG looks for the random number generator "rndos2.dll" and plug-ins (i.e.: the IDEA plug-in). * %UNIXROOT%/usr/share/gnupg/ In this directory GnuPG looks for the file "options.skel", which is used as a template for %HOME%/.gnupg/gpg.conf. * %UNIXROOT%/usr/share/locale/ GnuPG expects the locale files (for NLS) in that directory. The files are in der LC_MESSGAES/ subdirectory. is determined by the LANG env var. In case you really do not like the idea of UNIXROOT and you rather like the OS/2 way: Create a directory for GnuPG, for example C:\Progs\GnuPG and copy the following files in that directory: * 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 * Optional: plug-in DLLs Not using a unixish file hierarchy imposes some minor limitations. For example, NLS requires such a hierarchy. In any case you should set the HOME variable. Documentation An OS/2 help file in INF format containing the man pages of gpg.exe and gpgv.exe is install in %UNIXROOT%/usr/share/book/. The GnuPG FAQ in HTML and in plain text format can be found in %UNIXROOT%/usr/share/gnupg/. A real manual for GnuPG und additional docs can be found on the GnuPG website at http://www.gnupg.org/documentation/. OS/2 specific bugs und limitations * No support for smart cards. I doubt that there exist any smart cards and -readers that support OS/2. * The keyserver utilies (gpgkeys_hkp, gpgkeys_ldap, gpgkeys_mailto) have not been ported. One of the reason for that is the lack of a free LDAP toolkit on OS/2 (who ports OpenLDAP?). The built-in GnuPG keyserver functionality should work, though. The pseudo random number generators This port can make use of two different programs as a source for random data, rndos2.dll or RexxEGD. GnuPG looks in three locations for rndos2.dll so if you want to use it, have to place it in one of them: * In %UNIXROOT%/usr/lib/gnupg/ * In the directory where gpg.exe resides * In LIBPATH If GnuPG cannot find the file rndos2.dll, it tries to use RexxEGD instead. If it cannot connect to a running RexxEGD, GnuPG abort with an error message. Details and technical informations about rndos2.dll can be found on another page. RexxEGD is based on the perl script EGD ("Entropy Gathering Daemon"). It reads the output of utilities like netstat.exe and go.exe to feed its entropy pool. The random number are made available via a named pipe. RexxEGD and the source code modifications to use it are written by Russell O'Connor. The URL of his website is http://math.berkeley.edu/~roconnor/. Coming soon... ...hopefully ;-) These are my future plans for the GnuPG port: * Split the huge gpg.exe and gpgv.exe into DLLs Port Changelog * Wed Sep 14, 2005: Updated to version 1.4.2 It's been awhile since the last updated and I never released a 1.4.1 binary. The reason was that after updating my GCC compiler I encountered a huge problem that caused GnuPG to core dump (crash) at starting. (if you're interested: after months of chasing this bug I actually found the---very simple---answer: never Innotek GCCs don't seem to define the __EMX__ symbol any longer which caused my OS/2-specific code to never being executed. Damn!) Anyway: this release should take care of the keyserver issue that was present at least in the 1.4.0 binary. Fetching a key from a keyserver should now work again (at least for HKP and HTTP keyservers). One last thing: I'm afraid I don't have time to update the OS/2 INF Helpfile. Although the title says "version 1.4.2", it's actually from 1.4.0, but very little has changed between these versions. The official GnuPG 1.4.2 announcement can be found here. * Sun Jan 2, 2005: Updated to version 1.4.0 The usual official GnuPG announcement can be found here. Notable changes in the OS/2 port are that this version includes support for bzip2 compression ? and therefore needs the bzip2 library installed for re-compiling. * Tue Jul 27, 2004: Updated to version 1.2.5 and switched to Innotek GCC In the last months I switched from my old 3.2.1 GCC to Innoteks new GCC. Because of this, also compiling GnuPG gets done with a new compiler and some minor things had to be adapted in the source. Besides this, there are no user-visible changes except of course these that make up this release. Oh, wait: Innoteks gettext tools seem to have problems with some of the NLS translations of GnuPG. Therefore this release doesn't include the following translations anymore: et and jp. * Fri Dec 26, 2003: Updated to version 1.2.4 As usually no OS/2-specific changes. My port now ships with rndos2 0.91, that avoids a bug in the OS/2 kernel which may lead to an IPE (for details: rndos2 page). This version 1.2.4 is again a bug-fix release, see the official announcement for a list of changes and fixes. * Tue Sep 16, 2003: Updated to version 1.2.3 There are no OS/2-specific changes, that would be worth reporting here. Have a look at the official GnuPG 1.2.3 announcement to see what has really changed. Besides the usual ZIP packages there now also exist binary packages for WarpIN and for the UnixOS/2 build system. The UnixOS/2 package is untested, I just followed the instructions at http://unixos2.org/pages/UX2-PackageCreationHOW-TO.html. * Sat Jul 10, 2003: Now a WarpIN package exists! Special thanks go to Jeff Robinson for the initial WarpIN scripts! OS/2 Makefiles have been extended a bit to be able to automatically create a WPI or ZIP package. A small error in one makefile was corrected that resulted in the gnupg(7) man page being installed in the wrong directory (in usr/share/man1 instead of usr/share/man7). Additionally, the files COPYING and README are now also included in binary distributions. * Fri May 09, 2003: Updated to version 1.2.2. The dependency on shm.dll (for shared memory) has been removed. Besides that, there are only minor fixes in the port. Have a look at the official GnuPG 1.2.2 announcement to see what has really changed. This release is mainly a bug fix for a key validation bug. * Sat Nov 02, 2002: Updated to version 1.2.1. There are virtually no changes in the port itself, the biggest change is that the few lines of the gnupg(7) man page have been integrated into gpg.inf ;-) Have a look at the official GnuPG 1.2.1 announcement to see what has really changed. Licence GnuPG is released under the GNU General Public Licence (GPL). Please refer to the COPYING file that comes with all the GnuPG packages for details. The rndos2 library has a BSD licence. If you have any questions concerning the port or if you have source code patches, please drop me an eMail: tobias@tobiashuerlimann.de. Hints to poor english language and translation errors are also appreciated. ¸ 2003-2005, Tobias Hrlimann