Re: Nginx не собирается с OpenSSL 1.1.0c на Windows
Maxim Dounin
mdounin на mdounin.ru
Ср Дек 14 16:32:30 UTC 2016
Hello!
On Tue, Dec 13, 2016 at 05:29:48PM -0500, sofiamay wrote:
> Nginx не собирается с OpenSSL 1.1.0c на Windows, вот последние строки лога:
Да, всё так. В OpenSSL 1.1.x поменяли процедуру сборки и имена
библиотек под Windows, и nginx этого ещё не умеет. У меня лежат
предварительные патчи про это, но когда я доберусь их
доделать/закоммитить - неизвестно.
Если хочется поиграться, то вот версия патча по состоянию на
OpenSSL 1.1.0:
# HG changeset patch
# User Maxim Dounin <mdounin at mdounin.ru>
# Date 1481732611 -10800
# Wed Dec 14 19:23:31 2016 +0300
# Node ID a445bb89efa28d808d9ed58c5b9491d3f1e02343
# Parent 32714e60862997a2b5e88887cd5f20d1d28d694b
Win32: compatiblity with OpenSSL 1.1.0.
OpenSSL 1.1.0 now uses normal "nmake; nmake install" instead of using
custom "ms\do_ms.bat" script and "ms\nt.mak" makefile. And Configure
now requires --prefix to be absolute, and no longer derives --openssldir
from prefix (so it's specified explicitly). Generated libraries are now
called "libcrypto.lib" and "libssl.lib" instead of "libeay32.lib"
and "ssleay32.lib".
Additionally, compilation fails due to "warning C4090: 'function' : different
'const' qualifiers" in openssl/lhash.h.
diff -r 32714e608629 -r a445bb89efa2 auto/lib/openssl/conf
--- a/auto/lib/openssl/conf Tue Dec 13 00:49:44 2016 +0100
+++ b/auto/lib/openssl/conf Wed Dec 14 19:23:31 2016 +0300
@@ -15,8 +15,16 @@ if [ $OPENSSL != NONE ]; then
CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h"
- CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
- CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
+
+ if [ -f $OPENSSL/ms/do_ms ]; then
+ # before OpenSSL 1.1.0
+ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
+ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
+ else
+ # OpenSSL 1.1.0+
+ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib"
+ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib"
+ fi
# libeay32.lib requires gdi32.lib
CORE_LIBS="$CORE_LIBS gdi32.lib"
diff -r 32714e608629 -r a445bb89efa2 auto/lib/openssl/makefile.msvc
--- a/auto/lib/openssl/makefile.msvc Tue Dec 13 00:49:44 2016 +0100
+++ b/auto/lib/openssl/makefile.msvc Wed Dec 14 19:23:31 2016 +0300
@@ -6,9 +6,16 @@
all:
cd $(OPENSSL)
- perl Configure VC-WIN32 no-shared --prefix=openssl $(OPENSSL_OPT)
+ perl Configure VC-WIN32 no-shared \
+ --prefix="%cd%/openssl" \
+ --openssldir="%cd%/openssl/ssl" \
+ $(OPENSSL_OPT)
- ms\do_ms
-
- $(MAKE) -f ms\nt.mak
- $(MAKE) -f ms\nt.mak install
+ if exist ms\do_ms ( \
+ ms\do_ms \
+ && $(MAKE) -f ms\nt.mak \
+ && $(MAKE) -f ms\nt.mak install \
+ ) else ( \
+ $(MAKE) \
+ && $(MAKE) install_sw \
+ )
diff -r 32714e608629 -r a445bb89efa2 misc/GNUmakefile
--- a/misc/GNUmakefile Tue Dec 13 00:49:44 2016 +0100
+++ b/misc/GNUmakefile Wed Dec 14 19:23:31 2016 +0300
@@ -5,7 +5,7 @@ NGINX = nginx-$(VER)
TEMP = tmp
OBJS = objs.msvc8
-OPENSSL = openssl-1.0.2j
+OPENSSL = openssl-1.1.0c
ZLIB = zlib-1.2.8
PCRE = pcre-8.39
diff -r 32714e608629 -r a445bb89efa2 src/os/win32/ngx_win32_config.h
--- a/src/os/win32/ngx_win32_config.h Tue Dec 13 00:49:44 2016 +0100
+++ b/src/os/win32/ngx_win32_config.h Wed Dec 14 19:23:31 2016 +0300
@@ -87,6 +87,9 @@ typedef long time_t;
/* 'type cast': from data pointer to function pointer */
#pragma warning(disable:4055)
+/* 'function' : different 'const' qualifiers */
+#pragma warning(disable:4090)
+
/* unreferenced formal parameter */
#pragma warning(disable:4100)
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru