1
0
Fork 0
mirror of https://gitlab.com/gnutls/gnutls.git synced 2025-12-05 22:47:08 +00:00
GnuTLS is a secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them. It provides a simple C language API to access the secure communications protocols. https://www.gnutls.org
Find a file
Daiki Ueno f8037ca321 Merge branch 'wip/dueno/release-3.8.11-post' into 'master'
Post-release administrivia

See merge request gnutls/gnutls!2047
2025-12-03 08:59:47 +09:00
.github/workflows .github/workflows: use macos-latest runner 2024-07-30 16:09:58 +09:00
.gitlab/issue_templates Updated issue templates [ci skip] 2016-10-31 14:41:10 +01:00
cligen@59911854af build: update cligen submodule 2024-07-26 11:26:16 +09:00
devel devel/release-steps.md: update CI job name to the latest 2025-12-01 18:16:06 +09:00
doc audit: wrap crau interface and expose it partly as public API 2025-10-14 14:58:31 +09:00
extra build: re-indent code 2023-04-24 12:45:46 +09:00
fuzz fuzz/gnutls_srp_server_fuzzer.c: Add check for gnutls_malloc() 2025-07-28 09:51:32 +09:00
gl/override gl: add workaround for mingw32 build 2022-11-22 13:36:23 +09:00
gnulib@05c63bc908 gnulib: update gnulib submodule 2025-01-14 19:51:44 +09:00
lib Merge branch 'master' into 'master' 2025-11-25 21:37:47 +09:00
libdane build: don't redefine AM_CPPFLAGS in libdane/Makefile.am 2025-02-07 14:21:29 +09:00
m4 Release 3.8.11 2025-11-19 20:47:00 +09:00
po po: ignore new files introduced by gettext 2025-10-09 09:11:06 +09:00
src build: pacify GCC analyzer false-positive in src/ocsptool.c 2025-10-31 15:17:23 +09:00
tests Add missing copyright/license headers 2025-11-24 20:42:49 +01:00
.clang-format build: switch to using clang-format instead of GNU indent 2023-04-24 12:35:45 +09:00
.dir-locals.el .dir-locals.el: disable indent-tabs-mode in js-mode 2019-02-14 13:23:09 +01:00
.gitignore pkcs11: avoid stack overwrite when initializing a token 2025-11-19 20:47:00 +09:00
.gitlab-ci.yml .gitlab-ci.yml: move i686 to a separate image 2025-11-25 15:27:28 +01:00
.gitmodules .gitmodules: revert to use full URLs for submodules 2023-02-23 10:41:41 +09:00
.mailmap .mailmap: update 2021-05-29 07:16:27 +02:00
.packit.yaml Drop guile bindings. See <https://gitlab.com/gnutls/guile/>. 2022-10-26 13:03:35 +02:00
.triage-policies.yml .triage-policies.yml: updated to work with latest gitlab-triage [ci skip] 2019-12-04 22:27:26 +01:00
.x-sc_error_message_period src: generate option handling code from JSON 2022-01-14 12:49:03 +01:00
.x-sc_error_message_uppercase src: generate option handling code from JSON 2022-01-14 12:49:03 +01:00
.x-sc_makefile_at_at_check build: hide maintainer tool invocation behind AM_V_GEN 2022-01-16 16:24:34 +01:00
.x-sc_space_tab tests: check algorithms for generating PKCS#12 file 2022-01-11 16:35:03 +01:00
bootstrap Reduce sensitive language 2022-09-20 17:48:54 +02:00
bootstrap.conf gnulib: stop using "hash" module 2025-04-22 15:47:10 +09:00
cfg.mk build: bundle crypto-auditing helper library as copylib 2025-10-06 17:26:29 +09:00
configure.ac Release 3.8.11 2025-11-19 20:47:00 +09:00
CONTRIBUTING.md CONTRIBUTING.md: Fix file name in reviewer checklist 2023-10-18 12:53:39 +02:00
COPYING maint: consolidate licensing information to top-level directory 2025-01-27 17:58:02 +09:00
COPYING.LESSERv2 maint: consolidate licensing information to top-level directory 2025-01-27 17:58:02 +09:00
INSTALL.md doc: Fix several minor issues in INSTALL.md 2022-12-27 19:24:01 +01:00
Makefile.am Makefile.am: Hint at libdane requirement for distcheck target. 2025-07-28 13:28:25 +09:00
NEWS Release 3.8.11 2025-11-19 20:47:00 +09:00
README.md maint: consolidate licensing information to top-level directory 2025-01-27 17:58:02 +09:00
RELEASES.md RELEASES.md: move the release steps to devel/ [ci skip] 2020-06-07 15:48:42 +02:00
SECURITY.md doc: assorted typo fixes 2020-08-12 08:14:21 +02:00
THANKS updated thanks file 2014-06-18 15:11:28 +02:00

CII Best Practices

Branch CI system Status Test suite coverage Fuzzer coverage
Master/3.8.x Gitlab build status coverage report Fuzzer coverage report
Master/3.8.x Github Actions build status N/A N/A
3.7.x Gitlab build status N/A N/A
3.6.x Gitlab build status N/A N/A

GnuTLS -- Information for developers

GnuTLS implements the TLS/SSL (Transport Layer Security aka Secure Sockets Layer) protocol. Additional information can be found at www.gnutls.org.

This file contains instructions for developers and advanced users that want to build from version controlled sources. See INSTALL.md for building released versions.

We require several tools to check out and build the software, including:

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 dash git-core autoconf libtool gettext autopoint
apt-get install -y automake python3 nettle-dev libp11-kit-dev libtspi-dev libunistring-dev
apt-get install -y libtasn1-bin libtasn1-6-dev libidn2-0-dev gawk gperf
apt-get install -y libtss2-dev libunbound-dev dns-root-data bison gtk-doc-tools
apt-get install -y texinfo texlive texlive-plain-generic texlive-extra-utils

NOTE: Some software versions might not be available in older releases, e.g. nettle-dev. Available backport repos, APT-Pinning or source code compiling can be used to install these versions (and dependencies) from a newer release.

Fedora/RHEL:

yum install -y dash git autoconf libtool gettext-devel automake patch
yum install -y nettle-devel p11-kit-devel libunistring-devel
yum install -y tpm2-tss-devel trousers-devel libtasn1-devel libidn2-devel gawk gperf
yum install -y libtasn1-tools unbound-devel bison gtk-doc texinfo texlive

Sometimes, you may need to install more recent versions of Automake, Nettle, and P11-kit, 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 mbedtls.

Debian/Ubuntu:

apt-get install -y valgrind nodejs softhsm2 faketime lcov libssl-dev libcmocka-dev expect libev-dev
apt-get install -y dieharder openssl abigail-tools socat net-tools ppp util-linux

NOTE: libubsan0 and libasan1 are required on older versions of Ubuntu <= 16.04. This packages must be manually added on these versions:

apt-get install -y v libubsan0 libasan1

Fedora/RHEL:

yum install -y valgrind libasan libasan-static libubsan nodejs softhsm faketime lcov openssl-devel expect libev-devel
yum install -y dieharder mbedtls-utils openssl libabigail libcmocka-devel socat util-linux

To download the version controlled sources:

$ git clone https://gitlab.com/gnutls/gnutls.git
$ cd gnutls

The next step is to bootstrap and ./configure:

$ ./bootstrap
$ ./configure

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 --disable-non-suiteb-curves --disable-doc --without-p11-kit
mingw32-make
mingw32-make check

Continuous Integration (CI)

We utilize two continuous integration systems, the gitlab-ci and travis. Gitlab-CI is used to test most of the Linux systems (see .gitlab-ci.yml), and is split in two phases, build image creation and compilation/test. The build image creation is done at the gnutls/build-images subproject and uploads the image at the gitlab.com container registry. The compilation/test phase is on every commit to gnutls project.

The Travis based CI, is used to test compilation on MacOSX based systems.

Licensing

The GnuTLS distribution consists of the main libraries (libgnutls and libdane, located in the lib/ and libdane/ directories), gnutls-openssl extra library (in the extra/ directory), applications (in the src/ directory), tests (in the tests/ directory) and documentation.

Since GnuTLS version 3.1.10, the main libraries are released under the GNU Lesser General Public License version 2.1 or later (LGPLv2+, see COPYING.LESSERv2 for the license terms), while the others are under the GNU General Public License version 3 or later (GPLv3+, see COPYING for the license terms), unless otherwise specified in the indivual source files.

The documentation in the doc/ directory is under the GNU Free Documentation License version 1.3 or later (GFDLv1.3+).

Note, however, that the nettle and the gmp libraries which are GnuTLS dependencies, are distributed under a LGPLv3+ or GPLv2+ dual license. As such binaries linking to them need to adhere to either LGPLv3+ or the GPLv2+ license.

For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval.

Contributing

See the contributing document.

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.