diff options
-rw-r--r-- | network/uwsgi/README | 23 | ||||
-rw-r--r-- | network/uwsgi/slack-desc | 12 | ||||
-rw-r--r-- | network/uwsgi/uwsgi.SlackBuild | 60 | ||||
-rw-r--r-- | network/uwsgi/uwsgi.info | 6 |
4 files changed, 78 insertions, 23 deletions
diff --git a/network/uwsgi/README b/network/uwsgi/README index a26d9d15ce3e..d65adf3a690f 100644 --- a/network/uwsgi/README +++ b/network/uwsgi/README @@ -1,12 +1,15 @@ -uWSGI is a fast (pure C), self-healing, developer-friendly WSGI server, -aimed for professional Python webapp deployment and development. Over -time it has evolved in a complete stack for networked/clustered Python -applications, implementing message/object passing, RPC and process -management. It uses the uwsgi (all lowercase) protocol for all the -networking/interprocess communications. +uWSGI is a fast, self-healing and developer/sysadmin-friendly +application container server coded in pure C. Born as a WSGI-only +server, over time it has evolved in a complete stack for +networked/clustered web applications, implementing message/object +passing, caching, RPC and process management. It uses the uwsgi (all +lowercase; included by default in Nginx and Cherokee web servers) +protocol for all the networking/interprocess communications. -uWSGI can be integrated with various webservers (apache2, nginx, cherokee -and lighttpd modules available). +uWSGI is designed to be fully modular. This means that different +plugins can be used in order to add compatibility with tons of different +technology on top of the same core. -Note: this script only builds the uWSGI server without any webserver -modules. +This script builds plugins for Python 2.6, Python 3.2 (optional, pass +PYTHON32=yes to enable; requires python3 to be installed), Perl PSGI +(disabled, works only with Perl from -current), and Ruby Rack. diff --git a/network/uwsgi/slack-desc b/network/uwsgi/slack-desc index 0edca0c42453..1d0624093fe8 100644 --- a/network/uwsgi/slack-desc +++ b/network/uwsgi/slack-desc @@ -6,14 +6,14 @@ # customary to leave one space after the ':' except on otherwise blank lines. |-----handy-ruler------------------------------------------------------| -uwsgi: uwsgi (fast Python WSGI server) +uwsgi: uwsgi (fast web application server) uwsgi: -uwsgi: uWSGI is a fast (pure C), self-healing, developer-friendly WSGI -uwsgi: server, aimed for professional Python webapp deployment and -uwsgi: development. +uwsgi: uWSGI is a fast, self-healing, developer/sysadmin-friendly application +uwsgi: server coded in pure C. Born as a WSGI-only server, over time it has +uwsgi: evolved in a complete stack for networked/clustered web applications, +uwsgi: implementing message/object passing, caching, RPC and process +uwsgi: management. It is designed to be fully modular. uwsgi: uwsgi: Homepage: http://projects.unbit.it/uwsgi/ uwsgi: uwsgi: -uwsgi: -uwsgi: diff --git a/network/uwsgi/uwsgi.SlackBuild b/network/uwsgi/uwsgi.SlackBuild index 5cd2cc0a5560..031cca052e94 100644 --- a/network/uwsgi/uwsgi.SlackBuild +++ b/network/uwsgi/uwsgi.SlackBuild @@ -4,7 +4,7 @@ # Written by Audrius Kažukauskas <audrius@neutrino.lt> PRGNAM=uwsgi -VERSION=${VERSION:-0.9.6.7} +VERSION=${VERSION:-0.9.8.3} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -35,6 +35,19 @@ else LIBDIRSUFFIX="" fi +# Build Python 2.6 plugin. +PYTHON26=${PYTHON26:-yes} + +# Set this to "yes" if you want to build a plugin for Python 3.2. Requires +# python3 to be installed. +PYTHON32=${PYTHON32:-no} + +# Perl PSGI plugin is disabled for now, as it works only on -current. +PSGI=${PSGI:-no} + +# Build Ruby Rack plugin. +RACK=${RACK:-yes} + set -eu rm -rf $PKG @@ -50,11 +63,50 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -CFLAGS="$SLKCFLAGS" \ -python uwsgiconfig.py --build +# Create build config file. +cat > buildconf/package.ini <<EOF +[uwsgi] +inherit = default +plugin_dir = /usr/lib$LIBDIRSUFFIX/uwsgi-$VERSION +embedded_plugins = null +EOF +# Build uWSGI core. +CFLAGS="$SLKCFLAGS" \ +python uwsgiconfig.py --build package install -D -m 755 uwsgi $PKG/usr/bin/uwsgi -strip --strip-unneeded $PKG/usr/bin/uwsgi + +# Create directory for plugins. +mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/uwsgi-$VERSION + +# Change the path, so that plugins would be placed inside $PKG. +sed -i "s|= /usr|= $PKG/usr|" buildconf/package.ini + +# List of plugins to build. +PLUGINS="cache ping rpc fastrouter http ugreen" + +# Decide which language plugins to build. +[ "$PYTHON26" = "yes" ] && PLUGINS="$PLUGINS python26" +[ "$PYTHON32" = "yes" ] && PLUGINS="$PLUGINS python32" +[ "$PSGI" = "yes" ] && PLUGINS="$PLUGINS psgi" +[ "$RACK" = "yes" ] && PLUGINS="$PLUGINS rack" + +# Build plugins. +for PLUGIN in $PLUGINS ; do + CFLAGS="$SLKCFLAGS" \ + python uwsgiconfig.py --plugin plugins/$PLUGIN package +done + +# Create a few symlinks for automatic plugin loading. +( cd $PKG/usr/bin + [ "$PYTHON26" = "yes" ] && ln -sf uwsgi uwsgi_python26 || true + [ "$PYTHON32" = "yes" ] && ln -sf uwsgi uwsgi_python32 || true + [ "$PSGI" = "yes" ] && ln -sf uwsgi uwsgi_psgi || true + [ "$RACK" = "yes" ] && ln -sf uwsgi uwsgi_rack || true +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a ChangeLog LICENSE README $PKG/usr/doc/$PRGNAM-$VERSION diff --git a/network/uwsgi/uwsgi.info b/network/uwsgi/uwsgi.info index 72f23593823e..51916186d88a 100644 --- a/network/uwsgi/uwsgi.info +++ b/network/uwsgi/uwsgi.info @@ -1,8 +1,8 @@ PRGNAM="uwsgi" -VERSION="0.9.6.7" +VERSION="0.9.8.3" HOMEPAGE="http://projects.unbit.it/uwsgi/" -DOWNLOAD="http://projects.unbit.it/downloads/uwsgi-0.9.6.7.tar.gz" -MD5SUM="02dc4a460c150c8a1cf1ad37ed931b62" +DOWNLOAD="http://projects.unbit.it/downloads/uwsgi-0.9.8.3.tar.gz" +MD5SUM="487d2d3ecd6729a7c8141277701d0dc8" DOWNLOAD_x86_64="" MD5SUM_x86_64="" MAINTAINER="Audrius Kažukauskas" |