Hacker News new | ask | show | jobs
by canucker2016 533 days ago
He's correct.

GPL is called a viral license. Any project that you add GPL code to must be licensed under GPL (and made available to others under the GPL guidelines). That's why many commercial companies don't include GPL code - see Apple.

LGPL is typically meant for code packaged as a standalone library called from other, possibly non-GPL, code. You can distribute and call LGPL code from your code but your code does not have to be GPL/LGPL-licensed.

I believe the intent of LGPL was to have free LGPL versions of libraries where only popular non-LGPL libraries existed before. Any changes made to LGPL source code must be released under the usual LGPL/GPL guidelines, i.e. you can't make changes to LGPL code, release it in your project, yet keep the changes to yourself.

1 comments

> That's why many commercial companies don't include GPL code - see Apple.

This is wrong in a couple ways. First, Apple ships plenty of GPL code. https://github.com/apple-oss-distributions/bash/blob/bash-13... as an example.

What Apple does not ship is GPLv3 code. GPLv3 had two major changes around patents and "tivoization". The tivoization clause in particular forces changes that break Apple's security model for their hardware, and is probably the core reason they do not ship GPLv3 software.

Note that the anti-tivoization provisions only apply to software that is sold with the hardware. If Apple wanted to use GPLv3 software in apps that you have to purchase separately the anti-tivoization provisions would not be a problem.
Thanks for the correction.

This points to one area of Apple's use of GPL code. Apple doesn't want code licensed under GPL v3+ so they're sticking with the GPL v2 codebase (and custom-backporting bugfixes?). Apple uses Bash v3.2, GNU Bash is at v5.2.

Apple doesn’t have bash as their default anymore, it’s been zsh for years.

I presume they keep a bash around due to how ubiquitous it is for scripting.

https://en.wikipedia.org/wiki/Zsh says Apple switched to zsh as the default shell (with its MIT-variant license) in 2019.

GCC was replaced with LLVM in Xcode 4.2, and GDB was replaced with LLDB in Xcode 4.5 and GDB removed in Xcode 5.0. see https://en.wikipedia.org/wiki/Xcode