Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

apache 2.0

Moderators: kris

Posted: 07/07/09 13:38:56 Modified: 07/07/09 13:41:43

Tango is released under the BSD and Academic Free License, which are liberal licenses.

Unfortunatley this has given rise to infinite discussions, due to the adverising clausel in BSD (which most interpret as valid also for executable), and AFL which is difficult to read and interpret.

Also in general for multiple license works it is not so clear what are really the requirements

Changing the license is not an easy thing, but if it improves things it is something that might be done.

I think that going to Apache 2.0 only http://www.apache.org/licenses/LICENSE-2.0.html is a good option

  • it is widely used and supported
  • has a strong organization behind it
  • Is quite clear, and is the license that OSI suggest to use instead of AFL
  • The idea behind it is very close to BSD and AFL, in fact it might be possible to directly relicense AFL to apache, but as this is not fully crystal clear explicit ok from contributors would be better.
  • apache explicitly says that linking and referring by name does not constitute a derived work
  • apache tries to keep a single license for the whole work (to make licensing issues more clear).
  • It has a clear legal standing and there are guidelines on how/what can be integrated with it, and by default all submissions/patches,... fall under the apache license (when not specified differently)
  • AFL and BSD work can be included in apache 2.0 work without any problem http://www.apache.org/legal/resolved.html

Here is a clear discussion of BSD,MIT,Apache and AFL licenses http://oreilly.com/catalog/osfreesoft/book/ch02.pdf

Author Message

Posted: 07/07/09 14:10:05 -- Modified: 07/07/09 14:14:08 by
doob

Another long license to read through and it's not compatible with GPL 2. I would choose the boost license: http://www.boost.org/LICENSE_1_0.txt which explicitly says that you don't have to include the license in a copy of the Software that is in the form of machine-executable object code. DRuntime is also using the boost license. Another option would be the zlib/libpng license, but I prefer the boost license for the above reason.

Posted: 07/07/09 14:28:55

apache is compatible with GPL 3.0, and you can upgrade any GPL 2.0 work to GPL 3.0 (the incompatibility stems from the patent protection thing that is part of apache 2.0.

apache explicitly says that just linking or referencing by name does not constitute a derived work, so it has no binary issue.

apache is much more widely used than Boost (that is basically used just by Boost and some other C++ projects), and has a much better legal standing.

apache foundation has a legal department that has compared it others and can answer questions, also it has very clear guidelines with respect to the integration of foreign work, and what cannot be integrated.

I also like very much the care that has been taken to make sure that the user has to care about just one license, for example making it explicit that submissions will be covered by apache 2.0.

I think that those things will create much less headaches in the future (rather that taking again a license the seems promising at the moment as was done with AFL back then).

The exposure wide use and strong foundation behind it make it a much better developed license in my opinion.

Posted: 07/07/09 16:39:18

Forgive my ignorance on the issue of open-source licensing, but.. why would you ever license something as basic as a standard library under anything more restrictive than, say, MIT or zlib? From what I've seen, complex open-source licenses do far more to hinder open-source development than to aid it. If we're tired of licensing issues, shouldn't we try using a license that doesn't cause them?

I don't know why I'd make a new scripting language. I mean, I might as well just draw some lines in the sand with a stick.

Posted: 07/07/09 19:59:46 -- Modified: 07/07/09 23:59:49 by
kris

JarrettBillingsley wrote:

Forgive my ignorance on the issue of open-source licensing, but.. why would you ever license something as basic as a standard library under anything more restrictive than, say, MIT or zlib?

If one approves of the MIT license, it logically follows that one would also approve BSD. To wit (O'Reilly explanation linked above):

With the clause about advertising removed (formerly, the third clause in the [BSD] license),
the only substantial difference between this license and the MIT License is the nonattribution
provision in the last clause. This provision requires prior permission for
use of the name of the creator, and it protects the reputation of the creator from
being explicitly associated with derivative versions of the program. Such restrictions
permit creators to protect themselves from the injury to their reputations that can
result from association with a defective or poorly written program, while still allowing
others to use or modify a work.

Tango is currently licensed as BSD which, as described above, is generally equivalent to MIT but with the addition of a "reputation protection" clause. Is your position that Tango should retain its BSD licensing status, and thus remain largely compatible with MIT? There's seems to be a lot of misunderstanding related to the various licenses so, to be clear, I'm just trying to understand what you are proposing. That O'Reilly link might be helpful?

Posted: 07/08/09 07:31:08

I think that apache 2.0 gives important flexibility and guidelines on how to integrate foreign work and still keep a single license toward the end user.

It is misleading to think that just choosing the license that seem to have less clauses is always the best choice, already now tango has for example zlib, and links openssl, and probably I am forgetting something. There are have been requests about regular expressions (PCRE), libevent,...

Knowing how to cope with this is important for the future, otherwise tango might end up having x licenses for the various pieces, and then a user does not know exactly what are his obligations, or tango will have holes in the functionality because external libraries cannot be integrated due to licensing constraints.

Posted: 07/09/09 11:54:16

I agree that Tango should probably adopt a different license, if anything, to stop the bikeshed flame wars with Walter & co. BSD and AFL both have controversial clauses that might prevent some slightly paranoid programmers from using or even looking at Tango. Perhaps we should figure out if Druntime and Phobos leads would be willing to change the license to Apache 2.0 as well? Or perhaps Apache 2.0 is compatible with the Boost Software license? I guess either would be beneficial to D-enizens.

Posted: 07/09/09 13:03:58

Apache license, clause 4.1.

4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and

Is a user of Tango creating a Derivative Work? In section 1, it says:

"Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof."

What does it mean to "link (or bind by name) to the interfaces of" Tango? It's clear what that means for Apache, it's not obvious what it means for a library.

What if you use a template library, or a string mixin created by a library? Are you still just "binding by name"?

Posted: 07/09/09 13:49:43

h3r3tic wrote:

I agree that Tango should probably adopt a different license, if anything, to stop the bikeshed flame wars with Walter & co.

This is _the_ issue, really. Tango needs to have a license which Walter isn't frightened of. (It's really just Walter. If Walter's convinced, Andrei will be too). The licenses he will accept (so far) are public domain, zlib and Boost. There's no point using yet another license if Walter can't be convinced. As long as Andrei avoids looking at Tango source code, the rift between Phobos and Tango will continue to widen.

Posted: 07/09/09 14:05:10

Don Clugston wrote:

There's no point using yet another license if Walter can't be convinced. As long as Andrei avoids looking at Tango source code, the rift between Phobos and Tango will continue to widen.

QFT. This is exactly why I'm concerned with the current license.

I don't know why I'd make a new scripting language. I mean, I might as well just draw some lines in the sand with a stick.

Posted: 07/11/09 14:32:49

I think public domain would be the best choice. No restriction should be one the code.

Posted: 07/11/09 19:27:38

It is an error to assume that least licensing is best. Even PD has its pitfalls, and isn't necessarily much more free than normal licenses. The reason for this is that no matter the license, you can never legally claim that the code was written by you (that is considered fraud, even if not easily taken to courts). The only real thing that a license do for the user, is to put constraints on the usage of that software (since law takes care of the copyright part).

Apache 2.0 does not put any real restrictions on the usage of the library, and it provides protection to the contributors and future usage of the license. If it had been a problematic license, then it hadn't been the most widely used license in the Java world, a place where open sourceprobably is much more widely used in enterprises/businesses than C/C++/etc.

Posted: 07/11/09 20:40:06

I completely agree with fawzi and larsivi. +1 for Apache 2.0 (i like the gpl v3 compatibily).

Posted: 07/11/09 20:51:09

It is also true that in some cases (for derived works, but not just for linking) apache adds some requirements to the work, namely that it cannot be represented as the original, and should say something like "based on tango" (in this case).

It is true that then tango would not be completely invisible, and I suppose that in some extreme cases this might be unwanted, but in general I think this is actually a good thing.

This means that derived work are clearly marked as such, and advertise the original work, something that has a positive effect on the original work itself.

Open source projects need some exposure to attract contributors and users, the apache license helps in this.

Actual commercial use is not limited, anybody can "close up" tango without problems, as long as it says that it is based on tango. If the source code will be released on the other hand the protection clauses of apache should be respected (but the license might be more stringent).

Posted: 07/11/09 22:06:53

fawzi wrote:

It is also true that in some cases (for derived works, but not just for linking) apache adds some requirements to the work, namely that it cannot be represented as the original, and should say something like "based on tango" (in this case).

It is true that then tango would not be completely invisible, and I suppose that in some extreme cases this might be unwanted, but in general I think this is actually a good thing.

This means that derived work are clearly marked as such, and advertise the original work, something that has a positive effect on the original work itself.

Okay, yeah, I wouldn't see that as a big problem. I wouldn't have any problem giving credit to the libraries I've used.

It might also be tied into how Tango will be used in the future (D2?). I mean, if it's supposed to supplant Phobos, then having a license that requires attribution seems maybe a little odd, but not unworkable; but if it's supposed to work alongside Phobos, then an attribution clause doesn't seem unusual at all.

I'm far less concerned about attribution, though, than I am about silliness such as Andrei reimplementing in Phobos 2 all sorts of useful functionality that exists - and has existed for a while - in Tango already. [K]eeping information secret is inefficient; it leads to unaesthetic duplication of effort. If we want to have Tango and its code accepted by the Elite Few, we have to play by their rules, regardless of how stupid they may seem and regardless of any personal beef between them and the Tango team.

Of course, there's always the other option: mutiny. :D

I don't know why I'd make a new scripting language. I mean, I might as well just draw some lines in the sand with a stick.

Posted: 08/05/09 11:52:58

just positing another interesting link wrt. licenses for future reference, and having licensing related things together in one place

http://fedoraproject.org/wiki/Licensing#Software_License_List

Posted: 08/08/09 11:20:25

I agree too: would be nice to see Tango under Apache 2.0 if it gives the project further direction and speed.

Posted: 09/28/09 08:46:54

So it is probably time to reach a fixed point wrt. this discussion.

Would anybody be upset, or have problems if we try to switch to apache 2.0, if possible for the next release?

Posted: 11/11/09 18:13:40

No, just f* go for it ;-)

Posted: 11/12/09 22:51:11

I really didn't want to be a "What about {insert author's favorite license here}?" guy, but, this question has been nagging at me for some time and I have to ask:

What's wrong with the zlib/libpng license?

It's extremely permissive, but without running into the problems of public domain. And it's dead-simple to understand - it even makes the single-page boost, MIT and BSD licenses read like PITA legalese. But it doesn't seem to have gotten serious consideration here (just brief mentions in passing) even though I don't see anything specifically pointing out a flaw with it. If there's a specific reason for passing it up, I'd like to hear what it is (disclaimer: I don't mean to sound contentious).

Posted: 11/13/09 00:13:58 -- Modified: 11/13/09 00:17:50 by
baxissimo

fawzi wrote:

just positing another interesting link wrt. licenses for future reference, and having licensing related things together in one place

http://fedoraproject.org/wiki/Licensing#Software_License_List

From that link, AFL, Apache 2.0, Boost and Zlib are all on the "Good Licenses" list.

Only Boost and Zlib have Yes in all columns.

But srsly here folks, given that phobos and druntime are now under Boost, and that you're discussing changing the license anyway, I think the debate really should be about whether or not there are any good reasons NOT to use the Boost license. I can't see any. And I see only down sides for changing it to something other than Boost.

Posted: 11/13/09 02:07:40

Some pointer to a discussion on the NG about the Tango license.

Posted: 11/13/09 05:55:40

There's another issue with licensing Tango code: There's no one single copyright holding entity for Tango and instead each developer has ownership of his contributions to Tango. For the long run it makes management of this issue hard to impossible. All major/successful open-source projects have one legal entity for that purpose - Apache foundation, FSF for the GNU, etc..

The current situation requires to get an explicit permission to change the license from each contributor for his code and if someone cannot be contacted for any reason, his contribution cannot be re-licensed. The management of the Tango project should be able to revise licensing without depending on past contributors that cannot be reached anymore.

Posted: 11/14/09 11:42:50

Abcissa: It is not about what is wrong with Boost or Zlib, but why we think Apache 2.0 is a better license.

Baxissimo: If the Phobos developers wanted to have a license that is compatible with Tango's, why didn't they involve us when deciding which license to use? (Not that they're really incompatible, just not the same ...)

yigal: I don't think transferring of copyright is an overall policy in the Apache foundation. I agree that it would have been nice, but there are two obvious issues with it. 1) You need the legal entity in question, you can't just say "copyright Tango" - such a legal entity cause some overhead, although I agree that it could be worth it. 2) Contributors are probably less likely to transfer copyright, than to agree about which license to use - but of course, I'd love to hear who would have transferred their contributions to a legal Tango entity.

Personally I don't think the last is a huge problem, it isn't particularly normal to change the license every year.

Posted: 11/14/09 15:11:47

larsivi wrote:

Abcissa: It is not about what is wrong with Boost or Zlib, but why we think Apache 2.0 is a better license.

Great. So why is it better? Most of Fawzi's points apply equally well to Boost. Oddly he claims Apache 2.0 "Is quite clear", despite its dense and verbose legalese. I'd say zlib and boost are "quite clear", but certainly not Apache 2.0. Just look at the debate that sprang up on Digitalmars.com over what various parts of it mean.

larsivi wrote:

Baxissimo: If the Phobos developers wanted to have a license that is compatible with Tango's, why didn't they involve us when deciding which license to use? (Not that they're really incompatible, just not the same ...)

Unfortunately, I don't know the answer to that. But here we are, and it seems Tango is discussing changing their license anyway, so you might as well end this Tango/Phobos license nonsense once and for all rather that perpetuating it.

Posted: 11/14/09 19:49:07

baxissimo wrote:
larsivi wrote:

Abcissa: It is not about what is wrong with Boost or Zlib, but why we think Apache 2.0 is a better license.

Great. So why is it better? Most of Fawzi's points apply equally well to Boost. Oddly he claims Apache 2.0 "Is quite clear", despite its dense and verbose legalese. I'd say zlib and boost are "quite clear", but certainly not Apache 2.0. Just look at the debate that sprang up on Digitalmars.com over what various parts of it mean.

I don't see a need to re-iterate the arguments, as I feel they are good enough.

baxissimo wrote:
larsivi wrote:

Baxissimo: If the Phobos developers wanted to have a license that is compatible with Tango's, why didn't they involve us when deciding which license to use? (Not that they're really incompatible, just not the same ...)

Unfortunately, I don't know the answer to that. But here we are, and it seems Tango is discussing changing their license anyway, so you might as well end this Tango/Phobos license nonsense once and for all rather that perpetuating it.

Again, whatever nonsense there exist on this matter is not created by Tango, but by those who refuse to see that there never have been a license problem/conflict/whatever. Changing the license to Apache 2.0 will not add to this non-existing problem whatsoever.

Posted: 11/15/09 02:06:31

larsivi wrote:
baxissimo wrote:
larsivi wrote:

Abcissa: It is not about what is wrong with Boost or Zlib, but why we think Apache 2.0 is a better license.

Great. So why is it better? Most of Fawzi's points apply equally well to Boost. Oddly he claims Apache 2.0 "Is quite clear", despite its dense and verbose legalese. I'd say zlib and boost are "quite clear", but certainly not Apache 2.0. Just look at the debate that sprang up on Digitalmars.com over what various parts of it mean.

I don't see a need to re-iterate the arguments, as I feel they are good enough.

Then perhaps you or someone could please reword them, because reading back through the above posts, if there's a direct comparison between Apache 2 and Boost or zlib, or even a clear analysis of it, I'm either not seeing it or not understanding it. I just see a few vague non-cited claims about Apache 2 without any actual comparisons being made to boost or zlib. And it seems I'm not the only one, so apperently the arguments aren't so clear after all, and could use to be re-iterated or re-worded or something.

I've tried to read through the Apache 2 license myself, but frankly, I (and quite a few other people, apparently) find it positively impenetrable, so some help in understanding both it and *specifically* how it's better than boost/zlib would be *much* appreciated and hopefully help ease all our minds about it.

larsivi wrote:
baxissimo wrote:
larsivi wrote:

Baxissimo: If the Phobos developers wanted to have a license that is compatible with Tango's, why didn't they involve us when deciding which license to use? (Not that they're really incompatible, just not the same ...)

Unfortunately, I don't know the answer to that. But here we are, and it seems Tango is discussing changing their license anyway, so you might as well end this Tango/Phobos license nonsense once and for all rather that perpetuating it.

Again, whatever nonsense there exist on this matter is not created by Tango, but by those who refuse to see that there never have been a license problem/conflict/whatever. Changing the license to Apache 2.0 will not add to this non-existing problem whatsoever.

There's never been a license conflict? So I guess the idea that Walter and Andrei wouldn't look at Tango was all in my head?

And yes, I do know what you really meant, but whether the conflict has been real or perceived is only barely relevant because the effect is exactly the same: No matter how the actual letter of the law truly works out, the fact remains the D community has been confused about the existing Tango license situation and is still confused about Apache 2. Things like the above that essentially amount to "Trust me, it's fine!" do absolutely nothing to solve the very real problems that have arisen as an effect of the maybe-real/maybe-perceived license problems, and as such it merely amounts to a head-in-the-sand tactic.

So please, help clarify for those poor unfortunates of us who don't get the exact same certainty, understanding and interpretation as you when reading something like the Apache 2 license.

Posted: 11/16/09 22:53:45

The notion that AA and/or Walter do not look at Tango code is a myth of dubious origin. I've had Walter (on the phone) gleefully laughing at specific Tango implementation details :-)

The fact is that Tango and phobos had a largely compatible license from the beginning, and then phobos changed. Whether the new phobos license remains compatible is a question that should be put to those responsible for said change. Tango is the constant in this regard, so please try to remember this.

Posted: 03/05/10 19:34:29

Latest development on this issue can be found in #1701