------------------------------------------------------------------- Fri May 31 18:52:08 UTC 2013 - jfunk@funktronics.ca - Fix path to uwsgi binary in service file - Install uwsgi.ini - Fix signed/unsigned comparison in emperor_amqp ------------------------------------------------------------------- Wed May 29 17:26:24 UTC 2013 - jfunk@funktronics.ca - Deprecated init script and sysconfig file in favor of systemd service and a default configuration file /etc/uwsgi/uwsgi.ini - Update README to describe important changes - Removed separate packages for plugins that have no uncommon requirements - Update to 1.9.11 * Fixed Python 3 stdout/stderr buffering * Fixed mule messages (@mulefunc is now reliable) * Fixed SCRIPT_NAME handling in dynamic mode * Fixed X-Sendfile with gzip static mode * Fixed cache item maximum size with custom block size * Fixed cache path handling * Added the new high-performance PyPy plugin * You can now avoid overlapping crons using --unique-cron. The uWSGI master will track death of a single task, and until its death the same cron will not be triggered * A key/value variant of the --cron option is now available * When using the cron2 option you are allowed to set a harakiri timeout for a cron task. Just add harakiri=n to the options * Added support for GNU Hurd * A new offload engine named "memory" allows to offload memory transfers. The cache router automatically supports it. To enable it just add --offload-threads * An example websocket chat using Redis has been added to the repository * You can now define a routing table to be executed as soon as you set the HTTP status code in your plugin * Generally the wsgi.file_wrapper callable expects a file-like object. PEP 333/3333 reports a special pattern when the object is not a file (call read() until the object is consumed). uWSGI now supports this pattern (even if in a hacky way) * When using --http-keepalive you can now hold the connection open even if the request has a body * You can now set a harakiri timer for each request using internal routing * The RPC plugin has been extended to allows interoperation with other standards. Currently a simple HTTP wrapper and an XML-RPC one are exposed - 1.9.10 * fixed alarm threads during reloads * fixed uninitialized memory in --touch-* options * fixed a regression in --attach-daemon * Added gccgo plugin. As Go 1.1 will be no no more compatible with uWSGI, gccgo will became the official way for running go apps * You can now run routing rules after a request. Obviously not all of the exposed actions make sense after the request but you should be able to write even more complex setup - 1.9.9 * Special warning: The router_basicauth plugin has changed its default behaviour to return "break" if authorization fails. The "basicauth-next" action, uses the old behaviour (returning "next"). This new approach should reduce security problems caused by wrong configurations * do not increment "tx" statistics counter for "unaccountable" plugins * fixed --backtrace-depth * fixed cache-sync parsing * fixed mule farms initialization * fixed multithreading bug when regexp conditional route is used * fixed default-app usage in the psgi plugin * fixed python dynamic mode + threads * fixed error reporting in corerouter when retry is in place * correctly report harakiri condition for gateways * Added the WebDav plugin * Added support for Go 1.1. Albeit you can successfully embed go 1.1 apps in uWSGI, go 1.1 will be completely fork() unsafe. That means you are not able to use multiprocessing, the master, mules and so on * Stackless, Greenlet and Fiber support have been updated to support new async features * You can now authenticate over radius servers using the router_radius plugin * Added another authentication backend, using SPNEGO (kerberos) * Added the ldap authenticator * Removed the GOON action, as it was messy and basically useless with the new authentication approach * The "setscriptname" action has been added to override the internally computed SCRIPT_NAME (not only the var) * The "donotlog" action forces uWSGI to not log the current request * The "regexp" routing conditions has been improved to allows grouping. Now you can easily manipulate strings and adding them as new request VARS * uwsgi.atexit hook is now honoured by the gevent plugin (Author: André Cruz) * Transformations can be applied on the fly (no buffering involved) * The xattr plugin allows you to reference files extended attributes in the internal routing subsystem * Added airbrake plugin. Currently at early stage of development, it allows sending uWSGI exceptions and alarms to airbrake servers * Added legion daemons, allowing you to run external processes only when an instance is a lord * A new "touch" option (like --touch-reload) is available, triggering the execution of a command * You can now use the caching subsystem to store 64bit signed numbers and apply atomic operations on them - 1.9.8 * fixed a crash when reloading the master * fixed a crash in async mode + uGreen * the 'mime' routing var requires a request var (not a raw string) - 1.9.7 * fixed teajs engine build * fixed offloading status code (set to 202 when a request is offloaded) * execute cron tasks within 60 second resolution, instead of 61 seconds * fixed websocket proxy * check for python3 unicode encoding (instead of crashing...) * fixed ipcsem removal on reload * fixed kqueue timer on OpenBSD, NetBSD and DragonFlyBSD * fixed/reimplemented perl uwsgi::register_rpc * fixed fd leak on sendfile() error * fixed Content-Length when gzip file variant is used * allows non-request plugins to register rpc functions * more robust error checking for cgroups * honour SCRIPT_NAME the in the PSGI plugin when multiple perl apps are mounted * Added legion cron to force only one instance of an application in legion mode to execute cron tasks * The curl_cron plugin has been added allowing the cron subsystem to call urls (via libcurl) instead of unix commands * The cachestore routing function can now directly store items in gzip format * Added --skip-atexit to avoid calling atexit() hooks to workaround a bug in the mongodb client library * The http and uwsgi routing instructions are now more smart. You can cache their output and get the right status code in the logs * Added a generic api for manipulating the response has been added (cachestore uses it) * You can now trigger alarms when an fd is ready for read with --alarm-fd * The spooler server plugin and the cheaper busyness algorithm are now compiled in by default - 1.9.6 * workaround for building the python plugin with gcc 4.8 * Sqlite and LDAP configuration moved to plugins * New instructions added to allow for dynamic apps using internal routing * You can now configure how the carbon plugin send the response average when no requests have been managed * Added numeric checks for the internal routing * Added math and time support in the internal routing * Added non-standard seek() and tell() to wsgi.input (post-buffering required) * You can invoke the ipython shell instead of the default one when using --pyshell * Added the 'rpcraw' routing instruction (dangerous) * Added preliminary support for the HTTP Range header * Added the 'lord' routing condition for Legion * Added GridFS authentication * Added the 'uwsgi' routing var for accessing internal uWSGI parameters * Added the 'alarm' routing action for triggering alarms from the routing subsystem * Added --rbshell for accessing a Ruby shell * Added --lua-shell for accessing a Lua shell * Removed the old (and useless) probe subsystem * Two new hooks have been added to the Legion subsystem: --legion-node-joined and --legion-node-left * --socket-sndbuf and --socket-rcvbuf have been added to allow tuning of the send and receive buffers of the uWSGI sockets (use with caution) * V8 plugin improvements - 1.9.5 * fixed a memory leak with cachestore routing instruction (Riccardo Magliocchetti) * fixed a memory leak in carbon plugin (Riccardo Magliocchetti) * fixed a memory leak in the cgi plugin (Riccardo Magliocchetti) * fixed old-style python dynamic apps * force the emperor to honour --max-fd for vassals * improved PSGI seek with post-buffering * fixed kvlist escaping * Added the GridFS plugin * Improved V8 plugin * Added the 'cgi' routing instruction to call CGI scripts directly - 1.9.4 * fixed cache statistics exported by the stats subsystem (Łukasz Mierzwa) * fixed CoroEV bug in after_request (Tom Molesworth and John Berthels) * update cache items after a restore from persistent storage (Łukasz Mierzwa) * fixed signal handling in non-worker processes * fixed thundering herd in multiple mules setup * ported the cplusplus skeletal plugin to the new api * fixed uWSGI reloading when build as a shared library * From now on, SmartOS is included in the officially supported operating systems * Support for JavaScript routing rules and configurations using V8 * Added the rpcnext routing action * Legion improvements - 1.9.3 * fixed imports in the JVM build system when virtualenvs are used (Ryan Kaskel) * fixed mod_proxy_uwsgi with apache 2.4 * fixed php headers generation when Status is created from the php app itself * Pluggable configuration system (with Lua support) * Immediate setuid and setgid with new options --immediate-uid and --immediate-gid * The option --emperor-tyrant-nofollow has been added forcing the emperor to now follow symlinks when searching for uid/gid in tyrant mode * Added the "rpcret" routing action to usa Lua to write advanced rules - 1.9.2 * Fixed python3 response headers managament (wrong refcnt) * Fixed readline() on request body when postbuffering is in place * Fixed ruby fiber plugin * You can now store responses automatically in the uWSGI cache using route-run and the cachestore routing action * routing access to cookie and query string * Added empty internal routing condition * Added the Geoip plugin * Added the SSI plugin (beta) - 1.9.1 * Fixed --req-logger after a graceful reload * Fixed a crash with the carbon plugin * Fixed signal handling when multiple workers + copy on write is in place * Fixed exception handling in the Rack plugin * The XSLT plugin has been added. It allows to apply XML transformation via request plugin or uWSGI internal routing * Legion scrolls api * On demand vassals in Emperor mode * The --exec-post-app hook has been added allowing you to run commands after the load of an application * The cache router plugin has been improved * Added a crypto logger allowing for encryption in logging to remote hosts via UDP * The "rpc" routing instruction has been added, allowing you to call rpc functions directly from the routing subsystem and forward they output to the client * Preliminary support for name resolving in the carbon plugin * New routing conditions have been added (equal,startswith,endswith,regexp) * You can reference the uWSGI version string using the %V magic var in your configurations * Added the 'mongodb' generic plugin - 1.9 * From now on, all of the request plugins need to be non-blocking * Added Coro::AnyEvent plugin for Perl. Requires Coro::Anyevent package * We have finally a truly working JVM infrastructure * The first Mono plugin attempt (in 2010) was a total failure. Now we have a new shining implementation * Language independent HTTP body manage * Faster uwsgi/HTTP/FastCGI/SCGI native sockets * Can split request/error logging * Chain reloading of workers * Offloading improvements * Better static files management/serving * New Generation Cache subsystem (cache2) * The Legion subsystem is a new whole addition to the uWSGI project. It has superseeded the old Clustering subsystem * Cygwin (windows) support * Advanced Exceptions subsystem * SPDY, SSL and SNI support * HTTP router keepalive, auto-chunking, auto-gzip and transparent websockets * The SSL router (sslrouter) for SSL virtual hosting * New Websockets API * New Programmable Internal Routing (turing complete ?) * A new imperial monitor has been added allowing vassals to be governed over zeromq messages * Total introspection via the stats server * Ping requests sent using nagios plugin will no longer be counted in apps request stats * The --app option has been removed. To load applications on specific mountpoints use the --mount option * The --static-offload-to-thread option has been removed. Use the more versatile --offload-threads * The grunt mode has been removed. To accomplish the same behaviour just use threads or directly call fork() and uwsgi.disconnect() * The send_message/recv_message api has been removed (use language-supplied functions) - 1.5 * added --not-alarm-log * support for TCP_FASTOPEN (Linux-only) * improved emperor reloading * added --get * Legion subsystem * emperor_zeromq plugin * SNI support * distributed SSL session cache - 1.4.1 * fixed typos in corerouter plugins * fixed offloading when the number of threads is higher than 1 * fixed static_maps for non-existent paths * fixed uwsgi_connect() on modern Linux systems to reset the socket to blocking mode - 1.4 * gevent improvements * improved http/https router and fastrouter * Go official support * a new set of infos are exported to the stats system * improved systemd support * log filtering and routing * improved tracebacker * offload transfer for static files, and network transfers * matheval support * plugins can be written in Obj-C * smart attach daemon * added support for PEP 405 virtualenvs * rawrouter with xclient support * internal routing plugin for cache - 1.3 * python tracebacker * user-governed harakiri * simplified external plugin development * Linux namespace mountpoint improvements * secured subscription system * merged routers codebase (fastrouter, http, rawrouter) * https support in the http router * config report at the end of uWSGI build process * improved subscription system (multicast and unix socket) * custom options * graceful reloads on shared sockets * configurable log-master buffer size * extreme-optimizations for the stats subsystem * redislog and mongodblog plugins * added python logger * mongodb and postgres imperial monitors * implemented psgix.logger and psgix.cleanup * full rack spec compliance * preliminary ipv6 support * gevent graceful reloads * support for multiple loggers and logformat * lazy-apps to load apps after fork() but without changing reloading subsystem * emperor heartbeat subsystem * cheaper busyness plugin * pluggable clock sources * added router_rewrite and router_http plugins * external spoolers * support for section:// and fd:// loaders * alarm subsystem (with curl and xmpp plugins) ------------------------------------------------------------------- Tue Sep 11 22:13:54 UTC 2012 - jfunk@funktronics.ca - Install uwsgidecorators module for Python plugin - Create sysconfig file for adding uwsgi options ------------------------------------------------------------------- Sun Sep 9 19:11:43 UTC 2012 - jfunk@funktronics.ca - Don't attempt to build Erlang plugins on openSUSE < 12.2 - Don't attempt to build Greenlet plugin on openSUSE < 12.1 ------------------------------------------------------------------- Sun Sep 9 18:56:43 UTC 2012 - jfunk@funktronics.ca - Don't attempt to build Ruby 1.9 features on openSUSE < 12.2 ------------------------------------------------------------------- Sun Sep 9 00:19:40 UTC 2012 - jfunk@funktronics.ca - Fix JVM build on i586 ------------------------------------------------------------------- Sat Sep 8 23:17:30 UTC 2012 - jfunk@funktronics.ca - Fix lua requirement for openSUSE < 12.2 ------------------------------------------------------------------- Sat Sep 8 21:41:39 UTC 2012 - jfunk@funktronics.ca - Initial release