diff --git a/t/help.txt b/t/help.txt new file mode 100644 index 0000000..51c44e6 --- /dev/null +++ b/t/help.txt @@ -0,0 +1,149 @@ + --help this message + + --prefix=PATH set the installation prefix + + --with-debug enable the debugging logging and also enable -O0 + + --without-http_echo_module disable ngx_http_echo_module + --without-http_xss_module disable ngx_http_xss_module + --without-http_form_input_module disable ngx_http_form_input_module + --without-http_encrypted_session_module + disable ngx_http_encrypted_session_module + --without-http_drizzle_module disable ngx_http_drizzle_module + --without-http_lua_module disable ngx_http_lua_module + --without-http_headers_more_module disable ngx_http_headers_more_module + --without-http_srcache_module disable ngx_http_srcache_module + --without-http_array_var_module disable ngx_http_array_var_module + --without-http_memc_module disable ngx_http_memc_module + --without-http_upstream_keepalive_module + disable ngx_http_upstream_keepalive_module + --without-http_auth_request_module disable ngx_http_auth_request_module + --without-http_rds_json_module disable ngx_http_rds_json_module + --without-ngx_devel_kit_module disable ngx_devel_kit_module + --without-http_ssl_module disable ngx_http_ssl_module + + --with-http_iconv_module enable ngx_http_iconv_module + --with-http_postgres_module enable ngx_http_postgres_module + --with-luajit enable LuaJIT 2.0 + +Options directly inherited from nginx + + --sbin-path=PATH set path to the nginx binary file + --conf-path=PATH set path to the nginx.conf file + --error-log-path=PATH set path to the error log + --pid-path=PATH set path to nginx.pid file + --lock-path=PATH set path to nginx.lock file + + --user=USER set non-privilege user + for the worker processes + --group=GROUP set non-privilege group + for the worker processes + + --builddir=DIR set the build directory + + --with-rtsig_module enable rtsig module + --with-select_module enable select module + --without-select_module disable select module + --with-poll_module enable poll module + --without-poll_module disable poll module + + --with-file-aio enable file aio support + --with-ipv6 enable ipv6 support + + --with-http_realip_module enable ngx_http_realip_module + --with-http_addition_module enable ngx_http_addition_module + --with-http_xslt_module enable ngx_http_xslt_module + --with-http_image_filter_module enable ngx_http_image_filter_module + --with-http_geoip_module enable ngx_http_geoip_module + --with-http_sub_module enable ngx_http_sub_module + --with-http_dav_module enable ngx_http_dav_module + --with-http_flv_module enable ngx_http_flv_module + --with-http_gzip_static_module enable ngx_http_gzip_static_module + --with-http_random_index_module enable ngx_http_random_index_module + --with-http_secure_link_module enable ngx_http_secure_link_module + --with-http_degradation_module enable ngx_http_degradation_module + --with-http_stub_status_module enable ngx_http_stub_status_module + + --without-http_charset_module disable ngx_http_charset_module + --without-http_gzip_module disable ngx_http_gzip_module + --without-http_ssi_module disable ngx_http_ssi_module + --without-http_userid_module disable ngx_http_userid_module + --without-http_access_module disable ngx_http_access_module + --without-http_auth_basic_module disable ngx_http_auth_basic_module + --without-http_autoindex_module disable ngx_http_autoindex_module + --without-http_geo_module disable ngx_http_geo_module + --without-http_map_module disable ngx_http_map_module + --without-http_split_clients_module disable ngx_http_split_clients_module + --without-http_referer_module disable ngx_http_referer_module + --without-http_rewrite_module disable ngx_http_rewrite_module + --without-http_proxy_module disable ngx_http_proxy_module + --without-http_fastcgi_module disable ngx_http_fastcgi_module + --without-http_uwsgi_module disable ngx_http_uwsgi_module + --without-http_scgi_module disable ngx_http_scgi_module + --without-http_memcached_module disable ngx_http_memcached_module + --without-http_limit_zone_module disable ngx_http_limit_zone_module + --without-http_limit_req_module disable ngx_http_limit_req_module + --without-http_empty_gif_module disable ngx_http_empty_gif_module + --without-http_browser_module disable ngx_http_browser_module + --without-http_upstream_ip_hash_module + disable ngx_http_upstream_ip_hash_module + + --with-http_perl_module enable ngx_http_perl_module + --with-perl_modules_path=PATH set path to the perl modules + --with-perl=PATH set path to the perl binary + + --http-log-path=PATH set path to the http access log + --http-client-body-temp-path=PATH set path to the http client request body + temporary files + --http-proxy-temp-path=PATH set path to the http proxy temporary files + --http-fastcgi-temp-path=PATH set path to the http fastcgi temporary + files + --http-uwsgi-temp-path=PATH set path to the http uwsgi temporary files + --http-scgi-temp-path=PATH set path to the http scgi temporary files + + --without-http disable HTTP server + --without-http-cache disable HTTP cache + + --with-mail enable POP3/IMAP4/SMTP proxy module + --with-mail_ssl_module enable ngx_mail_ssl_module + --without-mail_pop3_module disable ngx_mail_pop3_module + --without-mail_imap_module disable ngx_mail_imap_module + --without-mail_smtp_module disable ngx_mail_smtp_module + + --with-google_perftools_module enable ngx_google_perftools_module + --with-cpp_test_module enable ngx_cpp_test_module + + --add-module=PATH enable an external module + + --with-cc=PATH set path to C compiler + --with-cpp=PATH set path to C preprocessor + --with-cc-opt=OPTIONS set additional options for C compiler + --with-ld-opt=OPTIONS set additional options for linker + --with-cpu-opt=CPU build for specified CPU, the valid values: + pentium, pentiumpro, pentium3, pentium4, + athlon, opteron, sparc32, sparc64, ppc64 + + --without-pcre disable PCRE library usage + --with-pcre force PCRE library usage + --with-pcre=DIR set path to PCRE library sources + --with-pcre-opt=OPTIONS set additional options for PCRE building + + --with-md5=DIR set path to md5 library sources + --with-md5-opt=OPTIONS set additional options for md5 building + --with-md5-asm use md5 assembler sources + + --with-sha1=DIR set path to sha1 library sources + --with-sha1-opt=OPTIONS set additional options for sha1 building + --with-sha1-asm use sha1 assembler sources + + --with-zlib=DIR set path to zlib library sources + --with-zlib-opt=OPTIONS set additional options for zlib building + --with-zlib-asm=CPU use zlib assembler sources optimized + for specified CPU, the valid values: + pentium, pentiumpro + + --with-libatomic force libatomic_ops library usage + --with-libatomic=DIR set path to libatomic_ops library sources + + --with-openssl=DIR set path to OpenSSL library sources + --with-openssl-opt=OPTIONS set additional options for OpenSSL building diff --git a/t/sanity.t b/t/sanity.t new file mode 100644 index 0000000..003c069 --- /dev/null +++ b/t/sanity.t @@ -0,0 +1,40 @@ +use strict; +use warnings; + +use Test::More tests => 1; +use Test::Differences; + +sub shell (@); +sub cd ($); + +my $ver = `bash util/ver`; +chomp $ver; + +shell "make"; + +cd "ngx_openresty-$ver"; +shell "./configure --help > help.txt"; + +open my $in, "help.txt" or + die "Cannot open help.txt for reading: $!\n"; +my $got = do { local $/; <$in> }; +close $in; + +open $in, "../t/help.txt" or + die "Cannot open ../t/help.txt for reading: $!\n"; +my $expected = do { local $/; <$in> }; +close $in; + +eq_or_diff $got, $expected, "--help ok"; + +sub shell (@) { + print "@_\n"; + system(@_) == 0 or die "failed to run command @_\n"; +} + +sub cd ($) { + my $dir = shift; + print("cd $dir\n"); + chdir $dir or die "failed to cd $dir: $!\n"; +} + diff --git a/util/configure b/util/configure index b0f34ec..5ac086f 100755 --- a/util/configure +++ b/util/configure @@ -11,8 +11,6 @@ sub cd ($); sub auto_complete ($); sub usage ($); -cd "bundle"; - my @modules = ( [http_iconv => 'iconv-nginx-module', 'disabled'], [http_echo => 'echo-nginx-module'], @@ -62,9 +60,6 @@ my $with_resty_mods_regex; $with_resty_mods_regex = qr/$s/; } - -cd ".."; - my $prefix = '/usr/local/openresty'; my %resty_opts; @@ -121,12 +116,18 @@ cd $ngx_dir; my $ngx_prefix = "$prefix/nginx"; -shell "./configure --prefix=$ngx_prefix" +my $cmd = "./configure --prefix=$ngx_prefix" . " --with-ld-opt='-Wl,-rpath=$ngx_prefix/lib'" . build_resty_opts(\%resty_opts) . " " . join(" ", @ngx_opts); ; +warn $cmd; + +exit 0; + +shell $cmd; + sub shell (@) { print "@_\n"; system(@_) == 0 or die "failed to run command @_\n"; @@ -193,28 +194,59 @@ sub usage ($) { --with-debug enable the debugging logging and also enable -O0 - --without-http_iconv_module disable ngx_http_iconv_module - --without-http_echo_module disable ngx_http_echo_module - --without-http_xss_module disable ngx_http_xss_module - --without-http_set_misc_module disable ngx_http_set_misc_module - --without-http_form_input_module disable ngx_http_form_input_module - --without-http_encrypted_session_module - disable ngx_http_encrypted_session_module - --without-http_drizzle_module disable ngx_http_drizzle_module - --without-http_lua_module disable ngx_http_lua_module - --without-http_headers_more_module disable ngx_http_headers_more_module - --without-http_srcache_module disable ngx_http_srcache_module - --without-http_array_var_module disable ngx_http_array_var_module - --without-http_memc_module disable ngx_http_memc_module - --without-http_upstream_keepalive_module - disable ngx_http_upstream_keepalive_module - --without-http_memc_module disable ngx_http_auth_request_module - --without-http_rds_json_module disable ngx_http_rds_json_module - --without-http_lz_st_module disable ngx_http_lz_st_module +_EOC_ + + my $opt_max_len = length " --without-ngx_devel_kit_module "; + + #warn "opt max len: $opt_max_len"; + + my $with_resty_opts = ''; + + for my $mod (@modules) { + my $name = $mod->[0]; + if ($name =~ /^http_/) { + if (@$mod == 2) { + my $opt = " --without-${name}_module"; + $msg .= $opt; + + my $n = $opt_max_len - length $opt; + + if ($n > 0) { + $msg .= " " x $n; + + } else { + $msg .= "\n" . (" " x $opt_max_len); + } + + $msg .= "disable ngx_${name}_module\n"; + + } else { + my $opt = " --with-${name}_module"; + $with_resty_opts .= $opt; + + my $n = $opt_max_len - length $opt; + + if ($n > 0) { + $with_resty_opts .= " " x $n; + + } else { + $with_resty_opts .= "\n" . (" " x $opt_max_len); + } + + $with_resty_opts .= "enable ngx_${name}_module\n"; + } + } + } + + $msg .= <<'_EOC_'; --without-ngx_devel_kit_module disable ngx_devel_kit_module --without-http_ssl_module disable ngx_http_ssl_module - --with-http_postgres_module enable ngx_http_postgres_module +_EOC_ + + $msg .= $with_resty_opts; + + $msg .= <<'_EOC_'; --with-luajit enable LuaJIT 2.0 Options directly inherited from nginx diff --git a/util/mirror-tarballs b/util/mirror-tarballs index 1018de5..e9c205b 100755 --- a/util/mirror-tarballs +++ b/util/mirror-tarballs @@ -3,9 +3,9 @@ root=$(readlink -f -- "$(dirname -- "$0")/..") debug= -main_ver=0.8.54 -minor_ver=0 -version=$main_ver.$minor_ver + +. util/ver + name=ngx_openresty-$version work=$root/work diff --git a/util/ver b/util/ver new file mode 100755 index 0000000..4d30c1a --- /dev/null +++ b/util/ver @@ -0,0 +1,7 @@ +#!/bin/bash + +main_ver=0.8.54 +minor_ver=0 +version=$main_ver.$minor_ver +echo $version +