Hello! I was talking in #guile and realized that even though guile-next now includes glorious https support via gnutls, few have tried it or know how to use it.
It turns out you need a specially packaged version of gnutls! Or, specially packaged until `guile-next' becomes just `guile'. Here's a patch that will give you that package. You can give it a shot like so: $ guix environment --ad-hoc guile-next gnutls-with-guile-next --pure $ guile GNU Guile 2.1.5 Copyright (C) 1995-2016 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> (use-modules (web client) (web uri)) scheme@(guile-user)> (http-get (string->uri "https://fsf.org")) $1 = #<<response> a long response here> $2 = "the body, also long" Have fun trying it with https://slashdot.org/ or whatever you feel like. (Unless that thing is https://gnu.org/, which doesn't work, but everything else seems to. Why is that?) Have fun hacking with https support, - Chris
>From e31e3e9784a978628655fcd7a1f3527e88d475ec Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber <cweb...@dustycloud.org> Date: Tue, 10 Jan 2017 13:25:26 -0600 Subject: [PATCH] gnu: gnutls: Add gnutls-3.5.5 and gnutls-with-guile-next. * gnu/packages/tls.scm (gnutls-3.5.5, gnutls-with-guile-next): New variables. --- gnu/packages/tls.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index e577421fa..4d9d2135f 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -211,6 +211,40 @@ required structures.") (properties '((ftp-server . "ftp.gnutls.org") (ftp-directory . "/gcrypt/gnutls"))))) +(define-public gnutls-3.5.5 + (package + (inherit gnutls) + (source + (let ((version "3.5.5")) + (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/gnutls/v" + (version-major+minor version) + "/gnutls-" version ".tar.xz")) + (sha256 + (base32 + "0ag5q3dfxzv0dmqy7q0a8y74yc3m5yzvjrp324l6vqafh3klz6c6"))))))) + +(define-public gnutls-with-guile-next + (package + (inherit gnutls-3.5.5) ; 3.5.5 introduces guile 2.1 / 2.2 support + (name "gnutls-with-guile-next") + (build-system gnu-build-system) + ;; Unfortunately we're inheriting this whole thing just to + (arguments + (substitute-keyword-arguments (package-arguments gnutls) + ;; change the guile-site-dir to 2.2 + ((#:configure-flags configure-flags) + '(list (string-append "--with-guile-site-dir=" + (assoc-ref %outputs "out") + "/share/guile/site/2.2") + ;; See the gnutls definition for explaination of these. + "--with-default-trust-store-dir=/etc/ssl/certs" + "--without-p11-kit")))) + (inputs + `(("guile" ,guile-next) ; we want guile-next + ("perl" ,perl))))) + (define-public openssl (package (name "openssl") -- 2.11.0