[dmd-internals] DMD copyright assignment

David Nadlinger via dmd-internals dmd-internals at puremagic.com
Tue Jun 24 17:19:32 PDT 2014


On 24 Jun 2014, at 0:01, Walter Bright via dmd-internals wrote:
> I'd like to know that, too. What is the difficulty with copyright 
> assignment? I can't address that if I don't know what bothers you and 
> David about it.

[Note: I'm not dealing with non-copyright-assignment CLAs here, that's a 
separate discussion.]

It boils down to a simple cost-benefit analysis.

Copyright assignment is often discussed in the context of open source 
projects which are distributed under a copyleft license and backed by a 
single corporation. In this setting, my personal opinion is that it is 
an issue on which reasonable people can disagree. However, most of the 
arguments for copyright assignment do not apply to our situation, while 
virtually all of its downsides still do, making it a pretty obvious 
choice.

Let's quickly have a look at why you might want to require copyright 
assignment as a company who initiated an open source project.

    A.1) There are claims that it is necessary to be able to efficiently 
combat license violations in court, as only the copyright holder is able 
to do so. [1]

    A.2) It allows you to monetize software by offering a 
copyleft-licensed version for free and selling commercial licenses 
without those restrictions.

    A.3) It allows you experiment with open source development, while 
keeping the option to later commercialize the product. In particular, 
this might be important for startups later being bought by a company 
that does not do open source development.

    A.4) If the need arises to change the license in order to meet the 
stated project goals (e.g. because of legal flaws discovered in the 
license), this is easy to do.

Now, let's see how they apply to our situation. 1) is moot, as we want D 
to be in a public-domain-like status, and pretty much the only violation 
of the Boost license possible is to remove the copyright statements 
anyway. 2) and 3) are similarly irrelevant, as such intentions would be 
compatible with the terms of the Boost license in any case.

So we are left with 4). If you want to have a serious discussion about 
the issue (which I think you really want to in order to get the 
community behind you) instead of just deciding that copyright assignment 
is a good idea because it gives you the warm fuzzies, you either need to 
agree that this is a very improbable thing to happen – and note that I 
am not claiming that is entirely impossible in order to reach my 
conclusion below –, or provide good evidence why this is not the case.

As for why I think that it is unlikely to happen: We all agree that our 
goal for D is to be used as widely as possible, commercially or not, and 
we use pretty much the most liberal license possible. So, there are only 
two scenarios left to consider:

    A.4) a) Some big, rouge company decides to use the frontend source 
code to build their own, incompatible system and aggressively markets it 
to the harm of D. They are allowed to do this under the Boost license. 
We thus decide that the whole liberal licensing thing was a mistake and 
want to change DMD back to a copyleft license like GPL, so that they at 
least do not benefit from our future work on D. This arguably is a 
rather unrealistic scenario, but even then, we would not need to 
re-license the code. Instead, we could just begin applying that more 
restrictive license from that point on and continue to use the old code 
under the terms of the Boost license.

    A.4) b) Somebody discovers that the Boost license actually carries 
some restrictions that nobody thought of before, meaning that it is in 
fact not the near-perfect emulation of "do anything you want, as long as 
you retain the copyright notices" we want it to be.

So, with 4) b), we have identified a single situation where it would be 
beneficial to have a single copyright owner for the project. In order to 
make an informed decision, we need to weigh this possible advantage 
against the costs and risks of requiring copyright assignment. The first 
step towards that is to try and estimate how likely it is that such a 
situation will arise. To make a weighty argument for copyright 
assignment, this scenario should also have a big negative impact on our 
goal to make D a widely used language.

As I said above, I think such a scenario is very unlikely. If you want 
to get me to agree that requiring copyright assignment for DMD is a 
useful thing to do, you'll have to convince me otherwise. Here is why I 
don't think you have much of a chance to do so:

    B.1) The Boost license has not only been written by a team of 
experts at Harvard Law School, but is also built on the experience with 
a several other widely used liberal licenses. To the best of my 
knowledge, no issues requiring such a license change have been found 
with any of them.

    B.2) You mentioned GPLv2/GPLv3 and the BSD license earlier. I don't 
think that these are not relevant for the sake of this discussion. As 
far as GPL goes, the motivation for the update was mainly to introduce a 
few new restrictions with regards to DRM and Tivoization that were not 
consistent with some other parts of the (complex!) version 2. Quoting 
Richard Stallmann, "it is important to note that upgrading is a choice. 
GPL version 2 will remain a valid license, and no disaster will happen 
if some programs remain under GPLv2 while others advance to GPLv3." And 
in the case of the BSD license, what was changed was to remove an 
additional restriction (advertising clause) from the original text. I 
think you would find it hard to argue that the Boost license, in its 
minimalism, might contain a similar restriction which we could want to 
remove later.

    B.3) The Boost license is very simple, compared to monsters like the 
GPL or even the old 4-clause BSD license. One possible problem would be 
that it is discovered that "to use, reproduce, display, distribute, 
execute, and transmit the Software, and to prepare derivative works of 
the Software, and to permit third-parties to whom the Software is 
furnished to do so" somehow does not appropriately reflect the rights we 
want to give our users. I don't think there is a valid reason to believe 
that this is any more likely than, for example, the copyright system 
itself changing in such a way that copyright assignment doesn't work out 
as intended. I'll be pleasantly surprised if you provide me with any 
evidence to the contrary.

    Much more likely, if still unlikely, is that an issue is found with 
the "unless such copies or derivative works are solely in the form of 
machine-executable object code generated by a source language processor" 
part of the license. However, even if this clause turned out to somehow 
not apply to an important use case of druntime/Phobos, this would only 
mean that the copyright statement would have to be distributed alongside 
the program. I think you will find it hard to argue that this is a 
serious problem for the future of D to the point where your earlier 
"kill switch"/"enormous bet"/"holding hostage" analogies are more than 
just empty rhetoric. After all, many widely used libraries require some 
kind of attribution. For example, I don't think there would be many 
people more unwilling to acknowledge third-party code than a company 
like Microsoft in their flagship product, yet they are happily 
attributing Andrei for his work on Loki in Windows. And remember, we are 
still talking about the worst thing that could happen in a very 
hypothetical scenario here.

I hope that at this point we (and especially Andrei) can agree that the 
only argument left in favor of copyright assignment is a diffuse fear of 
some legal quirk being uncovered in the future, hoping that aggregating 
copyright would protect us against it.

Now, as I said above, while I think that such a situation is rather 
hypothetical, I acknowledge that there is indeed a tiny chance that it 
will occur in the future. However, there is a number of very much 
non-hypothetical downsides to requiring copyright assignment, right now. 
Let me try to summarize some of them:

    C.1) It adds an extra barrier for new contributors to join. This is 
a fact, regardless of whether it is worth it or not. The fact that the 
FSF makes this step extra cumbersome by requiring a physical form to be 
sent (faxed?) in does not exactly help here either.

    C.2) In some jurisdictions (mostly european, e.g. Germany, Austria) 
it is not even possible to give away your copyright, requiring the 
agreement to be full of scary-looking legalese to provide a fall-back.

    C.3) Because of A.2) and A.3), many open source developers have a 
pre-existing notion of copyright assignment being unfair towards the 
contributors, regardless of whether it applies to our situation or not. 
The behavior of Oracle after acquiring Sun generated quite a bit of bad 
press recently.

    C.4) Contrary to what you suggest by bringing up Tango over and over 
again, requiring copyright assignment makes it _harder_ to incorporate 
external code. For example, assume that there is a nice piece of code in 
Boost (the library) that we'd like to adapt for D, e.g. some code from 
Boost.Context that would be useful for implementing fibers when porting 
druntime to a new platform. Even though the licenses are perfectly 
compatible, we can't use that piece of code, unless we manage to 
convince the original author to assign copyright to us. Your Tango 
example would only be a valid argument if we assume that all interesting 
code ever written would be assigned to Digital Mars, but I think we can 
safely agree that this is megalomania.

    C.5) Requiring copyright assignment will make it entirely impossible 
for some people to contribute, as it can be impossible to get the legal 
departments of your employer to agree. I happen to know two people in 
quant finance where they could contribute to open source projects, but 
were forbidden to sign even Contributor Licensing Agreements that don't 
require copyright assignments, like those from Google or Mozilla. There 
was a post on reddit a while back where a startup founder had signed a 
Google CLA and that generated quite a bit of legal hassles when their 
company was bought, regardless of how irrelevant that was, simply 
because it raised a red flag with the acquiring company's legal team. Or 
see this statement by a well known Linux kernel developer who claims 
that he wouldn't have been able to contribute to Gentoo if it required 
copyright assignment: 
http://article.gmane.org/gmane.linux.gentoo.devel/82061

    C.6) You wrote earlier that "the credit has a lot of value to one's 
professional career", and I couldn't agree more. Yet at the same time, 
you are asking people for the permission to take it away from them. 
Regardless of whether you actually intend to do that or not, the simple 
possibility makes this a rude thing to do without a good reason.

You might dismiss some of these points as irrelevant, and you might even 
convince me that they are. But you can't dispute the fact that copyright 
assignment is a contentious issue (see e.g. [2]-[5]) and will turn users 
and developers away before you even have a chance at trying to convince 
them too.

For one, I certainly wouldn't have started to contribute to D if it had 
required assigning my copyright to a random commercial company. Of 
course, I have been around for a while now and having met you in person 
I do believe you that you indeed act in good faith. Still, I don't think 
there is a good reason to require copyright assignment and I don't see 
myself handing over the copyright for my druntime/Phobos contributions 
or future work on DMD any time soon.

Let me reiterate: You are insisting on doing something that most open 
source projects don't require, including a number of successful, 
company-backed ones. One of them is LLVM, and while Apple's legal 
department is known to be extremely careful, they seem to have no 
problem with betting a lot of money on that. Our code is Boost-licensed, 
and in similar fashion the lawyers of Adobe and a number of other 
companies are willing to bet some serious money on the fact that it 
holds. Requiring copyright assignment is certainly not the norm, and 
recently, a number of companies with a less altruistic agenda than the 
current-day Digital Mars have ditched their CLAs that didn't even 
require copyright assignment because they still found it to be an 
unnecessary stumbling block for new contributors (see e.g. [6|, [7]). 
Yet, you are expecting us to agree to a proposition where we can only be 
certain about two things: That we are not gaining any rights in the 
process, and that it is going to turn users and contributors away in the 
future.

What you are doing right now is akin to being afraid of the possibility 
that you might have developed cancer, and asking a doctor for radiation 
treatments and chemotherapy in response to your unsubstantiated fears. 
Sure, there is a non-zero possibility that you indeed have a tumor and 
it will save your life. But clearly, anybody acting in that fashion 
would be insane because they'd completely ignore the very real chance 
that they might die from the side-effects of the treatment.

There are many other issues that threaten D's future in much more 
serious ways than some hypothetical nondescript legal issues down the 
road because we didn't require copyright assignment. One of them is 
patent-encumbered code entering DMD, an issue where copyright assignment 
doesn't help you at all.

And yes, even the likelihood of D getting forked over the discussion we 
are having now is orders of magnitude larger than what you are trying to 
prevent.

David



[1] There seems to be dispute about whether this is actually true, and 
indeed there have been suits regarding Linux and Busybox, both of which 
don't require assignment.
[2] https://people.gnome.org/~michael/blog/copyright-assignment.html
[3] http://ebb.org/bkuhn/blog/2011/07/07/harmony-harmful.html
[4] 
http://www.chesnok.com/daily/2010/10/08/the-problems-with-copyright-re-assignment/
[5] http://sfconservancy.org/blog/2014/jun/09/do-not-need-cla/
[6] http://www.joyent.com/blog/broadening-node-js-contributions
[7] https://twitter.com/richardfontana/status/477320000881975296



More information about the dmd-internals mailing list