diff mbox

[1/2] gnu: Add gunicorn and gunicorn-python2.

Message ID 1473936893-20306-2-git-send-email-h.goebel@crazy-compilers.com
State New
Headers show

Commit Message

Hartmut Goebel Sept. 15, 2016, 10:54 a.m. UTC
* gnu/packages/web.scm (gunicorn, gunicorn-python2): New variables.
---
 gnu/packages/web.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

Comments

Efraim Flashner Sept. 18, 2016, 9:05 p.m. UTC | #1
On Thu, Sep 15, 2016 at 12:54:52PM +0200, Hartmut Goebel wrote:
> * gnu/packages/web.scm (gunicorn, gunicorn-python2): New variables.
> ---
>  gnu/packages/web.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
> 
> diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
> index b9c201d..3841c6b 100644
> --- a/gnu/packages/web.scm
> +++ b/gnu/packages/web.scm
> @@ -14,6 +14,7 @@
>  ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
>  ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
>  ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
> +;;; Copyright © 2016 Hartmut Goebel <g.goebel@crazy-compilers.com>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -41,6 +42,7 @@
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system glib-or-gtk)
>    #:use-module (guix build-system perl)
> +  #:use-module (guix build-system python)
>    #:use-module (guix build-system cmake)
>    #:use-module (guix build-system r)
>    #:use-module (guix build-system trivial)
> @@ -3633,3 +3635,56 @@ provides a unix command line interface to a variety of popular www search engine
>  and similar services.")
>      (home-page "https://surfraw.alioth.debian.org/")
>      (license l:public-domain)))
> +
> +(define-public gunicorn
> +  (package
> +    (name "gunicorn")
> +    (version "19.6.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (pypi-uri "gunicorn" version))
> +       (sha256
> +        (base32
> +         "065n5z91607q4l8wncqkz297cdcb60cz8wnyxy88wk4as4b6jgw1"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (add-before 'check 'remove-requirements
> +           ; setup.py reads test-requirements from a file which is
> +           ; pinning to other versions then guix provides. This also
> +           ; enforces optional packages like pytst-cov. So clean the
> +           ; list.
> +           (lambda _
> +             (substitute* "requirements_test.txt"
> +               ((".*") "")))))))

This should return #t

> +    (native-inputs
> +     `(("python-setuptools" ,python-setuptools)
> +       ; optional test-requirement pytest-cov used only when running
> +       ; setup.y with `test --cov`
               ^^^
            setup.py

> +       ("python-pytest" ,python-pytest)))
> +    (home-page "http://gunicorn.org/")
> +    (synopsis "Python WSGI HTTP Server for UNIX")
> +    (description "Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP
> +Server for UNIX.  It’s a pre-fork worker model ported from Ruby’s
> +Unicorn project.  The Gunicorn server is broadly compatible with
> +various web frameworks, simply implemented, light on server resources,
> +and fairly speedy.")
> +  (license l:expat)
> +  (properties `((python2-variant . ,(delay gunicorn-python2))))))
> +
> +(define-public gunicorn-python2
> +  (let ((base (package-with-python2
> +               (strip-python2-variant gunicorn))))
> +    ; Note: byte-compiling gunicorn/workers/_gaiohttp.py with Python 2 raises
> +    ; a syntax error, since this is a Python-3-only module. This does not
> +    ; matter since that module is not imported in Python 2 anyway.
> +    (package
> +      (inherit base)
> +      (name "gunicorn-python2")
> +      (description (string-append (package-description base) "
> +
> +Use this package if your application is implemented in Python 2."))
> +      (native-inputs `(("python2-mock" ,python2-mock)
> +                       ,@(package-native-inputs base))))))
> -- 
> 2.7.4
> 
>
diff mbox

Patch

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b9c201d..3841c6b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -14,6 +14,7 @@ 
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 Hartmut Goebel <g.goebel@crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,6 +42,7 @@ 
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system r)
   #:use-module (guix build-system trivial)
@@ -3633,3 +3635,56 @@  provides a unix command line interface to a variety of popular www search engine
 and similar services.")
     (home-page "https://surfraw.alioth.debian.org/")
     (license l:public-domain)))
+
+(define-public gunicorn
+  (package
+    (name "gunicorn")
+    (version "19.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "gunicorn" version))
+       (sha256
+        (base32
+         "065n5z91607q4l8wncqkz297cdcb60cz8wnyxy88wk4as4b6jgw1"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'remove-requirements
+           ; setup.py reads test-requirements from a file which is
+           ; pinning to other versions then guix provides. This also
+           ; enforces optional packages like pytst-cov. So clean the
+           ; list.
+           (lambda _
+             (substitute* "requirements_test.txt"
+               ((".*") "")))))))
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)
+       ; optional test-requirement pytest-cov used only when running
+       ; setup.y with `test --cov`
+       ("python-pytest" ,python-pytest)))
+    (home-page "http://gunicorn.org/")
+    (synopsis "Python WSGI HTTP Server for UNIX")
+    (description "Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP
+Server for UNIX.  It’s a pre-fork worker model ported from Ruby’s
+Unicorn project.  The Gunicorn server is broadly compatible with
+various web frameworks, simply implemented, light on server resources,
+and fairly speedy.")
+  (license l:expat)
+  (properties `((python2-variant . ,(delay gunicorn-python2))))))
+
+(define-public gunicorn-python2
+  (let ((base (package-with-python2
+               (strip-python2-variant gunicorn))))
+    ; Note: byte-compiling gunicorn/workers/_gaiohttp.py with Python 2 raises
+    ; a syntax error, since this is a Python-3-only module. This does not
+    ; matter since that module is not imported in Python 2 anyway.
+    (package
+      (inherit base)
+      (name "gunicorn-python2")
+      (description (string-append (package-description base) "
+
+Use this package if your application is implemented in Python 2."))
+      (native-inputs `(("python2-mock" ,python2-mock)
+                       ,@(package-native-inputs base))))))