From 9817af0d881bf3f3a86d0cb09b86fe6e47aa5fd1 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Sat, 9 Feb 2019 10:52:29 +0100 Subject: bootstrap: refuse to bootstrap if any dependencies bring gnulib's network stack If gnulib's network stack is brought (due to a dependency) in the library it will make the library unusable to non-gnulib using applications. This prevents windows applications for example to use gnutls, and so on. Even more it is quite hard to catch that issue because our testsuite uses gnulib as well. Instead we try to catch the these modules at import time. Signed-off-by: Nikos Mavrogiannopoulos --- bootstrap.conf | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'bootstrap.conf') diff --git a/bootstrap.conf b/bootstrap.conf index 31f054bc0e..f03f637ff7 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -24,7 +24,7 @@ use_libtool=1 checkout_only_file= local_gl_dir=gl/override/ required_submodules="tests/suite/tls-fuzzer/python-ecdsa tests/suite/tls-fuzzer/tlsfuzzer tests/suite/tls-fuzzer/tlslite-ng" - +GNULIB_SRCDIR="${GNULIB_SRCDIR:-./gnulib/}" # Reproduce by: gnulib-tool --import --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gl/tests --aux-dir=build-aux --with-tests --avoid=alignof-tests --avoid=lock-tests --avoid=lseek-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files alloca byteswap c-ctype extensions func gendocs getline gettext-h gettimeofday hash-pjw-bare havelib intprops lib-msvc-compat lib-symbol-versions maintainer-makefile manywarnings memmem-simple minmax netdb netinet_in pmccabe2html read-file secure_getenv snprintf stdint strcase strndup strtok_r strverscmp sys_socket sys_stat time_r unistd vasprintf vsnprintf warnings @@ -74,6 +74,16 @@ for mod in $required_submodules;do git submodule update --init $git_options $mod done + +deps=$(${GNULIB_SRCDIR}/gnulib-tool --extract-recursive-dependencies ${gnulib_modules}) +deps="echo -n ${deps} ${gnulib_modules}|sort -u" +case ${deps} in + *select*|*poll*|*sockets*|*recv*|*send*) + echo "******************************************************************" + die "the library cannot include the gnulib sockets; see CONTRIBUTION.md" + ;; +esac + bootstrap_post_import_hook () { # we re-use malloc-posix from the original gnulib -- cgit v1.2.1