[Adium-devl] Growl-WithInstaller 1.1.2 problems
Evan Schoenberg
evan.s at dreskin.net
Wed Nov 7 23:11:46 UTC 2007
On Nov 6, 2007, at 4:38 PM, David Smith wrote:
> So, we've gotten numerous reports of Growl-with-installer 1.1.2
> breaking people's growl installations.
O..M..G... The 0.7.x to 1.1.2 upgrade path is complicated because if
System Preferences is loaded, replacement of the bundle causes it to
fail to load (since the 0.7.x bundle doesn't unload first). Quitting &
restarting system prefs is therefore required.
We ran into this problem in Growl 1.1 initially; I took ownership of
it and worked out a solution. Initially, we just quit System Prefs and
then proceeded with the installation. However, this turned out to be
incomplete, as System Prefs may not quit immediately, so I changed it
to wait for the NSWorkspaceDidTerminateApplicationNotification
notification if system prefs is running and an upgrade is being
performed before deleting the old copy of Growl and continuing with
the actual installation of the new one.
I was so focused on the "does System Prefs quit properly and allow an
upgrade?" that I apparently never tested a much, much more common
case: Updating from 0.7.x without System Prefs running.
The deletion of the old bundle is not done until System Prefs quits..
in fact, it is done in the notification observer's method for the
notification. In other words, it doesn't happen at all if System
Prefs wasn't running so no quit was necessary.
The installation, then, simply opens the new growl.prefPane,
triggering System Prefs to launch and ask what to do. System Prefs
loads all its bundles before displaying the prompt... so the 0.7.x
bundle is loaded... so we're back to square one which the whole quit
process was supposed to fix!
The solution, then, is obvious: an old Growl must be deleted
regardless of the running state of System Prefs. I've made this
change in Growl [4708].
I apologize for all the churn Growl-WithInstaller has seen in the
Growl 1.x series; there are a lot of update permutations which have
been difficult to predict, though this particular one was insufficient
testing pure and simple.
-Evan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20071107/cf0ea4ff/attachment-0001.html>
More information about the devel
mailing list