Batch of miscellaneous tweaks to the Windows installer:
authorjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Mon, 27 Feb 2006 22:27:49 +0000 (22:27 +0000)
committerjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Mon, 27 Feb 2006 22:27:49 +0000 (22:27 +0000)
 - Now we've fixed `win-versioninfo', choose some sensible outcomes from
   the installer's comparisons of binary version numbers. Also, give the
   installer _itself_ a matching binary version.
   In particular, without this change, it would not have been possible
   to downgrade PuTTY -- it would have silently left the "newer" files in
   place. Now it will make some fuss, but permit it.
 - Also remove descriptions from shortcuts, on the grounds that the
   binaries have embedded descriptions now. (Although I've not checked
   whether those are actually visible in the Start Menu.)
 - At the request of various people (e.g., PJB), add flags so that if
   files are in use at the time the (un)installer is run, replacement is
   deferred to the next restart. (The user may be prompted to restart,
   which isn't ideal; see comments).
   This is supposed to make centrally-pushed silent upgrades more robust.
 - Note some limitations of the installer.

git-svn-id: svn://svn.tartarus.org/sgt/putty@6585 cda61777-01e9-0310-a592-d414129be87e

CHECKLST.txt
windows/putty.iss

index 608d578..ae2d5b9 100644 (file)
@@ -67,8 +67,7 @@ orders them correctly with respect to releases):
 
  - putty/LATEST.VER
 
-The Windows installer script (_three_ times, on consecutive lines,
-and again in a subsequent comment):
+The Windows installer script (_four_ times, on consecutive lines):
 
  - putty/windows/putty.iss
 
index 4af117d..01a7374 100644 (file)
@@ -1,26 +1,22 @@
 ; -*- no -*-\r
-; putty.iss\r
+; $Id$\r
 ;\r
 ; -- Inno Setup installer script for PuTTY and its related tools.\r
 ;\r
 ; TODO for future releases:\r
 ;\r
 ;  - It might be nice to have an option to add PSCP, Plink and PSFTP to\r
-;    the PATH. This is probably only practical on NT-class systems; I\r
-;    believe doing this on 9x would require mucking around with\r
-;    AUTOEXEC.BAT.\r
+;    the PATH. See wish `installer-addpath'.\r
 ;\r
-;  - Maybe a "custom" installation might be useful? Hassle with icons,\r
-;    though.\r
+;  - Maybe a "custom" installation might be useful? Hassle with\r
+;    UninstallDisplayIcon, though.\r
 \r
 [Setup]\r
 AppName=PuTTY\r
 AppVerName=PuTTY version 0.58\r
 VersionInfoTextVersion=Release 0.58\r
 AppVersion=0.58\r
-;FIXME -- enable this when we've got it going for individual EXEs too\r
-;         and are committed to the version numbering scheme.\r
-;VersionInfoVersion=0.58.0.0\r
+VersionInfoVersion=0.58.0.0\r
 AppPublisher=Simon Tatham\r
 AppPublisherURL=http://www.chiark.greenend.org.uk/~sgtatham/putty/\r
 AppReadmeFile={app}\README.txt\r
@@ -33,25 +29,37 @@ Compression=zip/9
 AllowNoIcons=yes\r
 \r
 [Files]\r
-Source: "putty.exe"; DestDir: "{app}"\r
-Source: "pageant.exe"; DestDir: "{app}"\r
-Source: "puttygen.exe"; DestDir: "{app}"\r
-Source: "pscp.exe"; DestDir: "{app}"\r
-Source: "psftp.exe"; DestDir: "{app}"\r
-Source: "plink.exe"; DestDir: "{app}"\r
-Source: "website.url"; DestDir: "{app}"\r
-Source: "..\doc\putty.hlp"; DestDir: "{app}"\r
-Source: "..\doc\putty.cnt"; DestDir: "{app}"\r
-Source: "..\LICENCE"; DestDir: "{app}"\r
-Source: "..\README.txt"; DestDir: "{app}"; Flags: isreadme\r
+; We flag all files with "restartreplace" et al primarily for the benefit\r
+; of unattended un/installations/upgrades, when the user is running one\r
+; of the apps at a time. Without it, the operation will fail noisily in\r
+; this situation.\r
+; This does mean that the user will be prompted to restart their machine\r
+; if any of the files _were_ open during installation (or, if /VERYSILENT\r
+; is used, the machine will be restarted automatically!). The /NORESTART\r
+; flag avoids this.\r
+; It might be nicer to have a "no worries, replace the file next time you\r
+; reboot" option, but the developers have no interest in adding one.\r
+; NB: apparently, using long (non-8.3) filenames with restartreplace is a\r
+; bad idea. (Not that we do.)\r
+Source: "putty.exe"; DestDir: "{app}"; Flags: promptifolder replacesameversion restartreplace uninsrestartdelete\r
+Source: "pageant.exe"; DestDir: "{app}"; Flags: promptifolder replacesameversion restartreplace uninsrestartdelete\r
+Source: "puttygen.exe"; DestDir: "{app}"; Flags: promptifolder replacesameversion restartreplace uninsrestartdelete\r
+Source: "pscp.exe"; DestDir: "{app}"; Flags: promptifolder replacesameversion restartreplace uninsrestartdelete\r
+Source: "psftp.exe"; DestDir: "{app}"; Flags: promptifolder replacesameversion restartreplace uninsrestartdelete\r
+Source: "plink.exe"; DestDir: "{app}"; Flags: promptifolder replacesameversion restartreplace uninsrestartdelete\r
+Source: "website.url"; DestDir: "{app}"; Flags: restartreplace uninsrestartdelete\r
+Source: "..\doc\putty.hlp"; DestDir: "{app}"; Flags: restartreplace uninsrestartdelete\r
+Source: "..\doc\putty.cnt"; DestDir: "{app}"; Flags: restartreplace uninsrestartdelete\r
+Source: "..\LICENCE"; DestDir: "{app}"; Flags: restartreplace uninsrestartdelete\r
+Source: "..\README.txt"; DestDir: "{app}"; Flags: isreadme restartreplace uninsrestartdelete\r
 \r
 [Icons]\r
-Name: "{group}\PuTTY"; Filename: "{app}\putty.exe"; Comment: "SSH, Telnet and Rlogin client";\r
+Name: "{group}\PuTTY"; Filename: "{app}\putty.exe"\r
 Name: "{group}\PuTTY Manual"; Filename: "{app}\putty.hlp"\r
 Name: "{group}\PuTTY Web Site"; Filename: "{app}\website.url"\r
-Name: "{group}\PSFTP"; Filename: "{app}\psftp.exe"; Comment: "Command-line interactive SFTP client"\r
-Name: "{group}\PuTTYgen"; Filename: "{app}\puttygen.exe"; Comment: "PuTTY SSH key generation utility"\r
-Name: "{group}\Pageant"; Filename: "{app}\pageant.exe"; Comment: "PuTTY SSH authentication agent"\r
+Name: "{group}\PSFTP"; Filename: "{app}\psftp.exe"\r
+Name: "{group}\PuTTYgen"; Filename: "{app}\puttygen.exe"\r
+Name: "{group}\Pageant"; Filename: "{app}\pageant.exe"\r
 Name: "{commondesktop}\PuTTY"; Filename: "{app}\putty.exe"; Tasks: desktopicon\common\r
 Name: "{userdesktop}\PuTTY"; Filename: "{app}\putty.exe"; Tasks: desktopicon\user\r
 ; Putting this in {commonappdata} doesn't seem to work, on 98SE at least.\r
@@ -76,4 +84,6 @@ Root: HKCR; Subkey: "PuTTYPrivateKey\shell\edit\command"; ValueType: string; Val
 [UninstallRun]\r
 ; -cleanup-during-uninstall is an undocumented option that tailors the\r
 ; message displayed.\r
+; XXX: it would be nice if this task weren't run if a silent uninstall is\r
+;      requested, but "skipifsilent" is disallowed.\r
 Filename: "{app}\putty.exe"; Parameters: "-cleanup-during-uninstall"; RunOnceId: "PuTTYCleanup"; StatusMsg: "Cleaning up saved sessions etc (optional)..."\r