Changeset: 9b36c860bbc4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9b36c860bbc4 Modified Files: NT/mkodbcwxs.py NT/mksqlwxs.py NT/monetdb_config.h.in NT/rules.msc buildtools/doc/windowsbuild.rst Branch: remote_auth Log Message:
Merge with default diffs (truncated from 576 to 300 lines): diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py --- a/NT/mkodbcwxs.py +++ b/NT/mkodbcwxs.py @@ -34,9 +34,11 @@ def main(): if makedefs['bits'] == '64': folder = r'ProgramFiles64Folder' arch = 'x64' + libcrypto = '-x64' else: folder = r'ProgramFilesFolder' arch = 'x86' + libcrypto = '' vs = os.getenv('vs') # inherited from TestTools\common.bat features = [] print(r'<?xml version="1.0"?>') @@ -75,8 +77,7 @@ def main(): r'lib\libstream.dll', r'lib\libstream.pdb', r'%s\bin\iconv.dll' % makedefs['LIBICONV'], r'%s\bin\libbz2.dll' % makedefs['LIBBZIP2'], - r'%s\bin\libeay32.dll' % makedefs['LIBOPENSSL'], - r'%s\bin\ssleay32.dll' % makedefs['LIBOPENSSL'], + r'%s\bin\libcrypto-1_1%s.dll' % (makedefs['LIBOPENSSL'], libcrypto), r'%s\bin\zlib1.dll' % makedefs['LIBZLIB']]) print(r' </Directory>') id = comp(features, id, 12, diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -34,9 +34,11 @@ def main(): if makedefs['bits'] == '64': folder = r'ProgramFiles64Folder' arch = 'x64' + libcrypto = '-x64' else: folder = r'ProgramFilesFolder' arch = 'x86' + libcrypto = '' vs = os.getenv('vs') # inherited from TestTools\common.bat features = [] print(r'<?xml version="1.0"?>') @@ -86,10 +88,9 @@ def main(): r'lib\libstream.dll', r'lib\libstream.pdb', r'%s\bin\iconv.dll' % makedefs['LIBICONV'], r'%s\bin\libbz2.dll' % makedefs['LIBBZIP2'], - r'%s\bin\libeay32.dll' % makedefs['LIBOPENSSL'], + r'%s\bin\libcrypto-1_1%s.dll' % (makedefs['LIBOPENSSL'], libcrypto), r'%s\bin\libxml2.dll' % makedefs['LIBXML2'], r'%s\bin\pcre.dll' % makedefs['LIBPCRE'], - r'%s\bin\ssleay32.dll' % makedefs['LIBOPENSSL'], r'%s\bin\zlib1.dll' % makedefs['LIBZLIB']]) print(r' </Directory>') print(r' <Directory Id="etc" Name="etc">') @@ -127,10 +128,9 @@ def main(): r'lib\libstream.lib', r'%s\lib\iconv.lib' % makedefs['LIBICONV'], r'%s\lib\libbz2.lib' % makedefs['LIBBZIP2'], - r'%s\lib\libeay32.lib' % makedefs['LIBOPENSSL'], + r'%s\lib\libcrypto.lib' % makedefs['LIBOPENSSL'], r'%s\lib\libxml2.lib' % makedefs['LIBXML2'], r'%s\lib\pcre.lib' % makedefs['LIBPCRE'], - r'%s\lib\ssleay32.lib' % makedefs['LIBOPENSSL'], r'%s\lib\zdll.lib' % makedefs['LIBZLIB']]) print(r' </Directory>') print(r' <Directory Id="share" Name="share">') diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in --- a/NT/monetdb_config.h.in +++ b/NT/monetdb_config.h.in @@ -600,7 +600,7 @@ #endif /* Define as const if the declaration of iconv() needs const. */ -#define ICONV_CONST const +#define ICONV_CONST /* const */ /* Define as SQLLEN * or SQLPOINTER depending on the include file */ #ifdef _WIN64 diff --git a/NT/rules.msc b/NT/rules.msc --- a/NT/rules.msc +++ b/NT/rules.msc @@ -99,9 +99,9 @@ pcre_CFLAGS = -DHAVE_LIBPCRE "-I$(LIBPCR !IFDEF HAVE_OPENSSL # This is the location of the OpenSSL library !IFNDEF LIBOPENSSL -LIBOPENSSL = C:\openssl-0.9.8k.win$(bits) +LIBOPENSSL = C:\openssl-1.1.0g.win$(bits) !ENDIF -openssl_LIBS = "$(LIBOPENSSL)\lib\ssleay32.lib" "$(LIBOPENSSL)\lib\libeay32.lib" +openssl_LIBS = "$(LIBOPENSSL)\lib\libcrypto.lib" openssl_CFLAGS = -DHAVE_OPENSSL "-I$(LIBOPENSSL)\include" !ENDIF @@ -110,7 +110,7 @@ openssl_CFLAGS = -DHAVE_OPENSSL "-I$(LIB !IFNDEF LIBICONV LIBICONV = C:\iconv-1.9.2.win$(bits) !ENDIF -LTLIBICONV = "$(LIBICONV)\lib\iconv.lib" +LTLIBICONV = "$(LIBICONV)\lib\iconv.dll.lib" ICONV_CFLAGS = -DHAVE_ICONV "-I$(LIBICONV)\include" !ENDIF diff --git a/buildtools/doc/windowsbuild.rst b/buildtools/doc/windowsbuild.rst --- a/buildtools/doc/windowsbuild.rst +++ b/buildtools/doc/windowsbuild.rst @@ -18,7 +18,7 @@ architecture, but there are notes throug on a 64-bit architecture which is indicated with Windows64. We have successfully built on Windows XP, Windows Server, and Windows 7. -.. _MonetDB: http://dev.monetdb.org/hg/MonetDB/ +.. _MonetDB: https://dev.monetdb.org/hg/MonetDB/ __ MonetDB_ @@ -132,7 +132,7 @@ using the command :: - hg clone http://dev.monetdb.org/hg/MonetDB/ + hg clone https://dev.monetdb.org/hg/MonetDB/ This will create a folder ``MonetDB`` that contains everything. @@ -154,25 +154,23 @@ Compiler The suite can be compiled using one of the following compilers: -- Microsoft Visual Studio .NET 2003 (also known as Microsoft Visual Studio 7); -- Microsoft Visual Studio 2005 (also known as Microsoft Visual Studio 8); -- Microsoft Visual Studio 2008 (also known as Microsoft Visual Studio 9.0); -- Microsoft Visual Studio 2010 (also known as Microsoft Visual Studio 10.0); -- Intel(R) C++ Compiler 9.1 (which actually needs one of the above); -- Intel(R) C++ Compiler 10.1 (which also needs one of the Microsoft compilers); -- Intel(R) C++ Compiler 11.1 (which also needs one of the Microsoft compilers). +- Microsoft Visual Studio 2015 or newer; +- Intel(R) C++ Compiler 9.1; +- Intel(R) C++ Compiler 10.1; +- Intel(R) C++ Compiler 11.1. -Not supported anymore (but probably still possible) are the GNU C -Compiler gcc under Cygwin__. Using that, it (probably still) is -possible to build a version that runs using the Cygwin DLLs, but also -a version that uses the MinGW__ (Minimalist GNU for Windows) package. -This is not supported and not further described here (in either case, -the build process would be much more like Unix than what is described -here). +Not supported anymore are the GNU C Compiler gcc under Cygwin__. +Using that, it would be possible to build a version that runs using +the Cygwin DLLs, but also a version that uses the MinGW__ (Minimalist +GNU for Windows) package. This is not supported and not further +described here (in either case, the build process would be much more +like Unix than what is described here). -We currently use Microsoft Visual Studio 2010 and Intel(R) C++ -Compiler XE 13.1.2.190, the latter using Microsoft Visual Studio -10.0. Older versions haven't been tried in a long time. +We currently use Microsoft Visual Studio Community 2015, Microsoft +Visual Studio Community 2017, and Intel(R) C++ Compiler XE 13.1.2.190, +the latter using Microsoft Visual Studio Community 2015. Older +versions of Visual Studio will not work since they do not support the +C-99 standard. __ http://www.cygwin.com/ __ http://www.mingw.org/ @@ -185,13 +183,12 @@ compiler uses to determine which files t downloaded from http://www.python.org/. Just download and install the Windows binary distribution. +.. Say something about pyintegration. + Note that you can use either or both Python2 and Python3, and on 64 bit architectures, either the 32 bit or 64 bit version of Python. All -these versions are fine for building the MonetDB suite. However, if -you want to create an installer for the Python component using -``python setup.py bdist_wininst``, you need to use the version of -Python for which you're building the installer. It is possible to -install all versions. Using Chocolatey_ you can do:: +these versions are fine for building the MonetDB suite. It is +possible to install all versions. Using Chocolatey_ you can do:: choco install python2 python3 choco install python2-x86_32 python3-x86_32 @@ -248,14 +245,14 @@ of MonetDB. The PCRE library is require Download the source from http://www.pcre.org/. In order to build the library, you will need a program called ``cmake`` which you can -download from http://www.cmake.org/. Follow the Download link and get -the Win32 Installer, install it, and run it. It will come up with a -window where you have to fill in the location of the source code and -where to build the binaries. Fill in where you extracted the PCRE -sources, and some other folder (I used a ``build`` folder which I -created within the PCRE source tree), then click on the Configure -button. This pops up a dialog to choose the compiler. I chose Visual -Studio 10 2010. +download from http://www.cmake.org/ or by using Chocolatey_. Follow +the Download link and get the Win32 Installer, install it, and run it. +It will come up with a window where you have to fill in the location +of the source code and where to build the binaries. Fill in where you +extracted the PCRE sources, and some other folder (I used a ``build`` +folder which I created within the PCRE source tree), then click on the +Configure button. This pops up a dialog to choose the compiler. I +chose Visual Studio 14 2015. You need to configure some PCRE build options. I chose to do build shared libs, to match newlines with the ``ANYCRLF`` option, and to do @@ -267,7 +264,7 @@ Release if you want to build a releasabl suite. By default the library will be installed in ``C:\Program Files\PCRE``. -For Windows64, select the correct compiler (``Visual Studio 10 2010 +For Windows64, select the correct compiler (``Visual Studio 14 2015 Win64``) and proceed normally. When building the 32 bit version on Windows64, choose ``C:/Program Files (x86)/PCRE`` for the ``CMAKE_INSTALL_PREFIX`` value, otherwise choose ``C:/Program @@ -280,8 +277,8 @@ contents of the file are:: #include <Windows.h> LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US VS_VERSION_INFO VERSIONINFO - FILEVERSION 8,37,0,0 // change as appropriate - PRODUCTVERSION 8,37,0,0 // change as appropriate + FILEVERSION 8,41,0,0 // change as appropriate + PRODUCTVERSION 8,41,0,0 // change as appropriate FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS_NT_WINDOWS32 @@ -299,29 +296,25 @@ OpenSSL ------- The OpenSSL__ library is used during authentication of a MonetDB -client program with the MonetDB server. The OpenSSL library is -required for the MonetDB5 component, and hence implicitly required for -the clients component when it needs to talk to a MonetDB5 server. +client program with the MonetDB server. The only part of the OpenSSL +library that is used is some of the hash functions, it is not used to +secure communication between client and server processes. The OpenSSL +library is required for the MonetDB5 component, and hence implicitly +required for the clients component when it needs to talk to a MonetDB5 +server. Download the source from http://www.openssl.org/. We used the latest -stable version (1.0.2d). Follow the instructions in the file -``INSTALL.W32`` or ``INSTALL.W64``. We used the option -``enable-static-engine`` as described in the instructions. +stable version (1.1.0g). Follow the instructions in the file +``NOTES.WIN``. .. The actual commands used were:: - perl Configure VC-WIN32 no-asm enable-static-engine --prefix=C:\Libraries\openssl-1.0.2d.win32 - ms\do_ms.bat - nmake /f ms\ntdll.mak - nmake /f ms\ntdll.mak install + perl Configure VC-WIN32 no-asm --prefix=C:\Libraries\openssl-1.1.0g.win32 + nmake + nmake install and:: - perl Configure VC-WIN64A enable-static-engine --prefix=C:\Libraries\openssl-1.0.2d.win64 - ms\do_win64a.bat - nmake /f ms\ntdll.mak - nmake /f ms\ntdll.mak install - For the debug versions, use ``debug-VC-WIN32`` and - ``debug-VC-WIN64A`` and edit the file ``ms/ntdll.mak`` to add a - ``d`` to the definitions of ``O_SSL``, ``O_CRYPTO``, ``L_SSL``, and - ``L_CRYPTO`` before building. + perl Configure VC-WIN64A no-asm --prefix=C:\Libraries\openssl-1.1.0g.win64 + nmake + nmake install Fix the ``LIBOPENSSL`` definition in ``NT\rules.msc`` so that it refers to the location where you installed the library and call @@ -339,66 +332,23 @@ can be gotten from http://www.zlatkovic. Win32 Binaries on the right, and download libxml2, iconv, and zlib. Install these in e.g. ``C:\Libraries``. -Note that we hit a bug in version 2.6.31 of libxml2. See the -bugreport__. Use version 2.6.30 or 2.6.32 or later. - On Windows64 you will have to compile libxml2 yourself (with its optional prerequisites iconv_ and zlib_, for which see below). Run the following commands in the ``win32`` subfolder, substituting the correct locations for the iconv and zlib libraries:: - cscript configure.js compiler=msvc prefix=C:\Libraries\libxml2-2.9.2.win64 ^ - include=C:\Libraries\iconv-1.11.1.win64\include;C:\Libraries\zlib-1.2.8.win64\include ^ - lib=C:\Libraries\iconv-1.11.1.win64\lib;C:\Libraries\zlib-1.2.8.win64\lib ^ + cscript configure.js compiler=msvc prefix=C:\Libraries\libxml2-2.9.8.win64 ^ + include=C:\Libraries\iconv-1.15.win64\include;C:\Libraries\zlib-1.2.11.win64\include ^ + lib=C:\Libraries\iconv-1.15.win64\lib;C:\Libraries\zlib-1.2.11.win64\lib ^ iconv=yes zlib=yes vcmanifest=yes nmake /f Makefile.msvc nmake /f Makefile.msvc install -Note that there are a few minor problems with the 2.7.8 distribution. -Edit the file ``win32\Makefile.msvc`` and remove the ``+`` from the -start of the three lines that contain one. Also, unless you use an -older compiler, remove the line that contains ``/OPT:NOWIN98``. -Visual Studio 2010 will give an error with this option, and Visual -Studio 2008 a warning. - -In the 2.9.2 there is another problem. In the ``win32\configure.js`` -file near the top, change ``configure.in`` to ``configure.ac``. - _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list