First off, I'm not a copyright lawyer, so my legal opinions are lay.
Secondly, every time D gets mentioned publicly, such as on reddit, someone posts
that they won't use D because there are "two standard libraries" and "when will
D get its act together." This situation is deplorable.
Thirdly, I understand that Tango has upwards of 50 developers, and they do not
speak with one voice. When I say "Tango representative", it is not how he
describes himself, except that he has been asked to speak to me on behalf of
some, I don't know how many, Tango developers. When I say "Tango team", I mean
the opinion as I interpreted it from the Tango representative.
Sadly, I do not have an identic memory, so I'll just do the best I can to recall
our conversation.
I received a call from the Tango representative yesterday saying that some
developers expressed concern that SHOO's time library proposed submission to
Phobos may have an "infraction" of the Tango BSD license. The word
"infringement" was not used, though I think infraction and infringement mean the
same thing here.
He expressed the idea that since SHOO was admittedly very familiar with the
Tango time code, that it was not possible for his time code to be free of
"taint" from the corresponding Tango code. He was satisfied only by my agreement
to block the inclusion of SHOO's time module in Phobos.
The key point here is the Tango team regards it as impossible for someone
familiar with the internals of a Tango module to make a non-infringing
reimplementation of its interface.
The discussion next turned to what can be done about it. One possibility was for
Phobos to include modules from Tango under the BSD license. That is certainly
allowed. The problem then is that, since Phobos modules all tend to willy-nilly
import each other, any use of Phobos will require conformance to the BSD binary
attribution requirement. I regard this as an unnecessary and unacceptable
impediment to the adoption of D. That's fine for other libraries, but the
*standard* library shouldn't be so encumbered.
Yes, I know Google has embraced BSD, but Google can afford to spend a billion
dollars in legal fees defending their interests. We can't.
On the other hand, wholesale inclusion of Phobos modules into Tango under the
Boost license will impose zero additional requirements upon users of Tango. It
is not a symmetric problem. This is why I proposed moving Tango towards the
Boost license.
I wholly understand that it is impractical to move the entire Tango codebase to
Boost because some of the developers are not contactable. But, it is entirely
possible for new modules to be done using Boost, and for existing modules where
the developers can be located to be relicensed to Boost.
The Tango representative said this was proposed, and there were some
reservations:
1. Since we changed the Phobos license to Boost, we might change it again and
pull the rug out from under Tango.
The Phobos 1 license was, and remains, a mishmash of Public Domain and various
homemade open source licenses. This was not acceptable for professional use, and
we settled on Boost as the most liberal of the accepted open source licenses for
Phobos 2. It would take nothing short of a catastrophe, like the courts
declaring the Boost license to be invalid, to get us to change it again.
2. Tango having 2 licenses for different parts will confuse people.
This is a reasonable concern. My answer is that we can handle such confusion, as
both BSD and Boost licenses are simple and well known. It's a lot better than
the current situation.
3. The Boost license is "viral".
I think this concern is unfounded.
4. There were some other unspecified reservations.
I invite any that have such reservations to call me off the record on Skype. My
Skype handle is walter.bright
The only other possibility Tango and Phobos can work together is for individual
Tango developers to relicense their own code to Boost and put it into Phobos.
This has happened, for example, with Sean and Don's code.
I reiterate my general and blanket policy of allowing any Tango developers to
use any part of Phobos I've written for Tango and relicense it as necessary to
do so. I have not received any reciprocal agreement from the Tango team, though
I would welcome it.
If I have misstated, misrepresented, or misinterpreted anything, I welcome any
corrections.
If anyone would like to go on the record about these issues, please post here.
If anyone wants to go off the record and talk with me directly, I'm available on
Skype.
I believe both sides of this have the same goal, the furtherment of D, and want
an amicable resolution. I promise to do everything I can to make that happen.