update README to reflect gmplib licensing change
[gnutls:gnutls.git] / README
1 GnuTLS README -- Important introductory notes.
2 Copyright (C) 2000-2012 Free Software Foundation, Inc.
3 See the end of this document for copying conditions.
4
5 GnuTLS implements the TLS/SSL (Transport Layer Security aka Secure
6 Sockets Layer) protocol.  GnuTLS is a GNU project.  Additional
7 information can be found at <http://www.gnutls.org/>
8 and <http://www.gnutls.org/>.
9
10
11 README
12 ------
13 This README is targeted for users of the library who build from
14 sources but do not necessarily develop.  If you are interested
15 in developing and contributing to the GnuTLS project, please
16 see README-alpha and visit
17 http://www.gnutls.org/manual/html_node/Contributing.html.
18
19
20 COMPILATION
21 -----------
22 A typical command sequence for building the library is shown below.
23 A complete list of options available for configure can be found
24 by running './configure --help'.
25
26     cd gnutls-<version>
27     ./configure --prefix=/usr
28     make
29     sudo make install
30
31 The commands above build and install the static archive (libgnutls.a),
32 the shared object (libgnutls.so), and additional binaries such as certtool 
33 and gnutls-cli.
34
35 The library depends on libnettle and gmplib. 
36  * gmplib: for big number arithmetic
37      http://gmplib.org/
38  * nettle: for cryptographic algorithms
39      http://www.lysator.liu.se/~nisse/nettle/
40
41 Versions 2.10.3 and prior used libgcrypt as the default cryptographic library.
42
43 Optionally it may use the following libraries:
44  * libtasn1: For ASN.1 parsing (a copy is included, if not found)
45      http://www.gnu.org/software/libtasn1/
46  * p11-kit: for smart card support
47      http://p11-glue.freedesktop.org/p11-kit.html
48  * libtspi: for Trusted Platform Module (TPM) support, 
49      http://trousers.sourceforge.net/
50  * libunbound: For DNSSEC/DANE support,
51      http://unbound.net/
52  * libz: For compression support.
53      http://www.zlib.net/
54
55 To configure libnettle for installation and use by GnuTLS, a typical
56 command sequence would be:
57
58     cd nettle-<version>
59     ./configure --prefix=/usr --disable-openssl --enable-shared
60     make
61     sudo make install
62
63 For the Nettle project, --enable-shared will instruct automake and
64 friends to build and install both the static archive (libnettle.a)
65 and the shared object (libnettle.so).
66
67 In case you are compiling for an embedded system, you can disable
68 unneeded features of GnuTLS.  In general, it is usually best not to
69 disable anything (for future mailing list questions and possible bugs).
70
71 Depending on your installation, additional libraries, such as libtasn1
72 and zlib, may be required.
73
74
75 DOCUMENTATION
76 -------------
77 See the documentation in doc/ and online at
78 http://www.gnutls.org/manual.
79
80
81 EXAMPLES
82 --------
83 See the examples in doc/examples/ and online at 'How To Use GnuTLS in
84 Applications' at http://www.gnutls.org/manual.
85
86
87 SECURITY ADVISORIES
88 -------------------
89 The project collects and publishes information on past security
90 incidents and vulnerabilities.  Open information exchange, including
91 information which is [sometimes] suppressed in non-open or non-free
92 projects, is one of the goals of the GnuTLS project.  Please visit
93 http://www.gnutls.org/security.html.
94
95
96 MAILING LISTS
97 -------------
98 The GnuTLS project maintains mailing lists for users, developers, and
99 commits.  Please see http://www.gnutls.org/lists.html.
100
101
102 LICENSING
103 ---------
104 Since GnuTLS version 3.1.10, the core library has been released under
105 the GNU Lesser General Public License (LGPL) version 2.1 or later.
106
107 Note, however, that version 6.0.0 and later of the gmplib library used
108 by GnuTLS are distributed under a LGPLv3+ or GPLv2+ dual license, and
109 as such binaries of this library need to be distributed under the same
110 LGPLv3+ or GPLv2+ dual license. If this is undesirable older versions
111 of the gmplib which are under LGPLv2.1 (e.g., version 4.2.1) may be
112 used instead. (gmplib versions between 4.2.2 through 5.1.3 were
113 licensed under LGPLv3+ only).
114
115 The GNU LGPL applies to the main GnuTLS library, while the
116 included applications as well as gnutls-openssl 
117 library are under the GNU GPL version 3.  The gnutls library is 
118 located in the lib/ directory, while the applications in src/ and
119 gnutls-openssl library is at extra/.
120
121 For any copyright year range specified as YYYY-ZZZZ in this package
122 note that the range specifies every single year in that closed interval.
123
124
125 BUGS
126 ----
127 Thorough testing is very important and expensive.  Often, the 
128 developers do not have access to a particular piece of hardware or 
129 configuration to reproduce a scenario.  Notifying the developers about a 
130 possible bug will greatly help the project.  
131
132 If you believe you have found a bug, please report it to bugs@gnutls.org
133 together with any applicable information. 
134
135 Applicable information would include why the issue is a GnuTLS bug (if
136 not readily apparent), output from 'uname -a', the version of the library or
137 tool being used, a stack trace if available ('bt full' if under gdb or
138 valgrind output), and perhaps a network trace.  Vague queries or piecemeal 
139 messages are difficult to act upon and don't help the development effort.
140
141 Additional information can be found at the project's manual.
142
143
144 PATCHES
145 -------
146 Patches are welcome and encouraged. Patches can be submitted through the 
147 bug tracking system or the mailing list.  When submitting patches, please 
148 be sure to use sources from the git repository, and preferrably from the 
149 master branch.  To create a patch for the project from a local git repository, 
150 please use the following commands. 'gnutls' should be the local directory 
151 of a previous git clone.
152
153     cd gnutls
154     git add the-file-you-modified.c another-file.c
155     git commit the-file-you-modified.c another-file.c
156     git format-patch
157
158 For more information on use of Git, visit http://git-scm.com/
159
160 ----------------------------------------------------------------------
161 Copying and distribution of this file, with or without modification,
162 are permitted in any medium without royalty provided the copyright
163 notice and this notice are preserved.