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):