|  |  |  | English German |  |  |

Software Home

GnuPG
rndos2
PMMPGP
MalSync
cuetools
rdate

| Readme
| Building
| Download

# Readme

On this page: News | Requirements | Installation | Documentation | OS/2 specific bugs | Port Changelog | Licence

This is a port of the GNU Privacy Guard ("GnuPG" or "gpg") version 1.4.7 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."

#### New GnuPG for OS/2 maintainer wanted

24. February 2007: I'm looking for someone who is willing to take over the porting of GnuPG to OS/2 in the future.

Of course, I would assist you doing your first compile and your first own port as good as I can. Actually, porting new releases of the gpg 1.x series is not too much work as the main part of the job is to integrate the existing source code changes from a diff file into the source of the new release. In 90% of the cases, the source codes diffs from the previous release also apply flawlessly to the next one. If I had to estimate how long it takes to produce the port of a newly released gpg version from the 1.x series, I would say that it can usually be done in less than an hour. So, if you are a GnuPG user with a working Innotek GCC setup and some experience with UNIX ports and you want to take over the gpg porting in the future, please drop me an email (tobias {at} tobiashuerlimann.de).

In case you wonder why I want to "retire" as the GnuPG/2 porter, there are two reasons: The first one is that I bought a Mac laptop one and a half years ago, which has since then become my main working machine. I still have my OS/2 desktop computer, but I've more or less stopped using OS/2 for doing serious work except for some computing jobs that I prefer to do on my (faster) desktop PC. It was a little bit sad to abandon OS/2 after all these years, but I simply could no longer afford to spend countless hours just to make some simple USB devices work.

The second reason is that I will graduate from university this summer and after that take up a job very quickly. Then I will probably don't have to the spare time to keep on porting GnuPG, especially if I do not use it myself on OS/2.

#### News

11. March 2007: GnuPG 1.4.7 now available for OS/2 20. December 2006: Uploaded a new version of GnuPG 1.4.6 for OS/2 that includes a patch from Peter Weilbacher that makes it possible to install GnuPG into one single directory.
12. December 2006: GnuPG 1.4.6 now available for OS/2 – upgrading is strongly recommended (1.4.6 contains an important security fix)!
11. September 2006: GnuPG 1.4.5 now available for OS/2
19. April 2006: GnuPG 1.4.3 now available for OS/2
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.6.1 (just make sure that libc06.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)
- GnuPG only works correctly on file systems that support long filenames (HPFS, JPS, ...)

#### 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/<language> subdirectory. <language> 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/.

#### Port Changelog

- Sun Mar 11, 2007: Updated to version 1.4.7
  GPG 1.4.7 is a security update that fixes a security issue.
- Thu Dec 28, 2006: New version of 1.4.6 port
  I've included some patches from Peter Weilbacher (thanks!) that make it possible to install all gpg.exe files into one single directory. If you want to do so, download the binary ZIP archive and copy all .exe and .dll files into one folder. If you need localization, create a subfolder named "locale" and copy all subfolders of usr/share/locale/ into it. Then make sure that the UNIXROOT environment variable is NOT set and define the environment variable GPGDIR instead, e.g. SET GPGDIR=C:\Programs\GnuPG.
- Mon Dec 12, 2006: Updated to version 1.4.6
  This release again fixes some security issues including a serious one. Official announcement at the GnuPG website. Concerning my port: this version also fixes a minor bug in the OS/2-specific code, which probably affected nobody in past releases ;-) Also new: this release is compiled with GCC 3.3.5-ga2 for OS/2, which seems to be the current GCC version for OS/2. As a consequence, this release now requires the Innotek libc runtime 0.6.1 (see above for a download link).
- Mon Sep 11, 2006: Updated to version 1.4.5
  This release fixes some security issues. Official announcement at the GnuPG website.
- Wed Apr 19, 2006: Updated to version 1.4.3
  There were no (official) OS/2 releases of GnuPG 1.4.2.1 and 1.4.2.2 because my time becomes increasingly limited. In 1.4.3 I've fixed a bug that could prevent my port from working correctly with RexxEGD (thanks to Alexander Conon for bringing that to my attention). As usual, you can find the official announcement at the GnuPG mailing list archives.
- 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 <tobias@tobiashuerlimann.de>. My PGP key can be found here. | Impressum (German)