summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-12 00:37:33 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-12 00:40:15 +0100
commit1dbe3a8db0a3e5a8e5f9b30e6f6a6bbfb699275b (patch)
tree1eb49e4166a7affad076771bd5a629c2be065356
parent5a717a95b33d72026085c2309a2079956586c098 (diff)
downloadguix-1dbe3a8db0a3e5a8e5f9b30e6f6a6bbfb699275b.tar.gz
build: GnuTLS is now a hard dependency.
Discussed as part of <https://bugs.gnu.org/25975>.

* configure.ac: Check for (gnutls) and error out if it's missing.
* doc/guix.texi (Requirements): Move GnuTLS from optional to required.
(Substitutes): Remove footnote about the need for GnuTLS.
-rw-r--r--configure.ac9
-rw-r--r--doc/guix.texi16
2 files changed, 13 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac
index 06b0618b43..e5daadb121 100644
--- a/configure.ac
+++ b/configure.ac
@@ -91,7 +91,14 @@ dnl Installation directory for .scm and .go files.
 guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
 AC_SUBST([guilemoduledir])
 
-dnl guile-json is used for the PyPI package importer
+dnl The GnuTLS bindings are necessary for substitutes over HTTPS and for 'guix
+dnl pull', among other things.
+GUILE_MODULE_AVAILABLE([have_gnutls], [(gnutls)])
+if test "x$have_gnutls" != "xyes"; then
+  AC_MSG_ERROR([The Guile bindings of GnuTLS are missing; please install them.])
+fi
+
+dnl Guile-JSON is used in various places.
 GUILE_MODULE_AVAILABLE([have_guile_json], [(json)])
 AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"])
 
diff --git a/doc/guix.texi b/doc/guix.texi
index a602c701cb..93d0b7a084 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -544,6 +544,10 @@ GNU Guix depends on the following packages:
 @itemize
 @item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.7 or later;
 @item @url{http://gnupg.org/, GNU libgcrypt};
+@item
+@uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings
+(@pxref{Guile Preparations, how to install the GnuTLS bindings for
+Guile,, gnutls-guile, GnuTLS-Guile});
 @item @url{http://www.gnu.org/software/make/, GNU Make}.
 @end itemize
 
@@ -551,15 +555,6 @@ The following dependencies are optional:
 
 @itemize
 @item
-Installing @uref{http://gnutls.org/, GnuTLS-Guile} will allow you to
-access @code{https} URLs for substitutes, which is highly recommended
-(@pxref{Substitutes}).  It also allows you to access HTTPS URLs with the
-@command{guix download} command (@pxref{Invoking guix download}), the
-@command{guix import pypi} command, and the @command{guix import cpan}
-command.  @xref{Guile Preparations, how to install the GnuTLS bindings
-for Guile,, gnutls-guile, GnuTLS-Guile}.
-
-@item
 Installing
 @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} will
 allow you to use the @command{guix import pypi} command (@pxref{Invoking
@@ -2003,8 +1998,7 @@ or to client tools such as @command{guix package}
 (@pxref{client-substitute-urls,, client @option{--substitute-urls}
 option}).
 
-Substitute URLs can be either HTTP or HTTPS@footnote{For HTTPS access,
-the Guile bindings of GnuTLS must be installed.  @xref{Requirements}.}
+Substitute URLs can be either HTTP or HTTPS.
 HTTPS is recommended because communications are encrypted; conversely,
 using HTTP makes all communications visible to an eavesdropper, who
 could use the information gathered to determine, for instance, whether