So, this is a bit overdue but I think we should look into adding
support for non-app bundles. Both Tom and I have our own patches since
our products are pref panes and it would be nice to have that all
consolidated.
These are the scenarios this should cover:
Scenario 1: Sparkle linked with a bundle which is loaded in by another
app.
Scenario 2: Sparkle is linked with an app but needs to update a
different bundle that isn't the app bundle.
I believe Tom and I fall into Scenario 2 as we have helper apps that
update our prefPane bundles. If anyone falls into Scenario 1, speak up.
The changes would mostly entail getting rid of the assumption that
info should be gleaned from the main bundle. This is mostly what
SUUtilities does so these functions would have to be replaced or re-
routed.
Basically, there are two logical bundles to keep in mind.
Bundle A:
The first bundle is the one which Sparkle is updating and keeping
track of. This is the bundle that Sparkle would glean version, path
and name info and will replace when there's a new version. My thought
would be a delegate method that would just return this bundle. If
there is no delegate or it doesn't implement this method, just use the
main bundle (i.e. it will work as it does now).
Bundle B:
The second bundle is the bundle that contains the prefs/Info.plist
keys to use. If you are a bundle being loaded into another app, you
can't go alter that app's Info.plist to add the Sparkle keys you want.
You have those in your bundle but Sparkle won't look there. So, if
this is needed, another delegate method to specify this bundle could
be added.
For Scenario 1, Bundle A and B are the same and neither is the app
bundle. For Scenario 2, they are different and bundle B is the app
bundle.
Lastly, there would need to be a way to tell Sparkle to restart a
different app (not necessarily itself). This would be needed for
Scenario 2 but not 1.
Most of you probably don't care but I think these changes would be
nice to have. It goes without saying that these changes would not
affect the normal case of an app updating itself. I will be willing to
make these changes once we can agree on a solution so let me know what
you think.
Paul Kim
------------------------------------
Chief Noodler - Noodlesoft
http://www.noodlesoft.com