From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: [PATCH] gnu: Add uwsgi. Date: Mon, 28 Mar 2016 16:22:14 +0200 Message-ID: <87wpomisx5.fsf@elephly.net> References: <1459168199-11389-1-git-send-email-iyzsong@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59831) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akY8c-0005oT-Go for guix-devel@gnu.org; Mon, 28 Mar 2016 10:27:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1akY8Y-0007Qo-9B for guix-devel@gnu.org; Mon, 28 Mar 2016 10:27:26 -0400 Received: from sender163-mail.zoho.com ([74.201.84.163]:24958) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akY8Y-0007Qg-1C for guix-devel@gnu.org; Mon, 28 Mar 2016 10:27:22 -0400 In-reply-to: <1459168199-11389-1-git-send-email-iyzsong@gmail.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: =?utf-8?B?5a6L5paH5q2m?= Cc: guix-devel@gnu.org 宋文武 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 > ;;; Copyright © 2015, 2016 Eric Bavier > ;;; Copyright © 2015 Eric Dvorsak > +;;; Copyright © 2016 Sou Bunnbu > ;;; > ;;; 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