Both installers drop users-modify from the program folder (and local-postgres in the single-user installer) and run icacls to remove the Users group's own grants (by SID) from the program folder after copying files, so upgrades over 8.2.4 lose them too. The data folder keeps users-modify and config.json stays readable by local users (the running account is not known at install time); both documented in the single-user and LAN install pages. Changelog updated. F2 fixed (write access), the rest accepted. Deferred: report on a missing record fails with a generic error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
103 lines
6.1 KiB
Plaintext
103 lines
6.1 KiB
Plaintext
; Basic preconfigured ayanova installer for super easy config
|
|
; single user or lan only, built in postgres
|
|
; external to lan requires different config
|
|
|
|
#define MyAppName "AyaNova"
|
|
#define MyAppVersion "8.3.0"
|
|
#define MyAppPublisher "Ground Zero Tech-Works, Inc."
|
|
#define MyAppURL "https://ayanova.com/"
|
|
#define MyAppLauncherExeName "ayanova-launcher.exe"
|
|
|
|
|
|
[Setup]
|
|
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
|
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
|
AppId={{B2BB79DB-0690-497C-B92B-955F7B468429}
|
|
AppName={#MyAppName}
|
|
AppVersion={#MyAppVersion}
|
|
;AppVerName={#MyAppName} {#MyAppVersion}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL={#MyAppURL}
|
|
AppSupportURL={#MyAppURL}
|
|
AppUpdatesURL={#MyAppURL}
|
|
DefaultDirName={autopf}\ayanova
|
|
DisableProgramGroupPage=yes
|
|
LicenseFile=C:\data\code\raven\dist\assets\license.rtf
|
|
OutputDir=C:\data\code\raven\dist\installers
|
|
OutputBaseFilename=ayanova-windows-x64-single-setup
|
|
SetupIconFile=C:\data\code\raven\graphics\logo.ico
|
|
Compression=lzma
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
ArchitecturesInstallIn64BitMode=x64
|
|
ArchitecturesAllowed=x64
|
|
;Force user to install to set location so that they don't break the backup and stuff
|
|
;this prevents users from randomly picking a weird location and then requiring support to edit the config.json file to set the backup path etc
|
|
DisableDirPage=yes
|
|
AlwaysShowDirOnReadyPage=yes
|
|
|
|
|
|
[Tasks]
|
|
;commented out to force desktop icon, no prompt Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
|
|
|
[Files]
|
|
Source: "C:\data\code\raven\dist\win-x64\ayanova\standalone\AyaNova.exe"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "C:\data\code\raven\dist\win-x64\ayanova\standalone\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
|
Source: "C:\data\code\raven\dist\win-x64\launcher\config.json"; DestDir: "{app}"; Flags: ignoreversion confirmoverwrite
|
|
Source: "C:\data\code\raven\dist\win-x64\launcher\*"; DestDir: "{app}\launcher"; Flags: ignoreversion recursesubdirs createallsubdirs
|
|
Source: "C:\data\code\raven\dist\win-x64\postgres-standalone\*"; DestDir: "{app}\local-postgres"; Flags: ignoreversion recursesubdirs createallsubdirs
|
|
Source: "C:\data\code\raven\dist\win-x64\postgres-empty-database\*"; DestDir: "{commonappdata}\ayanova\database"; Permissions: users-modify; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist uninsneveruninstall
|
|
|
|
[Dirs]
|
|
;Name: "{app}\.local-chromium";Permissions: users-modify;Flags: uninsalwaysuninstall
|
|
Name: "{commonappdata}\ayanova";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\logs";Permissions: users-modify;Flags: uninsneveruninstall
|
|
; Empty folders PostgreSQL 14 needs in a new database. Git does not keep empty folders, so dist\win-x64\postgres-empty-database
|
|
; (checked out from Git) lacks them and the server will not start on a fresh install. Already present on an upgrade.
|
|
Name: "{commonappdata}\ayanova\database\pg_commit_ts";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_dynshmem";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_logical\mappings";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_logical\snapshots";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_notify";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_replslot";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_serial";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_snapshots";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_stat";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_stat_tmp";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_tblspc";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_twophase";Permissions: users-modify;Flags: uninsneveruninstall
|
|
Name: "{commonappdata}\ayanova\database\pg_wal\archive_status";Permissions: users-modify;Flags: uninsneveruninstall
|
|
|
|
|
|
[UninstallDelete]
|
|
;Type: filesandordirs; Name: "{app}\.local-chromium\*"
|
|
Type: filesandordirs; Name: "{app}\Chrome"
|
|
Type: filesandordirs; Name: "{app}\ChromeHeadlessShell"
|
|
|
|
[Icons]
|
|
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\launcher\ayanova-launcher.exe";
|
|
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\launcher\ayanova-launcher.exe";
|
|
;removed this from above line to force desktop icon Tasks: desktopicon
|
|
|
|
[Run]
|
|
; case 4579: the program folder is no longer writable by all local users (nothing writes there, data is under
|
|
; {commonappdata}\ayanova). Upgrades over 8.2.4 or older still carry the old grant, so remove the Users group's own
|
|
; rights (by SID, the group name is translated) from the program folder and everything in it; inherited read rights stay
|
|
Filename: "{sys}\icacls.exe"; Parameters: """{app}"" /remove:g *S-1-5-32-545 /T /C /Q"; Flags: runhidden waituntilterminated
|
|
Filename: "{app}\launcher\ayanova-launcher.exe"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
|
|
|
|
[Code]
|
|
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
|
|
begin
|
|
if CurUninstallStep = usPostUninstall then
|
|
begin
|
|
if MsgBox('Do you want to delete all AyaNova database, attachment and log files?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
|
|
begin
|
|
if MsgBox('Are you sure you want to **PERMANENTLY** delete all AyaNova data files?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
|
|
begin
|
|
DelTree(ExpandConstant('{commonappdata}\ayanova'), True, True, True);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|