+ Redid file associations on Win2K in what I believe is "the right way".
Can't test it until getting to a Win2K box, because the non-Admin way
of setting file associations on Win2K doesn't work on any other flavor
of Windows (and other flavors of Windows never need Admin privs to
do it the old way).
+ Consequently got rid of the "Register file associations" Component and
associated GUI.
+ Added a line to the summary saying whether or not this is an Admin-level
install (I fear that will be an important clue someday).
+ Minor fiddling to the summary to reduce the # of lines. Added a
horizontal scrollbar in case the install path is very long.
+ Reworked the way the Main and Tools components share pydoc.pyw; cleaner
and simpler.
diff --git a/PCbuild/python20.wse b/PCbuild/python20.wse
index 47b3dc3..6131986 100644
--- a/PCbuild/python20.wse
+++ b/PCbuild/python20.wse
@@ -25,7 +25,7 @@
Version Copyright=©2001 Python Software Foundation
Version Company=PythonLabs at Zope Corporation
Crystal Format=10111100101100000010001001001001
- Step View=&Properties
+ Step View=&All
Variable Name1=_WISE_
Variable Description1=WISE root directory
Variable Default1=C:\PROGRAM FILES\WISE INSTALLMASTER 8.1
@@ -280,27 +280,9 @@
item: Remark
Text=D: test suite
end
-item: Remark
- Text=E: register file extensions (requires Admin privs)
-end
-item: If/While Statement
- Variable=DOADMIN
- Value=1
-end
item: Set Variable
Variable=COMPONENTS
- Value=ABCDE
-end
-item: Else Statement
-end
-item: Remark
- Text=Lowercase E grays out the "register file extension" choice.
-end
-item: Set Variable
- Variable=COMPONENTS
- Value=ABCDe
-end
-item: End Block
+ Value=ABCD
end
item: Wizard Block
Direction Variable=DIRECTION
@@ -311,6 +293,120 @@
Filler Color=8421440
Flags=00000011
end
+item: If/While Statement
+ Variable=DISPLAY
+ Value=Start Installation
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value=Install directory: %MAINDIR%%CRLF%
+end
+item: Remark
+end
+item: If/While Statement
+ Variable=DOADMIN
+ Value=1
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value=%CRLF%Doing admin install.%CRLF%
+ Flags=00000001
+end
+item: Else Statement
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value=%CRLF%Doing non-admin install.%CRLF%
+ Flags=00000001
+end
+item: End Block
+end
+item: Remark
+end
+item: If/While Statement
+ Variable=DOBACKUP
+ Value=A
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value=%CRLF%Make backups, into %BACKUP%%CRLF%
+ Flags=00000001
+end
+item: Else Statement
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value=%CRLF%Don't make backups.%CRLF%
+ Flags=00000001
+end
+item: End Block
+end
+item: Remark
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value=%CRLF%Components:%CRLF%
+ Flags=00000001
+end
+item: If/While Statement
+ Variable=COMPONENTS
+ Value=A
+ Flags=00000010
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value= Python interpreter, libraries and IDLE%CRLF%
+ Flags=00000001
+end
+item: End Block
+end
+item: If/While Statement
+ Variable=COMPONENTS
+ Value=B
+ Flags=00000010
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value= Python documentation%CRLF%
+ Flags=00000001
+end
+item: End Block
+end
+item: If/While Statement
+ Variable=COMPONENTS
+ Value=C
+ Flags=00000010
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value= Tool and utility scripts%CRLF%
+ Flags=00000001
+end
+item: End Block
+end
+item: If/While Statement
+ Variable=COMPONENTS
+ Value=D
+ Flags=00000010
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value= Python test suite%CRLF%
+ Flags=00000001
+end
+item: End Block
+end
+item: Remark
+end
+item: Set Variable
+ Variable=SUMMARY
+ Value=%CRLF%Start Menu group: %GROUP%%CRLF%
+ Flags=00000001
+end
+item: End Block
+end
+item: Remark
+end
item: Custom Dialog Set
Name=Select Destination Directory
Display Variable=DISPLAY
@@ -774,7 +870,6 @@
Text=Python HTML docs
Text=Python utility scripts (Tools/)
Text=Python test suite (Lib/test/)
- Text=Register file extensons (requires Admin privs)
Text=
Text French=Python interpreter, library and IDLE
Text French=Python HTML docs
@@ -1014,146 +1109,28 @@
Rectangle=86 54 259 175
Help Context=16711681
Enabled Color=00000000000000001111111111111111
- Create Flags=01010000101000000001100010000100
+ Create Flags=01010000101100000001100000000100
Text=%SUMMARY%
end
end
end
item: Remark
end
-item: Remark
- Text=If we just finished "Select Destination Directory":
-end
-item: Remark
- Text= %MAINDIR% is set, so reinitialize %BACKUP% to match.
-end
-item: Remark
- Text=ElseIf we just finished "Select Program Manager Group":
-end
-item: Remark
- Text= "Start Installation" is next, so build a summary for "Start Installation" to display.
-end
-item: Remark
-end
item: If/While Statement
Variable=DISPLAY
Value=Select Destination Directory
end
+item: Remark
+ Text=User may have changed MAINDIR, so reset BACKUP to match.
+end
item: Set Variable
Variable=BACKUP
Value=%MAINDIR%\BACKUP
end
-item: Remark
-end
-item: ElseIf Statement
- Variable=DISPLAY
- Value=Select Program Manager Group
-end
-item: Set Variable
- Variable=SUMMARY
- Value=Installation directory%CRLF% %MAINDIR%%CRLF%
-end
-item: Remark
-end
-item: Set Variable
- Variable=SUMMARY
- Value=%CRLF%Make backups?%CRLF%
- Flags=00000001
-end
-item: If/While Statement
- Variable=DOBACKUP
- Value=A
-end
-item: Set Variable
- Variable=SUMMARY
- Value= Yes, into %BACKUP%%CRLF%
- Flags=00000001
-end
-item: Else Statement
-end
-item: Set Variable
- Variable=SUMMARY
- Value= No%CRLF%
- Flags=00000001
-end
item: End Block
end
item: Remark
end
-item: Set Variable
- Variable=SUMMARY
- Value=%CRLF%Components%CRLF%
- Flags=00000001
-end
-item: If/While Statement
- Variable=COMPONENTS
- Value=A
- Flags=00000010
-end
-item: Set Variable
- Variable=SUMMARY
- Value= Python interpreter, libraries and IDLE%CRLF%
- Flags=00000001
-end
-item: End Block
-end
-item: If/While Statement
- Variable=COMPONENTS
- Value=B
- Flags=00000010
-end
-item: Set Variable
- Variable=SUMMARY
- Value= Python documentation%CRLF%
- Flags=00000001
-end
-item: End Block
-end
-item: If/While Statement
- Variable=COMPONENTS
- Value=C
- Flags=00000010
-end
-item: Set Variable
- Variable=SUMMARY
- Value= Tool and utility scripts%CRLF%
- Flags=00000001
-end
-item: End Block
-end
-item: If/While Statement
- Variable=COMPONENTS
- Value=D
- Flags=00000010
-end
-item: Set Variable
- Variable=SUMMARY
- Value= Python test suite%CRLF%
- Flags=00000001
-end
-item: End Block
-end
-item: If/While Statement
- Variable=COMPONENTS
- Value=E
- Flags=00000010
-end
-item: Set Variable
- Variable=SUMMARY
- Value= Register file extensions%CRLF%
- Flags=00000001
-end
-item: End Block
-end
-item: Remark
-end
-item: Set Variable
- Variable=SUMMARY
- Value=%CRLF%Start Menu group%CRLF% %GROUP%%CRLF%
- Flags=00000001
-end
-item: End Block
-end
item: End Block
end
item: Remark
@@ -1756,17 +1733,6 @@
item: Remark
end
item: Remark
- Text=Windows pydoc driver
-end
-item: Install File
- Source=..\tools\scripts\*.pyw
- Destination=%MAINDIR%\Tools\Scripts
- Description=Windows pydoc driver
- Flags=0000000000000010
-end
-item: Remark
-end
-item: Remark
Text=Microsoft C runtime libraries
end
item: Install File
@@ -1830,24 +1796,6 @@
Flags=0000000000000010
end
item: Remark
- Text=*.pyw is installed by the main component; if we install it twice, a copy gets made
-end
-item: Remark
- Text= in BACKUP, and then a rollback-uninstall will copy back the first one.
-end
-item: Check if File/Dir Exists
- Pathname=%MAINDIR%\Tools\Scripts\pydoc.pyw
- Flags=00000101
-end
-item: Install File
- Source=..\tools\scripts\*.pyw
- Destination=%MAINDIR%\Tools\Scripts
- Description=Utility Scripts
- Flags=0000000000000010
-end
-item: End Block
-end
-item: Remark
end
item: Install File
Source=..\tools\webchecker\*.py
@@ -1982,6 +1930,24 @@
item: Remark
end
item: Remark
+ Text=Windows pydoc driver
+end
+item: If/While Statement
+ Variable=COMPONENTS
+ Value=AC
+ Flags=00001010
+end
+item: Install File
+ Source=..\tools\scripts\*.pyw
+ Destination=%MAINDIR%\Tools\Scripts
+ Description=Windows pydoc driver
+ Flags=0000000000000010
+end
+item: End Block
+end
+item: Remark
+end
+item: Remark
Text=DONE with file copying.
end
item: Remark
@@ -1995,15 +1961,39 @@
Flags=00001010
end
item: Remark
- Text=Register file extensions.
+ Text=Register file extensions. As usual, Admin privs get in the way, but with a twist:
end
item: Remark
- Text=Registering file extensions requires Admin privs.
+ Text=You don't need admin privs to write to HKEY_CLASSES_ROOT *except* under Win2K.
+end
+item: Remark
+ Text=On Win2K, a user without Admin privs has to register extensions under HKCU\Software\CLASSES instead.
+end
+item: Remark
+ Text=But while you can *do* that under other flavors of Windows too, it has no useful effect except in Win2K.
+end
+item: Set Variable
+ Variable=USE_HKCR
+ Value=1
+end
+item: Check Configuration
+ Flags=11110010
end
item: If/While Statement
- Variable=COMPONENTS
- Value=E
- Flags=00001010
+ Variable=DOADMIN
+ Value=0
+end
+item: Set Variable
+ Variable=USE_HKCR
+ Value=0
+end
+item: End Block
+end
+item: End Block
+end
+item: If/While Statement
+ Variable=USE_HKCR
+ Value=1
end
item: Remark
Text=File types.
@@ -2098,6 +2088,116 @@
Key=.pyo
New Value=Python.CompiledFile
end
+item: Else Statement
+end
+item: Remark
+ Text=File types.
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.File
+ New Value=Python File
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.File\shell\open\command
+ New Value=%MAINDIR%\python.exe "%%1" %%*
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.File\DefaultIcon
+ New Value=%MAINDIR%\Py.ico
+ Root=1
+end
+item: Remark
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.NoConFile
+ New Value=Python File (no console)
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.NoConFile\shell\open\command
+ New Value=%MAINDIR%\pythonw.exe "%%1" %%*
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.NoConFile\DefaultIcon
+ New Value=%MAINDIR%\Py.ico
+ Root=1
+end
+item: Remark
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.CompiledFile
+ New Value=Compiled Python File
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.CompiledFile\shell\open\command
+ New Value=%MAINDIR%\python.exe "%%1" %%*
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\Python.CompiledFile\DefaultIcon
+ New Value=%MAINDIR%\pyc.ico
+ Root=1
+end
+item: Remark
+end
+item: Remark
+ Text=File extensions.
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\.py
+ New Value=Python.File
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\.py
+ New Value=text/plain
+ Value Name=Content Type
+ Root=1
+end
+item: Remark
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\.pyw
+ New Value=Python.NoConFile
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\.pyw
+ New Value=text/plain
+ Value Name=Content Type
+ Root=1
+end
+item: Remark
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\.pyc
+ New Value=Python.CompiledFile
+ Root=1
+end
+item: Edit Registry
+ Total Keys=1
+ Key=Software\CLASSES\.pyo
+ New Value=Python.CompiledFile
+ Root=1
+end
item: End Block
end
item: Remark