Welcome! Log In Create A New Profile

Advanced

Re: Nginx не собирается с OpenSSL 1.1.0c на Windows

Maxim Dounin
December 14, 2016 11:34AM
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@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 mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Nginx не собирается с OpenSSL 1.1.0c на Windows

sofiamay December 13, 2016 05:29PM

Re: Nginx не собирается с OpenSSL 1.1.0c на Windows

Maxim Dounin December 14, 2016 11:34AM

Re: Nginx не собирается с OpenSSL 1.1.0c на Windows

sofiamay December 14, 2016 04:12PM

Re: Nginx не собирается с OpenSSL 1.1.0c на Windows

sofiamay December 14, 2016 07:36PM

Re: Nginx не собирается с OpenSSL 1.1.0c на Windows

Maxim Dounin December 15, 2016 08:24AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 72
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready