See ChangeLog: Mon Mar 8 21:53:47 CET 1999 Werner Koch
[gnupg.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 4950ba9..c6bd647 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -13,27 +13,36 @@ Configure options for GNUPG
 --disable-nls      Disable NLS support (See ABOUT-NLS)
 
 --enable-m-debug    Compile with the integrated malloc debugging stuff.
 --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
+                   This makes the program slower but it checks every
                    free operation and can be used to create statistics
                    of memory usage. If this option is used the program
                    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 malloc
+                   option "--debug 32" displays every call to a malloc
                    function (this makes the program *really* slow), the
                    option "--debug 128" displays a memory statistic after
                    the program run.
 
                    function (this makes the program *really* slow), the
                    option "--debug 128" displays a memory statistic after
                    the program run.
 
---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.
+
 
 
 Problems
 ========
 
 
 
 Problems
 ========
 
-If you have compile problems, try the configure options "--with-included-zlib"
-or "--disable-nls" (See ABOUT-NLS).
+If you get unresolved externals "gettext" you should run configure again
+with the option "--with-included-gettext"; this is version 0.10.35 which
+is available at alpha.gnu.org.
+
+If you have other compile problems, try the configure options
+"--with-included-zlib" or "--disable-nls" (See ABOUT-NLS)
+or --disable-dynload.
 
 I can't check all assembler files, so if you have problems assembling them
 
 I can't check all assembler files, so if you have problems assembling them
-(or the program crashes), simply delete the files in the mpi/<cpu> directory.
+(or the program crashes) use --disable-asm with ./configure.
 The configure scripts may consider several subdirectories to get all
 available assembler files; be sure to delete the correct ones. The
 assembler replacements are in C and in mpi/generic; never delete udiv-qrnnd.S
 The configure scripts may consider several subdirectories to get all
 available assembler files; be sure to delete the correct ones. The
 assembler replacements are in C and in mpi/generic; never delete udiv-qrnnd.S
@@ -43,19 +52,16 @@ Don't forget to delete "config.cache" and run "./config.status --recheck".
 
 The Random Device
 =================
 
 The Random Device
 =================
-The current version of GNUPG needs the support of a random device.
-If there is no such device, it uses a very simple RNG, which does
-not generate strong random numbers.
 Random devices are available in Linux, FreeBSD and OpenBSD.
 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
     cr--r--r--  1 root     sys        1,   9 Feb 16 08:23 /dev/urandom
 You can create them with:
     mknod /dev/random c 1 8
 
 The Linux files should look like this:
     cr--r--r--  1 root     sys        1,   8 May 28  1997 /dev/random
     cr--r--r--  1 root     sys        1,   9 Feb 16 08:23 /dev/urandom
 You can create them with:
     mknod /dev/random c 1 8
-    mknod /dev/random c 1 8
+    mknod /dev/urandom c 1 9
 
 The FreeBSD files [from the 970202 snapshot]:
     crw-r--r-- 1 root  wheel    2,   3 Feb 25 16:54 /dev/random
 
 The FreeBSD files [from the 970202 snapshot]:
     crw-r--r-- 1 root  wheel    2,   3 Feb 25 16:54 /dev/random
@@ -64,17 +70,48 @@ You can create them with:
     mknod /dev/random  c 2 3
     mknod /dev/urandom c 2 4
 
     mknod /dev/random  c 2 3
     mknod /dev/urandom c 2 4
 
+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 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
 ============
 
 
 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
 action should be to create a key pair: "gpg --gen-key".
 
 
 
 
 The ~/.gnupg directory will be created if it does not exist.  Your first
 action should be to create a key pair: "gpg --gen-key".
 
 
 
+Creating a RPM package
+======================
+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.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
 ==================
 
 Basic Installation
 ==================
 
@@ -96,9 +133,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.
 
 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:
 
 
 The simplest way to compile this package is:
 
@@ -108,7 +145,7 @@ The simplest way to compile this package is:
      `sh ./configure' instead to prevent `csh' from trying to execute
      `configure' itself.
 
      `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.
      messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
@@ -138,19 +175,19 @@ a Bourne-compatible shell, you can do that on the command line like
 this:
      CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
 
 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
 ====================================
 
      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
 
    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