diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-05-17 09:16:32 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-05-17 09:22:25 +0200 |
commit | a26b5af122e223450b38b7836fabc2f109613df0 (patch) | |
tree | d9caabc4b9e4079c093ae187d7aa8cb91171e304 /README.md | |
parent | 52d06f791f1f67957f8aa699510b84ba2fee0d54 (diff) | |
download | gnutls-a26b5af122e223450b38b7836fabc2f109613df0.tar.gz |
doc: updated README files
This makes the names a bit more reasonable, drops the very generic
INSTALL file, and also allows the github repository to print the
correct README file.
README -> INSTALL.md
README-alpha.md -> README.md
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000000..4c45d6790e --- /dev/null +++ b/README.md @@ -0,0 +1,155 @@ +Master [![build status](https://gitlab.com/gnutls/gnutls/badges/master/build.svg)](https://gitlab.com/gnutls/gnutls/commits/master) + 3.4.x [![build status](https://gitlab.com/gnutls/gnutls/badges/gnutls_3_4_x/build.svg)](https://gitlab.com/gnutls/gnutls/commits/gnutls_3_4_x) + 3.3.x [![build status](https://gitlab.com/gnutls/gnutls/badges/gnutls_3_3_x/build.svg)](https://gitlab.com/gnutls/gnutls/commits/gnutls_3_3_x) + +# GnuTLS -- Information for developers + +This file contains instructions for developers and advanced users that +want to build from version controlled sources. + +We require several tools to check out and build the software, including: + +* [Make](http://www.gnu.org/software/make/) +* [Automake](http://www.gnu.org/software/automake/) (use 1.11.3 or later) +* [Autoconf](http://www.gnu.org/software/autoconf/) +* [Autogen](http://www.gnu.org/software/autogen/) (use 5.16 or later) +* [Libtool](http://www.gnu.org/software/libtool/) +* [Gettext](http://www.gnu.org/software/gettext/) +* [Texinfo](http://www.gnu.org/software/texinfo/) +* [Tar](http://www.gnu.org/software/tar/) +* [Gzip](http://www.gnu.org/software/gzip/) +* [Texlive & epsf](http://www.tug.org/texlive/) (for PDF manual) +* [GTK-DOC](http://www.gtk.org/gtk-doc/) (for API manual) +* [Git](http://git-scm.com/) +* [Perl](http://www.cpan.org/) +* [Nettle](http://www.lysator.liu.se/~nisse/nettle/) +* [Guile](http://www.gnu.org/software/guile/) +* [p11-kit](http://p11-glue.freedesktop.org/p11-kit.html) +* [gperf](http://www.gnu.org/software/gperf/) +* [libtasn1](https://www.gnu.org/software/libtasn1/) (optional) +* [Libidn](http://www.gnu.org/software/libidn/) (optional, for internationalization of DNS) +* [AWK](http://www.gnu.org/software/awk/) (for make dist, pmccabe2html) +* [git2cl](http://savannah.nongnu.org/projects/git2cl/) (for make dist, ChangeLog) +* [bison](http://www.gnu.org/software/bison) (for datetime parser in certtool) +* [libunbound](https://unbound.net/) (for DANE support) +* [abi-compliance-checker](http://ispras.linuxbase.org/index.php/ABI_compliance_checker) (for make dist) + +The required software is typically distributed with your operating +system, and the instructions for installing them differ. Here are +some hints: + +Debian/Ubuntu: +``` +apt-get install -y git-core autoconf libtool gettext autopoint +apt-get install -y automake autogen nettle-dev libp11-kit-dev libtspi-dev +apt-get install -y guile-2.0-dev libtasn1-6-dev libidn11-dev gawk gperf git2cl +apt-get install -y libunbound-dev dns-root-data bison help2man gtk-doc-tools +apt-get install -y texinfo texlive texlive-generic-recommended texlive-extra-utils +``` + +Fedora/RHEL: +``` +yum install -y git autoconf libtool gettext-devel automake autogen +yum install -y nettle-devel p11-kit-devel autogen-libopts-devel +yum install -y trousers-devel guile-devel libtasn1-devel libidn-devel gawk gperf git2cl +yum install -y unbound-devel bison help2man gtk-doc texinfo texlive +``` + +Sometimes, you may need to install more recent versions of Automake, +Nettle, P11-kit and Autogen, which you will need to build from sources. + +Dependencies that are used during make check or make dist are listed below. +Moreover, for basic interoperability testing you may want to install openssl +and polarssl. + +* [Valgrind](http://valgrind.org/) (optional) +* [Libasan](https://gcc.gnu.org//) (optional) +* [datefudge](http://packages.debian.org/datefudge) (optional) +* [nodejs](http://nodejs.org/) (needed for certain test cases) +* [softhsm](http://www.opendnssec.org/softhsm/) (for testing smart card support) +* [dieharder](http://www.phy.duke.edu/~rgb/General/dieharder.php) (for testing PRNG) +* [lcov](http://linux-test-project.github.io/) (for code coverage) + +Debian/Ubuntu: +``` +apt-get install -y valgrind libasan1 nodejs softhsm datefudge lcov +apt-get install -y dieharder libpolarssl-runtime openssl abi-compliance-checker +``` + +Fedora/RHEL: +``` +yum install -y valgrind libasan nodejs softhsm datefudge lcov +yum install -y dieharder mbedtls-utils openssl abi-compliance-checker +``` + + +To download the version controlled sources: + +``` +$ git clone https://gitlab.com/gnutls/gnutls.git +$ cd gnutls +$ git submodule update --init +``` + +The next step is to run autoreconf (etc) and then ./configure: + +``` +$ make bootstrap +``` + +When built this way, some developer defaults will be enabled. See +cfg.mk for details. + +Then build the project normally, and run the test suite. + +``` +$ make +$ make check +``` + +To test the code coverage of the test suite use the following: +``` +$ ./configure --enable-code-coverage +$ make && make check && make code-coverage-capture +``` + +Individual tests that may require additional hardware (e.g., smart cards) +are: +``` +$ sh tests/suite/testpkcs11 +``` + +# Building for windows + +It is recommended to cross compile using Fedora and the following +dependencies: + +``` +yum install -y wine mingw32-nettle mingw32-libtasn1 mingw32-gcc +``` + +and build as: + +``` +mingw32-configure --enable-local-libopts --disable-non-suiteb-curves --disable-doc --without-p11-kit +mingw32-make +mingw32-make check +``` + +# Contributing + +If you wish to contribute, you may read more about our [coding style](CONTRIBUTING.md). +Note that when contributing code that is not assigned to FSF, you will +need to assert that the contribution is in accordance to the "Developer's +Certificate of Origin" as found in the file [DCO.txt](doc/DCO.txt). +That can be done by sending a mail with your real name to the gnutls-devel +mailing list. Then just make sure that your contributions (patches), +contain a "Signed-off-by" line, with your name and e-mail address. +To automate the process use "git am -s" to produce patches. + +Happy hacking! + +---------------------------------------------------------------------- +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. |