← Back to context

Comment by whalesalad

2 years ago

Apple has made some substantial open source contributions.

- LLVM - https://llvm.org/

- They are the stewards of CUPS (Common UNIX Printing System) - https://www.cups.org/

- Darwin kernel is open source - https://github.com/apple-oss-distributions/xnu

- Webkit - https://opensource.apple.com/projects/webkit/

If you actually look at Apple's history with these, it's embarrassing for Apple.

Apple effectively abandoned CUPS when Michael R. Sweet left the company, which is why the OpenPrinting fork exists. For something like a year they let the project languish and accepted virtually no patches, either. No one but Apple uses Apple CUPS anymore.

Darwin is subject to periodic, incomplete code dumps to the point that for decades even getting it to build has been a struggle that includes tons of downstream work. At the moment, such efforts are in a historic slump; no recent stack is usable for anyone and it's been that way for years.

WebKit was a hostile fork (without any history of antagonism to motivate it) of KHTML, essentially classic code-over-the-wall stuff. Its original announcement was cause for consternation in the F/OSS community, not celebration.

LLVM I don't know much about the governance and maintenance of. Maybe someone else can speak to that.

But as useful as LLVM and WebKit have been to downstream projects, Apple's record with open-source is mixed at best.

Ah CUPS, that software which just received some CVEs for decades old security vulnerabilities

Also, Darwin is more of a hypothetical thing. There was a time when they actually released CD images IIRC, but that was a long time ago. I haven’t seen a pure Darwin installation in probably almost 20 years now.

I'm not sure Darwin has had much impact outside of Apple, Apple also tends to keep versions of it to themselves.

That said, the other contributions like WebKit and LLVM have had a wide and positive impact.

To be fair, all of those started as FOSS outside of Apple. LLVM came from academics at UofI, CUPS has been around since forever and they just bought it and started paying the main dev, Darwin came from pillaging NeXT, and Webkit famously was based on KHTML from KDE.

It still drives me up the wall when people think that Apple created Webkit. Just another FOSS project that Apple forked. Not only that but they didn't want to play nice with the original project so KHTML was dead within years.

  • It's a lot like how whenever Apple adds a new feature to one of their operating systems, for Apple and its most dedicated fans, that feature is Apple's invention.

    Much like macOS' very official and increasingly nominal affiliation with Unix, Apple's involvement with open-source of more interest to people who see that as a feather in Apple's cap than to people who see open-source as a first-order value of their own. Apple has little concern for either user freedom à la the free software movement or for the collaborative modes of development touted as the primary benefits of open-source by the open-source movement, and this shows in their historical and present actions. For people who give a shit about the goals, practices, and principles of open-source or free software, the creation of WebKit is remembered and remembered as a fiasco.

    People who Apple fans first don't know or care about things like 'upstream-first' development, what characterizes a good citizen vs. a bad one in the open-source world, or likely even that companies other than Apple are also criticized by the F/OSS community for engaging in similar behaviors (e.g., the scandal provoked by Canonical's release of Mir after it was developed for a prolonged period in secret).

  • I never said they created it. I said they have made substantial oss contributions.

    And does it really matter? If an OSS project is forked, soars to new heights, and sees use in millions of devices all over the world is that a bad thing? Or would you prefer it remain a quiet little sleepy project for 3 devs to bikeshed on.

    • Webkit was not a simple fork. Apple took KHTML, pretended to upstream patches for an extremely short amount of time, then purposely made it too difficult for the original maintainers to accept patches any longer until they had successfully killed the project. Classic take what you need from other's hard work at all costs.