Blame INSTALL.md

Packit 549fdc
GnuTLS README -- Important introductory notes
Packit 549fdc
=============================================
Packit 549fdc
Packit 549fdc
GnuTLS implements the TLS/SSL (Transport Layer Security aka Secure
Packit 549fdc
Sockets Layer) protocol.  GnuTLS is a GNU project.  Additional
Packit 549fdc
information can be found at <http://www.gnutls.org/>.
Packit 549fdc
Packit 549fdc
Packit 549fdc
README
Packit 549fdc
======
Packit 549fdc
Packit 549fdc
This README is targeted for users of the library who build from
Packit 549fdc
sources but do not necessarily develop.  If you are interested
Packit 549fdc
in developing and contributing to the GnuTLS project, please
Packit 549fdc
see README-alpha and visit
Packit 549fdc
http://www.gnutls.org/manual/html_node/Contributing.html.
Packit 549fdc
Packit 549fdc
Packit 549fdc
COMPILATION
Packit 549fdc
===========
Packit 549fdc
Packit 549fdc
A typical command sequence for building the library is shown below.
Packit 549fdc
A complete list of options available for configure can be found
Packit 549fdc
by running './configure --help'.
Packit 549fdc
Packit 549fdc
```
Packit 549fdc
    cd gnutls-<version>
Packit 549fdc
    ./configure --prefix=/usr
Packit 549fdc
    make
Packit 549fdc
    make check
Packit 549fdc
    sudo make install
Packit 549fdc
```
Packit 549fdc
Packit 549fdc
The commands above build and install the static archive (libgnutls.a),
Packit 549fdc
the shared object (libgnutls.so), and additional binaries such as certtool 
Packit 549fdc
and gnutls-cli.
Packit 549fdc
Packit 549fdc
The library depends on libnettle and gmplib. 
Packit 549fdc
* gmplib: for big number arithmetic, http://gmplib.org/
Packit 549fdc
* nettle: for cryptographic algorithms, http://www.lysator.liu.se/~nisse/nettle/
Packit 549fdc
Packit 549fdc
Optionally it may use the following libraries:
Packit 549fdc
* libtasn1: For ASN.1 parsing (a copy is included, if not found), http://www.gnu.org/software/libtasn1/
Packit 549fdc
* p11-kit: for smart card support, http://p11-glue.freedesktop.org/p11-kit.html
Packit 549fdc
* libtspi: for Trusted Platform Module (TPM) support, http://trousers.sourceforge.net/
Packit 549fdc
* libunbound: For DNSSEC/DANE support, http://unbound.net/
Packit 549fdc
* libz: For compression support, http://www.zlib.net/
Packit 549fdc
* libidn: For supporting internationalized DNS names (IDNA 2003), http://www.gnu.org/software/libidn/
Packit 549fdc
* libidn2: For supporting internationalized DNS names (IDNA 2008), https://www.gnu.org/software/libidn/#libidn2
Packit 549fdc
Packit 549fdc
To configure libnettle for installation and use by GnuTLS, a typical
Packit 549fdc
command sequence would be:
Packit 549fdc
Packit 549fdc
```
Packit 549fdc
    cd nettle-<version>
Packit 549fdc
    ./configure --prefix=/usr --disable-openssl --enable-shared
Packit 549fdc
    make
Packit 549fdc
    sudo make install
Packit 549fdc
```
Packit 549fdc
Packit 549fdc
For the Nettle project, --enable-shared will instruct automake and
Packit 549fdc
friends to build and install both the static archive (libnettle.a)
Packit 549fdc
and the shared object (libnettle.so).
Packit 549fdc
Packit 549fdc
In case you are compiling for an embedded system, you can disable
Packit 549fdc
unneeded features of GnuTLS.  In general, it is usually best not to
Packit 549fdc
disable anything (for future mailing list questions and possible bugs).
Packit 549fdc
Packit 549fdc
Depending on your installation, additional libraries, such as libtasn1
Packit 549fdc
and zlib, may be required.
Packit 549fdc
Packit 549fdc
Packit 549fdc
DOCUMENTATION
Packit 549fdc
=============
Packit 549fdc
Packit 549fdc
See the documentation in doc/ and online at
Packit 549fdc
http://www.gnutls.org/manual.
Packit 549fdc
Packit 549fdc
Packit 549fdc
EXAMPLES
Packit 549fdc
========
Packit 549fdc
Packit 549fdc
See the examples in doc/examples/ and online at 'How To Use GnuTLS in
Packit 549fdc
Applications' at http://www.gnutls.org/manual.
Packit 549fdc
Packit 549fdc
Packit 549fdc
SECURITY ADVISORIES
Packit 549fdc
===================
Packit 549fdc
Packit 549fdc
The project collects and publishes information on past security
Packit 549fdc
incidents and vulnerabilities.  Open information exchange, including
Packit 549fdc
information which is [sometimes] suppressed in non-open or non-free
Packit 549fdc
projects, is one of the goals of the GnuTLS project.  Please visit
Packit 549fdc
http://www.gnutls.org/security.html.
Packit 549fdc
Packit 549fdc
Packit 549fdc
MAILING LISTS
Packit 549fdc
=============
Packit 549fdc
Packit 549fdc
The GnuTLS project maintains mailing lists for users, developers, and
Packit 549fdc
commits.  Please see http://www.gnutls.org/lists.html.
Packit 549fdc
Packit 549fdc
Packit 549fdc
LICENSING
Packit 549fdc
=========
Packit 549fdc
Packit 549fdc
See the [LICENSE](LICENSE) file.
Packit 549fdc
Packit 549fdc
Packit 549fdc
BUGS
Packit 549fdc
====
Packit 549fdc
Packit 549fdc
Thorough testing is very important and expensive.  Often, the 
Packit 549fdc
developers do not have access to a particular piece of hardware or 
Packit 549fdc
configuration to reproduce a scenario.  Notifying the developers about a 
Packit 549fdc
possible bug will greatly help the project.  
Packit 549fdc
Packit 549fdc
If you believe you have found a bug, please report it to bugs@gnutls.org
Packit 549fdc
together with any applicable information. 
Packit 549fdc
Packit 549fdc
Applicable information would include why the issue is a GnuTLS bug (if
Packit 549fdc
not readily apparent), output from 'uname -a', the version of the library or
Packit 549fdc
tool being used, a stack trace if available ('bt full' if under gdb or
Packit 549fdc
valgrind output), and perhaps a network trace.  Vague queries or piecemeal 
Packit 549fdc
messages are difficult to act upon and don't help the development effort.
Packit 549fdc
Packit 549fdc
Additional information can be found at the project's manual.
Packit 549fdc
Packit 549fdc
Packit 549fdc
PATCHES
Packit 549fdc
=======
Packit 549fdc
Packit 549fdc
Patches are welcome and encouraged. Patches can be submitted through the 
Packit 549fdc
bug tracking system or the mailing list.  When submitting patches, please 
Packit 549fdc
be sure to use sources from the git repository, and preferably from the 
Packit 549fdc
master branch.  To create a patch for the project from a local git repository, 
Packit 549fdc
please use the following commands. 'gnutls' should be the local directory 
Packit 549fdc
of a previous git clone.
Packit 549fdc
Packit 549fdc
```
Packit 549fdc
    cd gnutls
Packit 549fdc
    git add the-file-you-modified.c another-file.c
Packit 549fdc
    git commit the-file-you-modified.c another-file.c
Packit 549fdc
    git format-patch
Packit 549fdc
```
Packit 549fdc
Packit 549fdc
For more information on use of Git, visit http://git-scm.com/
Packit 549fdc
Packit 549fdc
----------------------------------------------------------------------
Packit 549fdc
Copying and distribution of this file, with or without modification,
Packit 549fdc
are permitted in any medium without royalty provided the copyright
Packit 549fdc
notice and this notice are preserved.