diff --git a/.hgtags b/.hgtags index fb66dc21..3e63157a 100644 --- a/.hgtags +++ b/.hgtags @@ -13,3 +13,4 @@ ef31fc61ac48018c464f28ebfdf865b96bf83f18 0.9.6.2 ff4111eb8f55b958ec91c70163e10f3372a9b94d 0.9.7-rc1 eb8aff2926230bb114fb90f67203440a2c534bf1 0.9.7-rc2 311eef929ec8fd0a5dc8c16531afb7bb42d36d01 0.9.7-rc3 +4b50c04e414f1d9ab8b0b5910aba83d09ac21abb 0.9.7 diff --git a/ChangeLog b/ChangeLog index 7b45bade..288fb80d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,17 @@ *** march 2011 *** + * 0.9.7 [20110317] + +- fixed psgi compilation on GNU systems +- improved --pep3333-input +- better error reporting on failed open/fopen +- fixed uGreen +- added greenlet support +- various solaris fixes +- new help system +- updated async support +- fixed uwsgi.cache_get in python + * 0.9.7-rc3 [20110312] - added support for persistent cache (--cache-store ) diff --git a/buildconf/package.ini b/buildconf/package.ini new file mode 100644 index 00000000..9f936a7b --- /dev/null +++ b/buildconf/package.ini @@ -0,0 +1,4 @@ +[uwsgi] +inherit = default +plugin_dir = /usr/lib/uwsgi +embedded_plugins = null diff --git a/plugins/http/http.c b/plugins/http/http.c index dafa41a3..b029e351 100644 --- a/plugins/http/http.c +++ b/plugins/http/http.c @@ -879,6 +879,11 @@ int http_init() { return 0; } + +struct uwsgi_help_item http_help[] = { + { "http-to ", "forward http requests to uwsgi instance bound at "}, + { 0, 0 } +}; int http_opt(int i, char *optarg) { @@ -931,6 +936,7 @@ struct uwsgi_plugin http_plugin = { .options = http_options, .manage_opt = http_opt, + .help = http_help, .init = http_init, }; diff --git a/plugins/python/python_plugin.c b/plugins/python/python_plugin.c index 9564281e..ff8871c2 100644 --- a/plugins/python/python_plugin.c +++ b/plugins/python/python_plugin.c @@ -40,6 +40,9 @@ struct uwsgi_help_item uwsgi_python_help[] = { {"module " ,"name of python config module"}, {"optimize ", "set python optimization level to "}, {"home ", "set python home/virtualenv"}, +{"pyhome ", "set python home/virtualenv"}, +{"virtualenv ", "set python home/virtualenv"}, +{"venv ", "set python home/virtualenv"}, {"callable ", "set the callable (default 'application')"}, {"paste ", "load applications using paste.deploy.loadapp()"}, {"pythonpath ", "add to PYTHONPATH"}, diff --git a/setup.py b/setup.py index 902ab56f..1b4b1ba6 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,7 @@ class uWSGIDistribution(Distribution): setup(name='uWSGI', - version='0.9.7-dev', + version='0.9.7', description='The uWSGI server', author='Unbit', author_email='info@unbit.it', diff --git a/uwsgi.c b/uwsgi.c index f1c4bd81..92e4e7ac 100644 --- a/uwsgi.c +++ b/uwsgi.c @@ -52,6 +52,7 @@ static struct option long_base_options[] = { {"cgi-mode", no_argument, 0, 'c'}, {"abstract-socket", no_argument, 0, 'a'}, {"chmod-socket", optional_argument, 0, 'C'}, + {"chmod", optional_argument, 0, 'C'}, #ifdef UWSGI_THREADING {"enable-threads", no_argument, 0, 'T'}, #endif @@ -823,9 +824,10 @@ int main(int argc, char *argv[], char *envp[]) if (uwsgi.dump_options) { struct option *lopt = uwsgi.long_options; while(lopt->name) { - uwsgi_log("--%s\n", lopt->name); + fprintf(stdout, "%s\n", lopt->name); lopt++; } + exit(0); } if (uwsgi.show_config) { @@ -2995,11 +2997,14 @@ struct uwsgi_help_item main_help[] = { {"disable-logging", "disable request logging (only errors or server messages will be logged)"}, {"xmlconfig ", "path of xml config file"}, {"harakiri ", "set harakiri timeout to seconds"}, +{"harakiri-verbose", "report additional info during harakiri"}, {"processes ", "spawn uwsgi worker processes"}, +{"workers ", "spawn uwsgi worker processes"}, {"max-vars ", "set maximum number of vars/headers to "}, {"sharedarea ", "create a shared memory area of pages"}, {"cgi-mode", "set cgi mode"}, {"chmod-socket[=NNN]", "chmod socket to 666 or NNN"}, +{"chmod[=NNN]", "chmod socket to 666 or NNN"}, {"memory-report", "enable memory usage report"}, {"single-interpreter", "single interpreter mode"}, {"abstract-socket", "set socket in the abstract namespace (Linux only)"}, @@ -3027,7 +3032,7 @@ struct uwsgi_help_item main_help[] = { {"no-orphans", "automatically kill workers on master's dead"}, {"udp ", "bind master process to udp socket on ip:port"}, {"multicast ", "set multicast group"}, -{"snmp", "enable SNMP support in the UDP server"}, +{"snmp[=]", "enable SNMP support in the UDP server or bind it to "}, {"snmp-community ", "set SNMP community code to "}, {"erlang ", "enable the Erlang server with node name "}, {"erlang-cookie ", "set the erlang cookie to "}, @@ -3037,6 +3042,7 @@ struct uwsgi_help_item main_help[] = { {"proxy-node ", "add the node to the proxy"}, {"proxy-max-connections ", "set the max number of concurrent connections mnaged by the proxy"}, {"async ", "enable async mode with n core"}, +{"threads ", "spawn threads core"}, {"logto ", "log to file/udp"}, {"logdate", "add timestamp to loglines"}, {"log-zero", "log requests with 0 response size"}, @@ -3056,6 +3062,7 @@ struct uwsgi_help_item main_help[] = { {"ugreen-stacksize ", "set uGreen stacksize to "}, {"no-site", "do not import site.py on startup"}, {"vhost", "enable virtual hosting"}, +{"vhost-host", "use the Host header as the key for virtual hosting"}, {"mount MOUNTPOINT=app", "add a new app under MOUNTPOINT"}, {"routing", "enable uWSGI advanced routing"}, {"http ", "start embedded HTTP server on "}, @@ -3070,6 +3077,7 @@ struct uwsgi_help_item main_help[] = { {"cgroup ", "run the server in cgroup (Linux only)"}, {"cgroup-opt KEY=VAL", "set cgroup option (Linux only)"}, {"version", "print server version"}, +{"attach-daemon ", "run under the control of master process"}, {"daemonize ", "daemonize and log into or udp "}, { 0, 0 }, @@ -3148,6 +3156,7 @@ void uwsgi_help(void) { tmp_option = uwsgi_concat2(uhi->key, ""); space = strchr(tmp_option, ' '); + if (!space) space = strstr(tmp_option, "[="); if (space) space[0] = 0; if (!strcmp(tmp_option, lopt->name)) { @@ -3167,6 +3176,7 @@ void uwsgi_help(void) { if (uhi->key == 0) break; tmp_option = uwsgi_concat2(uhi->key, ""); space = strchr(tmp_option, ' '); + if (!space) space = strstr(tmp_option, "[="); if (space) space[0] = 0; if (!strcmp(tmp_option, lopt->name)) { @@ -3190,6 +3200,7 @@ void uwsgi_help(void) { if (uhi->key == 0) break; tmp_option = uwsgi_concat2(uhi->key, ""); space = strchr(tmp_option, ' '); + if (!space) space = strstr(tmp_option, "[="); if (space) space[0] = 0; if (!strcmp(tmp_option, lopt->name)) { diff --git a/uwsgi.h b/uwsgi.h index aaf338c1..feca046e 100644 --- a/uwsgi.h +++ b/uwsgi.h @@ -2,7 +2,7 @@ /* indent -i8 -br -brs -brf -l0 -npsl -nip -npcs -npsl -di1 */ -#define UWSGI_VERSION "0.9.7-dev" +#define UWSGI_VERSION "0.9.7" #define UMAX16 65536