guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnu: gnutls: Add gnutls-3.5.5 and gnutls-with-guile-next.


From: Christopher Allan Webber
Subject: gnu: gnutls: Add gnutls-3.5.5 and gnutls-with-guile-next.
Date: Tue, 10 Jan 2017 13:32:36 -0600
User-agent: mu4e 0.9.18; emacs 25.1.1

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 <address@hidden>
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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]