python/nondist/sandbox/msi msi.py,1.6,1.7

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), ])
participants (1)
-
loewis@projects.sourceforge.net