Changeset: 91777d3cf0b6 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=91777d3cf0b6 Modified Files: NT/mkodbcwxs.py NT/mksqlwxs.py monetdb5/NT/M5server.bat tools/merovingian/daemon/connections.c Branch: default Log Message:
Merged with Nov2019 diffs (truncated from 340 to 300 lines): diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py --- a/NT/mkodbcwxs.py +++ b/NT/mkodbcwxs.py @@ -13,13 +13,13 @@ upgradecode = {'x64': '{95ACBC8C-BC4B-49 def comp(features, id, depth, files, fid=None, name=None, args=None, sid=None, vital=None): indent = ' ' * depth for f in files: - print('%s<Component Id="_%d" Guid="*">' % (indent, id)) - print('%s <File DiskId="1"%s KeyPath="yes" Name="%s" Source="%s"%s%s' % (indent, fid and (' Id="%s"' % fid) or '', f.split('\\')[-1], f, vital and (' Vital="%s"' % vital) or '', name and '>' or '/>')) + print('{}<Component Id="_{}" Guid="*">'.format(indent, id)) + print('{} <File DiskId="1"{} KeyPath="yes" Name="{}" Source="{}"{}{}'.format(indent, fid and (' Id="{}"'.format(fid)) or '', f.split('\\')[-1], f, vital and (' Vital="{}"'.format(vital)) or '', name and '>' or '/>')) if name: - print('%s <Shortcut Id="%s" Advertise="yes"%s Directory="ProgramMenuDir" Icon="monetdb.ico" IconIndex="0" Name="%s" WorkingDirectory="INSTALLDIR"/>' % (indent, sid, args and (' Arguments="%s"' % args) or '', name)) - print('%s </File>' % indent) - print('%s</Component>' % indent) - features.append('_%d' % id) + print('{} <Shortcut Id="{}" Advertise="yes"{} Directory="ProgramMenuDir" Icon="monetdb.ico" IconIndex="0" Name="{}" WorkingDirectory="INSTALLDIR"/>'.format(indent, sid, args and (' Arguments="{}"'.format(args)) or '', name)) + print('{} </File>'.format(indent)) + print('{}</Component>'.format(indent)) + features.append('_{}'.format(id)) id += 1 return id @@ -43,8 +43,8 @@ def main(): 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="MonetDB ODBC Driver" UpgradeCode="%s" Version="%s">' % (upgradecode[arch], sys.argv[1])) - print(r' <Package Id="*" Comments="MonetDB ODBC Driver" Compressed="yes" InstallerVersion="301" Keywords="MonetDB SQL ODBC" Languages="1033" Manufacturer="MonetDB BV" Platform="%s"/>' % arch) + print(r' <Product Id="*" Language="1033" Manufacturer="MonetDB" Name="MonetDB ODBC Driver" UpgradeCode="{}" Version="{}">'.format(upgradecode[arch], sys.argv[1])) + print(r' <Package Id="*" Comments="MonetDB ODBC Driver" Compressed="yes" InstallerVersion="301" Keywords="MonetDB SQL ODBC" Languages="1033" Manufacturer="MonetDB BV" Platform="{}"/>'.format(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"/>') @@ -55,14 +55,14 @@ def main(): print(r' <CustomAction Id="driverinstall" FileKey="odbcinstall" ExeCommand="/Install" Execute="deferred" Impersonate="no"/>') print(r' <CustomAction Id="driveruninstall" FileKey="odbcinstall" ExeCommand="/Uninstall" Execute="deferred" Impersonate="no"/>') print(r' <Directory Id="TARGETDIR" Name="SourceDir">') - msvc = r'C:\Program Files (x86)\Microsoft Visual Studio\20%s\Community\VC\Redist\MSVC' % vs + msvc = r'C:\Program Files (x86)\Microsoft Visual Studio\20{}\Community\VC\Redist\MSVC'.format(vs) d = sorted(os.listdir(msvc))[-1] - msm = '_CRT_%s.msm' % arch + msm = '_CRT_{}.msm'.format(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)) - print(r' <Directory Id="%s">' % folder) + print(r' <Merge Id="VCRedist" DiskId="1" Language="0" SourceFile="{}\{}\MergeModules\{}"/>'.format(msvc, d, fn)) + print(r' <Directory Id="{}">'.format(folder)) print(r' <Directory Id="ProgramFilesMonetDB" Name="MonetDB">') print(r' <Directory Id="INSTALLDIR" Name="MonetDB ODBC Driver">') id = 1 @@ -72,10 +72,10 @@ def main(): r'lib\libMonetODBC.dll', r'lib\libMonetODBC.pdb', r'lib\libMonetODBCs.dll', r'lib\libMonetODBCs.pdb', r'lib\libstream.dll', r'lib\libstream.pdb', - 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\zlib1.dll' % makedefs['LIBZLIB']]) + r'{}\bin\iconv-2.dll'.format(makedefs['LIBICONV']), + r'{}\bin\libbz2.dll'.format(makedefs['LIBBZIP2']), + r'{}\bin\libcrypto-1_1{}.dll'.format(makedefs['LIBOPENSSL'], libcrypto), + r'{}\bin\zlib1.dll'.format(makedefs['LIBZLIB'])]) print(r' </Directory>') id = comp(features, id, 12, [r'license.rtf']) @@ -102,7 +102,7 @@ def main(): print(r' </Directory>') print(r' <Feature Id="Complete" ConfigurableDirectory="INSTALLDIR" Title="MonetDB ODBC Driver">') for f in features: - print(r' <ComponentRef Id="%s"/>' % f) + print(r' <ComponentRef Id="{}"/>'.format(f)) print(r' <MergeRef Id="VCRedist"/>') print(r' </Feature>') print(r' <UIRef Id="WixUI_InstallDir"/>') diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -20,13 +20,13 @@ geomupgradecode = { def comp(features, id, depth, files, name=None, args=None, sid=None, vital=None): 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"%s%s' % (indent, f.split('\\')[-1], f, vital and (' Vital="%s"' % vital) or '', name and '>' or '/>')) + print('{}<Component Id="_{}" Guid="*">'.format(indent, id)) + print('{} <File DiskId="1" KeyPath="yes" Name="{}" Source="{}"{}{}'.format(indent, f.split('\\')[-1], f, vital and (' Vital="{}"'.format(vital)) or '', name and '>' or '/>')) if name: - print('%s <Shortcut Id="%s" Advertise="yes"%s Directory="ProgramMenuDir" Icon="monetdb.ico" IconIndex="0" Name="%s" WorkingDirectory="INSTALLDIR"/>' % (indent, sid, args and (' Arguments="%s"' % args) or '', name)) - print('%s </File>' % indent) - print('%s</Component>' % indent) - features.append('_%d' % id) + print('{} <Shortcut Id="{}" Advertise="yes"{} Directory="ProgramMenuDir" Icon="monetdb.ico" IconIndex="0" Name="{}" WorkingDirectory="INSTALLDIR"/>'.format(indent, sid, args and (' Arguments="{}"'.format(args)) or '', name)) + print('{} </File>'.format(indent)) + print('{}</Component>'.format(indent)) + features.append('_{}'.format(id)) id += 1 return id @@ -55,13 +55,13 @@ def main(): pyapi3 = [] 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]) + print(r' <Product Id="*" Language="1033" Manufacturer="MonetDB" Name="MonetDB5" UpgradeCode="{}" Version="{}">'.format(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="{}"/>'.format(arch)) + print(r' <Upgrade Id="{}">'.format(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' <UpgradeVersion OnlyDetect="no" Minimum="11.29.3" IncludeMinimum="no" Maximum="{}" Property="GEOMINSTALLED"/>'.format(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"/>') @@ -103,7 +103,7 @@ def main(): # 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' <ProductSearch UpgradeCode="{}" Minimum="11.1.1" Maximum="11.29.3" IncludeMinimum="yes" IncludeMaximum="yes"/>'.format(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') @@ -114,14 +114,14 @@ def main(): print(r' <Property Id="ARPPRODUCTICON" Value="monetdb.ico"/>') print(r' <Media Id="1" Cabinet="monetdb.cab" EmbedCab="yes"/>') print(r' <Directory Id="TARGETDIR" Name="SourceDir">') - msvc = r'C:\Program Files (x86)\Microsoft Visual Studio\20%s\Community\VC\Redist\MSVC' % vs + msvc = r'C:\Program Files (x86)\Microsoft Visual Studio\20{}\Community\VC\Redist\MSVC'.format(vs) d = sorted(os.listdir(msvc))[-1] - msm = '_CRT_%s.msm' % arch + msm = '_CRT_{}.msm'.format(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)) - print(r' <Directory Id="%s">' % folder) + print(r' <Merge Id="VCRedist" DiskId="1" Language="0" SourceFile="{}\{}\MergeModules\{}"/>'.format(msvc, d, fn)) + print(r' <Directory Id="{}">'.format(folder)) print(r' <Directory Id="ProgramFilesMonetDB" Name="MonetDB">') print(r' <Directory Id="INSTALLDIR" Name="MonetDB5">') print(r' <Component Id="registry">') @@ -141,12 +141,12 @@ def main(): 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']]) + r'{}\bin\iconv-2.dll'.format(makedefs['LIBICONV']), + r'{}\bin\libbz2.dll'.format(makedefs['LIBBZIP2']), + r'{}\bin\libcrypto-1_1{}.dll'.format(makedefs['LIBOPENSSL'], libcrypto), + r'{}\bin\libxml2.dll'.format(makedefs['LIBXML2']), + r'{}\bin\pcre.dll'.format(makedefs['LIBPCRE']), + r'{}\bin\zlib1.dll'.format(makedefs['LIBZLIB'])]) id = comp(debug, id, 14, [r'bin\mclient.pdb', r'bin\mserver5.pdb', @@ -157,8 +157,8 @@ def main(): r'lib\libmonetdb5.pdb', r'lib\libstream.pdb']) id = comp(geom, id, 14, - [r'%s\bin\geos_c.dll' % makedefs['LIBGEOS'], - r'%s\bin\geos.dll' % makedefs['LIBGEOS']]) + [r'{}\bin\geos_c.dll'.format(makedefs['LIBGEOS']), + r'{}\bin\geos.dll'.format(makedefs['LIBGEOS'])]) print(r' </Directory>') print(r' <Directory Id="etc" Name="etc">') id = comp(features, id, 14, [r'etc\.monetdb']) @@ -166,7 +166,7 @@ def main(): print(r' <Directory Id="include" Name="include">') print(r' <Directory Id="monetdb" Name="monetdb">') 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')))] + + sorted([r'include\monetdb\{}'.format(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\matomic.h', r'include\monetdb\stream.h', @@ -178,30 +178,30 @@ def main(): 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' not in x) and ('pyapi' not in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5', 'autoload'))))]) + [r'lib\monetdb5\autoload\{}'.format(x) for x in sorted(filter(lambda x: x.endswith('.mal') and ('geom' not in x) and ('pyapi' 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'))))]) + [r'lib\monetdb5\autoload\{}'.format(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'))))]) id = comp(pyapi2, id, 18, - [r'lib\monetdb5\autoload\%s' % x for x in sorted(filter(lambda x: x.endswith('_pyapi.mal'), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5', 'autoload'))))]) + [r'lib\monetdb5\autoload\{}'.format(x) for x in sorted(filter(lambda x: x.endswith('_pyapi.mal'), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5', 'autoload'))))]) id = comp(pyapi3, id, 18, - [r'lib\monetdb5\autoload\%s' % x for x in sorted(filter(lambda x: x.endswith('_pyapi3.mal'), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5', 'autoload'))))]) + [r'lib\monetdb5\autoload\{}'.format(x) for x in sorted(filter(lambda x: x.endswith('_pyapi3.mal'), 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'))))]) + [r'lib\monetdb5\createdb\{}'.format(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'))))]) + [r'lib\monetdb5\createdb\{}'.format(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) and ('pyapi' not in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))]) + [r'lib\monetdb5\{}'.format(x) for x in sorted(filter(lambda x: x.endswith('.mal') and ('geom' not in x) and ('pyapi' 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') and ('geom' not in x) and ('pyapi' not in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))]) + [r'lib\monetdb5\{}'.format(x) for x in sorted(filter(lambda x: x.startswith('lib_') and x.endswith('.dll') and ('geom' not in x) and ('pyapi' not in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))]) id = comp(debug, id, 16, - [r'lib\monetdb5\%s' % x for x in sorted(filter(lambda x: x.startswith('lib_') and x.endswith('.pdb') and ('geom' not in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))]) + [r'lib\monetdb5\{}'.format(x) for x in sorted(filter(lambda x: x.startswith('lib_') and x.endswith('.pdb') and ('geom' not in x), os.listdir(os.path.join(sys.argv[3], 'lib', 'monetdb5'))))]) id = comp(geom, 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'))))]) + [r'lib\monetdb5\{}'.format(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(geom, 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'))))]) + [r'lib\monetdb5\{}'.format(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'))))]) id = comp(pyapi2, id, 16, [r'lib\monetdb5\pyapi.mal', r'lib\monetdb5\lib_pyapi.dll']) @@ -214,12 +214,12 @@ def main(): r'lib\libmapi.lib', r'lib\libmonetdb5.lib', r'lib\libstream.lib', - r'%s\lib\iconv.dll.lib' % makedefs['LIBICONV'], - r'%s\lib\libbz2.lib' % makedefs['LIBBZIP2'], - r'%s\lib\libcrypto.lib' % makedefs['LIBOPENSSL'], - r'%s\lib\libxml2.lib' % makedefs['LIBXML2'], - r'%s\lib\pcre.lib' % makedefs['LIBPCRE'], - r'%s\lib\zdll.lib' % makedefs['LIBZLIB']]) + r'{}\lib\iconv.dll.lib'.format(makedefs['LIBICONV']), + r'{}\lib\libbz2.lib'.format(makedefs['LIBBZIP2']), + r'{}\lib\libcrypto.lib'.format(makedefs['LIBOPENSSL']), + r'{}\lib\libxml2.lib'.format(makedefs['LIBXML2']), + r'{}\lib\pcre.lib'.format(makedefs['LIBPCRE']), + r'{}\lib\zdll.lib'.format(makedefs['LIBZLIB'])]) print(r' </Directory>') print(r' <Directory Id="share" Name="share">') print(r' <Directory Id="doc" Name="doc">') @@ -269,32 +269,32 @@ def main(): print(r' <Feature Id="Complete" ConfigurableDirectory="INSTALLDIR" Display="expand" InstallDefault="local" Title="MonetDB/SQL" Description="The complete package.">') print(r' <Feature Id="MainServer" AllowAdvertise="no" Absent="disallow" Title="MonetDB/SQL" Description="The MonetDB/SQL server.">') for f in features: - print(r' <ComponentRef Id="%s"/>' % f) + print(r' <ComponentRef Id="{}"/>'.format(f)) print(r' <MergeRef Id="VCRedist"/>') print(r' </Feature>') print(r' <Feature Id="PyAPI2" Level="1000" AllowAdvertise="no" Absent="allow" Title="Include embedded Python 2" Description="Files required for using embedded Python 2.">') for f in pyapi2: - print(r' <ComponentRef Id="%s"/>' % f) + print(r' <ComponentRef Id="{}"/>'.format(f)) print(r' <Condition Level="1">PYAPI2EXISTS</Condition>') print(r' </Feature>') print(r' <Feature Id="PyAPI3" Level="1000" AllowAdvertise="no" Absent="allow" Title="Include embedded Python 3" Description="Files required for using embedded Python 3.">') for f in pyapi3: - print(r' <ComponentRef Id="%s"/>' % f) + print(r' <ComponentRef Id="{}"/>'.format(f)) print(r' <Condition Level="1">PYAPI3EXISTS</Condition>') print(r' </Feature>') print(r' <Feature Id="Extend" Level="1000" AllowAdvertise="no" Absent="allow" Title="Extend MonetDB/SQL" Description="Files required for extending MonetDB (include files and .lib files).">') for f in extend: - print(r' <ComponentRef Id="%s"/>' % f) + print(r' <ComponentRef Id="{}"/>'.format(f)) print(r' <Condition Level="1">INCLUDEEXISTS</Condition>') print(r' </Feature>') print(r' <Feature Id="Debug" Level="1000" AllowAdvertise="no" Absent="allow" Title="MonetDB/SQL Debug Files" Description="Files useful for debugging purposes (.pdb files).">') for f in debug: - print(r' <ComponentRef Id="%s"/>' % f) + print(r' <ComponentRef Id="{}"/>'.format(f)) print(r' <Condition Level="1">DEBUGEXISTS</Condition>') print(r' </Feature>') print(r' <Feature Id="GeomModule" Level="1000" AllowAdvertise="no" Absent="allow" Title="Geom Module" Description="The GIS (Geographic Information System) extension for MonetDB/SQL.">') for f in geom: - print(r' <ComponentRef Id="%s"/>' % f) + print(r' <ComponentRef Id="{}"/>'.format(f)) print(r' <Condition Level="1">GEOMEXISTS</Condition>') print(r' </Feature>') print(r' </Feature>') diff --git a/monetdb5/NT/M5server.bat b/monetdb5/NT/M5server.bat --- a/monetdb5/NT/M5server.bat +++ b/monetdb5/NT/M5server.bat @@ -23,14 +23,14 @@ if "%APPDATA%" == "" goto usevar rem if the APPDATA variable does exist, put the database there set MONETDBDIR=%APPDATA%\MonetDB5 set MONETDBFARM="--dbpath=%MONETDBDIR%\dbfarm\demo" -mkdir "%MONETDBDIR%\dbfarm\demo" +if not exist "%MONETDBDIR%\dbfarm\demo" mkdir "%MONETDBDIR%\dbfarm\demo" goto skipusevar :usevar rem if the APPDATA variable does not exist, put the database in the rem installation folder (i.e. default location, so no command line argument) set MONETDBDIR=%MONETDB%\var\monetdb5 set MONETDBFARM= _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list