mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-14 11:17:05 -04:00
Packaging: confirm a successful uninstall with the completion dialog (fixes #892)
The MSI never included WiX's ExitDialog: the Publish events point at it, but only a DialogRef pulls the UI extension's fragment (with its on-exit=success show) into the package, so every successful run ended silently. Reference it, and note that the shared completion page is the uninstall confirmation; packaging-lint now fails when the reference is lost again. 🤖 Generated with [ZCode](https://zcode.ai) Co-Authored-By: ZCode <[email protected]>
This commit is contained in:
1 parent
b3d392b499
commit
54321e6175
2 files changed
+13
-1
No files matched your search
@@ -58,6 +58,11 @@ jobs:
|
|||||||
'Key="Software\LightCraft" Name="InstallFolder"' 'Value="LaunchLightcraft"'; do
|
'Key="Software\LightCraft" Name="InstallFolder"' 'Value="LaunchLightcraft"'; do
|
||||||
grep -qF "$want" packaging/windows/lightcraft.wxs || { echo "::error::lightcraft.wxs lost: $want"; exit 1; }
|
grep -qF "$want" packaging/windows/lightcraft.wxs || { echo "::error::lightcraft.wxs lost: $want"; exit 1; }
|
||||||
done
|
done
|
||||||
|
# The completion page the Publish events point at must actually exist: a Publish alone
|
||||||
|
# does not pull the dialog fragment into the MSI, and without the DialogRef the
|
||||||
|
# installer finishes silently (issues #790, #892).
|
||||||
|
grep -qF '<DialogRef Id="ExitDialog" />' packaging/windows/lightcraft.wxs \
|
||||||
|
|| { echo "::error::ExitDialog is not referenced; installs and removes end without a completion dialog"; exit 1; }
|
||||||
desktop-file-validate packaging/linux/ai.storyteller.lightcraft.desktop
|
desktop-file-validate packaging/linux/ai.storyteller.lightcraft.desktop
|
||||||
sed -e 's/@VERSION@/0.0.0/' -e 's/@DATE@/2026-01-01/' packaging/linux/ai.storyteller.lightcraft.metainfo.xml.in >"$RUNNER_TEMP/ai.storyteller.lightcraft.metainfo.xml"
|
sed -e 's/@VERSION@/0.0.0/' -e 's/@DATE@/2026-01-01/' packaging/linux/ai.storyteller.lightcraft.metainfo.xml.in >"$RUNNER_TEMP/ai.storyteller.lightcraft.metainfo.xml"
|
||||||
appstreamcli validate --no-net --explain "$RUNNER_TEMP/ai.storyteller.lightcraft.metainfo.xml"
|
appstreamcli validate --no-net --explain "$RUNNER_TEMP/ai.storyteller.lightcraft.metainfo.xml"
|
||||||
|
|||||||
@@ -80,7 +80,9 @@
|
|||||||
upgrade; Change... browses, and a folder that can't be used (InvalidDirDlg) is refused before
|
upgrade; Change... browses, and a folder that can't be used (InvalidDirDlg) is refused before
|
||||||
anything is installed. Failure and cancellation end on WiX's standard FatalError / UserExit
|
anything is installed. Failure and cancellation end on WiX's standard FatalError / UserExit
|
||||||
dialogs instead of the completion page. Maintenance (running the MSI again, Repair/Remove from
|
dialogs instead of the completion page. Maintenance (running the MSI again, Repair/Remove from
|
||||||
Apps) uses the standard maintenance dialogs.
|
Apps) uses the standard maintenance dialogs; every successful run — install, repair or
|
||||||
|
remove — then ends on the shared completion page, so a successful uninstall is confirmed
|
||||||
|
with a visible final dialog (issue #892; the page itself is issue #790's fix).
|
||||||
|
|
||||||
This is WixUI_InstallDir without its licence-acceptance page: LightCraft is MIT OR Apache-2.0,
|
This is WixUI_InstallDir without its licence-acceptance page: LightCraft is MIT OR Apache-2.0,
|
||||||
which ask nothing of people who just install and run it, so a click-through EULA would only
|
which ask nothing of people who just install and run it, so a click-through EULA would only
|
||||||
@@ -128,6 +130,11 @@
|
|||||||
<DialogRef Id="BrowseDlg" />
|
<DialogRef Id="BrowseDlg" />
|
||||||
<DialogRef Id="InvalidDirDlg" />
|
<DialogRef Id="InvalidDirDlg" />
|
||||||
<DialogRef Id="DiskCostDlg" />
|
<DialogRef Id="DiskCostDlg" />
|
||||||
|
<!-- Referenced by the Publish events below but never pulled in on its own: without this
|
||||||
|
ref the MSI ships without a completion page, so a successful install or remove ends
|
||||||
|
silently (issues #790, #892). The UI extension's fragment shows it on exit=success,
|
||||||
|
which covers Remove from Apps & features too. -->
|
||||||
|
<DialogRef Id="ExitDialog" />
|
||||||
<DialogRef Id="VerifyReadyDlg" />
|
<DialogRef Id="VerifyReadyDlg" />
|
||||||
<DialogRef Id="MaintenanceWelcomeDlg" />
|
<DialogRef Id="MaintenanceWelcomeDlg" />
|
||||||
<DialogRef Id="MaintenanceTypeDlg" />
|
<DialogRef Id="MaintenanceTypeDlg" />
|
||||||
|
|||||||
Reference in new issue
Block a user