* Wed Apr 18 2018 guillaume.gardet@opensuse.org
- Handle aarch64 arch
* Mon Apr 16 2018 jfunk@funktronics.ca
- Disable apache2-mod_proxy_uwsgi on Leap 15 since upstream Apache includes
the module now
* Mon Apr 16 2018 jfunk@funktronics.ca
- Update to 2.0.17:
* The Emperor throttling subsystem does not make use anymore of blocking
functions, like usleep(), this should fix stats serving and should improve
vassals startup time
* [Security/PHP] enforce DOCUMENT_ROOT check when using --php-docroot to
avoid directory traversal (Marios Nicolaides)
* added --shutdown-sockets to improve graceful shutdowns (Andrew Wason)
* Tue Feb 27 2018 bjorn.lie@gmail.com
- Update License tag to SPDX 3 version:
Apache-2.0 AND GPL-2.0-only WITH GCC-exception-2.0.
* Sun Feb 18 2018 michael@stroeder.com
- removed obsolete reproducible.patch
- Update to 2.0.16:
* [CVE-2018-6758] Stack-based buffer overflow in
core/utils.c:uwsgi_expand_path()
* Backported early_post_jail plugin hook (Bjørnar Ness)
* Fixed ipv6 suupport for http-socket (James Brown)
* Enable execinfo on DragonFly BSD (Aaron LI)
* Fix inet_ntop buffer size (Orivej Desh)
* Add worker running time metrics (Serge/yasek)
* Backported safe-pidfile, safe-pidfile2 (Nate Coraor)
* Stop using libxml2 by default on osx
* Fixed uwsgi_kvlist_parse signature
* Backport http range fixes from master (Curtis Maloney, Sokolov Yura)
* relicensed mod_proxy_uwsgi to Apache 2.0
* logging: Add ${millis} support to json encode
* plugins/router_xmldir: fixup invalid locale check (Riccardo Magliocchetti)
* Add ssl-verify-depth flag to set the max Client CA chain length (Paul Tagliamonte)
* Allow to override build date (Bernhard M. Wiedemann)
* Python 3 plugin: improved thread names handling (Jyrki Muukkonen, Mark Meyer)
* Added uwsgi_resolve_ip for redis host (ahmbas)
* plugins/gevent: Fix signal handlers (Maslov Alexander)
* Write x509 DER to the uwsgi buffer (Paul Tagliamonte)
* plugin/http: Fix compilation (Melvyn Sopacua)
* Fixed emperor throttling system (Jeremy Hiatt)
* Fix application loading without Plack after excluding ?.? from @INC in new Perl versions (Anton Petrusevich)
* Fix MULE MSG QUEUE IS FULL message hint (Eugene Tataurov)
* Build System: support k_minor has a _xxx suffix (TOGO Li)
* Fixed drop-after-* options (Robert DeRose)
* Add mule_send_msg success indicator (Josh Tiras)
* Properly check item size in uwsgi_queue_push (Josh Tiras)
* FastRouter / HTTP Router can now have a ?fallback? key configured
* HTTP Router now supports post-buffer, just like FastRouter
* Fix handling of env in embedded dict in Python plugin (could cause segfaults in single thread mode)
* Add support for Brotli (.br) with ?static-gzip
* Back-ported HTTP/1.1 support (?http11-socket) from 2.1
* Sun Dec 10 2017 i@marguerite.su
- fix a leaf problem found by repo-checker
* uwsgi-python3 can't be install because it requires python-base = 3.6
which should be python3-base
* Thu Nov 09 2017 sven@uebelacker.net
- creating /run/uwsgi for sockets via systemd service now
* Thu Oct 26 2017 sven@uebelacker.net
- Update to 2.0.15: [2017-03-30]
* workaround for the holy allocator for avoiding crashes with newrelic (see
Issues notes)
* avoid time overflow in request logs during (even minimal) clock skew
* fixed python logger with python3
* fixed catch-exceptions with python3
* backported ?don?t clone $env->{?psgix.io?} on ?PSGI cancel??
* added support for authentication in the redis logger
* added the spinningfifo action hook to the core
* fixed compilation with php 7.1 (?????? ???????????)
* correctly returns error code 22 in lazy_apps + master_mode
* fixed compilation for OpenSSL 1.1 (Riccardo Magliocchetti)
* Add a ?skip-atexit-teardown option to skip perl/python teardown (Ævar
Arnfjörð Bjarmason)
* fixed static file serving over https-socket
- building now php7 plugin via php7-embed package for Factory/Tumbleweed
- removing uwsgi-1.9.13-emperor_pg-Wformat.patch
* Wed Oct 18 2017 jengelh@inai.de
- Trim filler wording from description.
* Sat Jun 24 2017 bwiedemann@suse.com
- Add reproducible.patch to override build date to make build more reproducible
- sort list of plugins
* Wed Oct 05 2016 buschmann23@opensuse.org
- Update to 2.0.14:
* 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)
* Wed Sep 28 2016 jfunk@funktronics.ca
- Don't fail build on deprecated declarations
* Wed Jun 08 2016 buschmann23@opensuse.org
- Update to 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
* Thu May 12 2016 jfunk@funktronics.ca
- Update to 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)
* Thu Jan 07 2016 buschmann23@opensuse.org
- Udate to version 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
* The custom worker api - Finally you are able to override the uWSGI
processing model to completeley get control of it.
https://github.com/unbit/uwsgi-docs/blob/master/WorkerOverride.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 PHP7 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.
* --if-hostname-match (Credits: Alexandre Bonnetain)
This options for config logic allows you to define options only
when a regexp over the hostname machtes.
- Update patch 1 - uwsgi-1.9.17-no-LD_RUN_PATH.patch - renamed patch
file to uwsgi-2.0.12-no-LD_RUN_PATH.patch
* Fri Nov 06 2015 buschmann23@opensuse.org
- Update to version 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
* Sat Sep 26 2015 jfunk@funktronics.ca
- Remove uwsgi-2.0.10-gcc5.patch as it was integrated upstream
- Update to 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
- Changes from 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.
* 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)
* 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
* Wed Aug 12 2015 dvaleev@suse.com
- Don't build v8 plugin for PowerPC
* Sun Jun 28 2015 jfunk@funktronics.ca
- Added uwsgi-2.0.10-gcc5.patch to fix build for gcc 5
- Update to 2.0.10:
* 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)
* Perl/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
* added support for UNIX sockets to rsyslog
* forcecl transformation - this transformation works like 'fixcl' but
generates the Content-Length header even if Content-Length has been
listed for removal
- Changes from 2.0.9:
* Bugfixes
* fixed mod_proxy_uwsgi for non-blocking mode (many thanks to Joe cuchac)
* fixed master-fifo + cheaper
* fixed leak on error in bind_to_unix (Riccardo Magliocchetti)
* 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
* various 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
(Ævar Arnfjörð Bjarmason)
* systemdlogger: fix compilation with -Werror=format-security (Riccardo
Magliocchetti)
* fixed unmasked websockets
* perl fixed latent refcounting bug (Mattia Barbon)
* New Features
* Improved PyPy support for Linux
* Fastrouter post-buffering
* Perl uwsgi::opt - The psgi/perl plugin exposes the uwsgi::opt hash,
reporting the whole instance key-value configuration
* --pull-header - This is like --collect-header but the collected header
is not returned to the client
* active-workers signal target - This is like the 'workers' target, but
forward the signal only to non-cheaper workers
* httpdumb routing action - The http internal router exposes a new mode
called 'httpdumb' that does not change headers before forwarding the
request
- Changes from 2.0.8:
* Bugfixes
* 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
* --hook-post-fork - This custom hook allows you to call actions after
each fork()
* fallback to trollius for asyncio plugin
* 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
strategies:
* 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
available
* --wait-for-mountpoint <path>: suspend the uWSGI startup until a
mountpoint is available
* improved the offload api (backport from 2.1)
* Allows building plugins from remote sources as embedded
* Automatically manage HTTP_X_FORWARDED_PROTO
- Changes from 2.0.7
* Bugfixes
* 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 two memory leaks in the RPC subsystem (Riccardo Magliocchetti)
* fixed the Rados plugin's 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
* Allow calling the spooler from every CPython context
* store_delete cache2 option - The store_delete flag of the --cache2
option allows you to force the cache engine to automatically remove
invalid backing store files instead of steadfastly refusing to launch
* file logger rotation
* Vassal plugin hooks
* 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 busy
* Tue Jul 01 2014 jfunk@funktronics.ca
- Update to 2.0.6:
* Bugfixes
* 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 (thanks
Matthijs Kooijman)
* remove the old FIFO socket from the event queue when recreating it
(thanks Marko Tiikkaja)
* New features
* The new Rados plugins. The rados plugin has been improved and
stabilized, and now it is considered usable in production.
* --if-hostname. This is a configuration logic for including options only
when the specified hostname matches
* 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
* 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 instance
* --fastrouter-fallback-on-no-key. 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
* 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()
- Changes from 2.0.5:
* Bugfixes
* fixed support for repeated headers in lua plugin (Credits: tizoc)
* fixed support for embedding config in OpenBSD and NetBSD
* various fixes in the curl-based plugins (Credits: Yu Zhao)
* fixed milliseconds-based waits
* fixed sharedarea poller
* fixed stats server json escaper
* fixed fastcgi parser and implemented eof management (Credits: Jeff
Trawick)
* improved fast on-demand mode
* exclude avg_rt computation for static files
* fixed variables support in uwsgi internal router
* fixed websockets + keepalive ordering
* disable SIGPIPE management in corutines-based loop-engines
* fixed 64bit sharedarea management in 32bit systems
* honour chmod/chown-socket in fd0 mode
* hack for avoiding Safari iOS to make mess with keepalive
* fixed log setup when both --logto and --log2 (Credits: ?ukasz
Mierzwa)
* fixed mule_get_msg EAGAIN
* signal_pidfile returns the right error code
* fixed asyncio on OSX
* New features
* graceful reload of mule processes (Credits: Paul Egan). SIGHUP is now
sent to mules instead of directly killing them
* return routing action (Credits: Yu Zhao). The new action will allow
users to write simplified "break" clause
* --emperor-no-blacklist. This new option, completely disables the
blacklisting Emperor subsystem
* Icecast2 protocol helpers
* --metrics-no-cores, --stats-no-cores, --stats-no-metrics. When you have
hundreds (or thousands) of async cores, exposing metrics of them could
be really slow. Three new options have been added allowing you to
disable the generation of core-related metrics and (eventually) their
usage in the stats server
* sharedarea improvements. The sharedarea api continues to improve. Latest
patches include support for mmapping device directly from the command
line
* UWSGI_GO_CHEAP_CODE. This exit code (15) can be raised by a worker to
tell the master to not respawn it
* PROXY1 support for the http router (Credits: bgglenn). The option
- -http-enable-proxy-protocol allows the HTTP router to understand PROXY1
protocol requests (like the ones made by haproxy or amazon elb)
* reset_after_push for metrics (Credits: Babacar Tall). This metric
attribute ensure that the matric value is reset to 0 (or its hardcoded
initial_value) evry time the metric is pushed to some external system
(like carbon, or statsd)
* setremoteaddr. This routing action allows you to completely override the
REMOTE_ADDR detected by protocol handlers
* The resolve option. There are uWSGI options (or plugins) that do not
automatically resolves dns name to ip addresses. This option allows you
to map a placeholder to the dns resolution of a string
- Changes from 2.0.4:
* Bugfixes
* fixed "mime" 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 (?ukasz Mierzwa)
* 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
* 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.
Credits: ?ukasz Mierzwa
* Allow disabling cache warnings in --cache2. Author: ?ukasz Mierzwai.
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
* 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.
These two routing actions (embedded in the core) allow you to
dynamically 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.
- Added Python 3 plugin
- Added rcuwsgi link