[Python-checkins] python/nondist/sandbox/msi msi.py,1.6,1.7

loewis at projects.sourceforge.net loewis at projects.sourceforge.net
Sun Feb 1 13:05:33 EST 2004


Update of /cvsroot/python/python/nondist/sandbox/msi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20170

Modified Files:
	msi.py 
Log Message:
Change DEFAULTPYTHON to a feature (ext_feature)
Install pythonxy.dll to System32
Make shortcuts advertised

Index: msi.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/msi/msi.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** msi.py	17 Jan 2004 20:51:24 -0000	1.6
--- msi.py	1 Feb 2004 18:05:31 -0000	1.7
***************
*** 67,70 ****
--- 67,75 ----
      testprefix = ''
  
+ if msilib.Win64:
+     SystemFolderName = "[SystemFolder64]"
+ else:
+     SystemFolderName = "[SystemFolder]"
+ 
  msilib.reset()
  
***************
*** 85,90 ****
      msilib.add_tables(db, sequence)
      add_data(db, "Property", [("UpgradeCode", uc),
!                               ("DEFAULTPYTHON", "1"),
!                               ("WhichUsers", "ALL")])
      db.Commit()
      return db
--- 90,95 ----
      msilib.add_tables(db, sequence)
      add_data(db, "Property", [("UpgradeCode", uc),
!                               ("WhichUsers", "ALL"),
!                              ])
      db.Commit()
      return db
***************
*** 204,207 ****
--- 209,214 ----
          ("InitialTargetDir", 307, "TARGETDIR",
           "[WindowsVolume]Python%s%s" % (major, minor)),
+         ("SetDLLDirToTarget", 307, "DLLDIR", "[TARGETDIR]"),
+         ("SetDLLDirToSystem32", 307, "DLLDIR", SystemFolderName),
          ])
  
***************
*** 210,213 ****
--- 217,223 ----
               [("PrepareDlg", None, 140),
                ("InitialTargetDir", 'TARGETDIR=""', 750),
+               # In the user interface, assume all-users installation if privileged.
+               ("SetDLLDirToSystem32", 'DLLDIR="" and Privileged', 751),
+               ("SetDLLDirToTarget", 'DLLDIR="" and not Privileged', 752),
                ("SelectDirectoryDlg", "Not Installed", 1230),
                # XXX notyet
***************
*** 216,220 ****
                ("ProgressDlg", None, 1280)])
      add_data(db, "AdminUISequence",
!              [("InitialTargetDir", 'TARGETDIR=""', 750)])
  
      #####################################################################
--- 226,243 ----
                ("ProgressDlg", None, 1280)])
      add_data(db, "AdminUISequence",
!              [("InitialTargetDir", 'TARGETDIR=""', 750),
!               ("SetDLLDirToTarget", 'DLLDIR=""', 751),
!              ])
! 
!     # Execute Sequences
!     add_data(db, "InstallExecuteSequence",
!             [("InitialTargetDir", 'TARGETDIR=""', 750),
!              ("SetDLLDirToSystem32", 'DLLDIR="" and ALLUSERS', 751),
!              ("SetDLLDirToTarget", 'DLLDIR="" and not ALLUSERS', 752),
!             ])
!     add_data(db, "AdminExecuteSequence",
!             [("InitialTargetDir", 'TARGETDIR=""', 750),
!              ("SetDLLDirToTarget", 'DLLDIR=""', 751),
!             ])
  
      #####################################################################
***************
*** 425,433 ****
                          "OK", "OK", "OK")
      advanced.title("Advanced Options")
!     #0x10: Numeric property
!     advanced.control("Default", "CheckBox", 135, 60, 160, 20, 19,
!                      "DEFAULTPYTHON", "Install as Default Python Installation",
!                      "AdminInstall", None)
!     g = advanced.radiogroup("AdminInstall", 135, 90, 160, 50, 3,
                              "WhichUsers", "", "OK")
      # ALLUSERS should not be tempered with on W9x
--- 448,452 ----
                          "OK", "OK", "OK")
      advanced.title("Advanced Options")
!     g = advanced.radiogroup("AdminInstall", 135, 60, 160, 50, 3,
                              "WhichUsers", "", "OK")
      # ALLUSERS should not be tempered with on W9x
***************
*** 444,448 ****
      c.condition("Hide", "NOT Windows9x")    
  
!     advanced.cancel("Ok", "Default", name="OK").event("EndDialog", "Return")
                          
      #####################################################################
--- 463,470 ----
      c.condition("Hide", "NOT Windows9x")    
  
!     c = advanced.cancel("Ok", "AdminInstall", name="OK")
!     c.event("DoAction", "SetDLLDirToTarget", 'WhichUsers="JUSTME"', 1)
!     c.event("DoAction", "SetDLLDirToSystem32", 'WhichUsers="ALL"', 2)
!     c.event("EndDialog", "Return", order = 3)
                          
      #####################################################################
***************
*** 518,535 ****
  
  def add_features(db):
!     global default_feature, tcltk, htmlfiles, tools, testsuite
      default_feature = Feature(db, "DefaultFeature", "Python",
                                "Python Interpreter and Libraries",
                                1, directory = "TARGETDIR")
!     tcltk = Feature(db, "TclTk", "Tcl/Tk", "Tkinter, IDLE, pydoc", 3,
                      parent = default_feature)
      htmlfiles = Feature(db, "Documentation", "Documentation",
!                         "Python HTMLHelp File", 5, parent = default_feature)
      tools = Feature(db, "Tools", "Utility Scripts",
!                     "Python utility scripts (Tools/", 7, 
! 		    parent = default_feature)
      testsuite = Feature(db, "Testsuite", "Test suite",
!                         "Python test suite (Lib/test/)", 9, 
! 			parent = default_feature)
  
  def extract_msvcr71():
--- 540,561 ----
  
  def add_features(db):
!     global default_feature, tcltk, htmlfiles, tools, testsuite, ext_feature
      default_feature = Feature(db, "DefaultFeature", "Python",
                                "Python Interpreter and Libraries",
                                1, directory = "TARGETDIR")
!     ext_feature = Feature(db, "Extensions", "Register Extensions",
!                           "Make this Python installation the default Python installation", 3,
!                          parent = default_feature)
!     tcltk = Feature(db, "TclTk", "Tcl/Tk", "Tkinter, IDLE, pydoc", 5,
                      parent = default_feature)
      htmlfiles = Feature(db, "Documentation", "Documentation",
!                         "Python HTMLHelp File", 7, parent = default_feature)
      tools = Feature(db, "Tools", "Utility Scripts",
!                     "Python utility scripts (Tools/", 9, 
!                     parent = default_feature)
      testsuite = Feature(db, "Testsuite", "Test suite",
!                         "Python test suite (Lib/test/)", 11,
!                         parent = default_feature)
!     
  
  def extract_msvcr71():
***************
*** 560,565 ****
      root = Directory(db, cab, None, srcdir, "TARGETDIR", "SourceDir")
      default_feature.set_current()
-     root.add_file("PCBuild/python.exe")
-     root.add_file("PCBuild/pythonw.exe")
      root.add_file("PCBuild/w9xpopen.exe")
      root.add_file("PC/py.ico")
--- 586,589 ----
***************
*** 568,577 ****
      root.add_file("NEWS.txt", src="Misc/NEWS")
      root.add_file("LICENSE.txt", src="LICENSE")
!     
!     root.add_file("PCBuild/python%s%s.dll" % (major, minor)) # XXX separate component for system32
      # XXX determine dependencies
      version, lang = extract_msvcr71()
!     root.add_file("msvcr71.dll", src=os.path.abspath("msvcr71.dll"),
!                   version=version, language=lang)
      tmpfiles.append("msvcr71.dll")
      
--- 592,607 ----
      root.add_file("NEWS.txt", src="Misc/NEWS")
      root.add_file("LICENSE.txt", src="LICENSE")
!     # msidbComponentAttributesSharedDllRefCount = 8
!     root.start_component("python.exe", flags = 8, keyfile="python.exe")
!     root.add_file("PCBuild/python.exe")
!     root.start_component("pythonw.exe", flags = 8, keyfile="pythonw.exe")
!     root.add_file("PCBuild/pythonw.exe")
! 
!     dlldir = Directory(db, cab, root, srcdir, "DLLDIR", ".")
!     dlldir.add_file("PCBuild/python%s%s.dll" % (major, minor))
      # XXX determine dependencies
      version, lang = extract_msvcr71()
!     dlldir.add_file("msvcr71.dll", src=os.path.abspath("msvcr71.dll"),
!                     version=version, language=lang)
      tmpfiles.append("msvcr71.dll")
      
***************
*** 709,718 ****
                 "InstallPath"),
                ("REGISTRY.def", msilib.gen_uuid(), "TARGETDIR", 4,
!                "DEFAULTPYTHON=1", None),
                ("REGISTRY.tcl", msilib.gen_uuid(), "TARGETDIR", 4,
!                "DEFAULTPYTHON=1", None)])
      add_data(db, "FeatureComponents",
               [(default_feature.id, "REGISTRY"),
!               (default_feature.id, "REGISTRY.def"),
                (tcltk.id, "REGISTRY.tcl")])
  
--- 739,748 ----
                 "InstallPath"),
                ("REGISTRY.def", msilib.gen_uuid(), "TARGETDIR", 4,
!                None, "py.ext"),
                ("REGISTRY.tcl", msilib.gen_uuid(), "TARGETDIR", 4,
!                "&%s <> 2" % ext_feature.id, "py.IDLE")])
      add_data(db, "FeatureComponents",
               [(default_feature.id, "REGISTRY"),
!               (ext_feature.id, "REGISTRY.def"),
                (tcltk.id, "REGISTRY.tcl")])
  
***************
*** 783,816 ****
               [("ProgramMenuFolder", "TARGETDIR", "."),
                ("MenuDir", "ProgramMenuFolder", "PY%s%s|%sPython %s.%s" % (major,minor,testprefix,major,minor))])
      add_data(db, "Shortcut",
               [# Advertised shortcuts: targets are features, not files
                # The key file of the component is then entered as the real target
!               # XXX, advertised shortcuts don't work, so make them unadvertised
!               # for now
!               #("IDLE", "MenuDir", "IDLE|IDLE (Python GUI)", "pythonw.exe",
!               # default_feature.id, r"[TARGETDIR]Lib\idlelib\idle.pyw",
!               # None, None, None, None, None, "TARGETDIR"),
!               #("PyDoc", "MenuDir", "MODDOCS|Module Docs", "pythonw.exe",
!               # default_feature.id, r"[TARGETDIR]Tools\scripts\pydocgui.pyw",
!               # None, None, None, None, None, "TARGETDIR"),
!               #("Python", "MenuDir", "PYTHON|Python (command line)", "python.exe",
!               # default_feature.id, None,
!               # None, None, None, None, None, "TARGETDIR"),
!               ("IDLE", "MenuDir", "IDLE|IDLE (Python GUI)", "REGISTRY",
!                r"[TARGETDIR]pythonw.exe", r"[TARGETDIR]Lib\idlelib\idle.pyw",
!                None, None, None, None, None, "TARGETDIR"),
!               ("PyDoc", "MenuDir", "MODDOCS|Module Docs", "REGISTRY",
!                r"[TARGETDIR]pythonw.exe", r"[TARGETDIR]Tools\scripts\pydocgui.pyw",
!                None, None, None, None, None, "TARGETDIR"),
!               ("Python", "MenuDir", "PYTHON|Python (command line)", "REGISTRY",
!                r"[TARGETDIR]python.exe", None,
!                None, None, None, None, None, "TARGETDIR"),
!               # Non-advertised features: must be associated with a registry component
                ("Manual", "MenuDir", "MANUAL|Python Manuals", "REGISTRY",
                 r"[TARGETDIR]Doc\python%s%s.chm" % (major, minor), None,
                 None, None, None, None, None, None),
-               # XXX: System64Folder on Win64
                ("Uninstall", "MenuDir", "UNINST|Uninstall Python", "REGISTRY",
!                "[SystemFolder]msiexec",  "/x%s" % product_code,
                 None, None, None, None, None, None),
                ])
--- 813,836 ----
               [("ProgramMenuFolder", "TARGETDIR", "."),
                ("MenuDir", "ProgramMenuFolder", "PY%s%s|%sPython %s.%s" % (major,minor,testprefix,major,minor))])
+     add_data(db, "RemoveFile",
+              [("MenuDir", "TARGETDIR", None, "MenuDir", 2)])
      add_data(db, "Shortcut",
               [# Advertised shortcuts: targets are features, not files
                # The key file of the component is then entered as the real target
!               ("IDLE", "MenuDir", "IDLE|IDLE (Python GUI)", "pythonw.exe",
!                tcltk.id, r"[TARGETDIR]Lib\idlelib\idle.pyw",
!                None, None, None, "py.ico", None, "TARGETDIR"),
!               ("PyDoc", "MenuDir", "MODDOCS|Module Docs", "pythonw.exe",
!                default_feature.id, r"[TARGETDIR]Tools\scripts\pydocgui.pyw",
!                None, None, None, "py.ico", None, "TARGETDIR"),
!               ("Python", "MenuDir", "PYTHON|Python (command line)", "python.exe",
!                default_feature.id, None,
!                None, None, None, "py.ico", None, "TARGETDIR"),
!               ## Non-advertised features: must be associated with a registry component
                ("Manual", "MenuDir", "MANUAL|Python Manuals", "REGISTRY",
                 r"[TARGETDIR]Doc\python%s%s.chm" % (major, minor), None,
                 None, None, None, None, None, None),
                ("Uninstall", "MenuDir", "UNINST|Uninstall Python", "REGISTRY",
!                SystemFolderName+"msiexec",  "/x%s" % product_code,
                 None, None, None, None, None, None),
                ])




More information about the Python-checkins mailing list