diff --git a/PCbuild/build_tkinter.py b/PCbuild/build_tkinter.py
index 0590b0f282e..21e89cc1139 100644
--- a/PCbuild/build_tkinter.py
+++ b/PCbuild/build_tkinter.py
@@ -11,14 +11,9 @@ import sys
here = os.path.abspath(os.path.dirname(__file__))
par = os.path.pardir
-if 1:
- TCL = "tcl8.4.16"
- TK = "tk8.4.16"
- TIX = "tix-8.4.0"
-else:
- TCL = "tcl8.5b3"
- TK = "tcl8.5b3"
- TIX = "Tix8.4.2"
+TCL = "tcl8.5.2"
+TK = "tk8.5.2"
+TIX = "tix-8.4.0.x"
ROOT = os.path.abspath(os.path.join(here, par, par))
# Windows 2000 compatibility: WINVER 0x0500
@@ -38,9 +33,9 @@ def build(platform, clean):
if platform == "Win32":
dest = os.path.join(ROOT, "tcltk")
machine = "X86"
- elif platform == "x64":
+ elif platform == "AMD64":
dest = os.path.join(ROOT, "tcltk64")
- machine = "X64"
+ machine = "AMD64"
else:
raise ValueError(platform)
@@ -50,16 +45,16 @@ def build(platform, clean):
os.chdir(os.path.join(tcldir, "win"))
if clean:
nmake("makefile.vc", "clean")
- nmake("makefile.vc")
- nmake("makefile.vc", "install", INSTALLDIR=dest)
+ nmake("makefile.vc", MACHINE=machine)
+ nmake("makefile.vc", "install", INSTALLDIR=dest, MACHINE=machine)
# TK
if 1:
os.chdir(os.path.join(ROOT, TK, "win"))
if clean:
nmake("makefile.vc", "clean", TCLDIR=tcldir)
- nmake("makefile.vc", TCLDIR=tcldir)
- nmake("makefile.vc", "install", TCLDIR=tcldir, INSTALLDIR=dest)
+ nmake("makefile.vc", TCLDIR=tcldir, MACHINE=machine)
+ nmake("makefile.vc", "install", TCLDIR=tcldir, INSTALLDIR=dest, MACHINE=machine)
# TIX
if 1:
@@ -67,12 +62,12 @@ def build(platform, clean):
os.chdir(os.path.join(ROOT, TIX, "win"))
if clean:
nmake("python9.mak", "clean")
- nmake("python9.mak", MACHINE=machine)
- nmake("python9.mak", "install")
+ nmake("python9.mak", MACHINE=machine, INSTALL_DIR=dest)
+ nmake("python9.mak", "install", INSTALL_DIR=dest)
def main():
- if len(sys.argv) < 2 or sys.argv[1] not in ("Win32", "x64"):
- print("%s Win32|x64" % sys.argv[0])
+ if len(sys.argv) < 2 or sys.argv[1] not in ("Win32", "AMD64"):
+ print("%s Win32|AMD64" % sys.argv[0])
sys.exit(1)
if "-c" in sys.argv:
diff --git a/PCbuild/pyproject.vsprops b/PCbuild/pyproject.vsprops
index d1e5d86f708..3633aeb4fd4 100644
--- a/PCbuild/pyproject.vsprops
+++ b/PCbuild/pyproject.vsprops
@@ -94,18 +94,18 @@
/>
diff --git a/Tools/buildbot/external-amd64.bat b/Tools/buildbot/external-amd64.bat
index fdd695af63c..d82f54b8ae7 100644
--- a/Tools/buildbot/external-amd64.bat
+++ b/Tools/buildbot/external-amd64.bat
@@ -4,14 +4,14 @@
call "Tools\buildbot\external-common.bat"
call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
-if not exist tcltk64\bin\tcl84g.dll (
- cd tcl-8.4.18.2\win
+if not exist tcltk64\bin\tcl85g.dll (
+ cd tcl-8.5.2.1\win
nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all install
cd ..\..
)
-if not exist tcltk64\bin\tk84g.dll (
- cd tk-8.4.18.1\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.4.18.2 clean all install
+if not exist tcltk64\bin\tk85g.dll (
+ cd tk-8.5.2.1\win
+ nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.2.1 clean all install
cd ..\..
)
diff --git a/Tools/buildbot/external-common.bat b/Tools/buildbot/external-common.bat
index ecf9901ccc7..d14ff520d11 100644
--- a/Tools/buildbot/external-common.bat
+++ b/Tools/buildbot/external-common.bat
@@ -27,8 +27,11 @@ if not exist db-4.4.20 svn export http://svn.python.org/projects/external/db-4.4
if not exist openssl-0.9.8g svn export http://svn.python.org/projects/external/openssl-0.9.8g
@rem tcl/tk
-if not exist tcl-8.4.18.2 svn export http://svn.python.org/projects/external/tcl-8.4.18.2
-if not exist tk-8.4.18.1 svn export http://svn.python.org/projects/external/tk-8.4.18.1
+if not exist tcl-8.5.2.1 (
+ rd /s/q tcltk tcltk64
+ svn export http://svn.python.org/projects/external/tcl-8.5.2.1
+)
+if not exist tk-8.5.2.0 svn export http://svn.python.org/projects/external/tk-8.5.2.0
@rem sqlite3
if not exist sqlite-source-3.3.4 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4
diff --git a/Tools/buildbot/external.bat b/Tools/buildbot/external.bat
index 41136056001..592c5853a78 100644
--- a/Tools/buildbot/external.bat
+++ b/Tools/buildbot/external.bat
@@ -4,14 +4,18 @@
call "Tools\buildbot\external-common.bat"
call "%VS90COMNTOOLS%\vsvars32.bat"
-if not exist tcltk\bin\tcl84g.dll (
- cd tcl-8.4.18.2\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all install
+if not exist tcltk\bin\tcl85.dll (
+ @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install
+ cd tcl-8.5.2.1\win
+ nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk clean all
+ nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install
cd ..\..
)
-if not exist tcltk\bin\tk84g.dll (
- cd tk-8.4.18.1\win
- nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.4.18.2 clean all install
+if not exist tcltk\bin\tk85.dll (
+ cd tk-8.5.2.0\win
+ nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 clean
+ nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 all
+ nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.2.1 install
cd ..\..
)
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index 03ccc573245..174a334d1da 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -849,17 +849,18 @@ def generate_license():
import shutil, glob
out = open("LICENSE.txt", "w")
shutil.copyfileobj(open(os.path.join(srcdir, "LICENSE")), out)
- for dir, file in (("bzip2","LICENSE"),
- ("db", "LICENSE"),
- ("openssl", "LICENSE"),
- ("tcl", "license.terms"),
- ("tk", "license.terms")):
- out.write("\nThis copy of Python includes a copy of %s, which is licensed under the following terms:\n\n" % dir)
- dirs = glob.glob(srcdir+"/../"+dir+"-*")
+ for name, pat, file in (("bzip2","bzip2-*", "LICENSE"),
+ ("Berkeley DB", "db-*", "LICENSE"),
+ ("openssl", "openssl-*", "LICENSE"),
+ ("Tcl", "tcl8*", "license.terms"),
+ ("Tk", "tk8*", "license.terms"),
+ ("Tix", "tix-*", "license.terms")):
+ out.write("\nThis copy of Python includes a copy of %s, which is licensed under the following terms:\n\n" % name)
+ dirs = glob.glob(srcdir+"/../"+pat)
if not dirs:
- raise ValueError, "Could not find "+srcdir+"/../"+dir+"-*"
+ raise ValueError, "Could not find "+srcdir+"/../"+pat
if len(dirs) > 2:
- raise ValueError, "Multiple copies of "+dir
+ raise ValueError, "Multiple copies of "+pat
dir = dirs[0]
shutil.copyfileobj(open(os.path.join(dir, file)), out)
out.close()
diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py
index e5d73c7baa2..9245a22986f 100644
--- a/Tools/msi/msilib.py
+++ b/Tools/msi/msilib.py
@@ -328,6 +328,7 @@ def make_id(str):
#str = str.replace(".", "_") # colons are allowed
str = str.replace(" ", "_")
str = str.replace("-", "_")
+ str = str.replace("+", "_")
if str[0] in string.digits:
str = "_"+str
assert re.match("^[A-Za-z_][A-Za-z0-9_.]*$", str), "FILE"+str
@@ -472,6 +473,7 @@ class Directory:
[(feature.id, component)])
def make_short(self, file):
+ file = re.sub(r'[\?|><:/*"+,;=\[\]]', '_', file) # restrictions on short names
parts = file.split(".")
if len(parts)>1:
suffix = parts[-1].upper()
@@ -500,7 +502,6 @@ class Directory:
if pos in (10, 100, 1000):
prefix = prefix[:-1]
self.short_names.add(file)
- assert not re.search(r'[\?|><:/*"+,;=\[\]]', file) # restrictions on short names
return file
def add_file(self, file, src=None, version=None, language=None):