Sparkle assumes that greater versions are always newer, which is wrong
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Sparkle |
Confirmed
|
High
|
Unassigned |
Bug Description
When Sparkle looks for a usable version among the appcast items (see #228485), it sorts the items by date.
This is a problem, demonstrated by Adium 1.4b6.
Our appcast for Adium betas includes both 1.4b7 and 1.3.5; of these, 1.3.5 is actually the newer (more recent) release. Because Sparkle sorts the items by date, it looks at 1.3.5 first; it finds that 1.3.5 will run on the host, so it stops looking for more versions. However, 1.3.5 is a lower version number than 1.4b7, so it tells the user that “1.4b6 is the latest version available!”—which is wrong, since b7 is available.
We're not sure exactly which version of Sparkle we're using (it was a build from source, and the developer who committed it didn't note the version in his commit message). All I know is that CFBundleVersion is 340, for whatever that's worth.
The fix is for Sparkle to sort items by version, not date. I've created a patch that does this by making SUStandardVersi onComparator a subclass of NSSortDescriptor.