Commit f2f592d1 authored by Martin v. Löwis's avatar Martin v. Löwis

Generate product code UUID from download URL.

parent 8d3c290d
...@@ -6,7 +6,6 @@ from msilib import Feature, CAB, Directory, Dialog, Binary, add_data ...@@ -6,7 +6,6 @@ from msilib import Feature, CAB, Directory, Dialog, Binary, add_data
import uisample import uisample
from win32com.client import constants from win32com.client import constants
from distutils.spawn import find_executable from distutils.spawn import find_executable
from uuids import product_codes
import tempfile import tempfile
# Settings can be overridden in config.py below # Settings can be overridden in config.py below
...@@ -77,9 +76,6 @@ upgrade_code_64='{6A965A0C-6EE6-4E3A-9983-3263F56311EC}' ...@@ -77,9 +76,6 @@ upgrade_code_64='{6A965A0C-6EE6-4E3A-9983-3263F56311EC}'
if snapshot: if snapshot:
current_version = "%s.%s.%s" % (major, minor, int(time.time()/3600/24)) current_version = "%s.%s.%s" % (major, minor, int(time.time()/3600/24))
product_code = msilib.gen_uuid()
else:
product_code = product_codes[current_version]
if full_current_version is None: if full_current_version is None:
full_current_version = current_version full_current_version = current_version
...@@ -187,12 +183,19 @@ dll_path = os.path.join(srcdir, PCBUILD, dll_file) ...@@ -187,12 +183,19 @@ dll_path = os.path.join(srcdir, PCBUILD, dll_file)
msilib.set_arch_from_file(dll_path) msilib.set_arch_from_file(dll_path)
if msilib.pe_type(dll_path) != msilib.pe_type("msisupport.dll"): if msilib.pe_type(dll_path) != msilib.pe_type("msisupport.dll"):
raise SystemError("msisupport.dll for incorrect architecture") raise SystemError("msisupport.dll for incorrect architecture")
if msilib.Win64: if msilib.Win64:
upgrade_code = upgrade_code_64 upgrade_code = upgrade_code_64
# Bump the last digit of the code by one, so that 32-bit and 64-bit
# releases get separate product codes if snapshot:
digit = hex((int(product_code[-2],16)+1)%16)[-1] product_code = msilib.gen_uuid()
product_code = product_code[:-2] + digit + '}' else:
# official release: generate UUID from the download link that the file will have
import uuid
product_code = uuid.uuid3(uuid.NAMESPACE_URL,
'http://www.python.org/ftp/python/%s.%s.%s/python-%s%s.msi' %
(major, minor, micro, full_current_version, msilib.arch_ext))
product_code = '{%s}' % product_code
if testpackage: if testpackage:
ext = 'px' ext = 'px'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment