* Update docker file build to use new deb linux installers; move Dockefile to .github/workflows since its really only useable from the buildDocker.yml workflow * Fix typo in dockerfile location * remove extraneous " in >>GITHUB_ENV statements * Fix handling of TARGETPLATFORM in Dockerfile * Trying with just one platform * Fix issues with missing man-db in docker build workflow; added man-db to depends in deb builds for linux * Sicthed docker from tightvnc to tigervnc to match oio. This getting the apt package name right. * Going back to single platform to debug this thing * Trying with just arm64 * Removing arm/v7 from docker images. Takes too long to build and just wastes our github actions minutes. This is assuming its a never used feature since docker is not big on raspberry pis and their ilk. * Fix typo in control-linux; update build_deb so that files in /usr/local installed by deb are owned by root; add ubuntu user and nano in docker file for dbebugging; when in draft only create for x86_64 platform * Fix typo in buildDocker.yml * Add sudo to docker image; in docker image ensure that all /usr/local/interlisp files are owned by root * Add securityTypes none to docker entrypoint * Updated docker base to Ubuntu 22.10 to get fixed xrdp; add xrdp to the docker image; updated user permission in docker image; * In Dockerfile make xrdp install noninteractive * Update medley.sh scripts to handle docker case * Fix a couple of typos * BuildDcoker: added pulling latest draft release (if any) when this is a draft docker build; removed checkout of medley code cause its not used * BuildDocker: added medley checkout backin - turns pout its needed by a bunch of actions even though I dont really think they use it * BuildDocker: moved download assets to use gh instaed of a marketplace action becauase that action could not handle draft releases. * Tweaking medley.sh and associated tweaks to work Windows via wsl medley and docker * adding first pass at powershell script for windows docker and wsl * Tuning how Xvnc, medley, and vncviewer handle the various ways of exiting - eg logout vs closing viewer window. * Tuning vncviewer launch to make sure that tty works as expected when medley.sh runs in background * Minor typo fixes and added extra check to use of /run/shm in medley_vnc.sh * Added SSH_KEY secret to buildReleaseIncDocker workflow * Gertting the add SSH_KEY secret into orkflows right this time, hopefully * Adding TERM env variable and setting USER to medley in docker image * Debugging medley.ps1 and adding a couple of arguments * Typo in Dockerfile medley * Synchronizing flag processing and usage for medley.ps1 and medley.sh; refactored medley_args.sh and medley_usage.sh code. * Adding first pass at windows installer * Adding first pass an inno setup script for Windows installation * Update buildLoadup workflow and downloads page for windows installer * Fix typo in buildLoadup * BuildLoadup make sure windows runner uses powershell * Another typo in buildLoadup * Another typo in buildLoadup; damn those double quotes * Updating handling of windows installer in buildLoadup, added vncviewer to medley.iss install * Unknown syntax error in buildLoadup * Another damn typo from double quotes * buildLoadup: fixed loadup job outputs * buidLoadup: fixed bug with COMBINED_RELEASE_TAG; fixed Upload script in windows job to be compatible with actions.script v6. * buidLoadup: upload win installer adapted to find draft releases as well as full releases * BuildLoadup: fixing up javascript in actions in windows job to use / instead of \ in pathname * BuildLoadup: changing win installer update to same action used for other release assets * Fix windows installer file name; in BuildLoadup move update downl;oad page to the Windows runner because uploading the window-installer changes the release download url, so updating the downloads page must be done after the windows installer upload.; General buildLoadup cleanup * Run md2html to update downloads page * Fix typo in build_deb.sh * Removing some leftover crud in medley_usage.sh * Fixing up windows installer a bit, mostly cosmetic * Adding support for WSL1; mostly forcing --vnc and changing how to find open ports and displays since WSL1 networking is different tha WSL2 * Update manual page for new Windows Medley script * First pass done for man page that incorporates new Windows medley script. Add Xvnc wait before calling run-medley in case of docker to prevent occasonal missing X windows server error. * Change buildLoadup to update man page to a draft if this is a draft run.
166 lines
5.8 KiB
Plaintext
166 lines
5.8 KiB
Plaintext
; Copyright (C) 2021-2023 by Bill Stewart (bstewart at iname.com)
|
|
;
|
|
; This program is free software; you can redistribute it and/or modify it under
|
|
; the terms of the GNU Lesser General Public License as published by the Free
|
|
; Software Foundation; either version 3 of the License, or (at your option) any
|
|
; later version.
|
|
;
|
|
; This program is distributed in the hope that it will be useful, but WITHOUT
|
|
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
; FOR A PARTICULAR PURPOSE. See the GNU General Lesser Public License for more
|
|
; details.
|
|
;
|
|
; You should have received a copy of the GNU Lesser General Public License
|
|
; along with this program. If not, see https://www.gnu.org/licenses/.
|
|
|
|
; Sample Inno Setup (https://www.jrsoftware.org/isinfo.php) script
|
|
; demonstrating use of PathMgr.dll.
|
|
;
|
|
; This script uses PathMgr.dll in the following ways:
|
|
; * Copies PathMgr.dll to the target machine (required for uninstall)
|
|
; * Defines a task in [Tasks] that should modify the Path
|
|
; * Imports the AddDirToPath() DLL function at setup time
|
|
; * Imports the RemoveDirFromPath() DLL function at uninstall time
|
|
; * Stores task state as custom setting using RegisterPreviousData()
|
|
; * Retrieves task state custom setting during setup and uninstall initialize
|
|
; * At post install, adds app dir to Path if task selected
|
|
; * At uninstall, removes dir from Path if custom setting present
|
|
; * Unloads and deletes DLL and removes app dir at uninstall deinitialize
|
|
|
|
#if Ver < EncodeVer(6,0,0,0)
|
|
#error This script requires Inno Setup 6 or later
|
|
#endif
|
|
|
|
[Setup]
|
|
AppId={{A17D2D05-C729-4F2A-9CC7-E04906C5A842}
|
|
AppName=EditPath
|
|
AppVersion=4.0.4.0
|
|
UsePreviousAppDir=false
|
|
DefaultDirName={autopf}\EditPath
|
|
Uninstallable=true
|
|
OutputDir=.
|
|
OutputBaseFilename=EditPath_Setup
|
|
ArchitecturesInstallIn64BitMode=x64
|
|
PrivilegesRequired=none
|
|
PrivilegesRequiredOverridesAllowed=dialog
|
|
|
|
[Files]
|
|
; Install PathMgr.dll for use with both setup and uninstall; use
|
|
; uninsneveruninstall flag because DeinitializeSetup() will delete after
|
|
; unloading the DLL; install the 32-bit version of PathMgr.dll because both
|
|
; setup and uninstall executables are 32-bit
|
|
Source: "i386\PathMgr.dll"; DestDir: "{app}"; Flags: uninsneveruninstall
|
|
|
|
; Other files to install on target system
|
|
Source: "i386\EditPath.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode()
|
|
Source: "x86_64\EditPath.exe"; DestDir: "{app}"; Check: Is64BitInstallMode()
|
|
Source: "EditPath.md"; DestDir: "{app}"
|
|
|
|
[Tasks]
|
|
Name: modifypath; Description: "&Add to Path"
|
|
|
|
[Code]
|
|
const
|
|
MODIFY_PATH_TASK_NAME = 'modifypath'; // Specify name of task
|
|
|
|
var
|
|
PathIsModified: Boolean; // Cache task selection from previous installs
|
|
ApplicationUninstalled: Boolean; // Has application been uninstalled?
|
|
|
|
// Import AddDirToPath() at setup time ('files:' prefix)
|
|
function DLLAddDirToPath(DirName: string; PathType, AddType: DWORD): DWORD;
|
|
external 'AddDirToPath@files:PathMgr.dll stdcall setuponly';
|
|
|
|
// Import RemoveDirFromPath() at uninstall time ('{app}\' prefix)
|
|
function DLLRemoveDirFromPath(DirName: string; PathType: DWORD): DWORD;
|
|
external 'RemoveDirFromPath@{app}\PathMgr.dll stdcall uninstallonly';
|
|
|
|
// Wrapper for AddDirToPath() DLL function
|
|
function AddDirToPath(const DirName: string): DWORD;
|
|
var
|
|
PathType, AddType: DWORD;
|
|
begin
|
|
// PathType = 0 - use system Path
|
|
// PathType = 1 - use user Path
|
|
// AddType = 0 - add to end of Path
|
|
// AddType = 1 - add to beginning of Path
|
|
if IsAdminInstallMode() then
|
|
PathType := 0
|
|
else
|
|
PathType := 1;
|
|
AddType := 0;
|
|
result := DLLAddDirToPath(DirName, PathType, AddType);
|
|
end;
|
|
|
|
// Wrapper for RemoveDirFromPath() DLL function
|
|
function RemoveDirFromPath(const DirName: string): DWORD;
|
|
var
|
|
PathType: DWORD;
|
|
begin
|
|
// PathType = 0 - use system Path
|
|
// PathType = 1 - use user Path
|
|
if IsAdminInstallMode() then
|
|
PathType := 0
|
|
else
|
|
PathType := 1;
|
|
result := DLLRemoveDirFromPath(DirName, PathType);
|
|
end;
|
|
|
|
procedure RegisterPreviousData(PreviousDataKey: Integer);
|
|
begin
|
|
// Store previous or current task selection as custom user setting
|
|
if PathIsModified or WizardIsTaskSelected(MODIFY_PATH_TASK_NAME) then
|
|
SetPreviousData(PreviousDataKey, MODIFY_PATH_TASK_NAME, 'true');
|
|
end;
|
|
|
|
function InitializeSetup(): Boolean;
|
|
begin
|
|
result := true;
|
|
// Was task selected during a previous install?
|
|
PathIsModified := GetPreviousData(MODIFY_PATH_TASK_NAME, '') = 'true';
|
|
end;
|
|
|
|
function InitializeUninstall(): Boolean;
|
|
begin
|
|
result := true;
|
|
// Was task selected during a previous install?
|
|
PathIsModified := GetPreviousData(MODIFY_PATH_TASK_NAME, '') = 'true';
|
|
ApplicationUninstalled := false;
|
|
end;
|
|
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
begin
|
|
if CurStep = ssPostInstall then
|
|
begin
|
|
// Add app directory to Path at post-install step if task selected
|
|
if PathIsModified or WizardIsTaskSelected(MODIFY_PATH_TASK_NAME) then
|
|
AddDirToPath(ExpandConstant('{app}'));
|
|
end;
|
|
end;
|
|
|
|
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
|
|
begin
|
|
if CurUninstallStep = usUninstall then
|
|
begin
|
|
// Remove app directory from path during uninstall if task was selected;
|
|
// use variable because we can't use WizardIsTaskSelected() at uninstall
|
|
if PathIsModified then
|
|
RemoveDirFromPath(ExpandConstant('{app}'));
|
|
end
|
|
else if CurUninstallStep = usPostUninstall then
|
|
begin
|
|
ApplicationUninstalled := true;
|
|
end;
|
|
end;
|
|
|
|
procedure DeinitializeUninstall();
|
|
begin
|
|
if ApplicationUninstalled then
|
|
begin
|
|
// Unload and delete PathMgr.dll and remove app dir when uninstalling
|
|
UnloadDLL(ExpandConstant('{app}\PathMgr.dll'));
|
|
DeleteFile(ExpandConstant('{app}\PathMgr.dll'));
|
|
RemoveDir(ExpandConstant('{app}'));
|
|
end;
|
|
end;
|