aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--network/uwsgi/README23
-rw-r--r--network/uwsgi/slack-desc12
-rw-r--r--network/uwsgi/uwsgi.SlackBuild60
-rw-r--r--network/uwsgi/uwsgi.info6
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"