mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
Build an MSI installer for the new Win64 binaries.
The MSI format has a fixed field for target architecture, so there's no way to build a single MSI that can decide at install time whether to install 32-bit or 64-bit (or both). The best you can do along those lines, apparently, is to have two MSI files plus a bootstrap .EXE that decides which of them to run, and as far as I'm concerned that would just reintroduce all the same risks and annoyances that made us want to migrate away from .EXE installers anyway.
This commit is contained in:
parent
e6059f18d4
commit
faae648475
17
Buildscr
17
Buildscr
@ -174,14 +174,15 @@ delegate windows
|
||||
# exit codes on whim.)
|
||||
in putty/doc with htmlhelp do/win hhc putty.hhp & type putty.chm >nul
|
||||
|
||||
# Build the WiX MSI installer.
|
||||
in putty/windows with wix do/win candle -dBuilddir=build32\ -dWinver="$(Winver)" -dPuttytextver="$(Puttytextver)" installer.wxs && light -ext WixUIExtension -ext WixUtilExtension -sval installer.wixobj
|
||||
# Build a WiX MSI installer, for each of build32 and build64.
|
||||
in putty/windows with wix do/win candle -arch x86 -dWin64=no -dBuilddir=build32\ -dWinver="$(Winver)" -dPuttytextver="$(Puttytextver)" installer.wxs && light -ext WixUIExtension -ext WixUtilExtension -sval installer.wixobj -o installer32.msi
|
||||
in putty/windows with wix do/win candle -arch x64 -dWin64=yes -dBuilddir=build64\ -dWinver="$(Winver)" -dPuttytextver="$(Puttytextver)" installer.wxs && light -ext WixUIExtension -ext WixUtilExtension -sval installer.wixobj -o installer64.msi
|
||||
|
||||
# Build the old Inno Setup installer.
|
||||
in putty/windows with innosetup do/win iscc putty.iss
|
||||
|
||||
# Sign the installers.
|
||||
ifneq "$(winsigncode)" "" in putty/windows do $(winsigncode) -i http://www.chiark.greenend.org.uk/~sgtatham/putty/ -n "PuTTY Installer" installer.msi Output/installer.exe
|
||||
ifneq "$(winsigncode)" "" in putty/windows do $(winsigncode) -i http://www.chiark.greenend.org.uk/~sgtatham/putty/ -n "PuTTY Installer" installer32.msi installer64.msi Output/installer.exe
|
||||
|
||||
# Finished Windows builds.
|
||||
return putty/windows/buildold/*.exe
|
||||
@ -191,7 +192,8 @@ delegate windows
|
||||
return putty/windows/build64/*.exe
|
||||
return putty/windows/build64/*.map
|
||||
return putty/doc/putty.chm
|
||||
return putty/windows/installer.msi
|
||||
return putty/windows/installer32.msi
|
||||
return putty/windows/installer64.msi
|
||||
return putty/windows/Output/installer.exe
|
||||
enddelegate
|
||||
in putty/doc do make mostlyclean
|
||||
@ -208,7 +210,8 @@ deliver putty/windows/build32/*.exe putty/w32/$@
|
||||
deliver putty/windows/build32/putty.zip putty/w32/$@
|
||||
deliver putty/windows/build64/*.exe putty/w64/$@
|
||||
deliver putty/windows/build64/putty.zip putty/w64/$@
|
||||
deliver putty/windows/installer.msi putty/w32/$(Ifilename).msi
|
||||
deliver putty/windows/installer32.msi putty/w32/$(Ifilename).msi
|
||||
deliver putty/windows/installer64.msi putty/w64/$(Ifilename).msi
|
||||
deliver putty/windows/Output/installer.exe putty/w32/$(Ifilename).exe
|
||||
deliver putty/doc/puttydoc.zip putty/$@
|
||||
deliver putty/doc/putty.chm putty/$@
|
||||
@ -245,5 +248,5 @@ in-dest putty do echo "AddType application/octet-stream .chm" >> .htaccess
|
||||
in-dest putty do echo "AddType application/octet-stream .hlp" >> .htaccess
|
||||
in-dest putty do echo "AddType application/octet-stream .cnt" >> .htaccess
|
||||
in-dest putty do set -- putty*.tar.gz; for k in '' .gpg; do echo RedirectMatch temp '(.*/)'putty.tar.gz$$k\$$ '$$1'"$$1$$k" >> .htaccess; done
|
||||
# And one in the w32 directory, providing links for the installers.
|
||||
in-dest putty/w32 do for ext in msi exe; do set -- putty*installer.$$ext; for k in '' .gpg; do echo RedirectMatch temp '(.*/)'putty-installer.$$ext$$k\$$ '$$1'"$$1$$k" >> .htaccess; done; done
|
||||
# And one in each binary directory, providing links for the installers.
|
||||
in-dest putty do for subdir in w32 w64; do (cd $$subdir && for ext in msi exe; do set -- putty*installer.$$ext; if test -f $$1; then for k in '' .gpg; do echo RedirectMatch temp '(.*/)'putty-installer.$$ext$$k\$$ '$$1'"$$1$$k" >> .htaccess; done; fi; done); done
|
||||
|
2
sign.sh
2
sign.sh
@ -27,7 +27,7 @@ sign() {
|
||||
|
||||
cd "$1"
|
||||
echo "===== Signing with key '$keyname'"
|
||||
for i in putty*src.zip putty*.tar.gz w32/*.exe w32/*.zip w32/*.msi w64/*.exe w64/*.zip w32old/*.exe w32old/*.zip; do
|
||||
for i in putty*src.zip putty*.tar.gz w32/*.exe w32/*.zip w32/*.msi w64/*.exe w64/*.zip w64/*.msi w32old/*.exe w32old/*.zip; do
|
||||
sign --detach-sign "$i" "$i.gpg"
|
||||
done
|
||||
for i in md5sums sha1sums sha256sums sha512sums; do
|
||||
|
@ -2,6 +2,48 @@
|
||||
|
||||
<!-- WiX source code for the PuTTY installer. -->
|
||||
|
||||
<?if $(var.Win64) = yes ?>
|
||||
<?define ProgramName = "PuTTY (64-bit)" ?>
|
||||
<?define RegKeyPathLocation = "Software\SimonTatham\PuTTY64" ?>
|
||||
<?define InstallerVersion = "200" ?>
|
||||
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
|
||||
<?define UpgradeCode_GUID = "C9EAA861-2B72-4FAF-9FEE-EEB1AD5FD15E" ?>
|
||||
<?define PuTTY_Component_GUID = "C673C970-25AE-4659-9621-A1FE0598E9DC" ?>
|
||||
<?define Pageant_Component_GUID = "BA37328A-9A9C-4912-B84D-9C4A21B4E79A" ?>
|
||||
<?define PSFTP_Component_GUID = "8BC2740F-CD4A-4076-8C33-2847ECA17B4E" ?>
|
||||
<?define PuTTYgen_Component_GUID = "4E3F554E-C9C9-419B-9816-94135D1F6EFF" ?>
|
||||
<?define Plink_Component_GUID = "72C38830-1C06-40D5-B2C5-BE21F4C9D529" ?>
|
||||
<?define PSCP_Component_GUID = "58FCAA52-CEF9-4665-B95E-7695FCF8F0A9" ?>
|
||||
<?define HelpFile_Component_GUID = "B880CECB-2CDA-4DB1-8EB3-1627D29394FB" ?>
|
||||
<?define Website_Component_GUID = "08A334E8-D376-438A-98C7-4E65BE09A335" ?>
|
||||
<?define LICENCE_Component_GUID = "D15E5FA9-C912-4F7A-A663-9FE3CFD5FB01" ?>
|
||||
<?define README_Component_GUID = "B8F2F9DE-0311-436E-86A4-BEFED84968C0" ?>
|
||||
<?define PPK_Assoc_Component_GUID = "70B4360C-7A2E-4C9E-9135-289C5467CB04" ?>
|
||||
<?define Path_Component_GUID = "A0CFC986-489D-452B-8A8F-F9DBEF6916F4" ?>
|
||||
<?define ProgramMenuDir_GUID = "3B2B7A2B-25F1-4EC4-987F-75BFD038632E" ?>
|
||||
<?define Desktop_Shortcut_Component_GUID = "0A715416-EA6E-4A1C-8670-838307083EE5" ?>
|
||||
<?else ?>
|
||||
<?define ProgramName = "PuTTY" ?>
|
||||
<?define RegKeyPathLocation = "Software\SimonTatham\PuTTY" ?>
|
||||
<?define InstallerVersion = "100" ?>
|
||||
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
|
||||
<?define UpgradeCode_GUID = "DCE70C63-8808-4646-B16B-A677BD298385" ?>
|
||||
<?define PuTTY_Component_GUID = "07ACF511-6DF6-4883-AABA-33BC14901324" ?>
|
||||
<?define Pageant_Component_GUID = "649F963E-21C4-4755-8CE4-D80598DCEE6D" ?>
|
||||
<?define PSFTP_Component_GUID = "3D7B9536-EC0E-4A6A-A3DF-8D285474391A" ?>
|
||||
<?define PuTTYgen_Component_GUID = "4774F6B3-8A07-42A5-9F4D-E7FE6AA78B84" ?>
|
||||
<?define Plink_Component_GUID = "7D96F9BB-4154-49D6-86AE-0D8F1379ACBC" ?>
|
||||
<?define PSCP_Component_GUID = "71519D4A-3ED5-4A46-A7E4-B6E4600A8684" ?>
|
||||
<?define HelpFile_Component_GUID = "72806A73-9D4D-49BF-8CAA-E90B0D83AEED" ?>
|
||||
<?define Website_Component_GUID = "7DAD6536-C1A7-430C-BC8A-90176CCB78D0" ?>
|
||||
<?define LICENCE_Component_GUID = "6AB710C0-F7A1-4B7A-AC2E-6993D6E98332" ?>
|
||||
<?define README_Component_GUID = "0AB63F2A-0FD9-4961-B8F7-AB85C22D9986" ?>
|
||||
<?define PPK_Assoc_Component_GUID = "13BBF036-F4C0-4F5B-9167-7BA35C673AAB" ?>
|
||||
<?define Path_Component_GUID = "D1F68AAA-D20D-4047-828F-D0AC443FAF64" ?>
|
||||
<?define ProgramMenuDir_GUID = "C12C3BB3-EC24-4883-8349-4AC8017C9E6A" ?>
|
||||
<?define Desktop_Shortcut_Component_GUID = "D039E3D1-CE42-488D-96CC-90E1DE3796F8" ?>
|
||||
<?endif ?>
|
||||
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
|
||||
<!--
|
||||
@ -19,10 +61,10 @@
|
||||
Buildscr.
|
||||
-->
|
||||
<Product
|
||||
Name="PuTTY"
|
||||
Name="$(var.ProgramName)"
|
||||
Manufacturer="Simon Tatham"
|
||||
Id="*"
|
||||
UpgradeCode="dce70c63-8808-4646-b16b-a677bd298385"
|
||||
UpgradeCode="$(var.UpgradeCode_GUID)"
|
||||
Language="1033" Codepage="1252" Version="$(var.Winver)">
|
||||
|
||||
<!--
|
||||
@ -39,7 +81,7 @@
|
||||
<Package Id="*" Keywords="Installer"
|
||||
Description="$(var.Puttytextver) installer"
|
||||
Manufacturer="Simon Tatham"
|
||||
InstallerVersion="100" Languages="1033"
|
||||
InstallerVersion="$(var.InstallerVersion)" Languages="1033"
|
||||
Compressed="yes" SummaryCodepage="1252"
|
||||
InstallScope="perMachine" />
|
||||
|
||||
@ -78,7 +120,7 @@
|
||||
well...
|
||||
-->
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFilesFolder" Name="PFiles">
|
||||
<Directory Id="$(var.PlatformProgramFilesFolder)" Name="PFiles">
|
||||
<Directory Id="INSTALLDIR" Name="PuTTY">
|
||||
|
||||
<!--
|
||||
@ -90,7 +132,7 @@
|
||||
the sake of being _somewhere_ and don't rate a shortcut.
|
||||
-->
|
||||
<Component Id="PuTTY_Component"
|
||||
Guid="07ACF511-6DF6-4883-AABA-33BC14901324">
|
||||
Guid="$(var.PuTTY_Component_GUID)">
|
||||
<File Id="PuTTY_File"
|
||||
Source="$(var.Builddir)putty.exe" KeyPath="yes">
|
||||
<Shortcut Id="startmenuPuTTY" Directory="ProgramMenuDir"
|
||||
@ -99,7 +141,7 @@
|
||||
</File>
|
||||
</Component>
|
||||
<Component Id="Pageant_Component"
|
||||
Guid="649F963E-21C4-4755-8CE4-D80598DCEE6D">
|
||||
Guid="$(var.Pageant_Component_GUID)">
|
||||
<File Id="Pageant_File"
|
||||
Source="$(var.Builddir)pageant.exe" KeyPath="yes">
|
||||
<Shortcut Id="startmenuPageant" Directory="ProgramMenuDir"
|
||||
@ -108,7 +150,7 @@
|
||||
</File>
|
||||
</Component>
|
||||
<Component Id="PSFTP_Component"
|
||||
Guid="3D7B9536-EC0E-4A6A-A3DF-8D285474391A">
|
||||
Guid="$(var.PSFTP_Component_GUID)">
|
||||
<File Id="PSFTP_File"
|
||||
Source="$(var.Builddir)psftp.exe" KeyPath="yes">
|
||||
<Shortcut Id="startmenuPSFTP" Directory="ProgramMenuDir"
|
||||
@ -117,7 +159,7 @@
|
||||
</File>
|
||||
</Component>
|
||||
<Component Id="PuTTYgen_Component"
|
||||
Guid="4774F6B3-8A07-42A5-9F4D-E7FE6AA78B84">
|
||||
Guid="$(var.PuTTYgen_Component_GUID)">
|
||||
<File Id="PuTTYgen_File"
|
||||
Source="$(var.Builddir)puttygen.exe" KeyPath="yes">
|
||||
<Shortcut Id="startmenuPuTTYgen" Directory="ProgramMenuDir"
|
||||
@ -126,18 +168,18 @@
|
||||
</File>
|
||||
</Component>
|
||||
<Component Id="Plink_Component"
|
||||
Guid="7D96F9BB-4154-49D6-86AE-0D8F1379ACBC">
|
||||
Guid="$(var.Plink_Component_GUID)">
|
||||
<File Id="Plink_File"
|
||||
Source="$(var.Builddir)plink.exe" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Id="PSCP_Component"
|
||||
Guid="71519D4A-3ED5-4A46-A7E4-B6E4600A8684">
|
||||
Guid="$(var.PSCP_Component_GUID)">
|
||||
<File Id="PSCP_File"
|
||||
Source="$(var.Builddir)pscp.exe" KeyPath="yes" />
|
||||
</Component>
|
||||
|
||||
<Component Id="HelpFile_Component"
|
||||
Guid="72806A73-9D4D-49BF-8CAA-E90B0D83AEED">
|
||||
Guid="$(var.HelpFile_Component_GUID)">
|
||||
<File Id="HelpFile_File"
|
||||
Source="..\doc\putty.chm" KeyPath="yes">
|
||||
<Shortcut Id="startmenuManual" Directory="ProgramMenuDir"
|
||||
@ -146,7 +188,7 @@
|
||||
</File>
|
||||
</Component>
|
||||
<Component Id="Website_Component"
|
||||
Guid="7DAD6536-C1A7-430C-BC8A-90176CCB78D0">
|
||||
Guid="$(var.Website_Component_GUID)">
|
||||
<File Id="Website_File"
|
||||
Source="website.url" KeyPath="yes">
|
||||
<Shortcut Id="startmenuWebsite" Directory="ProgramMenuDir"
|
||||
@ -155,12 +197,12 @@
|
||||
</File>
|
||||
</Component>
|
||||
<Component Id="LICENCE_Component"
|
||||
Guid="6AB710C0-F7A1-4B7A-AC2E-6993D6E98332">
|
||||
Guid="$(var.LICENCE_Component_GUID)">
|
||||
<File Id="LICENCE_File"
|
||||
Source="..\LICENCE" KeyPath="yes" />
|
||||
</Component>
|
||||
<Component Id="README_Component"
|
||||
Guid="0AB63F2A-0FD9-4961-B8F7-AB85C22D9986">
|
||||
Guid="$(var.README_Component_GUID)">
|
||||
<File Id="README_File"
|
||||
Source="README-msi.txt" Name="README.txt" KeyPath="yes" />
|
||||
</Component>
|
||||
@ -181,7 +223,7 @@
|
||||
invent a spurious extra thing to be the key path.
|
||||
-->
|
||||
<Component Id="PPK_Assoc_Component"
|
||||
Guid="13BBF036-F4C0-4F5B-9167-7BA35C673AAB">
|
||||
Guid="$(var.PPK_Assoc_Component_GUID)">
|
||||
<ProgId Id="PPK_Assoc_ProgId"
|
||||
Description="PuTTY Private Key File">
|
||||
<Extension Id="ppk"
|
||||
@ -193,7 +235,7 @@
|
||||
</Extension>
|
||||
</ProgId>
|
||||
<RegistryValue Root="HKLM"
|
||||
Key="Software\SimonTatham\PuTTY\PPKAssociation"
|
||||
Key="$(var.RegKeyPathLocation)\PPKAssociation"
|
||||
Type="string" Value="" KeyPath="yes" />
|
||||
</Component>
|
||||
|
||||
@ -206,7 +248,7 @@
|
||||
act as a key path.
|
||||
-->
|
||||
<Component Id="Path_Component"
|
||||
Guid="D1F68AAA-D20D-4047-828F-D0AC443FAF64">
|
||||
Guid="$(var.Path_Component_GUID)">
|
||||
<Environment Id="Path_Environment"
|
||||
Name="PATH"
|
||||
Value="[INSTALLDIR]"
|
||||
@ -215,7 +257,7 @@
|
||||
Action="set"
|
||||
System="yes"/>
|
||||
<RegistryValue Root="HKLM"
|
||||
Key="Software\SimonTatham\PuTTY\PathEntry"
|
||||
Key="$(var.RegKeyPathLocation)\PathEntry"
|
||||
Type="string" Value="" KeyPath="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
@ -228,12 +270,12 @@
|
||||
are placed by code above here.
|
||||
-->
|
||||
<Directory Id="ProgramMenuFolder" Name="Programs">
|
||||
<Directory Id="ProgramMenuDir" Name="PuTTY">
|
||||
<Directory Id="ProgramMenuDir" Name="$(var.ProgramName)">
|
||||
<Component Id="ProgramMenuDir"
|
||||
Guid="C12C3BB3-EC24-4883-8349-4AC8017C9E6A">
|
||||
Guid="$(var.ProgramMenuDir_GUID)">
|
||||
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
|
||||
<RegistryValue Root="HKLM"
|
||||
Key="Software\SimonTatham\PuTTY\StartMenu"
|
||||
Key="$(var.RegKeyPathLocation)\StartMenu"
|
||||
Type="string" Value="" KeyPath="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
@ -245,12 +287,12 @@
|
||||
-->
|
||||
<Directory Id="DesktopFolder" Name="Desktop">
|
||||
<Component Id="Desktop_Shortcut_Component"
|
||||
Guid="D039E3D1-CE42-488D-96CC-90E1DE3796F8">
|
||||
Guid="$(var.Desktop_Shortcut_Component_GUID)">
|
||||
<Shortcut Id="DesktopPuTTY"
|
||||
WorkingDirectory="INSTALLDIR" Target="[INSTALLDIR]putty.exe"
|
||||
Name="PuTTY" Advertise="no" />
|
||||
Name="$(var.ProgramName)" Advertise="no" />
|
||||
<RegistryValue Root="HKLM"
|
||||
Key="Software\SimonTatham\PuTTY\DesktopEntry"
|
||||
Key="$(var.RegKeyPathLocation)\DesktopEntry"
|
||||
Type="string" Value="" KeyPath="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
|
Loading…
Reference in New Issue
Block a user