Typo fix and checked recent changes
[libgcrypt.git] / README
1                     libgcrypt - The GNU crypto library
2                    ------------------------------------
3                             Version 1.1.90
4
5     THIS IS A PRE-RELEASE FOR THE FIRST STABLE VERSION 1.2.0, TO BE
6     RELEASED RSN.
7
8
9     Copyright 2000, 2002, 2003 Free Software Foundation, Inc.
10
11     This file is free software; as a special exception the author gives
12     unlimited permission to copy and/or distribute it, with or without
13     modifications, as long as this notice is preserved.
14
15     This file is distributed in the hope that it will be useful, but
16     WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
17     implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
19
20
21     Overview
22     --------
23
24     Libgcrypt is a general purpose crypto library based on the code
25     used in GnuPG.  We can't start with a new version number because
26     libgcrypt was part of gnupg 1.1 and some applications already used
27     it and tested for the version number. We believe that the API can
28     stay as it is, except that new functions may be added in the
29     future.
30
31     Libgcrypt depends on the library `libgpg-error', which must be
32     installed correctly before Libgcrypt is to be built.
33
34
35     CVS
36     ---
37
38     If you are using the CVS version, make sure that you have the
39     latest GNU build tools installed and run ./autogen.sh before
40     trying to build the library.  Instead of running autogen.sh,
41     something like `autoreconf -i --symlink' can be used to prepare
42     the tree for building as well.
43
44     You also need to enable maintainer mode at configure time with the
45     `--enable-maintainer-mode' configure switch; without this switch,
46     the documentation can not be build, since the file `version.texi',
47     which is needed for building the documentation, will only be
48     generated, if maintainer mode is enabled.
49
50
51     Mailing List
52     ------------
53
54     You may want to join the developer's mailing list
55     gcrypt-devel@gnupg.org by sending mail with a subject of
56     "subscribe" to gcrypt-devel-request@gnupg.org.  An archive of this
57     list is available at http://lists.gnupg.org .
58
59
60     License
61     -------
62     
63     Most of this library is distributed under the terms of the GNU
64     Lesser General Public License (LGPL); see the file COPYING.LIB for
65     the actual terms.  However some parts are distributed under the
66     GNU General Public License (GPL) so if you configure Libgcrypt to
67     include these modules, you have to comply with the conditions of
68     the GPL as found in the file COPYING.  The modules under the GPL
69     are:
70
71       rndunix - Entropy gatherer for Unices without a /dev/random
72       rndw32  - Entropy gatherer for MS Windows
73
74     The documentation is available under the terms of the GNU Free
75     Documentation License; see the file COPYING.DOC for the terms.
76
77     This library used to be available under the GPL - this was changed
78     with version 1.1.7 with the rationale that there are now many free
79     crypto libraries available and many of them come with capabilities
80     similar to Libcrypt.  We decided that to foster the use of
81     cryptography in Free Software an LGPLed library would make more
82     sense because it avoids problems due to license incompatibilities
83     between some Free Software licenses and the GPL. 
84
85     Please note that in many cases it is better for a library to be
86     licensed under the GPL, so that it provides an advantage for free
87     software projects.  The Lesser GPL is so named because it does
88     less to protect the freedom of the users of the code that it
89     covers.  See http://www.gnu.org/philosophy/why-not-lgpl.html for
90     more explanation.
91
92
93     Configure options 
94     -----------------
95     Here is a list of configure options which are sometimes useful 
96     for installation.
97
98      --enable-m-guard
99                      Enable the integrated malloc checking code. Please
100                      note that this feature does not work on all CPUs
101                      (e.g. SunOS 5.7 on UltraSparc-2) and might give
102                      you a bus error.
103
104      --disable-asm
105                      Do not use assembler modules.  It is not possible 
106                      to use this on some CPU types.
107                     
108      --enable-ld-version-script
109                      Libgcrypt tries to build a library where internal
110                      symbols are not exported.  This requires support
111                      from ld and is currently enabled for a few OSes.
112                      If you know that your ld supports the so called
113                      ELF version scripts, you can use this option to
114                      force its use.  OTOH, if you get error message
115                      from the linker, you probably want to use this
116                      option to disable the use of version scripts.
117                      Note, that you should never ever use an
118                      undocumented symbol or one which is prefixed with
119                      an underscore.
120
121      --enable-ciphers=list
122      --enable-pubkey-ciphers=list
123      --enable-digests=list
124                      If not otherwise specified, all algorithms
125                      included in the libgcrypt source tree are built.
126                      An exception are algorithms, which depend on
127                      features not provided by the system, like 64bit
128                      data types.  With these switches it is possible
129                      to select exactly those algorithm modules, which
130                      should be built.