As a concrete example of how this imposes real restrictions, the proprietary macOS got ZFS and DTrace starting, oh, ten years ago or so; Ubuntu got ZFS last year and there are still people who are pissed about it, wanting Ubuntu users to be forced to jump through the Purity Hoops that they already have to use for their proprietary drivers. Ubuntu's decision to ship ZFS cannot possibly be read as an attempt "to deny others the freedoms that Ubuntu enjoys." There is no freedom which Ubuntu enjoys which it is trying to deny others by shipping ZFS.
You still need to jump through the Purity Hoops to run DTrace: the "official channels" way is to not run DTrace (they recommend that you install systemtap and use a GPL application named `dtrace` which makes systemtap take DTrace-like input and produce DTrace-like output), and if you actually want to run DTrace you have to grab the `dtrace4linux` project off of GitHub and modify only your own system with it and then every time you load the thing your syslog will remind you that "module license 'CDDL' taints kernel, disabling lock debugging due to kernel taint," so I don't know what lock debugging is but I hope you don't need it.
You got it backwards. The CDDL does not ensure the same rights Sun gives to whoever receives ZFS source can be passed further down to other users who didn't get ZFS from Sun. Therefore, it's not compatible with GPL. You enjoy rights Sun gives you but others can't enjoy the same rights unless given by Sun.
This being said, your examples are rather unfortunate because
1. to avoid this exact trouble, RMS&FSF designed the GPL as one copyleft to rule them all and encouraged all copyleft supporters to standardize on it
2. rumor has it that Sun execs and lawyers deliberately used incompatible license to keep ZFS and DTrace from Linux vendors competing with Solaris and in any case they probably could have used GPL instead.
Regarding (2), the history is a bit murky. Danese Cooper wrote the CDDL and has said that GPL incompatibility was intentional; but several others have come forth (both at the talk that he said that, like Phipps, and since then, like Cantrill) to say that it was not a design goal at all, it was in fact a compromise between engineers who wanted an MIT/BSD license and management who wanted a GPL license.
The true story seems to be: Engineers were very firm about "if you force people to jump through the Purity Hoops to install proprietary drivers you are increasing the total quotient of worldsuck for generations to come and frankly, why the hell are we opening this system if we're going to make the world suck more." Meanwhile management was very firm about "we worked so unbelievably hard to open this thing up, we don't want some big player like IBM to just fork off a proprietary version, spend a big budget to become the big player in the Solaris game, and then all of our work open-sourcing this damn thing was for nothing." The CDDL was a clean-up of the Mozilla Public License which sensitively addresses both issues, it deliberately contains a big honking wall which is (and everything inside of it is) copyleft open-source, but the license has no problem being distributed with proprietary add-ons as long as the interfaces they use, baked into the copyleft open-source wall as they are, follow the copyleft open-source license of the wall and everything therein.
Well, exactly it's "if you have any national identity, feel free to adopt ours and work together" ;)
And yes, I should have said "strong copyleft". The thing is, even if GPL replaced "all derived works are GPL" with "all derived works must respect user's freedom", any derived work would have to be licensed so similarly to GPL to be barely distinguishable. Say, if GPL work A was incorporated into a free-but-not-GPL work B, you still wouldn't be able to incorporate B into proprietary software because of the A part, even if B developers don't mind.
MPL/CDDL avoid "virality" only by being weak copyleft, which GPL is supposed to be not.
However, from a business standpoint, can you explain to me how linking in GPL code wouldn't just cause my customers to grab the source for free and consume my work without paying? I'm not afraid of using LGPL or GPL with library exceptions, but linking in pure GPLv3 scares me because in my mind it says "Why would customers pay you to use your product when they can just do a git clone and use your product for free?"
That's what I do. Hello MIT/BSD
> Again GPL protects the user of the code not the developers that want to remove the user freedom.
Right, which is why I'm always surprised when people are upset that developers don't use GPL more
But what if you write a library or something that becomes popular, very popular or very useful, and your users and others (maybe yourself) want to add a great feature, but it is something that is very difficult to do, or would require more than a single developer to do - in short, it would take a while to do, if possible at all...
...then company B comes along, sees how well you're doing, and says to themselves "you know, this would be great to have that market - and oh, look - the BSD license...perfect!"
So they take your code, add in the changes the users are clamoring for (because they have the resources to do so), then make it all proprietary (perhaps - if you're lucky - with a message buried in 4pt font somewhere that say's a "thank you" and "copyright, etc" to your efforts, as required by the BSD license) - then they market the hell out of it to your users.
Your users see it all - and the flock to it, leaving your efforts to wither and die. You won't be able to catch up, and those extra features they added will keep your old users happy. Perhaps they release an API to allow others to use it, but never the source code.
They've now locked it up, and all your hard work is for nothing. But hey, you used the BSD license, and all's good, right?
/...and this is why OSX is more popular than BSD...
Those are often freeloader companies and the decision usually lies in management.
Support? Consulting? Hosting?
(A distinction not unique to software, and under threat in other places as well: "no user servicable parts inside". Many might be helpless, but who could argue that enforced helplessness is a good thing?)
The problems of UNIX generally come from assuming either that users are never devs and sysadmins, or that all users are devs and sysadmins.
1. I personally think available source, even if only escrowed, should be flat out requirement for copyright period but that's a different discussion.
First, if the user is someone who can modify the code, then the rights aren't just those of the original developer.
Second, if the user is someone who can't, it provides them with the ability to hire someone who is, or to learn themselves. This is especially important when the original developer cannot or chooses to not support the software (at all or on a specific platform.)
Take the coming y2038. For many things, the changes aren't immense, but the original developer could die in 2027 and never make them.
Access to the source is crucial, even if the user doesn't think they'll need it or be able to use it themselves.
The point is the person who makes a few tweaks and distributes has to pass on that privilege.
A good book can solve that.