"Lars Ivar Douchegesund" <larsi...@douchegesund.net> wrote in message 
news:hri1n3$187...@digitalmars.com...
> == Quote from Walter Bright (newshou...@digitalmars.com)'s article
>> 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.
>
> Adapted from http://thread.gmane.org/gmane.comp.lang.d.phobos/359
>
> I wish to clear the air somewhat regarding this topic.
>
> I mostly feel like saying "Aaaarghh, you all got it wrong!", but I'll 
> rather
> try to explain my (and thus to some degree Tango's) stance.
>
> Blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
> blah
> blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
> blah
> blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
> blah
> blah blah blah blah blah blah blah blah blah blah blah blah blah.
>

This made no sense to me until I looked at the link. The non-"blah"-ified 
version is here for those who (like me) would rather not use a web 
interface:

From: Lars Ivar Igesund <larsi...@...>
Subject: Licensing in Tango and elsewhere
Newsgroups: gmane.comp.lang.d.phobos
Date: 2010-04-30 08:17:34 GMT (1 day, 13 hours and 15 minutes ago)

Hi folks,

I wish to clear the air somewhat regarding this topic.

I mostly feel like saying "Aaaarghh, you all got it wrong!", but I'll rather
try to explain my (and thus to some degree Tango's) stance.

Lets first start by defining incompatible licenses. This is entirely a user
issue, and ocassionally applies if the user uses two libraries with licenses
that conflict. This almost only ever happen if one of those licenses is the
GPL. It certainly does not happen between BSD and Boost.

So what is the issue here? It is truly impractical to have different
licenses littering a code base, so every library writer wish to avoid that.
And thus to include code from a different library with a different license,
a release of rights/relicensing may be necessary (at least in the case
moving from a stricter to a less strict license).

Then there is the case of dual licenses, such that Tango has. This tends to
make all types of interaction, such as outlined in the above paragraphs,
even more complex. I like to think that we had good reasons for making Tango
dual licensed back in the days, but in the end it has caused little more
than grief. Thus, prior to Don's Boost ticket, we started to discuss the
possiblity of a license change.

Since the BSD to some (me included) appears to be less than ideal due to the
binary attribution clause, we initially sought for an entirely new
alternative. We generally really like the Apache 2.0 license, and as
probably most other licenses, it is the result of thourough legal
counseling. The Apache Foundation is no small actor in the "open source
market". I think Boost is a nice license too, but as I will get back to, it
is a tad less restrictive than the BSD. The AFL we just dismissed, as it
just isn't well enough known (it is however a good license, written by a
lawyer specialized in software licensing issues).

To change the license of a library such as Tango is a major process, not the
least because it over the times have got over 50 contributors to the code,
some that today are really difficult to get to (we have failed when trying
to get in touch with a couple of them). So when looking to change the
license, we actually had to look into the likely case of "what can we do in
the case where we lack an acceptance from some of the contributors?". We
certainly can't move to a less restrictive license, but the AFL is
considered equal enough to the Apache 2.0, such that a relicense wasn't
totally infeasible.

At about this point in time, Don created his license ticket. In retrospect,
me changing the description of it, was probably a bad idea. The alternative,
given the restrictions outlined above, would have been just to close it
though. In any case, I am sorry if this has aggravated you Don, I certainly
didn't intend to.

In the end, we also decided against the Apache 2.0 move, the AFL<->Apache
link was just not clear enough, and we wished to avoid any potential issues
there. Looking at the options now, we ended up with the BSD, which Tango
already is licensed under.

Binary attribution clause:
This is the only actual difference between Boost and BSD, Boost otherwise
appear to be fully derived from the BSD license. Now, what does it mean?
Well, it typically mean that you don't get away from the copyright
obligations in the license, just because you have compiled the code. How you
comply with this, is up to yourself. For a product, the most obvious
solution would probably be to put a note in the documentation. OSX has taken
a different route if I understand correctly, by noting it in the boot
messages. This is of course entirely possible with Tango too, however we
think it will be good service to our users to make it possible to include
the text as a string in the binary, since that is also in compliance.

I will note further that there is an abundance of BSD licensed software out
there, which to my knowledge never really caused any harm, neither to the
libraries themselves, or to commercial businesses. (Whether this is because
all ignore the binary attribution clause, and noone tries to enforce it, I
do not know). In fact, BSD is a really popular license among copmanies such
as Google. For Tango, we believe this to be a good thing, as we ocassionally
also wish to use external code, and the best (ignoring stuff licensed as
L/GPL for now) almost always turns out to be BSD.

So in the end, Tango is in terms of licensing, really bound to decisions
made about 6 years ago, when Mango was started (as the very first project on
dsource), and those decisions were made such that the library should have a
license compatible with Phobos, seen from the user. That was true then, and
it is true today.

As for what prompted this discussion in the first place, tango.time, it is
not about being asinine or anything else. In my opinion, claiming a clean
room implementation of an API in D is difficult, if for no other reason that
it is (due to imperfect doc generation etc) somewhat difficult to properly
study a D API without at the same time reading the source (or glimpsing at
it). Even if you have good intentions, as I'm sure Shoo had, it is important
to know this, there may be less forgiving actors out there. I also think it
is civil to inform the originators if you go into such a process, and note
in the docs where the inspiration comes from, even if not required for an
API per se. Now I wasn't one of the contributors to the modules in question
(tango.time is a package fwiw, not just one module), but I can say that the
question stated by Walter (making license concessions wrt this package) will
in any case apparently take a few days to get an answer to from all relevant
parties.

-- 
Lars Ivar Igesund 


Reply via email to