Subject: CVS commit: pkgsrc/www/py-uwsgi
From: Blue Rats
Date: 2014-04-24 02:18:52
Message id: 20140424001852.E6BEB96@cvs.netbsd.org

Log Message:
Updated to latest release, 2.0.4, released a couple days ago. Changelogs:

uWSGI 2.0.4

Bugfixes

    fixed "cmime" routing var (Steve Stagg)
    allow duplicate headers in http parsers
    faster on_demand Emperor management
    fixed UWSGI_ADDITIONAL_SOURCES build option
    merge duplicated headers when SPDY is enabled
    fixed segfault for unnamed loggers
    -need-app works in lazy-apps mode
    fixed fatal hooks management

New features
The experimental asyncio loop engine (CPython >= 3.4)

asyncio (also known as 'tulip') is the new infrastructure for writing \ 
non-blocking/async/callback-based code with Python 3.

This plugin (experimental) allows you to use asyncio as the uWSGI loop engine

Docs: http://uwsgi-docs.readthedocs.org/en/latest/asyncio.html
httprouter advanced timeout management

The http router got 2 new specific timeout:

-http-headers-timeout <n> ; defines the timeout while waiting for http headers

-http-connect-timeout <n> ; defines the timeout when connecting to backend \ 
instances

they should help the sysadmin in improving security and availability

allow disabling cache warnings in -cache2

the 'ignore_full' keyval option has beed added to cache2. This will disable \ 
warnings when a cache is full
purge LRU cache feature by Yu Zhao (getcwd)

This new mode allows you to configure a cache to automatically expires least \ 
recently used (LRU) items when it is full.

Just add purge_lru=1 to your cache2 directive
support embedded config on FreeBSD

You can now embed config on FreeBSD systems:

http://uwsgi-docs.readthedocs.org/en/latest/Embed.html#step-2-embedding-the-config-file
rpc hook

Two new hooks have been added:

'rpc' -> call the specified rpc function (fails on error)

'rpcretry' -> call the specified rpc function (retry on error)
setmodifier1 and setmodifier2 routing actions

having to load the 'uwsgi' routing plugin just for setting modifiers was really \ 
annoying. This two routing actions (embedded in the core) allows you to \ 
dinamically set modifiers.
no_headers option for static router

keyval based static routing action can now avoid to rewrite response headers \ 
(useful for X-Sendfile), just add no_headers=1 to your keyval options.

uWSGI 2.0.3

Bugfixes

    fixed spooler 'at' key usage
    fixed a memory and fd leak with on-demand Emperor sokets
    on __APPLE__ use LOG_NOTICE for syslog plugin
    fixed mongrel2 support
    hack for avoiding libmongoclient to crash on broken cursor
    log alarm is now a uwsgi_log_verbose() wrapper
    fixed tuntap router memory corruption
    Set ECDHE curve independently from DHE parameters (Hynek Schlawack)
    do not wait for a whole Emperor cycle before checking for each waitpid
    fix a regression with caller() not indicating the starting *.psgi program \ 
(Ævar Arnfjörð Bjarmason)

New features
Emperor SIGWINCH and SIGURG

The Emperor now responds to two new signals:

SIGWINCH: force an emperor rescan of vassals

SIGURG: cleanup the Emperor states (for now it only clears its blacklist)
Building plugins on-the-fly from git repositories

You can now build plugins stored on git servers:

uwsgi --build-plugin https://github.com/unbit/uwsgi-bonjour

or

UWSGI_EMBED_PLUGINS="bonjour=https://github.com/unbit/uwsgi-bonjour" \ 
pip install uwsgi

uwsgi.add_var(key, value)

You can now set request variables direcly from your app, for better integration \ 
with the internal routing subsystem

my $app = sub {
     uwsgi::add_var("newvar","newvalue");
     return [200, ['Content-Type' => 'text/html'], ["Hello"]];
}

uwsgi --http-socket :9090 --psgi hello.pl --response-route-run \ 
"log:\${newvar}"

add_var has been implemented in the CPython and Perl plugins
'disableheaders' routing action

This new action disables the sending of response headers, independently by the \ 
current request state
Smarter Emperor on bad conditions

Now the Emperor completely destroys internal vassal-related structures when it \ 
is impossible to correctly kill a broken vassal (both for inconsistent Emperor \ 
state or for internal system problems)

Files:
RevisionActionfile
1.24modifypkgsrc/www/py-uwsgi/Makefile
1.18modifypkgsrc/www/py-uwsgi/distinfo