Install on relaunch
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Sparkle |
Confirmed
|
Critical
|
Unassigned |
Bug Description
I'm running Sparkle 1.5b6 and I've seen a few crashes in my app, often under -[NSTask launch], because the target executable is missing.
From the logs, it's clear that my application has been moved by Sparkle, even though I return YES from -updater:
The order looks something like this:
* Start NSOperation that launches a few NSTasks.
* Find update; user agrees to install & relaunch.
* New version is installed while NSOperation is still running.
* Things go wonky because resources are temporarily unavailable during the installation.
* Application is then asked if it should postpone relaunching.
However, the damage is already done. A this point, the singleton -[NSBundle mainBundle] path is incorrect, so all the resources are whatever shipped with the updated version.
Very true, Sparkle should not do that.
My initial reaction to this was "this will be fixed by the umbrella 'install on relaunch' task," but when I went to dupe this to that, it seems there isn't actually a bug for that yet, despite all the talk and code.
So this will be that.
There's code for this in http:// github. com/uliwitness/ Sparkle which I haven't finished merging yet. The diff was something like 5000 lines. :(