diff options
author | Alexander Borisov <alexander.borisov@nginx.com> | 2018-04-04 18:53:39 +0300 |
---|---|---|
committer | Alexander Borisov <alexander.borisov@nginx.com> | 2018-04-04 18:53:39 +0300 |
commit | 49bd3a21e0f995c895b445c0566227661418c2bc (patch) | |
tree | 1822ad6a45f285ba1db652eec99949a128d39c15 | |
parent | 0665896a5593fb41c92cbf164182a058ee40518c (diff) | |
download | unit-49bd3a21e0f995c895b445c0566227661418c2bc.tar.gz unit-49bd3a21e0f995c895b445c0566227661418c2bc.tar.bz2 |
Changed version processing for modules.
-rw-r--r-- | auto/modules/perl | 19 | ||||
-rw-r--r-- | auto/modules/php | 18 | ||||
-rw-r--r-- | auto/modules/python | 2 | ||||
-rw-r--r-- | auto/modules/ruby | 19 | ||||
-rw-r--r-- | src/nxt_application.c | 18 | ||||
-rw-r--r-- | src/nxt_application.h | 2 | ||||
-rw-r--r-- | src/nxt_go.c | 2 | ||||
-rw-r--r-- | src/nxt_php_sapi.c | 2 | ||||
-rw-r--r-- | src/nxt_python_wsgi.c | 2 | ||||
-rw-r--r-- | src/perl/nxt_perl_psgi.c | 2 | ||||
-rw-r--r-- | src/ruby/nxt_ruby.c | 2 |
11 files changed, 68 insertions, 20 deletions
diff --git a/auto/modules/perl b/auto/modules/perl index 85dc7307..ecc356c0 100644 --- a/auto/modules/perl +++ b/auto/modules/perl @@ -121,8 +121,23 @@ if [ $nxt_found = no ]; then exit 1; fi -NXT_PERL_VERSION=`$NXT_PERL -MConfig -e 'print $Config{version}'` -$echo " + Perl version: ${NXT_PERL_VERSION}" + +nxt_feature="Perl version" +nxt_feature_name="" +nxt_feature_run=value +nxt_feature_incs="${NXT_PERL_INCLUDE}" +nxt_feature_libs="${NXT_PERL_LIBS}" +nxt_feature_test=" + #include <EXTERN.h> + #include <perl.h> + + int main() { + printf(\"%s\", PERL_VERSION_STRING); + return 0; + }" + +. auto/feature + if grep ^$NXT_PERL_MODULE: $NXT_MAKEFILE 2>&1 > /dev/null; then $echo diff --git a/auto/modules/php b/auto/modules/php index 6ca17b06..e022cf2a 100644 --- a/auto/modules/php +++ b/auto/modules/php @@ -73,7 +73,6 @@ if /bin/sh -c "${NXT_PHP_CONFIG} --version" >> $NXT_AUTOCONF_ERR 2>&1; then $echo " found" NXT_PHP_VERSION="`${NXT_PHP_CONFIG} --version`" - $echo " + PHP version: ${NXT_PHP_VERSION}" $echo " + PHP SAPI: [`${NXT_PHP_CONFIG} --php-sapis`]" NXT_PHP_INCLUDE="`${NXT_PHP_CONFIG} --includes`" @@ -130,6 +129,23 @@ else exit 1; fi + +nxt_feature="PHP version" +nxt_feature_name="" +nxt_feature_run=value +nxt_feature_incs="${NXT_PHP_INCLUDE}" +nxt_feature_libs="${NXT_PHP_LIB} ${NXT_PHP_LDFLAGS}" +nxt_feature_test=" + #include <php.h> + + int main() { + printf(\"%s\", PHP_VERSION); + return 0; + }" + +. auto/feature + + if grep ^$NXT_PHP_MODULE: $NXT_MAKEFILE 2>&1 > /dev/null; then $echo $echo $0: error: duplicate \"$NXT_PHP_MODULE\" module configured. diff --git a/auto/modules/python b/auto/modules/python index ff012f08..57b50f89 100644 --- a/auto/modules/python +++ b/auto/modules/python @@ -111,7 +111,7 @@ nxt_feature_test=" #include <stdio.h> int main() { - printf("PY_VERSION"); + printf(\"%s\", PY_VERSION); return 0; }" diff --git a/auto/modules/ruby b/auto/modules/ruby index 8c5dec0f..99efc449 100644 --- a/auto/modules/ruby +++ b/auto/modules/ruby @@ -91,8 +91,23 @@ if [ $nxt_found = no ]; then exit 1; fi -NXT_RUBY_VERSION=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["RUBY_PROGRAM_VERSION"])'` -$echo " + Ruby version: ${NXT_RUBY_VERSION}" + +nxt_feature="Ruby version" +nxt_feature_name="" +nxt_feature_run=value +nxt_feature_incs="${NXT_RUBY_INCPATH}" +nxt_feature_libs="${NXT_RUBY_LIBS}" +nxt_feature_test=" + #include <ruby.h> + #include <ruby/version.h> + + int main() { + printf(\"%s\", ruby_version); + return 0; + }" + +. auto/feature + if grep ^$NXT_RUBY_MODULE: $NXT_MAKEFILE 2>&1 > /dev/null; then $echo diff --git a/src/nxt_application.c b/src/nxt_application.c index 8ded36da..fba20985 100644 --- a/src/nxt_application.c +++ b/src/nxt_application.c @@ -180,7 +180,7 @@ nxt_discovery_module(nxt_task_t *task, nxt_mp_t *mp, nxt_array_t *modules, const char *name) { void *dl; - nxt_str_t *s; + nxt_str_t version; nxt_int_t ret; nxt_uint_t i, n; nxt_module_t *module; @@ -203,8 +203,8 @@ nxt_discovery_module(nxt_task_t *task, nxt_mp_t *mp, nxt_array_t *modules, app = dlsym(dl, "nxt_app_module"); if (app != NULL) { - nxt_log(task, NXT_LOG_NOTICE, "module: %V %V \"%s\"", - &app->type, &app->version, name); + nxt_log(task, NXT_LOG_NOTICE, "module: %V %s \"%s\"", + &app->type, app->version, name); if (app->compat_length != sizeof(compat) || nxt_memcmp(app->compat, compat, sizeof(compat)) != 0) @@ -225,15 +225,17 @@ nxt_discovery_module(nxt_task_t *task, nxt_mp_t *mp, nxt_array_t *modules, module = modules->elts; n = modules->nelts; + version.start = (u_char *) app->version; + version.length = nxt_strlen(app->version); + for (i = 0; i < n; i++) { if (type == module[i].type - && nxt_strstr_eq(&app->version, &module[i].version)) + && nxt_strstr_eq(&module[i].version, &version)) { nxt_log(task, NXT_LOG_NOTICE, "ignoring %s module with the same " "application language version %V %V as in %V", - name, &app->type, &app->version, - &module[i].file); + name, &app->type, version, &module[i].file); goto done; } @@ -246,8 +248,8 @@ nxt_discovery_module(nxt_task_t *task, nxt_mp_t *mp, nxt_array_t *modules, module->type = type; - s = nxt_str_dup(mp, &module->version, &app->version); - if (s == NULL) { + nxt_str_dup(mp, &module->version, &version); + if (module->version.start == NULL) { goto fail; } diff --git a/src/nxt_application.h b/src/nxt_application.h index c899b1c7..bdff4a62 100644 --- a/src/nxt_application.h +++ b/src/nxt_application.h @@ -216,7 +216,7 @@ struct nxt_app_module_s { uint32_t *compat; nxt_str_t type; - nxt_str_t version; + const char *version; nxt_int_t (*init)(nxt_task_t *task, nxt_common_app_conf_t *conf); diff --git a/src/nxt_go.c b/src/nxt_go.c index 709908e2..edcd5eff 100644 --- a/src/nxt_go.c +++ b/src/nxt_go.c @@ -17,7 +17,7 @@ nxt_application_module_t nxt_go_module = { 0, NULL, nxt_string("go"), - nxt_string("go"), + "*", nxt_go_init, nxt_go_run, NULL, diff --git a/src/nxt_php_sapi.c b/src/nxt_php_sapi.c index b7c68760..45260f1b 100644 --- a/src/nxt_php_sapi.c +++ b/src/nxt_php_sapi.c @@ -166,7 +166,7 @@ NXT_EXPORT nxt_application_module_t nxt_app_module = { sizeof(compat), compat, nxt_string("php"), - nxt_string(PHP_VERSION), + PHP_VERSION, nxt_php_init, nxt_php_run, NULL, diff --git a/src/nxt_python_wsgi.c b/src/nxt_python_wsgi.c index 7c24828a..7d805703 100644 --- a/src/nxt_python_wsgi.c +++ b/src/nxt_python_wsgi.c @@ -100,7 +100,7 @@ NXT_EXPORT nxt_application_module_t nxt_app_module = { sizeof(compat), compat, nxt_string("python"), - nxt_string(PY_VERSION), + PY_VERSION, nxt_python_init, nxt_python_run, nxt_python_atexit, diff --git a/src/perl/nxt_perl_psgi.c b/src/perl/nxt_perl_psgi.c index 748bcc3a..5b206cba 100644 --- a/src/perl/nxt_perl_psgi.c +++ b/src/perl/nxt_perl_psgi.c @@ -113,7 +113,7 @@ NXT_EXPORT nxt_application_module_t nxt_app_module = { sizeof(nxt_perl_psgi_compat), nxt_perl_psgi_compat, nxt_string("perl"), - nxt_string(PERL_VERSION_STRING), + PERL_VERSION_STRING, nxt_perl_psgi_init, nxt_perl_psgi_run, nxt_perl_psgi_atexit, diff --git a/src/ruby/nxt_ruby.c b/src/ruby/nxt_ruby.c index 7ae5c73d..6785d031 100644 --- a/src/ruby/nxt_ruby.c +++ b/src/ruby/nxt_ruby.c @@ -74,7 +74,7 @@ NXT_EXPORT nxt_application_module_t nxt_app_module = { sizeof(compat), compat, nxt_string("ruby"), - nxt_string(NXT_RUBY_LIB_VERSION), + ruby_version, nxt_ruby_init, nxt_ruby_run, nxt_ruby_atexit, |