Hello community, here is the log from the commit of package uwsgi for openSUSE:Factory checked in at 2013-06-13 22:48:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/uwsgi (Old) and /work/SRC/openSUSE:Factory/.uwsgi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "uwsgi" Changes: -------- --- /work/SRC/openSUSE:Factory/uwsgi/uwsgi.changes 2012-09-25 11:08:17.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.uwsgi.new/uwsgi.changes 2013-06-13 22:48:38.000000000 +0200 @@ -1,0 +2,318 @@ +Fri May 31 18:52:08 UTC 2013 - [email protected] + +- 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 - [email protected] + +- 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 <n> + * 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 ++++ 121 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/uwsgi/uwsgi.changes ++++ and /work/SRC/openSUSE:Factory/.uwsgi.new/uwsgi.changes Old: ---- uwsgi-1.2.6-plugin_build_path.patch uwsgi-1.2.6.tar.gz uwsgi.init uwsgi.sysconfig New: ---- uwsgi-1.9.11-emperor_amqp-fix-comparison.patch uwsgi-1.9.11-no-LD_RUN_PATH.patch uwsgi-1.9.11-plugin_build_path.patch uwsgi-1.9.11-systemd_logger-old_systemd.patch uwsgi-1.9.11.tar.gz uwsgi.ini uwsgi.service ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ uwsgi.spec ++++++ ++++ 889 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/uwsgi/uwsgi.spec ++++ and /work/SRC/openSUSE:Factory/.uwsgi.new/uwsgi.spec ++++++ README.openSUSE ++++++ --- /var/tmp/diff_new_pack.WBCSQm/_old 2013-06-13 22:48:39.000000000 +0200 +++ /var/tmp/diff_new_pack.WBCSQm/_new 2013-06-13 22:48:39.000000000 +0200 @@ -2,17 +2,25 @@ openSUSE uWSGI Notes ==================== +Upgrading from 1.2.6 +-------------------- + +The init script and the sysconfig file /etc/sysconfig/uwsgi are now deprecated +in favor of a systemd service and a default configuration file +/etc/uwsgi/uwsgi.ini. + Emperor Mode ------------ -The included init script runs uWSGI in Emperor mode. It will monitor the -/etc/uwsgi/vassals directory for configurations and will automatically load -and restart uWSGI processes when configuration files are placed there or -modified. Some example configurations are provided in the directory. To enable -one, rename it without the .example at the end and edit for your application. +The included uwsgi service runs uWSGI in Emperor mode by defgault. It will +monitor the /etc/uwsgi/vassals directory for configurations and will +automatically load and restart uWSGI processes when configuration files are +placed there or modified. Some example configurations are provided in the +directory. To enable one, rename it without the .example at the end and edit +for your application. For more information on Emperor mode, see -http://projects.unbit.it/uwsgi/wiki/Emperor +https://uwsgi-docs.readthedocs.org/en/latest/Emperor.html Plugins @@ -32,4 +40,3 @@ the following in the configuration: autoload = 1 - ++++++ uwsgi-1.9.11-emperor_amqp-fix-comparison.patch ++++++ --- a/plugins/emperor_amqp/amqp.c +++ b/plugins/emperor_amqp/amqp.c @@ -453,7 +453,8 @@ static int amqp_wait_connection_tune(int static char *amqp_simple_get_frame(int fd, struct amqp_frame_header *fh) { char *ptr = (char *) fh; - ssize_t len = 0, rlen; + size_t len = 0; + ssize_t rlen; while(len < 7) { rlen = recv(fd, ptr, 7-len, 0); ++++++ uwsgi-1.9.11-no-LD_RUN_PATH.patch ++++++ --- a/plugins/jvm/uwsgiplugin.py +++ b/plugins/jvm/uwsgiplugin.py @@ -59,11 +59,6 @@ if "-framework JavaVM" in JVM_LIBPATH: GCC_LIST = ['jvm_plugin'] -if 'LD_RUN_PATH' in os.environ: - os.environ['LD_RUN_PATH'] += ':' + JVM_LIBPATH[0][2:] -else: - os.environ['LD_RUN_PATH'] = JVM_LIBPATH[0][2:] - def post_build(config): if os.system("javac %s/plugins/jvm/uwsgi.java" % os.getcwd()) != 0: os._exit(1) --- a/plugins/php/uwsgiplugin.py +++ b/plugins/php/uwsgiplugin.py @@ -22,7 +22,6 @@ CFLAGS = [os.popen(PHPPATH + ' --include LDFLAGS = os.popen(PHPPATH + ' --ldflags').read().rstrip().split() if ld_run_path: LDFLAGS.append('-L%s' % ld_run_path) - os.environ['LD_RUN_PATH'] = ld_run_path LIBS = [os.popen(PHPPATH + ' --libs').read().rstrip(), '-lphp5'] --- a/plugins/python/uwsgiplugin.py +++ b/plugins/python/uwsgiplugin.py @@ -44,10 +44,8 @@ if not 'UWSGI_PYTHON_NOLIB' in os.enviro else: try: LDFLAGS.append("-L%s" % sysconfig.get_config_var('LIBDIR')) - os.environ['LD_RUN_PATH'] = "%s" % (sysconfig.get_config_var('LIBDIR')) except: LDFLAGS.append("-L%s/lib" % sysconfig.PREFIX) - os.environ['LD_RUN_PATH'] = "%s/lib" % sysconfig.PREFIX LIBS.append('-lpython%s' % get_python_version()) else: --- a/plugins/rack/uwsgiplugin.py +++ b/plugins/rack/uwsgiplugin.py @@ -44,7 +44,6 @@ LIBS = os.popen(RUBYPATH + " -e \"requir if has_shared == 'yes': LDFLAGS.append('-L' + libpath ) - os.environ['LD_RUN_PATH'] = libpath LIBS.append(os.popen(RUBYPATH + " -e \"require 'rbconfig';print '-l' + %s::CONFIG['RUBY_SO_NAME']\"" % rbconfig).read().rstrip()) else: GCC_LIST.append("%s/%s" % (libpath, os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['LIBRUBY_A']\"" % rbconfig).read().rstrip())) --- a/plugins/ruby19/uwsgiplugin.py +++ b/plugins/ruby19/uwsgiplugin.py @@ -40,6 +40,5 @@ LDFLAGS = os.popen(RUBYPATH + " -e \"req libpath = os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['libdir']\"" % rbconfig).read().rstrip() LDFLAGS.append('-L' + libpath ) -os.environ['LD_RUN_PATH'] = libpath LIBS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print '-l' + %s::CONFIG['RUBY_SO_NAME']\"" % rbconfig).read().rstrip().split() ++++++ uwsgi-1.2.6-plugin_build_path.patch -> uwsgi-1.9.11-plugin_build_path.patch ++++++ --- /work/SRC/openSUSE:Factory/uwsgi/uwsgi-1.2.6-plugin_build_path.patch 2012-09-11 17:17:52.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.uwsgi.new/uwsgi-1.9.11-plugin_build_path.patch 2013-06-13 22:48:38.000000000 +0200 @@ -1,10 +1,13 @@ --- a/uwsgiconfig.py +++ b/uwsgiconfig.py -@@ -902,7 +902,7 @@ def build_plugin(path, uc, cflags, ldfla +@@ -1128,10 +1128,7 @@ def build_plugin(path, uc, cflags, ldfla except: pass -- plugin_dest = uc.get('plugin_dir') + '/' + name + '_plugin' +- if uc: +- plugin_dest = uc.get('plugin_dir') + '/' + name + '_plugin' +- else: +- plugin_dest = name + '_plugin' + plugin_dest = name + '_plugin' shared_flag = '-shared' ++++++ uwsgi-1.9.11-systemd_logger-old_systemd.patch ++++++ --- a/plugins/systemd_logger/systemd_logger.c +++ b/plugins/systemd_logger/systemd_logger.c @@ -1,5 +1,6 @@ #include "../../uwsgi.h" +#include <syslog.h> #include <systemd/sd-journal.h> ssize_t uwsgi_systemd_logger(struct uwsgi_logger *ul, char *message, size_t len) { ++++++ uwsgi-1.2.6.tar.gz -> uwsgi-1.9.11.tar.gz ++++++ ++++ 123171 lines of diff (skipped) ++++++ uwsgi.ini ++++++ [uwsgi] # Directory containing application configs emperor = /etc/uwsgi/vassals ++++++ uwsgi.service ++++++ [Unit] Description=Application Container Server for Networked/Clustered Web Applications [Service] ExecStart=/usr/sbin/uwsgi --autoload --ini /etc/uwsgi/uwsgi.ini Restart=always Type=notify NotifyAccess=all [Install] WantedBy=multi-user.target -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
