Files
raven/dist/install/windows/x64/lan.iss
John Cardinal e9b79242fd case 4579 - Windows installers: program folder no longer writable by all users
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>
2026-10-25 14:39:00 -07:00

85 lines
3.9 KiB
Plaintext

; LAN install for internal network use only
#define MyAppName "AyaNova server"
#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-lan-setup
SetupIconFile=C:\data\code\raven\dist\assets\logo.ico
UninstallDisplayIcon={app}\ayanova-app-logo.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
ArchitecturesInstallIn64BitMode=x64
ArchitecturesAllowed=x64
[Tasks]
Name: "StartMenuEntry" ; Description: "Start AyaNova server when Windows starts" ; GroupDescription: "Windows Startup";
[Files]
Source: "C:\data\code\raven\dist\win-x64\ayanova\framework-dependent\*"; DestDir: "{app}";Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\data\code\raven\dist\assets\lan-install-config.json"; DestDir: "{app}";DestName: "config.json"; Flags: ignoreversion confirmoverwrite
Source: "C:\data\code\raven\dist\assets\logo.ico"; DestDir: "{app}";DestName: "ayanova-app-logo.ico"; Flags: ignoreversion
Source: "C:\data\code\raven\dist\assets\open-ayanova-app.bat"; DestDir: "{app}";Flags: ignoreversion
[Dirs]
Name: "{commonappdata}\ayanova";Permissions: users-modify;
Name: "{commonappdata}\ayanova\logs";Permissions: users-modify;
[UninstallDelete]
Type: filesandordirs; Name: "{app}\Chrome"
Type: filesandordirs; Name: "{app}\ChromeHeadlessShell"
[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
[Icons]
Name: "{autoprograms}\AyaNova server\{#MyAppName}"; Filename: "{app}\AyaNova.exe";IconFilename: "{app}\AyaNova.exe";
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\AyaNova.exe";IconFilename: "{app}\AyaNova.exe";
Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\AyaNova.exe"; Tasks:StartMenuEntry;
Name: "{autoprograms}\AyaNova server\AyaNova App";Filename: "{app}\open-ayanova-app.bat";IconFilename: "{app}\ayanova-app-logo.ico";
Name: "{autodesktop}\AyaNova App";Filename: "{app}\open-ayanova-app.bat";IconFilename: "{app}\ayanova-app-logo.ico";
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ErrCode: integer;
begin
if (CurStep=ssInstall) then
begin
if MsgBox('AyaNova requires the "ASP.NET Core Runtime Hosting bundle" 10.x.' + #13#10 +'Open the download web page now?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
begin
ShellExec('open', 'https://dotnet.microsoft.com/en-us/download/dotnet/10.0', '', '', SW_SHOW, ewNoWait, ErrCode);
end;
if MsgBox('AyaNova requires a PostgreSQL db server.' + #13#10 +'Open the PostgreSQL download page now?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
begin
ShellExec('open', 'https://www.postgresql.org/download/windows/', '', '', SW_SHOW, ewNoWait, ErrCode);
end;
end;
end;