Sparkle (software): Difference between revisions

Source: Wikipedia, the free encyclopedia.
Content deleted Content added
Zorgiepoo (talk | contribs)
Zorgiepoo (talk | contribs)
Remove COI -- see talk page, removed lot of conflicting content
Tags: Reverted COI template removed
Line 1: Line 1:
{{Short description|Software framework for macOS}}
{{Short description|Software framework for macOS}}
{{Multiple issues|
{{COI|date=March 2024}}
}}
{{Infobox software
{{Infobox software
| name = Sparkle
| name = Sparkle

Revision as of 21:30, 30 March 2024

Sparkle
Original author(s)Andy Matuschak
Developer(s)Sparkle Project (2014–present)
Initial releaseJanuary 9, 2006 (2006-01-09)
Stable release
2.6.0[1] / March 15, 2024; 3 months ago (2024-03-15)[1]
Repository
Written inObjective-C, Swift [2]
Operating systemmacOS
TypeSoftware update
LicenseMIT License
Websitesparkle-project.org

Sparkle is an open-source software framework for macOS designed to simplify updating software for the end user of a program. Sparkle's primary means of distributing updates is through "appcasting," a term coined for the practice of using an RSS enclosure to distribute updates and release notes.

History

Sparkle 0.1 (beta) was released in January 2006 by Andy Matuschak to provide apps "instant self-update" functionality, which very few applications had at the time[3]:

...Programs will usually just tell you that there’s a new version available, point you at the web site, and make you do the rest. I’m trying to fix that. Sparkle is a module that developers can stick in their Cocoa applications (five-step install!) to get instant self-update functionality. By that, I mean that your app will be able to update itself, not just check for new versions: it’ll read the update information from an appcast on your server, download, extract, install, restart, and even offer to show the users release notes before they decide if they want to update[4].

Andy first demonstrated using Sparkle in his own application Pixen in early 2006.

In June 2006, Sparkle 1.0 came out of beta and was released. It included support for public-key cryptography verification, automated downloading of updates, multiple archive formats, and more[5]. By then, numerous applications were using Sparkle including Cyberduck, Transmission (BitTorrent client), Vienna, and VirtueDesktops [6].

Around the same time as Sparkle 1.0, Tom Harrington introduced a fork called Sparkle-Plus that allowed developers to collect anonymous system profile information from users, which was inspired by Omni Group's Software Update Stats page [7]. This feature showed users what information is collected. Sparkle-Plus was used by Adium[8] which provided statistics on their website.

Sparkle 1.5 beta 1-6 was a series of major updates developed in 2008 but did not officially come out of beta. In these beta updates however, Sparkle integrated collecting anonymous system profile information from Sparkle-Plus. It also included support for pkg installs, plug-ins, minimum OS requirements, and more [9] [10].

In August 2009, Mark Rowe forked Sparkle and added support for delta updates for installing smaller and faster incremental updates[11]. Mark was a WebKit engineer[12] and had them first integrated into updating WebKit's nightly builds [13] [14]. Delta update support later became integrated into Sparkle's main development branch in 2010 [15].

At the end of 2013, development of Sparkle was ended by Andy, then later picked up by the newly formed Sparkle Project open source group on GitHub in June 2014 as the official continuation of the project.[16].

In 2016, Radek discovered a man-in-the-middle attack vulnerability in applications that use Sparkle to receive updates through an unencrypted channel.[17][18].

In 2020, Apple demonstrated using Sparkle by showing how to build a universal framework in Apple's 2020 WWDC session Port your Mac app to Apple silicon and noted that Sparkle had no portability issues [19].

In December, 2021 Sparkle 2 was released and added support for application sandboxing. Sparkle 2 was previously in development for several years [20] [21].

Sparkle inspired alternatives for other platforms

References

  1. ^ a b "Releases · sparkle-project/Sparkle". GitHub. 2024-03-25. Retrieved 2024-03-25.
  2. ^ "sparkle-project/Sparkle: A software update framework for macOS". GitHub. 2024-03-25. Retrieved 2024-03-25.
  3. ^ Scott Granneman (2010). Mac OS X Snow Leopard for Power Users. Apress. pp. 9–10. ISBN 9781430230311.
  4. ^ Matuschak, Andy. "Sparkle". Retrieved 12 January 2006.
  5. ^ Matuschak, Andy. "documentation.pdf" (PDF). Retrieved 24 June 2006.
  6. ^ Matuschak, Andy. "Sparkle".
  7. ^ Harrington, Tom. "ironcoder - Sparkle Plus!". Retrieved 5 July 2006.
  8. ^ "Adium - Blog - An Interesting Experiment". Retrieved 22 December 2006.
  9. ^ "Sparkle: a free software update framework for the Mac (Old)". Retrieved 3 November 2013.
  10. ^ "Engadget - Sparkle 1.5b1".
  11. ^ "launchpad - delta-updates".
  12. ^ "WebKit Team". Retrieved 29 March 2024.
  13. ^ "Engadget - WebKit adds some Sparkle".
  14. ^ "Can I make differential (incremental) updates where only the changed files are downloaded?".
  15. ^ "Landing delta-updates".
  16. ^ Andy Matuschak [@andy_matuschak] (29 June 2014). "Sparkle development's moving to a Github org of volunteers. Thanks, @jakepetroules and @pornelski" (Tweet) – via Twitter.
  17. ^ "How I discovered a vulnerability in hundreds of Mac OS X applications". Retrieved 30 March 2024.
  18. ^ Dan Goodin (2 September 2016). ""Huge" number of Mac apps vulnerable to hijacking, and a fix is elusive". Ars Technica. Retrieved 29 March 2024.
  19. ^ "Port your Mac app to Apple Silicon - WWDC20 - Videos". Retrieved 30 March 2024.
  20. ^ Tsai, Michael. "Michael Tsai - Blog - Sparkle 2.0".
  21. ^ Tietze, Christian. "Xcode Project Setup to Build, Embed, Codesign, Notarize, and Use the Sparkle XPC Services".

External links