From 4293b1e28e03a0d3d9fb28729e4d1691f262b6ff Mon Sep 17 00:00:00 2001 From: Mattias Gustavsson Date: Fri, 10 Sep 2021 09:39:06 +0200 Subject: [PATCH] SDA-3257 Added symphony icons to auto update exe's, added auto update files to installer --- auto_update/auto_update_helper.rc | 34 +++++++++++++++++ auto_update/auto_update_service.rc | 34 +++++++++++++++++ auto_update/icon.ico | Bin 0 -> 308785 bytes auto_update/package.json | 2 +- installer/win/WixSharpInstaller/Symphony.cs | 39 ++++++++++++++++---- 5 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 auto_update/auto_update_helper.rc create mode 100644 auto_update/auto_update_service.rc create mode 100644 auto_update/icon.ico diff --git a/auto_update/auto_update_helper.rc b/auto_update/auto_update_helper.rc new file mode 100644 index 00000000..3ac2d9d2 --- /dev/null +++ b/auto_update/auto_update_helper.rc @@ -0,0 +1,34 @@ +#define IDR_ICON 101 +IDR_ICON ICON "icon.ico" + +#define VER_MAJOR 1 +#define VER_MINOR 0 +#define VER_REVISION 0 + + + +#define INNER_TO_STR(x) #x +#define TO_STR(x) INNER_TO_STR(x) +#define VER_STRING TO_STR(VER_MAJOR) "." TO_STR(VER_MINOR) "." TO_STR(VER_REVISION) ".0" + +#define VS_VERSION_INFO 0x1L + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_MAJOR,VER_MINOR,VER_REVISION +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "FileDescription", "Symphony Auto Update Helper" + VALUE "ProductName", "Symphony Auto Update Helper" + VALUE "ProductVersion", VER_STRING + VALUE "LegalCopyright", "Copyright 2021 Symphony OSS" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END diff --git a/auto_update/auto_update_service.rc b/auto_update/auto_update_service.rc new file mode 100644 index 00000000..f2ac3b97 --- /dev/null +++ b/auto_update/auto_update_service.rc @@ -0,0 +1,34 @@ +#define IDR_ICON 101 +IDR_ICON ICON "icon.ico" + +#define VER_MAJOR 1 +#define VER_MINOR 0 +#define VER_REVISION 0 + + + +#define INNER_TO_STR(x) #x +#define TO_STR(x) INNER_TO_STR(x) +#define VER_STRING TO_STR(VER_MAJOR) "." TO_STR(VER_MINOR) "." TO_STR(VER_REVISION) ".0" + +#define VS_VERSION_INFO 0x1L + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_MAJOR,VER_MINOR,VER_REVISION +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "FileDescription", "Symphony Auto Update Service" + VALUE "ProductName", "Symphony Auto Update Service" + VALUE "ProductVersion", VER_STRING + VALUE "LegalCopyright", "Copyright 2021 Symphony OSS" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END diff --git a/auto_update/icon.ico b/auto_update/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..069c4612a36498f6495331d9067e17cfd60ce20e GIT binary patch literal 308785 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 literal 0 HcmV?d00001 diff --git a/auto_update/package.json b/auto_update/package.json index 0490f8e4..c21114ba 100644 --- a/auto_update/package.json +++ b/auto_update/package.json @@ -5,6 +5,6 @@ "scripts": { "test": "cl tests.cpp /O2 /MTd /D_DEBUG /D_CRTDBG_MAP_ALLOC /nologo /link /SUBSYSTEM:CONSOLE && tests.exe", "preinstall": "npm run test && npm run build", - "build": "cl auto_update_helper.c /O2 /MT /nologo /link /SUBSYSTEM:CONSOLE && cl auto_update_service.c /O2 /MT /nologo /link /SUBSYSTEM:CONSOLE" + "build": "rc.exe /nologo auto_update_helper.rc & cl auto_update_helper.c auto_update_helper.res /O2 /MT /nologo /link /SUBSYSTEM:CONSOLE & rc.exe /nologo auto_update_service.rc & cl auto_update_service.c auto_update_service.res /O2 /MT /nologo /link /SUBSYSTEM:CONSOLE" } } diff --git a/installer/win/WixSharpInstaller/Symphony.cs b/installer/win/WixSharpInstaller/Symphony.cs index b236fe39..efe0b4e6 100644 --- a/installer/win/WixSharpInstaller/Symphony.cs +++ b/installer/win/WixSharpInstaller/Symphony.cs @@ -28,7 +28,30 @@ class Script var userDataPathArgument = "--userDataPath=\"[USER_DATA_PATH]\""; - + File updateService = new File(@"..\..\..\node_modules\auto_update\auto_update_service.exe"); + updateService.ServiceInstaller = new ServiceInstaller + { + Name = "auto_update_service", + DisplayName = "SDA Auto Update Service", + Description = "Symphony Desktop Application Auto Update Service", + FirstFailureActionType = FailureActionType.restart, + SecondFailureActionType = FailureActionType.restart, + ThirdFailureActionType = FailureActionType.restart, + RestartServiceDelayInSeconds = 60, + ResetPeriodInDays = 1, + ServiceSid = ServiceSid.none, + ConfigureServiceTrigger = ConfigureServiceTrigger.Install, + Type = SvcType.ownProcess, + Vital = true, + ErrorControl = SvcErrorControl.normal, + Start = SvcStartType.auto, + EraseDescription = false, + Interactive = false, + StartOn = SvcEvent.Install, + StopOn = SvcEvent.InstallUninstall_Wait, + RemoveOn = SvcEvent.Uninstall_Wait, + }; + // Create a wixsharp project instance and assign the project name to it, and a hierarchy of all files to include // Files are taken from multiple locations, and not all files in each location should be included, which is why // the file list is rather long and explicit. At some point we might make the `dist` folder match exactly the @@ -46,6 +69,8 @@ class Script Arguments = userDataPathArgument } ), + updateService, + new File(@"..\..\..\node_modules\auto_update\auto_update_helper.exe"), new File(@"..\..\..\dist\win-unpacked\chrome_100_percent.pak"), new File(@"..\..\..\dist\win-unpacked\chrome_200_percent.pak"), new File(@"..\..\..\dist\win-unpacked\d3dcompiler_47.dll"), @@ -427,16 +452,16 @@ public class CustomActions @"""" + name + @""":" + value.Trim()); } - // When SDA is parsing the JSON config file, it will interpret backslash as an escape character, - // and will throw an error for invalid escape codes. To make a path valid for parsing, we need - // to replace each backslash with doubli backslash. After SDA have parsed the JSON, it will make - // the double backslash become single backslash again. + // When SDA is parsing the JSON config file, it will interpret backslash as an escape character, + // and will throw an error for invalid escape codes. To make a path valid for parsing, we need + // to replace each backslash with doubli backslash. After SDA have parsed the JSON, it will make + // the double backslash become single backslash again. static string FixPathFormat( string path ) { return path.Replace(@"\", @"\\"); } - - + + // CleanRegistry custom action [CustomAction] public static ActionResult CleanRegistry(Session session)