Change history, doubleplusgood.
[gnupg.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index ac59f61..55a4c85 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -4,31 +4,35 @@ Please read the Basic Installation section somewhere below.
 Configure options for GNUPG
 ===========================
 
+--enable-static-rnd=<name>  Force the use of the random byte gathering
+                    module <name>.  Default is either to use /dev/random
+                    or the standard Uix module.  Value for name:
+                      egd - Use the module which accesses the
+                            Entropy Gathering Daemon. See the webpages
+                            for more information about it.
+                     unix - Use the standard Unix module which does not
+                            have a very good performance.
+                    linux - Use the module which accesses /dev/random.
+                            This is the first choice and the default one
+                            for GNU/Linux or *BSD.
+                     none - Do not linkl any module in but rely on
+                            a dynmically loaded modules.
+
 --with-included-zlib Forces usage of the local zlib sources. Default is
                     to use the (shared) library of the system.
 
 --with-included-gettext Forces usage of the local gettext sources instead of
                    the one provided by your system.
 
---disable-nls      Disable NLS support (See ABOUT-NLS)
-
---enable-m-debug    Compile with the integrated malloc debugging stuff.
-                   This makes the program slower but is checks every
-                   free operation and can be used to create statistics
-                   of memory usage. If this option is used the program
-                   option "--debug 32" displays every call to a a malloc
-                   function (this makes the program *really* slow), the
-                   option "--debug 128" displays a memory statistic after
-                   the program run.
+--disable-nls      Disable NLS support (See the file ABOUT-NLS)
 
---disable-m-guard   Disable the integrated malloc checking code. As a
-                   side-effect, this removes all debugging code and uses
-                   the -O2 flag for all C files.
+--enable-m-guard    Enable the integrated malloc checking code.
 
 --disable-dynload   If you have problems with dynamic loading, this option
                    disables all dynamic loading stuff.
 
---disable-asm      Do not use assembler modules.
+--disable-asm      Do not use assembler modules.  It is not possible to
+                   use this on some CPU types.
 
 
 
@@ -51,12 +55,26 @@ assembler replacements are in C and in mpi/generic; never delete udiv-qrnnd.S
 in any CPU directory, because there may be no C substitute.
 Don't forget to delete "config.cache" and run "./config.status --recheck".
 
+Some make tools are broken - the best solution is to use GNU's make.  Try
+gmake or grab the sources from a GNU archive and install them.
+
+On some OSF you may get unresolved externals.  This is a libtool problem and
+the workaround is to manually remove all the "-lc -lz" but the last one from
+the linker line and execute them manually.
+
+On some architectures you get warnings like:
+  longlong.h:175: warning: function declaration isn't a prototype
+or
+  http.c:647: warning: cast increases required alignment of target type
+This doesn't matter and we know about it (actually it is due to the some
+warning options which we have enabled for gcc)
+
 
 The Random Device
 =================
 Random devices are available in Linux, FreeBSD and OpenBSD.
-The device files may not exist on your system, please check this
-and create them if needed.
+The random device files may not exist on your system, please check whether
+they do and create them if needed.
 
 The Linux files should look like this:
     cr--r--r--  1 root     sys        1,   8 May 28  1997 /dev/random
@@ -72,23 +90,23 @@ You can create them with:
     mknod /dev/random  c 2 3
     mknod /dev/urandom c 2 4
 
-Unices without a random devices must use another entropy collector
-which is called rndunix and available as an extension module. You
+Unices without a random devices must use another entropy collector.  One
+entropy collector called rndunix and available as an extension module. You
 should put this in your ~/.gnupg/options file:
 ===8<====================
 load-extension rndunix
 ===>8====================
-This collector works by running a lot of tools which yields more or
-less unpredictable output and fedds this as entropy into the random
-generator - It should work reliable but you should check whether
-it produces good output for your kinf of Unix. There are some debug
+This collector works by running a lot of commands that yield more or
+less unpredictable output and feds this as entropy into the random
+generator - It should work reliably but you should check whether
+it produces good output for your version of Unix. There are some debug
 options to help you (see cipher/rndunix.c).
 
 
 
 Installation
 ============
-gpg is not installed as suid:root; if you want to do it, do it manually.
+gpg is not installed as suid:root; if you want to do that, do it manually.
 We will use capabilities in the future.
 
 The ~/.gnupg directory will be created if it does not exist.  Your first
@@ -98,11 +116,20 @@ action should be to create a key pair: "gpg --gen-key".
 
 Creating a RPM package
 ======================
-The file scripts/gnupg-x.x.x.spec is used to build a RPM package:
-    1. As root, copy the spec file into /usr/src/redhat/SPECS
+The file scripts/gnupg.spec is used to build a RPM package (both
+binary and src):
+    1. copy the spec file into /usr/src/redhat/SPECS
     2. copy the tar file into /usr/src/redhat/SOURCES
-    3. type: rpm -ba SPECS/gnupg-x.x.x.spec
+    3. type: rpm -ba SPECS/gnupg.spec
+
+Or use the -t (--tarbuild) option of rpm:
+    1. rpm -ta gnupg-x.x.x.tar.gz
+
+The binary rpm file can now be found in /usr/src/redhat/RPMS, source
+rpm in /usr/src/redhat/SRPMS
 
+Please note that to install gnupg binary rpm you must be root, as
+gnupg needs to be suid root, at least on Linux machines
 
 
 Basic Installation
@@ -126,9 +153,9 @@ diffs or instructions to the address given in the `README' so they can
 be considered for the next release.  If at some point `config.cache'
 contains results you don't want to keep, you may remove or edit it.
 
-   The file `configure.in' is used to create `configure' by a program
-called `autoconf'.  You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
+   The file `configure.in' is used by the program `autoconf' to create
+`configure'.  You only need `configure.in' if you want to change it or
+regenerate `configure' using a newer version of `autoconf'.
 
 The simplest way to compile this package is:
 
@@ -138,7 +165,7 @@ The simplest way to compile this package is:
      `sh ./configure' instead to prevent `csh' from trying to execute
      `configure' itself.
 
-     Running `configure' takes awhile.  While running, it prints some
+     Running `configure' takes a while.  While running, it prints some
      messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
@@ -168,19 +195,19 @@ a Bourne-compatible shell, you can do that on the command line like
 this:
      CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
 
-Or on systems that have the `env' program, you can do it like this:
+Or, on systems that have the `env' program, you can do it like this:
      env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
 
 Compiling For Multiple Architectures
 ====================================
 
-   You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+   You can compile the package for more than one kind of computer at the same
+time by placing the object files for each architecture in their own
+directory.  To do this, you must use a version of `make', such as GNU `make',
+that supports the `VPATH' variable.  `cd' to the directory where you want the
+object files and executables to go and run the `configure' script.
+`configure' automatically checks for the source code in the directory that
+`configure' is in and in `..'.
 
    If you have to use a `make' that does not supports the `VPATH'
 variable, you have to compile the package for one architecture at a time