From 359d1b0a7dcb7320ff28bbabe792e0d8e6d399ad Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 10 Dec 2014 17:39:48 -0500 Subject: [PATCH] gnu: Add nginx. * gnu/packages/web.scm (nginx): New variable. --- gnu/packages/web.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 0731d0b..c64f874 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2013 Aljosha Papsch ;;; Copyright © 2014 Ludovic Courtès +;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages web) + #:use-module (ice-9 match) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix packages) #:use-module (guix download) @@ -26,6 +28,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system cmake) + #:use-module (gnu packages linux) #:use-module (gnu packages apr) #:use-module (gnu packages asciidoc) #:use-module (gnu packages docbook) @@ -77,6 +80,63 @@ and its related documentation.") (license l:asl2.0) (home-page "https://httpd.apache.org/"))) +(define-public nginx + (package + (name "nginx") + (version "1.6.2") + (source (origin + (method url-fetch) + (uri (string-append "http://nginx.org/download/nginx-" + version ".tar.gz")) + (sha256 + (base32 + "060s77qxhkn02fjkcndsr0xppj2bppjzkj0gn84svrykb4lqqq5m")))) + (build-system gnu-build-system) + (inputs `(("pcre" ,pcre) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (arguments + `(#:tests? #f ; no test target + #:phases + (alist-cons-before + 'configure 'patch-/bin/sh + (lambda _ + (substitute* "auto/feature" + (("/bin/sh") (which "bash")))) + (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((flags + (list (string-append "--prefix=" (assoc-ref outputs "out")) + "--with-http_ssl_module" + "--with-pcre-jit" + ;; Even when not cross-building, we pass the + ;; --crossbuild option to avoid customizing for the + ;; kernel version on the build machine. + ,(let ((system "Linux") ; uname -s + ;; uname -r + (release (package-version linux-libre-headers)) + ;; uname -m + (machine (match (or (%current-target-system) + (%current-system)) + ("x86_64-linux" "x86_64") + ("i686-linux" "i686") + ("mips64el-linux" "mips64")))) + (string-append "--crossbuild=" + system ":" release ":" machine))))) + (setenv "CC" "gcc") + (format #t "environment variable `CC' set to `gcc'~%") + (format #t "configure flags: ~s~%" flags) + (zero? (apply system* "./configure" flags)))) + %standard-phases)))) + (home-page "http://nginx.org") + (synopsis "HTTP and reverse proxy server") + (description + "Nginx (\"engine X\") is a high-performance web and reverse proxy server +created by Igor Sysoev. It can be used both as a standalone web server +and as a proxy to reduce the load on back-end HTTP or mail servers.") + (license (list l:bsd-2 l:bsd-3 l:bsd-4 l:expat)))) + (define-public json-c (package (name "json-c") -- 2.1.2