diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index c73e22f1d460d18a6d799f48f9b26675ac108db2..9258add5094e1d5b8d07b85d99a57accb73facec 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -82,6 +82,7 @@ class Cmake(Package):
     depends_on('openssl', when='+openssl')
     depends_on('openssl@:1.0.99', when='@:3.6.9+openssl')
     depends_on('ncurses',        when='+ncurses')
+    depends_on('gnutls')
 
     # Cannot build with Intel, should be fixed in 3.6.2
     # https://gitlab.kitware.com/cmake/cmake/issues/16226
diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py
index d5013d3f8c55ea8d7016087ade950ed1ed352c1b..f73b0b1daf4e0dc9eeaea3df01a84fbe271845de 100644
--- a/var/spack/repos/builtin/packages/gnutls/package.py
+++ b/var/spack/repos/builtin/packages/gnutls/package.py
@@ -15,8 +15,9 @@ class Gnutls(AutotoolsPackage):
     and efficient with focus on security and interoperability."""
 
     homepage = "http://www.gnutls.org"
-    url      = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.13.tar.xz"
+    url      = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz"
 
+    version('3.5.19', sha256='1936eb64f03aaefd6eb16cef0567457777618573826b94d03376bb6a4afadc44')
     version('3.5.13', '4fd41ad86572933c2379b4cc321a0959')
     version('3.5.10', '336c03a71ba90184ffd0388075dde504')
     version('3.5.9',  '0ab25eb6a1509345dd085bc21a387951')
@@ -27,6 +28,7 @@ class Gnutls(AutotoolsPackage):
     # Note that version 3.3.9 of gnutls doesn't support nettle 3.0.
     depends_on('nettle@:2.9', when='@3.3.9')
     depends_on('nettle', when='@3.5:')
+    depends_on('libidn2@:2.0.99', when='@:3.5.99')
     depends_on('zlib', when='+zlib')
     depends_on('gettext')
 
diff --git a/var/spack/repos/builtin/packages/libidn2/package.py b/var/spack/repos/builtin/packages/libidn2/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6bf2132977b71b4f01e77f61a4674f6b3648d83
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libidn2/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Libidn2(AutotoolsPackage):
+    """Libidn2 is a free software implementation of IDNA2008, Punycode and
+    TR46. Its purpose is to encode and decode internationalized domain
+    names."""
+
+    homepage = "https://gitlab.com/libidn/libidn2"
+    url      = "https://ftp.gnu.org/gnu/libidn/libidn2-2.0.5.tar.gz"
+
+    version('2.1.1a', sha256='57666bcf6ecf54230d7bac95c392379561954b57a673903aed4d3336b3048b72')
+    version('2.1.1',  sha256='95416080329298a13269e13175041b530cec3d98b54cafae9424b8dfd22078b1')
+    version('2.1.0',  sha256='032398dbaa9537af43f51a8d94e967e3718848547b1b2a4eb3138b20cad11d32')
+    version('2.0.5',  sha256='53f69170886f1fa6fa5b332439c7a77a7d22626a82ef17e2c1224858bb4ca2b8')
+
+    depends_on('libunistring')
+
+    # in-source build fails
+    build_directory = 'spack-build'