./www/py-uwsgi, Feature-rich WSGI server

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 2.0.10nb1, Package name: py27-uwsgi-2.0.10nb1, Maintainer: pkgsrc-users

uWSGI is a fast (pure C), self-healing, developer-friendly WSGI server,
aimed for professional python webapps deployment and development.
Backend support exists for Apache, nginx, cherokee and lighttpd.

Some of the features include:
- low memory footprint
- preforking and multithreaded operation
- logging, diagnostic and profiling support
- support for sendfile()
- self-healing
- graceful restart and hot-plug upgrading

Required to run:
[textproc/libxml2] [devel/py-setuptools] [lang/python27]

Package options: libxml2, openssl, zlib

Master sites:

SHA1: 31bae2dac113af8d95dbc9b982df139ff61ce209
RMD160: 24d9f7528ed3d5f20b962a60512ab9ab1a43ef35
Filesize: 761.543 KB

Version history: (Expand)

CVS history: (Expand)

   2015-11-04 03:47:43 by Alistair G. Crooks | Files touched by this commit (758)
Log message:
Add SHA512 digests for distfiles for www category

Problems found locating distfiles:
	Package haskell-cgi: missing distfile haskell-cgi-20001206.tar.gz
	Package nginx: missing distfile array-var-nginx-module-0.04.tar.gz
	Package nginx: missing distfile encrypted-session-nginx-module-0.04.tar.gz
	Package nginx: missing distfile headers-more-nginx-module-0.261.tar.gz
	Package nginx: missing distfile nginx_http_push_module-0.692.tar.gz
	Package nginx: missing distfile set-misc-nginx-module-0.29.tar.gz
	Package nginx-devel: missing distfile echo-nginx-module-0.58.tar.gz
	Package nginx-devel: missing distfile form-input-nginx-module-0.11.tar.gz
	Package nginx-devel: missing distfile lua-nginx-module-0.9.16.tar.gz
	Package nginx-devel: missing distfile nginx_http_push_module-0.692.tar.gz
	Package nginx-devel: missing distfile set-misc-nginx-module-0.29.tar.gz
	Package php-owncloud: missing distfile owncloud-8.2.0.tar.bz2

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
   2015-06-10 05:32:42 by Blue Rats | Files touched by this commit (3) | Package updated
Log message:
This package should not self-conflict. Prefix the files in $SHAREDIR with
${PYPKGPREFIX} to avoid such an instance. Some people will run apps with
different versions of python, so we can handle that accordingly with
   2015-04-06 04:35:54 by Blue Rats | Files touched by this commit (5)
Log message:
Fix build for OpenBSD and Bitrig (from sevan@'s report).
   2015-04-03 17:21:59 by Blue Rats | Files touched by this commit (2)
Log message:
uWSGI 2.0.10


    Don't lower security standards with gcc 4.9 (Riccardo Magliocchetti)
    Perl/PSGI make sure that at least two params are passed to xs_input_seek \ 
(Ivan Kruglov)
    Per/PSGI fixed multiple interpreters usage
    spooler: fixed scandir usage
    fixed exception handler arguments management
    fixed 'log-master' +  'daemonize2' disables all logging
    fixed http Range header management

New Features
safeexec hook

this is like 'exec' but do not exit on error even if the executed command \ 
returns a non-zero value
backported --emperor-wrapper-fallback and --emperor-wrapper-override

the --emperor-wrapper-fallback option allows you to specify an alternative \ 
binary to execute when running a vassal and the default binary_path is not found \ 
(or returns an error). (you can specify it multiple times)

The --emperor-wrapper-override is similar but 'overrides' the default wrapper \ 
(you can specify it multiple times)
added support for UNIX sockets to rsyslog

The rsyslog logger can now get a unix socket as address (arguments starting with \ 
a slash are recognized as a unix path)
forcecl transformation

this transformation works like 'fixcl' but generates the Content-Length header \ 
even if Content-Length has been listed for removal.
   2015-01-10 23:26:54 by Adam Ciarcinski | Files touched by this commit (2)
Log message:
Changes 2.0.9:
fixed mod_proxy_uwsgi for non-blocking mode
fixed master-fifo + cheaper
fixed leak on error in bind_to_unix
atexit hooks works in cheaped workers too
atexit hooks works in gevent mode too during shutdown
fixed carbon command line option value after reload
do not honour Emperor throttling on the first run
fixed Mono plugin
fixed peer name in corerouters
fixed stop signal for daemons
varios ssl/tls fixes in https/spdy router
fixed python3 –py-auto-reload-ignore
fixed modifiers in corerouters
support for yajl from homebrew (OSX)
psgi: Ensure that we call any DESTROY hooks on psgix.harakiri.commit
systemdlogger: fix compilation with -Werror=format-security
fixed unmasked websockets
perl fixed latent refcounting bug

New Features:
Improved PyPy support for Linux
Fastrouter post-buffering
Perl uwsgi::opt
active-workers signal target
httpdumb routing action
   2014-11-30 17:56:58 by Blue Rats | Files touched by this commit (2)
Log message:
uWSGI 2.0.8

Note: this is the first version with disabled-by-default SSL3, if you need it, \ 
you can re-enable with --ssl-enable3 option

    fixed PHP SCRIPT_NAME usage when --php-app is in place
    allow "appendn" hook without second argument
    fix heap corruption in the Carbon plugin (credits: Nigel Heron)
    fix getifaddrs() memory management
    fixed tcsetattr() usage
    fixed kevent usage of return value (credits: Adriano Di Luzio)
    ensure PSGI response headers are in the right format
    fixed reloading of attached daemons
    fixed SSL/TLS shutdown
    fixed mountpoint logic for paths not ending with / (credits: Adriano Di Luzio)
    fixed Python3 support in spooler decorators (credits: Adriano Di Luzio)

New Features
RTSP and chunked input backports from 2.1 for the HTTP router

The --http-manage-rtsp and ``--http-chunked-input` have been backported from 2.1 \ 
allowing the HTTP router to detect RTSP and chunked requests automatically. This \ 
is useful for the upcoming https://github.com/unbit/uwsgi-realtime plugin.

This custom hook allows you to call actions after each fork().
fallback to trollius for asyncio plugin

If you build the asyncio plugin for python2, a fallback to the trollius module \ 
will be tried.

This feature has gotten basically zero test coverage, so every report (bug or \ 
success alike) is welcome.
added sweep_on_full, clear_on_full and no_expire to --cache2

Three new options for --cache2 have been added for improving the caching expire \ 

    sweep_on_full will call a sweep (delete all of the expired items) as soon as \ 
the cache became full
    clear_on_full will completely clear the cache as soon as it is full
    no_expire forces the cache to not generate a cache sweeper thread, \ 
delegating items removal to the two previous options

backported wait-for-fs/mountpoints from 2.1

    --wait-for-fs <path> suspend the uWSGI startup until a file/directory \ 
is available
    --wait-for-file <path> suspend the uWSGI startup until a file is available
    --wait-for-dir <path> suspend the uWSGI startup until a directory is \ 
    --wait-for-mountpoint <path> suspend the uWSGI startup until a \ 
mountpoint is available

improved the offload api (backport from 2.1)

uWSGI 2.0.8 is compatible with the upcoming \ 
https://github.com/unbit/uwsgi-realtime plugin that allows the use of realtime \ 
features (like websockets or audio/video streaming) using the uWSGI offload \ 
engine + Redis publish/subscribe.
Allows building plugins from remote sources as embedded

The UWSGI_EMBED_PLUGINS environment variable has been extended to support remote \ 
plugins. As an example you can build a monolithic uwsgi binary with the Avahi \ 
and realtime plugins as:

UWSGI_EMBED_PLUGINS="avahi=https://github.com/20tab/uwsgi-avahi,realtime=https://github.com/unbit/uwsgi-realtime" \ 

Automatically manage HTTP_X_FORWARDED_PROTO

Albeit a new standard is available in the HTTP world for forwarded sessions \ 
(http://tools.ietf.org/html/rfc7239) this release adds support for the \ 
X-Forwarded-Proto header, automatically setting the request scheme accordingly.
   2014-09-10 18:02:33 by Sebastian Wiedenroth | Files touched by this commit (2) | Package updated
Log message:
Update py-uwsgi to 2.0.7

uWSGI 2.0.7

Changelog [20140905]


- fixed counters in statsd plugin (Joshua C. Forest)
- fixed caching in php plugin (Andrew Bevitt)
- fixed management of system users starting with a number
- fixed request body readline using memmove instead of memcpy (Andrew Wason)
- ignore "user" namespace in setns (still a source of problems)
- fixed Python3 rpc bytes/string mess (result: we support both)
- do not destroy the Emperor on failed mount hooks
- fixed symbol lookup error in the Mono plugin on OS X (Ventero)
- fixed fastcgi and scgi protocols error when out of buffer happens
- fixed solaris/smartos I/O management
- fixed 2 memory leaks in the rpc subsystem (Riccardo Magliocchetti)
- fixed rados plugin PUT method (Martin Mlynář)
- fixed multiple python mountpoints with multiple threads in cow mode
- stats UNIX socket is now deleted by vacuum
- fixed off-by-one corruption in cache LRU mode
- force single-cpu build in cygwin (Guido Notari)

New Features and improvements

allow calling the spooler from every cpython context

At Europython 2014, Ultrabug (a uWSGI contributor and packager) asked for the \ 
possibility to spool tasks directly from a greenlet.


store_delete cache2 option

Author: goir

The store_delete flag of the --cache2 option, allows you to force the cache \ 
engine to automatically remove an invalid
backing store file.

file logger rotation

Author: Riccardo Magliocchetti

The `file` logger has been extended to allow the use of rotation (the same \ 
system used by the non-pluggable --logto):

https://github.com/unbit/uwsgi/commit/0 … 88ddab59c5

vassals plugin hooks

The plugin have has been extended with two new hooks: vassal and vassal_before_exec.

Both allows to customize a vassal soon after its process has been generated.

The first third-party plugin using it is the 'apparmor' one:


allowing you to apply an apparmor profile to a vassal

Broodlord improvements

The broodlord subsystem has been improved with a new option: --vassal-sos that \ 
automatically ask for reinforcement when all of the workers of an instance are \ 

In addition to this a sysadmin can now manually ask for reinforcement sending \ 
the 'B' commando to the master fifo of an instance.
   2014-08-07 07:34:35 by Blue Rats | Files touched by this commit (2) | Package updated
Log message:
uWSGI 2.0.6

Changelog [20140701]

    fixed a memory leak with subscription system
    fixed shortcut for ssl-socket
    fixed apache2 mod_proxy_uwsgi (it is now considered stable with all mpm engines)
    fixed SCRIPT_NAME and PATH_TRANSLATED generation in php plugin
    remove the old FIFO socket from the event queue when recreating it

New features
The new Rados plugins

The rados plugin has been improved and stabilized, and now it is considered \ 
usable in production.

Async modes and multithreading correctly works, and support for uploading \ 
objects (via PUT) and creating new pools (MKCOL) has been added.

Expect webdav support in uWSGI 2.1

Docs have been updated: http://uwsgi-docs.readthedocs.org/en/latest/Rados.html

This is a configuration logic for including options only when the specified \ 
hostname matches:

if-hostname = node1.local
  socket = /tmp/socket1.socket
endif =

if-hostname = node2.local
  socket = /var/run/foo.socket
endif =

Apache2 mod_proxy_uwsgi stabilization

After literally years of bug reports, and corrupted data, the mod_proxy_uwsgi is \ 
now stable, and on modern apache2 releases it supports unix sockets too.

Updated docs: http://uwsgi-docs.readthedocs.org/en/la … roxy-uwsgi
uwsgi[rsize] routing var

this routing var (meaningful only in the 'final' chain) exposes the response \ 
size of the request
the callint scheme

This scheme allows you to generate blob from functions exposed by your uWSGI \ 

uid = @(callint://get_my_uid)
gid = @(callint://get_my_gid)


The corerouters fallback procedure requires a valid key (domain name) has been \ 
requested. This option forces the various routers to trigger the fallback \ 
procedure even if a key has not been found.
php 5.5 opcode caching via -php-sapi-name

For mysterious reasons the opcode caching of php5.5 is not enabled in the embed \ 
sapi. This option (set it to 'apache' if you want) allows you to fake the opcode \ 
caching engine forcing it to enable itself.
Improved chain-reloading

Thanks to Marko Tiikkaja the chain reloading procedure correctly works in \ 
cheaper modes and it is more verbose.
added 'chdir' keyval to -attach-daemon2

You can now set where attached daemons need to chdir()