# HG changeset patch # User Steve Dower # Date 1410546489 25200 # Fri Sep 12 11:28:09 2014 -0700 # Branch 2.7 # Node ID c01cdc810739e8c439a952a255754d781ba3d3fa # Parent 97f1ee2264bbe8bb39b2b930add8b021819cd2be Fix build_tkinter.py. Update msi.py to use environment vars and correct tcl/tk paths. Update msilib.py to generate short names for files with multiple dots in the name. diff --git a/PCbuild/build_tkinter.py b/PCbuild/build_tkinter.py --- a/PCbuild/build_tkinter.py +++ b/PCbuild/build_tkinter.py @@ -23,7 +23,7 @@ '%s %s') def nmake(makefile, command="", **kw): - defines = ' '.join(k+'='+v for k, v in kw.items()) + defines = ' '.join('%s=%s' % i for i in kw.items()) cmd = NMAKE % (makefile, defines, command) print("\n\n"+cmd+"\n") if os.system(cmd) != 0: diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py --- a/Tools/msi/msi.py +++ b/Tools/msi/msi.py @@ -13,7 +13,7 @@ # 0 for official python.org releases # 1 for intermediate releases by anybody, with # a new product code for every package. -snapshot = 1 +snapshot = int(os.environ.get("SNAPSHOT", "1")) # 1 means that file extension is px, not py, # and binaries start with x testpackage = 0 @@ -22,15 +22,15 @@ # Text to be displayed as the version in dialogs etc. # goes into file name and ProductCode. Defaults to # current_version.day for Snapshot, current_version otherwise -full_current_version = None +full_current_version = os.environ.get("CURRENT_VERSION") # Is Tcl available at all? have_tcl = True # path to PCbuild directory -PCBUILD="PCbuild" +PCBUILD=os.environ.get("PCBUILD", "PCbuild") # msvcrt version MSVCR = "90" # Name of certificate in default store to sign MSI with -certname = None +certname = os.environ.get("CERTNAME", None) # Make a zip file containing the PDB files for this build? pdbzip = True @@ -894,8 +894,8 @@ for name, pat, file in (("bzip2","bzip2-*", "LICENSE"), ("Berkeley DB", "db-*", "LICENSE"), ("openssl", "openssl-*", "LICENSE"), - ("Tcl", "tcl8*", "license.terms"), - ("Tk", "tk8*", "license.terms"), + ("Tcl", "tcl-8*", "license.terms"), + ("Tk", "tk-8*", "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) @@ -946,7 +946,7 @@ if not snapshot: # For releases, the Python DLL has the same version as the # installer package. - assert pyversion.split(".")[:3] == current_version.split(".") + assert pyversion.split(".")[:3] == current_version.split("."), "%s != %s" % (pyversion, current_version) dlldir.add_file("%s/python%s%s.dll" % (PCBUILD, major, minor), version=pyversion, language=installer.FileVersion(pydllsrc, 1)) diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py --- a/Tools/msi/msilib.py +++ b/Tools/msi/msilib.py @@ -484,12 +484,7 @@ 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() - else: - suffix = None - prefix = parts[0].upper() + prefix, _, suffix = file.upper().rpartition(".") if len(prefix) <= 8 and (not suffix or len(suffix)<=3): if suffix: file = prefix+"."+suffix