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

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


Branch: CURRENT, Version: 2.0.14, Package name: py27-uwsgi-2.0.14, 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]

Required to build:
[pkgtools/cwrappers]

Package options: libxml2, openssl, zlib

Master sites:

SHA1: b500ed76dd791d09ce57304c55b724ca74b2ab9b
RMD160: 9438fd8d50c92c86b657f227a92358a32e046121
Filesize: 770.479 KB

Version history: (Expand)


CVS history: (Expand)


   2016-11-04 22:39:00 by Maya Rashish | Files touched by this commit (7) | Package removed
Log message:
py-uwsgi: update to 2.0.14

2.0.14 changes:
    backported gevent-early-monkey-patch (jianbin-wei)
    Fixed OpenBSD version check (Pavel Korovin)
    PSGI/Perl cache api fixes (Alexander Demenshin)
    Correctly decode PATH_INFo in router_rewrite plugin (Ben Hearsum)
    add uwsgi.accepting() for chain-reload + worker-override combo (enkore)
    fixed workers killing when in cheaper modes (shoham-stratoscale)
    added –cgi-safe option (nnnn20430)
    Implemented graceful reload for COROAE plugin (aleksey-mashanov)
    Added –php-fallback2, –php-fallback-qs (Felicity unixwitch)
    Added ipv4in and ipv6in routing rules (Felicity unixwitch)
    Fixed readline support in python3 when working interactively (Anthony Sottile)
    Implement touch-reloading for mules and spoolers (Alexandre Bonnetain)
    add request_start timestamp in stats (Ben Plotnick)
    Fixed double free in uwsgi_routing_func_rewrite (William Orr)
    Various mod_proxy_uwsgi fixes (Ya-Lin Huang)
    support for ‘no-answer’ in PSGI (Anton Petrusevich)
    added php-constant option (Дамјан Георгиевски [gdamjan])
    added the stdio logger (Дамјан Георгиевски [gdamjan])
    spooler: fix reading inconsistent data (Pavel Patrin)
    Removed -WError from the build procedure (Riccardo Magliocchetti, suggested \ 
by Ian Denhardt)
    The usual amount of coverity-based fixes (Riccardo Magliocchetti)

2.0.13.1:

    Fixed support for python 2.5 and python 2.6
    Fixed support for older glibc
    reverted EPOLLEXCLUSIVE patch, requires more investigation

2.0.13:

    Fix compilation with GCC 6
    Remote rpc fixes (Darvame)
    Musl support! (Natanael Copa, Matt Dainty, Riccardo Magliocchetti)
    Create the spooler directory if it does not exist (Alexandre Bonnetain)
    Fix compilation on big endian linux (Riccardo Magliocchetti)
    A ton of cache fixes (Darvame)
    Make it easier to compile plugins on a different directory (Jakub Jirutka)
    Add wheel package machinery (Matt Robenolt)
    Use EPOLLEXCLUSIVE for reading, helps with the thundering herd problem (on \ 
linux 4.5+) (INADA Naoki)
    Fix apache 2.4 integration with unix sockets (Alexandre Rossi)
    Add HTTP/2 support to apache 2 proxy (Michael Fladischer, OGAWA Hirofumi)
    Fix apache mod proxy compilation with apache 2.4.20 (Mathieu Arnold)
    Default to clang as default compiler on MacOS X (Riccardo Magliocchetti)
    Added –cgi-close-stdin-on-eof (Roberto De Ioris)

2.0.12:

Bugfixes

    ‘rpcvar’ routing action correctly returns NEXT on empty response
    uwsgiconfig: fix handling of empty keys in python3 (Simone Basso)
    plugins/alarm_speech: fix AppKit spelling to support case-sensitive \ 
filesystems (Andrew Janke)
    Fix inheriting INET address 0.0.0.0 (INADA Naoki)
    core/xmlconf: correctly initialize libxml2 (Riccardo Magliocchetti)
    Pass LIBDIR to linker in python plugin (Borys Pierov)
    Platforms-related build fixes for pty, forkptyrouter and mono plugins (Jonas \ 
Smedegaard and Riccardo Magliocchetti)

New Features and Backports
The custom worker api

Finally you are able to override the uWSGI processing model to completely get \ 
control of it. This is very similar to what you can do in projects like gunicorn \ 
(and its integration with tornado or gevent). Obviously native plugins are still \ 
the best approach (they allow integration with uWSGI api and states), but in \ 
some case you may want to use uWSGI process management facilities and let your \ 
app do the rest of the work.

Currently only the python plugin supports “overriding” of workers, an \ 
aiohttp (asyncio) example module is available:

https://github.com/unbit/uwsgi-docs/blo … erride.rst
–wsgi-disable-file-wrapper

This option disables the wsgi.file_wrapper optimization of the WSGI standard. In \ 
some corner case this is the only trick to avoid errors.
Official PHP 7 support

PHP 7 is now officially supported in the php plugin.
uwsgi.spooler_get_task api (Credits: Alexandre Bonnetain)

This patch allows you to easily parse spooler files.

Check the example/test here:

https://github.com/unbit/uwsgi/blob/mas … er/read.py
–if-hostname-match (Credits: Alexandre Bonnetain)

This options for config logic allows you to define options only when a regexp \ 
over the hostname matches:

[uwsgi]
if-hostname-match = ^prod
  threads = 20
endif =

2.0.11.2:

Bugfixes

    OSX 10.11 supports TCP_FASTOPEN
    fixed http-socket parser state after harakiri
    fixed threaded request logger
    fixed fastrouter subscriptions modifiers
    fixed alarm backlog

2.0.11.1:

Bugfixes

    fixed HTTPS router resource deallocation and fiel descriptors leak
    do not spit out ssl errors when errno is 0

New Features
The unix_signal hook

You can now remap UNIX signals to specific functions symbols

2.0.11:

Bugfixes

    [pypy] fixed misuse of ffi.string
    fixed detection for gcc 5 (jimfunk)
    fixed shared sockets for gateways
    [psgi] Changed abs to labs because offset is declared as a long (Peter H. Ezetta)
    add null terminator to uwsgi_get_dot_h() and uwsgi_config_py() (Jay Oster)
    fixed thread waiting during stop/restart (Kaiwen Xu)
    fixed chain reloading verbosity
    [python] fixed spooler job reference counting (Curtis Maloney)
    various static analysis improvements (Riccardo Magliocchetti)
    fixed sharedarea support for very big ranges
    fixed gzip transformation for zero-sized responses (Curtis Maloney)
    fixed management of https client certificate authentication (Vladimir Didenko)
    fixed OpenBSD build
    fixed TMPFILE permissions

New Features
The mem_collector thread

Evil memory monitors (like –evil-reload-on-rss) are now asynchronously managed \ 
by a dedicated thread.

This solves the issue of runaway processes not catched by the master.
fixpathinfo routing action

This is another step in removing the need of the infamous uwsgi_modifier1 30 relic.

This routing action assumes the PATH_INFO cgi var has the SCRIPT_NAME part included.

This action allows you to set SCRIPT_NAME in nginx without bothering to rewrite \ 
the PATH_INFO (something nginx cannot afford)

[uwsgi]
; blindly assumes PATH_INFO is clobbered with SCRIPT_NAME
route-run = fixpathinfo:

uwsgi[sor] and time[micros] routing vars

This two new vars exposes the start of the current request (in micros) and the \ 
current time (again in micros)

[uwsgi]
route-run = log:request started at ${uwsgi[sor]}
route-run = log:current micros time is ${time[micros]}

wait-for-socket

This works like wait-for-fs/iface/file/dir

The spawn of the instance is suspended until the specified tcp/unix socket is ready.

You can use it to synchronize vassals spawn (like stopping a vassal until a \ 
postgresql server has been spawned)
wait_for hooks

All of the wait-for-* functions can now be used as a hook:

[uwsgi]
; wait for postgres soon after privileges drop
hook-as-user = wait_for_socket:127.0.0.1:5432
   2016-08-28 17:48:37 by Thomas Klausner | Files touched by this commit (112)
Log message:
Remove unnecessary PLIST_SUBST and FILES_SUBST that are now provided
by the infrastructure.

Mark a couple more packages as not ready for python-3.x.
   2016-03-05 12:29:49 by Jonathan Perkin | Files touched by this commit (1813) | Package updated
Log message:
Bump PKGREVISION for security/openssl ABI bump.
   2016-01-11 23:57:00 by Joerg Sonnenberger | Files touched by this commit (5)
Log message:
Avoid incrementing the same variable in the for body and at the end of
the loop. The code is correct, but triggers a useful clang 3.8 warning.
   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
ALTERNATIVES. Bump PKGREVISION.
   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

[20150317]
Bugfixes

    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.