guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] gnu: Add uwsgi.


From: Ricardo Wurmus
Subject: Re: [PATCH] gnu: Add uwsgi.
Date: Mon, 28 Mar 2016 16:22:14 +0200
User-agent: mu4e 0.9.13; emacs 24.5.1

宋文武 <address@hidden> writes:

> * gnu/packages/web.scm (uwsgi): New variable.
> ---
>  gnu/packages/web.scm | 73 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 73 insertions(+)
>
> diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
> index 516e623..53ab1a6 100644
> --- a/gnu/packages/web.scm
> +++ b/gnu/packages/web.scm
> @@ -7,6 +7,7 @@
>  ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <address@hidden>
>  ;;; Copyright © 2015, 2016 Eric Bavier <address@hidden>
>  ;;; Copyright © 2015 Eric Dvorsak <address@hidden>
> +;;; Copyright © 2016 Sou Bunnbu <address@hidden>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -3109,3 +3110,75 @@ callback or connection interfaces.")
>       "Gumbo is an implementation of the HTML5 parsing algorithm implemented 
> as
>  a pure C99 library.")
>      (license l:asl2.0)))
> +
> +(define-public uwsgi
> +  (package
> +    (name "uwsgi")
> +    (version "2.0.12")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://projects.unbit.it/downloads/uwsgi-";
> +                                  version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "02g46dnw5j1iw8fsq392bxbk8d21b9pdgb3ypcinv3b4jzdm2srh"))))
> +    (build-system gnu-build-system)
> +    (outputs '("out" "python"))
> +    (arguments
> +     '(;; XXX: The 'check' target runs cppcheck to do static code analysis.
> +       ;;      But there is no obvious way to run the real tests.
> +       #:tests? #f
> +       #:phases
> +       (modify-phases %standard-phases
> +         (replace 'configure
> +           ;; Configuration is done by writting an ini file.

Should be “writing” not “writting”.

> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out       (assoc-ref outputs "out"))
> +                    (bindir    (string-append out "/bin"))
> +                    (plugindir (string-append out "/lib/uwsgi")))
> +               ;; The build phase outputs files to these directories 
> directly.
> +               (mkdir-p bindir)
> +               (mkdir-p plugindir)
> +               ;; XXX: Enable other plugins.
> +               (call-with-output-file "buildconf/guix.ini"
> +                 (lambda (port)
> +                   (format port "[uwsgi]
> +yaml = libyaml
> +bin_name = ~a/uwsgi
> +plugin_dir = ~a
> +
> +inherit = base
> +plugins = cgi,python
> +embedded_plugins =
> +" bindir plugindir))))
> +             (setenv "PROFILE" "guix")
> +             #t))
> +         (replace 'install
> +           ;; Move plugins into their own output.
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out           (assoc-ref outputs "out"))
> +                    (plugindir     (string-append out "/lib/uwsgi"))
> +                    (python-plugin (string-append
> +                                    plugindir "/python_plugin.so")))
> +               (install-file python-plugin
> +                             (string-append
> +                              (assoc-ref outputs "python") "/lib/uwsgi"))
> +               (delete-file python-plugin)
> +               #t))))))

Is there any other reference to Python outside of this plugin?

> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("python" ,python-wrapper)))

Should Python by among the regular inputs when it’s used by the Python
plugin?

> +    (inputs
> +     `(("jansson" ,jansson)
> +       ("libxml2" ,libxml2)
> +       ("libyaml" ,libyaml)
> +       ("openssl" ,openssl)
> +       ("pcre" ,pcre)
> +       ("zlib" ,zlib)))
> +    (home-page "https://uwsgi-docs.readthedocs.org/";)
> +    (synopsis "Application container server")
> +    (description
> +     "uWSGI presents a complete stack for networked/clustered web 
> applications,
> +implementing message/object passing, caching, RPC and process management.
> +It uses the uwsgi protocol for all the networking/interprocess 
> communications.")
> +    (license l:gpl2+))) ; with linking exception

The rest looks good to me.  Thanks!

~~ Ricardo




reply via email to

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