#22398 Tools/msi enhancements for 2.7
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.
This commit is contained in:
parent
bf8b0ed5cb
commit
144de3152d
|
@ -23,7 +23,7 @@ NMAKE = ('nmake /nologo /f %s '
|
|||
'%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:
|
||||
|
|
|
@ -13,7 +13,7 @@ import tempfile
|
|||
# 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 @@ srcdir = os.path.abspath("../..")
|
|||
# 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 @@ def generate_license():
|
|||
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 @@ def add_files(db):
|
|||
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))
|
||||
|
|
|
@ -484,12 +484,7 @@ class Directory:
|
|||
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue