Mercurial > mxe-octave
changeset 6396:d5e6775fb3bc release
Add uninstall options to remove local packages and settings (Bug #62352)
* src/default-octave.mk, src/release-octave.mk, src/stable-octave.mk: save api version to file
* tools/makeinst-script.sh.in: add uninstall options, and on set, remove specified files from appdata/octave
(grafted from 8fe292548edfeb8a82e64f0e2b5da1a65e35d835)
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Wed, 31 Aug 2022 08:09:19 -0400 |
parents | 1dde81c1f186 |
children | 10d35dbdf84b |
files | src/default-octave.mk src/release-octave.mk src/stable-octave.mk tools/makeinst-script.sh.in |
diffstat | 4 files changed, 82 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/default-octave.mk Thu Aug 25 13:27:25 2022 -0400 +++ b/src/default-octave.mk Wed Aug 31 08:09:19 2022 -0400 @@ -236,4 +236,5 @@ # create a file with latest installed octave rev in it mkdir -p '$(TOP_BUILD_DIR)/octave' echo "$($(PKG)_VERSION)" > $(TOP_BUILD_DIR)/octave/octave-version + $(SED) -n 's,.*"api-v\([^"]*\)".*,\1,p' $(3)$(HOST_INCDIR)/octave-$($(PKG)_VERSION)/octave/version.h > $(TOP_BUILD_DIR)/octave/octave-api endef
--- a/src/release-octave.mk Thu Aug 25 13:27:25 2022 -0400 +++ b/src/release-octave.mk Wed Aug 31 08:09:19 2022 -0400 @@ -257,4 +257,5 @@ # create a file with latest installed octave rev in it mkdir -p '$(TOP_BUILD_DIR)/octave' echo "$($(PKG)_VERSION)" > $(TOP_BUILD_DIR)/octave/octave-version + $(SED) -n 's,.*"api-v\([^"]*\)".*,\1,p' $(3)$(HOST_INCDIR)/octave-$($(PKG)_VERSION)/octave/version.h > $(TOP_BUILD_DIR)/octave/octave-api endef
--- a/src/stable-octave.mk Thu Aug 25 13:27:25 2022 -0400 +++ b/src/stable-octave.mk Wed Aug 31 08:09:19 2022 -0400 @@ -236,4 +236,5 @@ # create a file with latest installed octave rev in it mkdir -p '$(TOP_BUILD_DIR)/octave' echo "$($(PKG)_VERSION)" > $(TOP_BUILD_DIR)/octave/octave-version + $(SED) -n 's,.*"api-v\([^"]*\)".*,\1,p' $(3)$(HOST_INCDIR)/octave-$($(PKG)_VERSION)/octave/version.h > $(TOP_BUILD_DIR)/octave/octave-api endef
--- a/tools/makeinst-script.sh.in Thu Aug 25 13:27:25 2022 -0400 +++ b/tools/makeinst-script.sh.in Wed Aug 31 08:09:19 2022 -0400 @@ -50,6 +50,7 @@ # extract version number OCTAVE_VERSION=`head -1 $MXEDIR/octave/octave-version` VERSION=`echo $OCTAVE_VERSION | sed -n 's,\([0-9\.]*\).*,\1,p'` +OCTAVE_API_VERSION=`head -1 $MXEDIR/octave/octave-api` if [ `echo $VERSION | grep -o '\.' | wc -l` -le 2 ]; then INSTALLER_VERSION="$VERSION.0" else @@ -171,6 +172,8 @@ ; uninstaller !insertmacro MUI_UNPAGE_CONFIRM +UninstPage custom un.octaveOptionsPage un.octaveOptionsLeave + !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_FINISH @@ -342,6 +345,41 @@ FunctionEnd ###################################################################### +; custom uninstall options page functions + +Var UninstallLocalPackages +Var UninstallLocalPackagesCtrl +Var UninstallUserSettings +Var UninstallUserSettingsCtrl + +Function un.octaveOptionsPage + + nsDialogs::Create 1018 + Pop \$0 + + \${If} \$0 == error + Abort + \${EndIf} + + \${NSD_CreateCheckBox} 0 0 100% 12u "Uninstall Local Packages" + Pop \$UninstallLocalPackagesCtrl + \${NSD_SetState} \$UninstallLocalPackagesCtrl \$UninstallLocalPackages + + \${NSD_CreateCheckBox} 0 20u 100% 12u "Remove user settings" + Pop \$UninstallUserSettingsCtrl + \${NSD_SetState} \$UninstallUserSettingsCtrl \$UninstallUserSettings + + !insertmacro MUI_HEADER_TEXT "Uninstall Options" "Choose additional options for uninstalling" + nsDialogs::Show + Pop \$0 +FunctionEnd + +Function un.octaveOptionsLeave + \${NSD_GetState} \$UninstallLocalPackagesCtrl \$UninstallLocalPackages + \${NSD_GetState} \$UninstallUserSettingsCtrl \$UninstallUserSettings +FunctionEnd + +###################################################################### Function un.onInit !insertmacro MULTIUSER_UNINIT @@ -385,6 +423,29 @@ \${EndIf} Pop \$R0 + + ; set default uninstall options + StrCpy \$UninstallUserSettings \${BST_UNCHECKED} + StrCpy \$UninstallLocalPackages \${BST_CHECKED} + + ; process command line options + \${GetParameters} \$R0 + ClearErrors + \${GetOptions} "\$R0" "/UNINSTALL_LOCALPACKAGES=" \$0 + IfErrors un_no_local_packages_opt + \${If} \$0 == 0 + StrCpy \$UninstallLocalPackages \${BST_UNCHECKED} + \${EndIf} +un_no_local_packages_opt: + ClearErrors + \${GetOptions} "\$R0" "/UNINSTALL_USERSETTINGS=" \$0 + IfErrors un_no_user_settings_opt + \${If} \$0 == 1 + StrCpy \$UninstallUserSettings \${BST_CHECKED} + \${EndIf} +un_no_user_settings_opt: + ClearErrors + FunctionEnd Function .onInit @@ -625,6 +686,24 @@ Section "Uninstall" + ; remove user uninstall stuff if options chosen + \${If} \$UninstallLocalPackages == 1 + \${If} \${FileExists} "\$APPDATA\\octave\\api-v$OCTAVE_API_VERSION" + RMDir /r "\$APPDATA\\octave\\api-v$OCTAVE_API_VERSION" + \${EndIf} + ClearErrors + \${EndIf} + + \${If} \$UninstallUserSettings == 1 + \${If} \${FileExists} "\$APPDATA\\octave" + Delete "\$APPDATA\\octave\\octave-gui.ini" + Delete "\$APPDATA\\octave\\octave-doc-bookmarks.xbel" + Delete "\$APPDATA\\octave\\history" + RMDir "\$APPDATA\\octave" + \${EndIf} + ClearErrors + \${EndIf} + ReadRegDWORD \$0 \${PRODUCT_UNINST_ROOT_KEY} "\$MultiUser.UninstallKey" "RegisteredFileType" IfErrors not_registered_file