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.
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/>.
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.
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'.
27 ./configure --prefix=/usr
32 The commands above build and install the static archive (libgnutls.a),
33 the shared object (libgnutls.so), and additional binaries such as certtool
36 The library depends on libnettle and gmplib.
37 * gmplib: for big number arithmetic
39 * nettle: for cryptographic algorithms
40 http://www.lysator.liu.se/~nisse/nettle/
42 Versions 2.10.3 and prior used libgcrypt as the default cryptographic library.
44 Optionally it may use the following libraries:
45 * libtasn1: For ASN.1 parsing (a copy is included, if not found)
46 http://www.gnu.org/software/libtasn1/
47 * p11-kit: for smart card support
48 http://p11-glue.freedesktop.org/p11-kit.html
49 * libtspi: for Trusted Platform Module (TPM) support,
50 http://trousers.sourceforge.net/
51 * libunbound: For DNSSEC/DANE support,
53 * libz: For compression support.
56 To configure libnettle for installation and use by GnuTLS, a typical
57 command sequence would be:
60 ./configure --prefix=/usr --disable-openssl --enable-shared
64 For the Nettle project, --enable-shared will instruct automake and
65 friends to build and install both the static archive (libnettle.a)
66 and the shared object (libnettle.so).
68 In case you are compiling for an embedded system, you can disable
69 unneeded features of GnuTLS. In general, it is usually best not to
70 disable anything (for future mailing list questions and possible bugs).
72 Depending on your installation, additional libraries, such as libtasn1
73 and zlib, may be required.
78 See the documentation in doc/ and online at
79 http://www.gnutls.org/manual.
84 See the examples in doc/examples/ and online at 'How To Use GnuTLS in
85 Applications' at http://www.gnutls.org/manual.
90 The project collects and publishes information on past security
91 incidents and vulnerabilities. Open information exchange, including
92 information which is [sometimes] suppressed in non-open or non-free
93 projects, is one of the goals of the GnuTLS project. Please visit
94 http://www.gnutls.org/security.html.
99 The GnuTLS project maintains mailing lists for users, developers, and
100 commits. Please see http://www.gnutls.org/lists.html.
105 Since GnuTLS version 3.1.10, the core library has been released under
106 the GNU Lesser General Public License (LGPL) version 2.1 or later.
108 Note, however, that version 6.0.0 and later of the gmplib library used
109 by GnuTLS are distributed under a LGPLv3+ or GPLv2+ dual license, and
110 as such binaries of this library need to be distributed under either
111 LGPLv3+ or GPLv2+ license.
113 The GNU LGPL applies to the main GnuTLS library, while the
114 included applications as well as gnutls-openssl
115 library are under the GNU GPL version 3. The gnutls library is
116 located in the lib/ directory, while the applications in src/ and
117 gnutls-openssl library is at extra/.
119 For any copyright year range specified as YYYY-ZZZZ in this package
120 note that the range specifies every single year in that closed interval.
125 Thorough testing is very important and expensive. Often, the
126 developers do not have access to a particular piece of hardware or
127 configuration to reproduce a scenario. Notifying the developers about a
128 possible bug will greatly help the project.
130 If you believe you have found a bug, please report it to bugs@gnutls.org
131 together with any applicable information.
133 Applicable information would include why the issue is a GnuTLS bug (if
134 not readily apparent), output from 'uname -a', the version of the library or
135 tool being used, a stack trace if available ('bt full' if under gdb or
136 valgrind output), and perhaps a network trace. Vague queries or piecemeal
137 messages are difficult to act upon and don't help the development effort.
139 Additional information can be found at the project's manual.
144 Patches are welcome and encouraged. Patches can be submitted through the
145 bug tracking system or the mailing list. When submitting patches, please
146 be sure to use sources from the git repository, and preferrably from the
147 master branch. To create a patch for the project from a local git repository,
148 please use the following commands. 'gnutls' should be the local directory
149 of a previous git clone.
152 git add the-file-you-modified.c another-file.c
153 git commit the-file-you-modified.c another-file.c
156 For more information on use of Git, visit http://git-scm.com/
158 ----------------------------------------------------------------------
159 Copying and distribution of this file, with or without modification,
160 are permitted in any medium without royalty provided the copyright
161 notice and this notice are preserved.