* configure.ac: Allow setting USE_EXEC_PATH to lock the exec-path to a
[gnupg.git] / README
diff --git a/README b/README
index 34d59c9..1e9f1b9 100644 (file)
--- a/README
+++ b/README
------BEGIN PGP SIGNED MESSAGE-----
 
                    GnuPG - The GNU Privacy Guard
                   -------------------------------
-                          Version 0.9.7
-
-    GnuPG is now in Beta test and you should report all bugs to the
-    mailing list (see below).  The 0.9.x versions are released mainly
-    to fix all remaining serious bugs. As soon as version 1.0 is out,
-    development will continue with a 1.1 series and bug fixes for the
-    1.0 version as needed.
-
-    GnuPG works best on GNU/Linux or *BSD.  Other Unices are
-    also supported but are not as well tested as the Free Unices.
-    Please verify the tar file with the PGP2 or OpenPGP
-    signatures provided.  My PGP2 key is well known and published in
-    the "Global Trust Register for 1998", ISBN 0-9532397-0-5.
-
-    I have included my pubring as "g10/pubring.asc", which contains
-    the key used to make GnuPG signatures:
-
-    "pub  1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig) <dd9jn@gnu.org>"
-    "Key fingerprint = 6BD9 050F D8FC 941B 4341  2DCC 68B7 AB89 5754 8DCD"
-
-    You may want to add this DSA key to your GnuPG pubring and use it in
-    the future to verify new releases. Because you verified this README
-    file and _checked_that_it_is_really_my PGP2 key 0C9857A5, you can be
-    quite sure that the above fingerprint is correct.
-
-    Please subscribe to announce@gnupg.org by sending a mail with
-    a subject of "subscribe" to "announce-request@gnupg.org".  If you
-    have problems, please subscribe to "gnupg-users@gnupg.org" by sending
-    mail with the subject "subscribe" to "gnupg-users-request@gnupg.org"
-    and ask there.  The gnupg.org domain is hosted in Germany to avoid
-    possible legal problems with gnu.org (technical advices may count
-    as a violation of ITAR).
+                           Version 1.1
+
+    Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+    This file is free software; as a special exception the author gives
+    unlimited permission to copy and/or distribute it, with or without
+    modifications, as long as this notice is preserved.
+
+    This file is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+    implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+         ****************************************************
+         **  Please note that is is a DEVELOPMENT VERSION  **
+         **  and as such not suitable for production use   **
+         **  unless you really know what you are doing.    **
+         ****************************************************
 
-    See the file COPYING for copyright and warranty information.
 
-    GnuPG is in compliance with RFC2440 (OpenPGP), see doc/OpenPGP for
-    details.
+    Intro
+    -----
+
+    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.
+
+    GnuPG works best on GNU/Linux or *BSD systems.  Most other Unices
+    are also supported but are not as well tested as the Free Unices.
+    See http://www.gnupg.org/gnupg.html#supsys for a list of systems
+    which are known to work.
+
+    See the file COPYING for copyright and warranty information.
 
     Because GnuPG does not use use any patented algorithm it cannot be
-    compatible with PGP2 versions.  PGP 2.x uses only IDEA (which is
-    patented worldwide) and RSA (which is patented in the United States
-    until Sep 20, 2000).
+    compatible with PGP2 versions.  PGP 2.x uses IDEA (which is patented
+    worldwide).
 
-    The default algorithms are now DSA and ElGamal.  ElGamal for signing
+    The default algorithms are DSA and ElGamal.  ElGamal for signing
     is still available, but because of the larger size of such
     signatures it is deprecated (Please note that the GnuPG
     implementation of ElGamal signatures is *not* insecure).  Symmetric
-    algorithms are: 3DES, Blowfish, and CAST5 (Twofish will come soon).
-    Digest algorithms available are MD5, RIPEMD160, SHA1, and TIGER/192.
+    algorithms are: AES, 3DES, Blowfish, CAST5 and Twofish 
+    Digest algorithms available are MD5, RIPEMD160 and SHA1.
 
 
     Installation
     ------------
+    Please read the file INSTALL and the sections in this file
+    related to the installation.  Here is a quick summary:
+
+    1) Check that you have unmodified sources. The below on how
+       to do this.  Don't skip it - this is an important step!
 
-    Please read the file INSTALL!
+    2) Unpack the TAR.  With GNU tar you can do it this way:
+       "tar xzvf gnupg-x.y.z.tar.gz"
 
-    Here is a quick summary:
+    3) "cd gnupg-x.y.z"
 
-    1) "./configure"
+    4) "./configure"
 
-    2) "make"
+    5) "make"
 
-    3) "make install"
+    6) "make install"
 
-    4) You end up with a "gpg" binray in /usr/local/bin.
-       Note: Because some programs rely on the existence of a
-       binary named "gpgm"; you should install a symbolic link
-       from gpgm to gpg:
-       $ cd /usr/local/bin; ln -s gpg gpgm
+    7) You end up with a "gpg" binary in /usr/local/bin.
 
-    5) To avoid swapping out of sensitive data, you can install "gpg" as
+    8) To avoid swapping out of sensitive data, you can install "gpg" as
        suid root.  If you don't do so, you may want to add the option
        "no-secmem-warning" to ~/.gnupg/options
 
 
+    How to Verify the Source
+    ------------------------
+    In order to check that the version of GnuPG which you are going to
+    install is an original and unmodified one, you can do it in one of
+    the following ways:
+
+    a) If you already have a trusted Version of GnuPG installed, you
+       can simply check the supplied signature:
+
+       $ gpg --verify gnupg-x.y.z.tar.gz.asc
+
+       This checks that the detached signature gnupg-x.y.z.tar.gz.asc
+       is indeed a a signature of gnupg-x.y.z.tar.gz.  The key used to
+       create this signature is:
+
+       "pub  1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig) <dd9jn@gnu.org>"
+
+       If you do not have this key, you can get it from the source in
+       the file doc/samplekeys.asc (use "gpg --import  doc/samplekeys.asc"
+       to add it to the keyring) or from any keyserver.  You have to
+       make sure that this is really the key and not a faked one. You
+       can do this by comparing the output of:
+
+               $ gpg --fingerprint 0x57548DCD
+
+       with the elsewhere published fingerprint
+
+       Please note, that you have to use an old version of GnuPG to
+       do all this stuff.  *Never* use the version which you are going
+       to check!
+
+
+    b) If you don't have any of the above programs, you have to verify
+       the MD5 checksum:
+
+       $ md5sum gnupg-x.y.z.tar.gz
+
+       This should yield an output _similar_ to this:
+
+       fd9351b26b3189c1d577f0970f9dcadc  gnupg-x.y.z.tar.gz
+
+       Now check that this checksum is _exactly_ the same as the one
+       published via the announcement list and probably via Usenet.
+
+
+
+    Documentation
+    -------------
+    The manual will be distributed separate under the name "gph".
+    An online version of the latest manual draft is available at the
+    GnuPG web pages:
+
+       http://www.gnupg.org/gph/
+
+    A list of frequently asked questions is available in GnuPG's
+    distibution in the file doc/FAQ and online as:
+
+       http://www.gnupg.org/faq.html
+
+    A couple of HOWTO documents are available online; for a listing see:
+
+       http://www.gnupg.org/docs.html#howtos
+
+    A man page with a description of all commands and options gets installed
+    along with the program. 
+
 
     Introduction
     ------------
-
-    This is a brief overview how to use GnuPG - it is strongly suggested
-    that you read the manual^H^H^H more information about the use of
-    cryptography.  GnuPG is only a tool, secure results require that YOU
-    KNOW WHAT YOU ARE DOING.
+    Here is a brief overview on how to use GnuPG - it is strongly suggested
+    that you read the manual and other information about the use of
+    cryptography.  GnuPG is only a tool, secure usage requires that
+    YOU KNOW WHAT YOU ARE DOING.
 
     If you already have a DSA key from PGP 5 (they call them DH/ElGamal)
     you can simply copy the pgp keyrings over the GnuPG keyrings after
 
        "+Heinrich Heine duesseldorf"
 
-      All words must match excatly (not case sensitive) and appear in
+      All words must match exactly (not case sensitive) and appear in
       any order in the user ID.  Words are any sequences of letters,
       digits, the underscore and characters with bit 7 set.
 
-    * By the Local ID (from the trust DB):
-
-       "#34"
-
-      This may be used by a MUA to specify an exact key after selecting
-      a key from GnuPG (by using a special option or an extra utility)
-
     * Or by the usual substring:
 
        "Heine"
     If you use the option "--batch", GnuPG runs in non-interactive mode and
     never prompts for input data.  This does not even allow entering the
     passphrase.  Until we have a better solution (something like ssh-agent),
-    you can use the option "--passphrase-fd n", which works like PGPs
+    you can use the option "--passphrase-fd n", which works like PGP's
     PGPPASSFD.
 
     Batch mode also causes GnuPG to terminate as soon as a BAD signature is
     detailed information about the errors.
 
 
-    Esoteric commands
+    Configure options 
+    -----------------
+    Here is a list of configure options which are sometime useful 
+    for installation.
+
+    --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-egd-socket=<name>
+                     This is only used when EGD is used as random
+                     gatherer. GnuPG uses by default "~/.gnupg/entropy"
+                     as the socket to connect EGD.  Using this option the
+                     socket name can be changed.  You may use any filename
+                     here with 2 exceptions:  a filename starting with
+                     "~/" uses the socket in the homedirectory of the user
+                     and one starting with a "=" uses a socket in the
+                     GnuPG homedirectory which is bye default "~/.gnupg".
+   
+     --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 the file ABOUT-NLS)
+
+     --enable-m-guard
+                     Enable the integrated malloc checking code. Please
+                     note that this feature does not work on all CPUs
+                     (e.g. SunOS 5.7 on UltraSparc-2) and might give
+                     you a bus error.
+
+     --disable-dynload 
+                    If you have problems with dynamic loading, this
+                    option disables all dynamic loading stuff.
+
+     --disable-asm
+                    Do not use assembler modules.  It is not possible 
+                    to use this on some CPU types.
+                    
+
+    Installation Problems
+    ---------------------
+    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.
+
+    We can't check all assembler files, so if you have problems
+    assembling them (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 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 see 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
+    some warning options which we have enabled for gcc)
+
+
+    Specific problems on some machines
+    ----------------------------------
+
+    * IBM RS/6000 running AIX:
+
+       Due to a change in gcc (since version 2.8) the MPI stuff may
+       not build. In this case try to run configure using:
+           CFLAGS="-g -O2 -mcpu=powerpc" ./configure
+
+    * Compaq C V6.2 for alpha:
+
+        You may want to use the option "-msg-disable ptrmismatch1"
+        to get rid of the sign/unsigned char mismatch warnings.
+
+    * SVR4.2 (ESIX V4.2 cc)
+
+        Due to problems with the ESIX as, you probably want to do
+            CFLAGS="-O -K pentium" ./configure --disable-asm
+        Reported by Reinhard Wobst.
+
+
+
+    The Random Device
     -----------------
 
-       gpg --list-packets datafile
+    Random devices are available in Linux, FreeBSD and OpenBSD.
+    Operating systems without a random devices must use another
+    entropy collector.  One entropy collector called rndunix and
+    available as an extension module. You should put the line:
+       load-extension rndunix
+    into your  ~/.gnupg/options file unless you have used the proper
+    configure option.
 
-    Use this to list the contents of a data file. If the file is encrypted
-    you are asked for the passphrase, so that GnuPG is able to look at the
-    inner structure of a encrypted packet.  This command should list all
-    kinds of rfc2440 messages.
+    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).
 
-       gpgm --list-trustdb
+    Creating an 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
 
-    List the contents of the trust DB in a human readable format
+    Or use the -t (--tarbuild) option of rpm:
+      1. rpm -ta gnupg-x.x.x.tar.gz
 
-       gpgm --list-trustdb  <usernames>
+    The binary rpm file can now be found in /usr/src/redhat/RPMS, source
+    rpm in /usr/src/redhat/SRPMS
 
-    List the tree of certificates for the given usernames
 
-       gpgm --list-trust-path  username
+    How to Get More Information
+    ---------------------------
 
-    List the possible trust paths for the given username. The length
-    of such a trust path is limited by the option --max-cert-depth
-    which defaults to 5.
+    The primary WWW page is "http://www.gnupg.org"
+    The primary FTP site is "ftp://ftp.gnupg.org/gcrypt/"
 
-    For more options/commands see the man page or use "gpg --help".
+    See http://www.gnupg.org/mirrors.html for a list of mirrors
+    and use them if possible.  You may also find GnuPG mirrored on
+    some of the regular GNU mirrors.
 
+    We have some mailing lists dedicated to GnuPG:
 
-    Other Notes
-    -----------
+       gnupg-announce@gnupg.org    For important announcements like
+                                   new versions and such stuff.
+                                   This is a moderated list and has
+                                   very low traffic.
 
-    The primary FTP site is "ftp://ftp.gnupg.org/pub/gcrypt/"
-    The primary WWW page is "http://www.gnupg.org"
+       gnupg-users@gnupg.org       For general user discussion and
+                                   help.
+
+       gnupg-devel@gnupg.org       GnuPG developers main forum.
 
-    See http://www.gnupg.org/mirrors.html for a list of FTP mirrors
-    and use them if possible.
+    You subscribe to one of the list by sending mail with a subject
+    of "subscribe" to x-request@gnupg.org, where x is the name of the
+    mailing list (gnupg-announce, gnupg-users, etc.).  An archive of
+    the mailing lists is available at http://lists.gnupg.org .
 
-    To avoid possible legal problems we have decided, not to use
-    the normal www.gnu.org webserver.
+    The gnupg.org domain is hosted in Germany to avoid possible legal
+    problems (technical advices may count as a violation of ITAR).
 
-    Please direct bug reports to <gnupg-bugs@gnu.org> or, better,
-    post them to the mailing list <gnupg-devel@gnupg.org> (this is a
-    closed list - subscribe before posting, see above (~line 33)).
-    Please direct questions about GnuPG to the mailing list or
-    one of the pgp newsgroups and give me more time to improve
-    GnuPG.  Commercial support for GnuPG is also available; please
-    see the GNU service directory or search other resources.
+    Please direct bug reports to <gnupg-bugs@gnu.org> or post
+    them direct to the mailing list <gnupg-devel@gnupg.org>.
 
-    Have fun and remember: Echelon is looking at you kid.
+    Please direct questions about GnuPG to the users mailing list or
+    one of the pgp newsgroups; please do not direct questions to one
+    of the authors directly as we are busy working on improvements
+    and bug fixes.  Both mailing lists are watched by the authors
+    and we try to answer questions when time allows us to do so.
 
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v0.9.7 (GNU/Linux)
-Comment: For info see http://www.gnupg.org
+    Commercial grade support for GnuPG is available; please see
+    the GNU service directory or search other resources.
 
-iQB1AwUBN1UgTx0Z9MEMmFelAQH93wMAt2JYGXSkJR9+VBeLlpKdjxoIylrlDWEL
-Jk5U/tuuM8H8G4ZJi7lDEhJNX77Jbh2LI18eCJJdrmWPrmDCNK2udDwcyKV4nW3k
-7Fzpc/j8fKJcICP+T9YU9wa0NJrrTg1v
-=dgdp
------END PGP SIGNATURE-----