Changeset: 2087723d7c66 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2087723d7c66
Modified Files:
        NT/mkodbcwxs.py
        NT/mksqlwxs.py
        NT/monetdb_config.h.in
        NT/rules.msc
        buildtools/doc/windowsbuild.rst
Branch: default
Log Message:

Merge with Mar2018 branch.


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

Reply via email to