Merged revisions 73390 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r73390 | martin.v.loewis | 2009-06-12 19:28:31 +0200 (Fr, 12 Jun 2009) | 3 lines

  Support AMD64 in msilib. Set Win64 on reglocator.
  Fixes #6258.
........
diff --git a/Lib/distutils/command/bdist_msi.py b/Lib/distutils/command/bdist_msi.py
index f94d957..da0b30d 100644
--- a/Lib/distutils/command/bdist_msi.py
+++ b/Lib/distutils/command/bdist_msi.py
@@ -282,9 +282,14 @@
         PYTHON.USER if defined, else from PYTHON.MACHINE.
         PYTHON is PYTHONDIR\python.exe"""
         install_path = r"SOFTWARE\Python\PythonCore\%s\InstallPath" % self.target_version
+        if msilib.Win64:
+            # type: msidbLocatorTypeRawValue + msidbLocatorType64bit
+            Type = 2+16
+        else:
+            Type = 2
         add_data(self.db, "RegLocator",
-                [("python.machine", 2, install_path, None, 2),
-                 ("python.user", 1, install_path, None, 2)])
+                [("python.machine", 2, install_path, None, Type),
+                 ("python.user", 1, install_path, None, Type)])
         add_data(self.db, "AppSearch",
                 [("PYTHON.MACHINE", "python.machine"),
                  ("PYTHON.USER", "python.user")])
diff --git a/Lib/msilib/__init__.py b/Lib/msilib/__init__.py
index b13d030..71cced2 100644
--- a/Lib/msilib/__init__.py
+++ b/Lib/msilib/__init__.py
@@ -2,9 +2,11 @@
 # Copyright (C) 2005 Martin v. Löwis
 # Licensed to PSF under a Contributor Agreement.
 from _msi import *
-import os, string, re
+import os, string, re, sys
 
-Win64=0
+AMD64 = "AMD64" in sys.version
+Itanium = "Itanium" in sys.version
+Win64 = AMD64 or Itanium
 
 # Partially taken from Wine
 datasizemask=      0x00ff
@@ -145,8 +147,10 @@
     si.SetProperty(PID_TITLE, "Installation Database")
     si.SetProperty(PID_SUBJECT, ProductName)
     si.SetProperty(PID_AUTHOR, Manufacturer)
-    if Win64:
+    if Itanium:
         si.SetProperty(PID_TEMPLATE, "Intel64;1033")
+    elif AMD64:
+        si.SetProperty(PID_TEMPLATE, "x64;1033")
     else:
         si.SetProperty(PID_TEMPLATE, "Intel;1033")
     si.SetProperty(PID_REVNUMBER, gen_uuid())
diff --git a/Misc/NEWS b/Misc/NEWS
index 2c9c121..24018ac 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -56,6 +56,8 @@
 Library
 -------
 
+- Issue #6258: Support AMD64 in bdist_msi.
+
 - Issue #5262: Fixed bug in next rollover time computation in
   TimedRotatingFileHandler.