]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
bootstrap: refuse to bootstrap if any dependencies bring gnulib's network stack
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 9 Feb 2019 09:52:29 +0000 (10:52 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 9 Feb 2019 09:54:20 +0000 (10:54 +0100)
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 <nmav@gnutls.org>
bootstrap.conf

index 31f054bc0e55abf4ad0efe030ff3a26117d96148..f03f637ff79577d6dda2def0cf998ba55a1f59dc 100644 (file)
@@ -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