Dumb question, why dual license? Why not just provide it as BSD (the more permissive of the two)?
Dumb question, why dual license? Why not just provide it as BSD (the more permissive of the two)?
When linking BSD code with GPL-licensed code, you have to have all the code follow the terms of GPL, which means effectively relicensing it. This is why some companies require copyright assignment even if they plan to stay open source.
Only the public domain code allows free mixing and matching.
Not a lawyer though, so take the above with a bowl of salt.
Edit: in theory, this allows using zstd in GPL2 projects, for instance, in the Linux kernel.
There are some licenses such as MIT where you can. But GPL is very much the code has to be GPL. But I also think it infects your code and forces your code to be GPL, but that may only be if you make a modification and change it and not just use GPL code within your code.
Does this dual license satisfy companies who have a policy of “no GPL” code?
For example, if I want to use Pango, which is GPLv2, in my application, then the GPL requires that I also release my application's source code as GPLv2, or another compatible license.
It also requires that if I make changes to Pango and redistribute it then I need to release the source code for that as well. In other words, if I fork Pango then my fork also has to be GPLv2.
It's not so much that it 'infects' your code as that it's not compatible with closed source (or some open source licenses).
A while back, Microsoft decided to abandon their awful TCP/IP stack and use a better one - FreeBSD's TCP/IP stack. Since FreeBSD is BSD-licensed, it was possible for them to take that code, use it, modify it, and redistribute compiled versions of it, without having to give back any changes or optimizations to the open-source community.
By choosing the BSD license for their code, the project was implicitly saying that they were okay with this code sharing, and so they don't look at this as a bad thing. Microsoft's OS got better, and it didn't cost anyone else anything.
Some groups, however, think that open-source should only benefit open-source, because that's beneficial to users and the world as a whole. This is the purpose of the GPL: you can use our code, but only if all of us benefit and not just you.
> This key dispute is whether non-GPL software can legally statically link or dynamically link to GPL libraries. Different opinions exist on this issue. The GPL is clear in requiring that all derivative works of code under the GPL must themselves be under the GPL. Ambiguity arises with regards to using GPL libraries, and bundling GPL software into a larger package (perhaps mixed into a binary via static linking). This is ultimately a question not of the GPL per se, but of how copyright law defines derivative works.
https://en.wikipedia.org/wiki/GNU_General_Public_License#Lin...
More than theory, there is actually an implementation of zstd in the Linux kernel. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_...
Still doesn't explain why pure BSD won't work for them, though