From: ng0 <n...@libertad.pw> * gnu/packages/web.scm (hiawatha): New variable. --- gnu/packages/web.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 67b9797bb..48f1f867d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2016 Rene Saavedra <ren...@openmailbox.org> ;;; Copyright © 2016 Ben Woodcroft <donttrust...@gmail.com> ;;; Copyright © 2016 Clément Lassieur <clem...@lassieur.org> -;;; Copyright © 2016 ng0 <n...@we.make.ritual.n0.is> +;;; Copyright © 2016, 2017 ng0 <contact....@cryptolab.net> ;;; Copyright © 2016 Arun Isaac <arunis...@systemreboot.net> ;;; Copyright © 2016 Tobias Geerinckx-Rice <m...@tobias.gr> ;;; Copyright © 2016 Bake Timmons <b3timm...@speedymail.org> @@ -3995,3 +3995,58 @@ programs' code. Its architecture is optimized for security, portability, and scalability (including load-balancing), making it suitable for large deployments.") (license l:gpl2+))) + +(define-public hiawatha + (package + (name "hiawatha") + (version "10.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.hiawatha-webserver.org/files/" + "hiawatha-" version ".tar.gz")) + (modules '((guix build utils))) + (snippet + ;; We use our packaged mbedtls, so delete the included copy. + '(delete-file-recursively "mbedtls")) + (sha256 + (base32 + "0m2llzm72s29c32abnj03532m85fawvi8ybjpx6s3mgvx2yvq3p4")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No tests included + #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on") + (string-append "-DENABLE_TOMAHAWK=on") + (string-append "-DWEBROOT_DIR=" + (assoc-ref %outputs "out") + "/share/hiawatha/html")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-empty-dirs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + ;; The directories in "var" are empty, remove them. + (delete-file-recursively (string-append out "/var")) + #t))) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure 'hiawatha' finds 'mbedtls'. + (let* ((out (assoc-ref outputs "out")) + (sbin (string-append out "/sbin")) + (mbed (assoc-ref inputs "mbedtls-apache"))) + (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. + ("zlib" ,zlib) + ("libxslt" ,libxslt) + ("libxml2" ,libxml2))) + (home-page "https://www.hiawatha-webserver.org") + (synopsis "Webserver with focus on security") + (description + "Hiawatha has been written with security in mind. This resulted in a +highly secure webserver in both code and features. Hiawatha can stop SQL +injections, XSS and CSRF attacks and exploit attempts. Via a specially +crafted monitoring tool, you can keep track of all your webservers.") + (license l:gpl2))) -- 2.11.0