Configure: rebuild perl module nginx.so if headers are changed.
Note: the "-p" argument of cp(1) dropped intentionally, to force nginx.so
rebuild. It is considered too boring to properly list all dependencies
in Makefile.PL.
*) Configure: fixed style of include directories.
*) Configure: fixed GeoIP library detection.
*) GeoIP: IPv6 support. When using IPv6 databases, IPv4 addresses are
looked up as IPv4-mapped IPv6 addresses. Mostly based on a patch
by Gregor Kališnik (ticket #250).
*) GeoIP: removed pseudo-support of "proxy" and "netspeed" databases.
*) Access log: fixed redundant buffer reallocation. Previously a new
buffer was allocated for every "access_log" directive with the same
file path and "buffer=" parameters, while only one buffer per file
is used.
*) Reopening log files code moved to a separate function. The code
refactored in a way to call custom handler that can do appropriate
cleanup work (if any), like flushing buffers, finishing compress
streams, finalizing connections to log daemon, etc..
*) Access log: the "flush" parameter of the "access_log" directive.
*) Configure: added the NGX_ZLIB define. This was introduced for
conditional compilation of the code that requires the zlib library.
*) Access log: the "gzip" parameter of the "access_log" directive.
Note: this requires zlib version 1.2.0.4 or above to work.
*) The data pointer in ngx_open_file_t objects must be initialized.
Uninitialized pointer may result in arbitrary segfaults if access_log
is used without buffer and without variables in file path.
Patch by Tatsuhiko Kubo (ticket #268).
On Mac OS X system toolchain by default prefers include files
from /usr/local/include, but libraries from /usr/lib. This might result in
various problems, in particular the one outlined below.
If the PCRE library is installed into /usr/local/, this results in pcre.h
being used from /usr/local/include (with PCRE_CONFIG_JIT defined), but
libpcre from /usr/lib (as shipped with the OS, without pcre_free_study()
symbol). As a result build fails as we use pcre_free_study() function
if we try to compile with PCRE JIT support.
Obvious workaround to the root cause is to ask compiler to prefer
library from /usr/local/lib via ./configure --with-ld-opt="-L/usr/local/lib".
On the other hand, in any case it would be good to check if the function
we are going to use is available, hence the change.
See thread here for details:
http://mailman.nginx.org/pipermail/nginx-devel/2012-December/003074.html
Prodded by Piotr Sikora.
*) Configure: help updated to list upstream keepalive and least_conn.
Patch by Joshua Zhu.
*) Configure: additional test for ExtUtils::Embed perl module presence.
Now perl configure will correctly fail if ExtUtils::Embed perl module
is not present in the system (found on Amazon Linux AMI, as of
release 2012.03).
Configure: fixed make macros to use parentheses instead of braces.
Parentheses are more portable, in particular they are understood by
nmake while braces aren't.
*) Fixed build with Visual Studio 2005 Express.
It is available via winetricks which makes it still usable, and has
an old crtdefs.h which uses _CRT_SECURE_NO_DEPRECATE instead of
_CRT_SECURE_NO_WARNINGS to suppress warnings.
Reported by HAYASHI Kentaro,
http://mailman.nginx.org/pipermail/nginx-devel/2012-August/002542.html
*) Configure: provide inflate() when building zlib on win32.
*) Helper target "win32" to run configure for win32 builds.
*) Updated zlib used for win32 builds.
*) Fixed spelling of "endianness", and called it "byte ordering" in the
user visible part.
*) Fixed return type of ngx_strerror_init().
*) Fixed a harmless error in spelling of "Connection: close" when computing
the response header length.
*) Style.
*) Added code to look up Google perftools in /opt/local/, for MacPorts.
options as --with-zlib=../zlib-1.2.3. It seems there is no common way
to learn the current directory in Win32 make's: although nmake has MAKEDIR
variable, nevertheless Borland make's MAKEDIR is the directory where make
is installed, and OpenWatcom wmake has no MAKEDIR at all.
this fixes wrong linking with /usr/local/lib/libmd5.so from libwww package
on FreeBSD. The library uses long's instead of int32_t's in MD5_CTX
and on 64-bit platforms its MD5_CTX is bigger than defined in <md5.h>