Changeset: a904cdb2b00a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a904cdb2b00a
Removed Files:
        NT/mkgeomwxs.py
Modified Files:
        NT/Makefile
        NT/mksqlwxs.py
        buildtools/ChangeLog
        clients/mapiclient/mclient.c
Branch: remote_auth
Log Message:

Merge with default


diffs (truncated from 370 to 300 lines):

diff --git a/NT/Makefile b/NT/Makefile
--- a/NT/Makefile
+++ b/NT/Makefile
@@ -26,7 +26,6 @@ install: targetdirs all
        $(MAKE) /nologo /f "$(srcdir)\Makefile.msc" "prefix=$(prefix)" 
"bits=$(bits)" install
        $(INSTALL) .monetdb "$(sysconfdir)"
        $(PYTHON) $(NT)\mksqlwxs.py $(VERSION) "$(MAKE_INCLUDEFILE)" 
"$(prefix)" > "$(prefix)\MonetDB5-SQL-Installer.wxs"
-       $(PYTHON) $(NT)\mkgeomwxs.py $(VERSION) "$(MAKE_INCLUDEFILE)" 
"$(prefix)" > "$(prefix)\MonetDB5-Geom-Installer.wxs"
        $(PYTHON) $(NT)\mkodbcwxs.py $(VERSION) "$(MAKE_INCLUDEFILE)" 
"$(prefix)" > "$(prefix)\MonetDB-ODBC-Installer.wxs"
 
 $(srcdir)\Makefile.msc: "$(srcdir)\Makefile.ag"
diff --git a/NT/mkgeomwxs.py b/NT/mkgeomwxs.py
deleted file mode 100644
--- a/NT/mkgeomwxs.py
+++ /dev/null
@@ -1,143 +0,0 @@
-from __future__ import print_function
-
-# python mkgeomwxs.py VERSION makedefs.txt PREFIX > 
PREFIX/MonetDB5-Geom-Installer.wxs
-# "c:\Program Files (x86)\WiX Toolset v3.10\bin\candle.exe" -nologo -arch 
x64/x86 PREFIX/MonetDB5-Geom-Installer.wxs
-# "c:\Program Files (x86)\WiX Toolset v3.10\bin\light.exe" -nologo -sice:ICE03 
-sice:ICE60 -sice:ICE82 -ext WixUIExtension 
PREFIX/MonetDB5-Geom-Installer.wixobj
-
-import sys, os
-
-# doesn't change
-upgradecode = {'x64': '{8E6CDFDE-39B9-43D9-97B3-2440C012845C}',
-               'x86': '{92C89C36-0E86-45E1-B3D8-0D6C91108F30}'}
-
-def comp(features, id, depth, files):
-    indent = ' ' * depth
-    for f in files:
-        print('%s<Component Id="_%d" Guid="*">' % (indent, id))
-        print('%s  <File DiskId="1" KeyPath="yes" Name="%s" Source="%s"/>' % 
(indent, f.split('\\')[-1], f))
-        print('%s</Component>' % indent)
-        features.append('_%d' % id)
-        id += 1
-    return id
-
-def main():
-    if len(sys.argv) != 4:
-        print(r'Usage: mkgeomwxs.py version makedefs.txt installdir')
-        return 1
-    makedefs = {}
-    for line in open(sys.argv[2]):
-        key, val = line.strip().split('=', 1)
-        makedefs[key] = val
-    if makedefs['bits'] == '64':
-        folder = r'ProgramFiles64Folder'
-        arch = 'x64'
-    else:
-        folder = r'ProgramFilesFolder'
-        arch = 'x86'
-    vs = os.getenv('vs')        # inherited from TestTools\common.bat
-    features = []
-    print(r'<?xml version="1.0"?>')
-    print(r'<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>')
-    print(r'  <Product Id="*" Language="1033" Manufacturer="MonetDB" 
Name="MonetDB5 SQL GIS Module" UpgradeCode="%s" Version="%s">' % 
(upgradecode[arch], sys.argv[1]))
-    print(r'    <Package Id="*" Comments="MonetDB5/SQL/GIS Module" 
Compressed="yes" InstallerVersion="301" Keywords="MonetDB5 MonetDB SQL GIS 
Database" Languages="1033" Manufacturer="MonetDB BV" Platform="%s"/>' % arch)
-    print(r'    <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A 
later version of [ProductName] is already installed." 
AllowSameVersionUpgrades="no"/>')
-    print(r'    <WixVariable Id="WixUILicenseRtf" Value="license.rtf"/>')
-    print(r'    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp"/>')
-    # print(r'    <WixVariable Id="WixUIDialogBmp" 
Value="backgroundRipple.bmp"/>')
-    print(r'    <Property Id="INSTALLDIR">')
-    print(r'      <RegistrySearch Id="MonetDBRegistry" 
Key="Software\[Manufacturer]\MonetDB5" Name="InstallPath" Root="HKLM" 
Type="raw"/>')
-    print(r'    </Property>')
-    print(r'    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>')
-    print(r'    <Property Id="ARPPRODUCTICON" Value="monetdb.ico"/>')
-    print(r'    <Media Id="1" Cabinet="monetdb.cab" EmbedCab="yes"/>')
-    print(r'    <Condition Message="MonetDB5-SQL needs to be installed 
first.">')
-    print(r'      INSTALLDIR')
-    print(r'    </Condition>')
-    print(r'    <Directory Id="TARGETDIR" Name="SourceDir">')
-    if vs == '17':
-        msvc = r'C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Redist\MSVC'
-        d = sorted(os.listdir(msvc))[-1]
-        msm = '_CRT_%s.msm' % arch
-        for f in sorted(os.listdir(os.path.join(msvc, d, 'MergeModules'))):
-            if msm in f:
-                fn = f
-        print(r'      <Merge Id="VCRedist" DiskId="1" Language="0" 
SourceFile="%s\%s\MergeModules\%s"/>' % (msvc, d, fn))
-    else:
-        print(r'      <Merge Id="VCRedist" DiskId="1" Language="0" 
SourceFile="C:\Program Files (x86)\Common Files\Merge 
Modules\Microsoft_VC%s0_CRT_%s.msm"/>' % (vs, arch))
-    print(r'      <Directory Id="%s">' % folder)
-    print(r'        <Directory Id="ProgramFilesMonetDB" Name="MonetDB">')
-    print(r'          <Directory Id="INSTALLDIR" Name="MonetDB5">')
-    id = 1
-    print(r'            <Directory Id="bin" Name="bin">')
-    id = comp(features, id, 14,
-              [r'%s\bin\geos_c.dll' % makedefs['LIBGEOS']])
-    print(r'            </Directory>')
-    print(r'            <Directory Id="lib" Name="lib">')
-    print(r'              <Directory Id="monetdb5" Name="monetdb5">')
-    print(r'                <Directory Id="autoload" Name="autoload">')
-    id = comp(features, id, 18,
-              [r'lib\monetdb5\autoload\%s' % x for x in sorted(filter(lambda 
x: x.endswith('.mal') and ('geom' in x), os.listdir(os.path.join(sys.argv[3], 
'lib', 'monetdb5', 'autoload'))))])
-    print(r'                </Directory>')
-    print(r'                <Directory Id="createdb" Name="createdb">')
-    id = comp(features, id, 18,
-              [r'lib\monetdb5\createdb\%s' % x for x in sorted(filter(lambda 
x: x.endswith('.sql') and ('geom' in x), os.listdir(os.path.join(sys.argv[3], 
'lib', 'monetdb5', 'createdb'))))])
-    print(r'                </Directory>')
-    id = comp(features, id, 16,
-              [r'lib\monetdb5\%s' % x for x in sorted(filter(lambda x: 
x.endswith('.mal') and ('geom' in x), os.listdir(os.path.join(sys.argv[3], 
'lib', 'monetdb5'))))])
-    id = comp(features, id, 16,
-              [r'lib\monetdb5\%s' % x for x in sorted(filter(lambda x: 
x.startswith('lib_') and (x.endswith('.dll') or x.endswith('.pdb')) and ('geom' 
in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))])
-    print(r'              </Directory>')
-    print(r'            </Directory>')
-    print(r'          </Directory>')
-    print(r'        </Directory>')
-    print(r'      </Directory>')
-    print(r'    </Directory>')
-    print(r'    <Feature Id="Complete" ConfigurableDirectory="INSTALLDIR" 
Title="MonetDB/SQL">')
-    for f in features:
-        print(r'      <ComponentRef Id="%s"/>' % f)
-    print(r'      <MergeRef Id="VCRedist"/>')
-    print(r'    </Feature>')
-    # the <UI> section was lifted from
-    # ...\SDK\wixui\WixUI_InstallDir.wxs and modified to remove the
-    # InstallDirDlg subsection
-    # see 
http://wixtoolset.org/documentation/manual/v3/wixui/wixui_customizations.html
-    print(r'    <UI Id="MyWixUI_InstallDir">')
-    print(r'      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" 
Size="8"/>')
-    print(r'      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" 
Size="12"/>')
-    print(r'      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" 
Bold="yes"/>')
-    print(r'      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal"/>')
-    print(r'      <Property Id="WixUI_Mode" Value="InstallDir"/>')
-    print(r'      <DialogRef Id="BrowseDlg"/>')
-    print(r'      <DialogRef Id="DiskCostDlg"/>')
-    print(r'      <DialogRef Id="ErrorDlg"/>')
-    print(r'      <DialogRef Id="FatalError"/>')
-    print(r'      <DialogRef Id="FilesInUse"/>')
-    print(r'      <DialogRef Id="MsiRMFilesInUse"/>')
-    print(r'      <DialogRef Id="PrepareDlg"/>')
-    print(r'      <DialogRef Id="ProgressDlg"/>')
-    print(r'      <DialogRef Id="ResumeDlg"/>')
-    print(r'      <DialogRef Id="UserExit"/>')
-    print(r'      <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" 
Value="WixUIValidatePath" Order="3">1</Publish>')
-    print(r'      <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" 
Value="InvalidDirDlg" Order="4"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND 
WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>')
-    print(r'      <Publish Dialog="ExitDialog" Control="Finish" 
Event="EndDialog" Value="Return" Order="999">1</Publish>')
-    print(r'      <Publish Dialog="WelcomeDlg" Control="Next" 
Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish>')
-    print(r'      <Publish Dialog="WelcomeDlg" Control="Next" 
Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>')
-    print(r'      <Publish Dialog="LicenseAgreementDlg" Control="Back" 
Event="NewDialog" Value="WelcomeDlg">1</Publish>')
-    print(r'      <Publish Dialog="LicenseAgreementDlg" Control="Next" 
Event="NewDialog" Value="VerifyReadyDlg">LicenseAccepted = "1"</Publish>')
-    print(r'      <Publish Dialog="VerifyReadyDlg" Control="Back" 
Event="NewDialog" Value="LicenseAgreementDlg" Order="1">NOT 
Installed</Publish>')
-    print(r'      <Publish Dialog="VerifyReadyDlg" Control="Back" 
Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT 
PATCH</Publish>')
-    print(r'      <Publish Dialog="VerifyReadyDlg" Control="Back" 
Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>')
-    print(r'      <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" 
Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>')
-    print(r'      <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" 
Event="NewDialog" Value="VerifyReadyDlg">1</Publish>')
-    print(r'      <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" 
Event="NewDialog" Value="VerifyReadyDlg">1</Publish>')
-    print(r'      <Publish Dialog="MaintenanceTypeDlg" Control="Back" 
Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>')
-    print(r'      <Property Id="ARPNOMODIFY" Value="1"/>')
-    print(r'    </UI>')
-    print(r'    <UIRef Id="WixUI_Common"/>')
-    print(r'    <UIRef Id="MyWixUI_InstallDir"/>')
-    print(r'    <UIRef Id="WixUI_ErrorProgressText"/>')
-    print(r'    <Icon Id="monetdb.ico" SourceFile="monetdb.ico"/>')
-    print(r'  </Product>')
-    print(r'</Wix>')
-
-main()
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -7,8 +7,15 @@ from __future__ import print_function
 import sys, os
 
 # doesn't change
-upgradecode = {'x64': '{839D3C90-B578-41E2-A004-431440F9E899}',
-               'x86': '{730C595B-DBA6-48D7-94B8-A98780AC92B6}'}
+upgradecode = {
+    'x64': '{839D3C90-B578-41E2-A004-431440F9E899}',
+    'x86': '{730C595B-DBA6-48D7-94B8-A98780AC92B6}'
+}
+# the Geom upgrade codes that we are replacing
+geomupgradecode = {
+    'x64': '{8E6CDFDE-39B9-43D9-97B3-2440C012845C}',
+    'x86': '{C1F69378-3F5C-4120-8224-32F07D3458F3}'
+}
 
 def comp(features, id, depth, files, name=None, args=None, sid=None, 
vital=None):
     indent = ' ' * depth
@@ -41,10 +48,19 @@ def main():
         libcrypto = ''
     vs = os.getenv('vs')        # inherited from TestTools\common.bat
     features = []
+    extend = []
+    debug = []
+    geom = []
     print(r'<?xml version="1.0"?>')
     print(r'<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>')
     print(r'  <Product Id="*" Language="1033" Manufacturer="MonetDB" 
Name="MonetDB5" UpgradeCode="%s" Version="%s">' % (upgradecode[arch], 
sys.argv[1]))
     print(r'    <Package Id="*" Comments="MonetDB5/SQL Server and Client" 
Compressed="yes" InstallerVersion="301" Keywords="MonetDB5 MonetDB SQL 
Database" Languages="1033" Manufacturer="MonetDB BV" Platform="%s"/>' % arch)
+    print(r'    <Upgrade Id="%s">' % geomupgradecode[arch])
+    # up to and including 11.29.3, the geom module can not be
+    # uninstalled if MonetDB/SQL is not installed; this somehow also
+    # precludes the upgrade to this version
+    print(r'      <UpgradeVersion OnlyDetect="no" Minimum="11.29.3" 
IncludeMinimum="no" Maximum="%s" Property="GEOMINSTALLED"/>' % sys.argv[1])
+    print(r'    </Upgrade>')
     print(r'    <MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A 
later version of [ProductName] is already installed." 
AllowSameVersionUpgrades="no"/>')
     print(r'    <WixVariable Id="WixUILicenseRtf" Value="license.rtf"/>')
     print(r'    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp"/>')
@@ -52,6 +68,33 @@ def main():
     print(r'    <Property Id="INSTALLDIR">')
     print(r'      <RegistrySearch Id="MonetDBRegistry" 
Key="Software\[Manufacturer]\[ProductName]" Name="InstallPath" Root="HKLM" 
Type="raw"/>')
     print(r'    </Property>')
+    print(r'    <Property Id="DEBUGEXISTS">')
+    print(r'      <DirectorySearch Id="CheckFileDir1" Path="[INSTALLDIR]\bin" 
Depth="0">')
+    print(r'        <FileSearch Id="CheckFile1" Name="libbat.pdb"/>')
+    print(r'      </DirectorySearch>')
+    print(r'    </Property>')
+    print(r'    <Property Id="INCLUDEEXISTS">')
+    print(r'      <DirectorySearch Id="CheckFileDir2" 
Path="[INSTALLDIR]\include\monetdb" Depth="0">')
+    print(r'        <FileSearch Id="CheckFile2" Name="gdk.h"/>')
+    print(r'      </DirectorySearch>')
+    print(r'    </Property>')
+    print(r'    <Property Id="GEOMEXISTS">')
+    print(r'      <DirectorySearch Id="CheckFileDir3" 
Path="[INSTALLDIR]\lib\monetdb5" Depth="0">')
+    print(r'        <FileSearch Id="CheckFile3" Name="geom.mal"/>')
+    print(r'      </DirectorySearch>')
+    print(r'    </Property>')
+    # up to and including 11.29.3, the geom module can not be
+    # uninstalled if MonetDB/SQL is not installed; this somehow also
+    # precludes the upgrade to this version, therefore we disallow
+    # running the current installer
+    print(r'    <Property Id="OLDGEOMINSTALLED">')
+    print(r'      <ProductSearch UpgradeCode="%s" Minimum="11.1.1" 
Maximum="11.29.3" IncludeMinimum="yes" IncludeMaximum="yes"/>' % 
geomupgradecode[arch])
+    print(r'    </Property>')
+    print(r'    <Condition Message="Please uninstall MonetDB5 SQL GIS Module 
first, then rerun and select to install Complete package.">')
+    print(r'      NOT OLDGEOMINSTALLED')
+    print(r'    </Condition>')
+    print(r'    <Property Id="ApplicationFolderName" Value="MonetDB"/>')
+    print(r'    <Property Id="WixAppFolder" Value="WixPerMachineFolder"/>')
     print(r'    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>')
     print(r'    <Property Id="ARPPRODUCTICON" Value="monetdb.ico"/>')
     print(r'    <Media Id="1" Cabinet="monetdb.cab" EmbedCab="yes"/>')
@@ -78,27 +121,38 @@ def main():
     id = 1
     print(r'            <Directory Id="bin" Name="bin">')
     id = comp(features, id, 14,
-              [r'bin\mclient.exe', r'bin\mclient.pdb',
-               r'bin\mserver5.exe', r'bin\mserver5.pdb',
-               r'bin\msqldump.exe', r'bin\msqldump.pdb',
-               r'bin\stethoscope.exe', r'bin\stethoscope.pdb',
-               r'lib\libbat.dll', r'lib\libbat.pdb',
-               r'lib\libmapi.dll', r'lib\libmapi.pdb',
-               r'lib\libmonetdb5.dll', r'lib\libmonetdb5.pdb',
-               r'lib\libstream.dll', r'lib\libstream.pdb',
+              [r'bin\mclient.exe',
+               r'bin\mserver5.exe',
+               r'bin\msqldump.exe',
+               r'bin\stethoscope.exe',
+               r'lib\libbat.dll',
+               r'lib\libmapi.dll',
+               r'lib\libmonetdb5.dll',
+               r'lib\libstream.dll',
                r'%s\bin\iconv-2.dll' % makedefs['LIBICONV'],
                r'%s\bin\libbz2.dll' % makedefs['LIBBZIP2'],
                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\zlib1.dll' % makedefs['LIBZLIB']])
+    id = comp(debug, id, 14,
+              [r'bin\mclient.pdb',
+               r'bin\mserver5.pdb',
+               r'bin\msqldump.pdb',
+               r'bin\stethoscope.pdb',
+               r'lib\libbat.pdb',
+               r'lib\libmapi.pdb',
+               r'lib\libmonetdb5.pdb',
+               r'lib\libstream.pdb'])
+    id = comp(geom, id, 14,
+              [r'%s\bin\geos_c.dll' % makedefs['LIBGEOS']])
     print(r'            </Directory>')
     print(r'            <Directory Id="etc" Name="etc">')
     id = comp(features, id, 14, [r'etc\.monetdb'])
     print(r'            </Directory>')
     print(r'            <Directory Id="include" Name="include">')
     print(r'              <Directory Id="monetdb" Name="monetdb">')
-    id = comp(features, id, 16,
+    id = comp(extend, id, 16,
               sorted([r'include\monetdb\%s' % x for x in filter(lambda x: 
(x.startswith('gdk') or x.startswith('monet') or x.startswith('mal')) and 
x.endswith('.h'), os.listdir(os.path.join(sys.argv[3], 'include', 'monetdb')))] 
+
                      [r'include\monetdb\mapi.h',
                       r'include\monetdb\stream.h',
@@ -111,17 +165,27 @@ def main():
     print(r'                <Directory Id="autoload" Name="autoload">')
     id = comp(features, id, 18,
               [r'lib\monetdb5\autoload\%s' % x for x in sorted(filter(lambda 
x: x.endswith('.mal') and ('geom' not in x), 
os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5', 'autoload'))))])
+    id = comp(geom, id, 18,
+              [r'lib\monetdb5\autoload\%s' % x for x in sorted(filter(lambda 
x: x.endswith('.mal') and ('geom' in x), os.listdir(os.path.join(sys.argv[3], 
'lib', 'monetdb5', 'autoload'))))])
     print(r'                </Directory>')
     print(r'                <Directory Id="createdb" Name="createdb">')
     id = comp(features, id, 18,
               [r'lib\monetdb5\createdb\%s' % x for x in sorted(filter(lambda 
x: x.endswith('.sql') and ('geom' not in x), 
os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5', 'createdb'))))])
+    id = comp(geom, id, 18,
+              [r'lib\monetdb5\createdb\%s' % x for x in sorted(filter(lambda 
x: x.endswith('.sql') and ('geom' in x), os.listdir(os.path.join(sys.argv[3], 
'lib', 'monetdb5', 'createdb'))))])
     print(r'                </Directory>')
     id = comp(features, id, 16,
               [r'lib\monetdb5\%s' % x for x in sorted(filter(lambda x: 
x.endswith('.mal') and ('geom' not in x), os.listdir(os.path.join(sys.argv[3], 
'lib', 'monetdb5'))))])
     id = comp(features, id, 16,
-              [r'lib\monetdb5\%s' % x for x in sorted(filter(lambda x: 
x.startswith('lib_') and (x.endswith('.dll') or x.endswith('.pdb')) and ('geom' 
not in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))])
+              [r'lib\monetdb5\%s' % x for x in sorted(filter(lambda x: 
x.startswith('lib_') and x.endswith('.dll') and ('geom' not in x), 
os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))])
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to