From 8e87aa04979dae66a1e45b54c0f92da07745e1e6 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Thu, 4 Oct 2018 17:26:57 +0200
Subject: gnu: hiawatha: Update to 10.8.3.

* gnu/packages/web.scm (hiawatha): Update to 10.8.3.
[source]: Also delete bundled copy of nghttp2.
[inputs]: Use mbedtls-for-hiawatha instead of vanilla mbedtls-apache.
* gnu/packages/tls.scm (mbedtls-for-hiawatha): New public variable.
---
 gnu/packages/tls.scm | 18 ++++++++++++++++++
 gnu/packages/web.scm | 15 ++++++++-------
 2 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index f92a36b6e2..715148c432 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -869,6 +869,24 @@ coding footprint.")
     (home-page "https://tls.mbed.org")
     (license license:asl2.0)))
 
+;; The Hiawatha Web server requires some specific features to be enabled.
+(define-public mbedtls-for-hiawatha
+  (hidden-package
+   (package
+     (inherit mbedtls-apache)
+     (arguments
+      (substitute-keyword-arguments
+          `(#:phases
+            (modify-phases %standard-phases
+              (add-after 'configure 'configure-extra-features
+                (lambda _
+                  (for-each (lambda (feature)
+                              (invoke "scripts/config.pl" "set" feature))
+                            (list "MBEDTLS_THREADING_C"
+                                  "MBEDTLS_THREADING_PTHREAD"))
+                  #t)))
+            ,@(package-arguments mbedtls-apache)))))))
+
 (define-public ghc-tls
   (package
     (name "ghc-tls")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 8e776258b3..401711928d 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -5173,7 +5173,7 @@ functions of Tidy.")
 (define-public hiawatha
   (package
     (name "hiawatha")
-    (version "10.7")
+    (version "10.8.3")
     (source
      (origin
        (method url-fetch)
@@ -5181,15 +5181,16 @@ functions of Tidy.")
                            "hiawatha-" version ".tar.gz"))
        (modules '((guix build utils)))
        (snippet '(begin
-                   ;; We use our packaged mbedtls, so delete the included copy.
-                   (delete-file-recursively "mbedtls")
+                   ;; We use packaged libraries, so delete the bundled copies.
+                   (for-each delete-file-recursively
+                             (list "nghttp2" "mbedtls"))
                    #t))
        (sha256
         (base32
-         "0x2zfc8kc6c7rl4gwymwmg13w1c60biv6c6c9fvzpnl59bc9jgin"))))
+         "0w7047pwijhsbvvv1qjynp7gvn0nil56w82f7ax0gabrg7ddzk6s"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f ; No tests included
+     `(#:tests? #f                      ; no tests included
        #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on")
                                (string-append "-DENABLE_TOMAHAWK=on")
                                (string-append "-DWEBROOT_DIR="
@@ -5212,8 +5213,8 @@ functions of Tidy.")
                (wrap-program (string-append sbin "/hiawatha")
                  `("PATH" ":" prefix (,mbed)))))))))
     (inputs
-     ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha"
-     `(("mbedtls-apache" ,mbedtls-apache) ;Hiawatha includes this version.
+     ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha".
+     `(("mbedtls-apache" ,mbedtls-for-hiawatha)
        ("zlib" ,zlib)
        ("libxslt" ,libxslt)
        ("libxml2" ,libxml2)))
-- 
cgit v1.2.3