Forum: Ruby-core Change Ruby's License to BSDL + Ruby's dual license

Posted by NARUSE, Yui (Guest)
on 2010-08-31 18:30
(Received via mailing list)
Ruby's License will change to BSDL + Ruby's dual license

== Background

Ruby's License, which is used as the license of Ruby and other related 
software,
says it is dual license: GPLv2 or Ruby's in a narrow sense.

But it has following problems:
* it is not compatible with GPLv3
* a modest person can't port Ruby's code into BSDL
* a greed person can port Ruby's code into public domain
  (use quotation clause)

So copyleft spirit of Ruby's License is the barrier to BSDL,
but can't effect to modified codes.

== Change

current: GPLv2 + Ruby's
new: BSDL + Ruby's

== Merit

* you can use Ruby with GPLv3 software
* you can port Ruby's code into BSDL code

== Demerit

nothing: because people can everything with change the name or quotation 
clause.

== Discussion

It was discussed in [ruby-dev:39167], [ruby-core:25272] and so on.
Initial decision was made on RubyKaigi 2010 by Matz.
http://redmine.ruby-lang.org/wiki/ruby/DevelopersM...

== Public Comment

Matz said we'll wait 2 weeks for the comment.
So please comment to us if you have any comment.
Posted by NARUSE, Yui (Guest)
on 2010-08-31 18:58
(Received via mailing list)
(2010/09/01 1:30), NARUSE, Yui wrote:
> Ruby's License will change to BSDL + Ruby's dual license

== What is the BSDL?

2-clause BSDL or ISC License

They are considered functionally equivalent but
* ISC License is made by Internet Systems Consortium,
  and used by BIND and OpenBSD, which seems strict people
* ISC License is more simple
So I think ISC License is better
Posted by Lucas Nussbaum (Guest)
on 2010-08-31 19:37
(Received via mailing list)
On 01/09/10 at 01:30 +0900, NARUSE, Yui wrote:
> * a greed person can port Ruby's code into public domain
>   (use quotation clause)
> 
> So copyleft spirit of Ruby's License is the barrier to BSDL,
> but can't effect to modified codes.
> 
> == Change
> 
> current: GPLv2 + Ruby's
> new: BSDL + Ruby's

That's the 3-clause BSD license, not the 4-clause one, right?

> == Merit
> 
> * you can use Ruby with GPLv3 software
> * you can port Ruby's code into BSDL code  
> 
> == Demerit
> 
> nothing: because people can everything with change the name or quotation clause.

May I ask why you did not completely drop the Ruby licence, and only use
BSD ? Since the BSD is the more permissive of the two, everybody not
following the Ruby license can instead follow the BSD license anyway.
And it would make the whole licensing situation much simpler.

> It was discussed in [ruby-dev:39167], [ruby-core:25272] and so on.
> Initial decision was made on RubyKaigi 2010 by Matz.
> http://redmine.ruby-lang.org/wiki/ruby/DevelopersM...

On a side note, this document says that Debian squeeze uses 1.9.1. That
is not true, we transitioned to 1.9.2 shortly before the 1.9.2 release,
though the packages are still named *ruby1.9.1 because we version them
with the ruby compatibility version, not the ruby version itself. (it
would be too complex to have a transition to change the naming now, as
it would require modifying all ruby library packages.)

Lucas
Posted by NARUSE, Yui (Guest)
on 2010-08-31 20:17
(Received via mailing list)
(2010/09/01 2:36), Lucas Nussbaum wrote:
>> * a modest person can't port Ruby's code into BSDL
>
> That's the 3-clause BSD license, not the 4-clause one, right?

2-clause.
I added it in [ruby-core:31972], sorry for confusing.

> BSD ? Since the BSD is the more permissive of the two, everybody not
> following the Ruby license can instead follow the BSD license anyway.
> And it would make the whole licensing situation much simpler.

Ruby's License permits users to include Ruby's code into their code
without any copyright notice of Ruby.
So "the BSD is the more permissive of the two" is wrong.

>> It was discussed in [ruby-dev:39167], [ruby-core:25272] and so on.
>> Initial decision was made on RubyKaigi 2010 by Matz.
>> http://redmine.ruby-lang.org/wiki/ruby/DevelopersM...
>
> On a side note, this document says that Debian squeeze uses 1.9.1. That
> is not true, we transitioned to 1.9.2 shortly before the 1.9.2 release,
> though the packages are still named *ruby1.9.1 because we version them
> with the ruby compatibility version, not the ruby version itself. (it
> would be too complex to have a transition to change the naming now, as
> it would require modifying all ruby library packages.)

I added your comment, thanks.
Posted by Lucas Nussbaum (Guest)
on 2010-09-01 10:12
(Received via mailing list)
On 01/09/10 at 03:13 +0900, NARUSE, Yui wrote:
> >>* it is not compatible with GPLv3
> >>new: BSDL + Ruby's
> >>
> without any copyright notice of Ruby.
> So "the BSD is the more permissive of the two" is wrong.

I don't find this in the Ruby license. I read:
verbatim redistribution -> keep copyright notices
redistribution after modification -> doesn't say anything about
  copyright notices

Also, in general, I have the impression that the Ruby license is not
very well written. For example, the permission to redistribute modified
versions in never explicitely granted (it is implicitely granted by
2.b).
I would recommend not rushing that decision: licensing changes are
painful decisions, and it would be much better if in the end, the Ruby
licensing situation was clarified. I would personally prefer a switch to
either GPL V2+, or BSD, without any dual licensing clause.

Some organizations could provide legal counsel on this, like the
Software Freedom Law Center.

- Lucas
Posted by NARUSE, Yui (Guest)
on 2010-09-01 16:19
(Received via mailing list)
(2010/09/01 17:02), Lucas Nussbaum wrote:
> On 01/09/10 at 03:13 +0900, NARUSE, Yui wrote:
>> Ruby's License permits users to include Ruby's code into their code
>> without any copyright notice of Ruby.
>> So "the BSD is the more permissive of the two" is wrong.
>
> I don't find this in the Ruby license. I read:
> verbatim redistribution ->  keep copyright notices
> redistribution after modification ->  doesn't say anything about
>    copyright notices

It is 4.:
   4. You may modify and include the part of the software into any other
      software (possibly commercial).  But some files in the 
distribution
      are not written by the author, so that they are not under these 
terms.

      For the list of those files and their copying conditions, see the
      file LEGAL.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/...

Once the code is included by other code, and it is free from Ruby's 
License.

> Also, in general, I have the impression that the Ruby license is not
> very well written. For example, the permission to redistribute modified
> versions in never explicitely granted (it is implicitely granted by
> 2.b).

No, the main clause for the permission to redistribute modified versions 
is
allowed by 2.a).

> I would recommend not rushing that decision: licensing changes are
> painful decisions, and it would be much better if in the end, the Ruby
> licensing situation was clarified. I would personally prefer a switch to
> either GPL V2+, or BSD, without any dual licensing clause.

This is long term problem; Matz said "Ruby's License is not good for new
software" in his diary at 2003-06-07.
http://www.rubyist.net/~matz/20030607.html#p06

And we are facing real problem from the time GPLv3 published.
This effects distributors for both Ruby and Readline6.
So we should resolve it in near future.

Changing Ruby's License from dual with GPLv2 to dual with BSDL is
considered no side effect because of looseness of Ruby's License.
So it must be a reasonable solution.

Yes, your proposal: change to BSDL single license is good point.
But it has some side effect:
* lost non-standard name clause 2.c) and 3.c)
* lost "arrangements with the author" clause 2.d) and 3.d)
* lost 4.
If someone uses those clause, they can't update the code from Ruby.
So such change needs more care.
But we are not interesting about having any exclusive rights;
we don't need such restriction.
Posted by Lucas Nussbaum (Guest)
on 2010-09-01 16:42
(Received via mailing list)
On 01/09/10 at 23:18 +0900, NARUSE, Yui wrote:
> Yes, your proposal: change to BSDL single license is good point.
> But it has some side effect:
> * lost non-standard name clause 2.c) and 3.c)

Those are additional restrictions. They are actually void, because the
modifier or the redistributor could just choice to place its work under
BSL.

> * lost "arrangements with the author" clause 2.d) and 3.d)

Same here: I could modify Ruby and place my modifications or my
redistribution under BSD without doing any of 2.a, 2.b, 2.c, 2.d.

> * lost 4.

This is already permitted by the BSD license anyway.

> If someone uses those clause, they can't update the code from Ruby.
> So such change needs more care.

So, to summarize, there are two cases:
- clauses where the Ruby license adds additional restrictions, compared
  to BSD (example: 2.* 3.*):
  Then it is possible to circumvent those restrictions by using BSD
  only.
- clauses where the BSD license adds additional restrictions, compared
  to Ruby's:
  the only clause in that case is the fact that you must retain the
  copyright notices. That doesn't sound serious enough to warrant dual
  licensing. And if that's really a problem, you could actually remove
  that clause from the BSD license.

- Lucas
Posted by NARUSE, Yui (Guest)
on 2010-09-01 19:49
(Received via mailing list)
(2010/09/01 23:41), Lucas Nussbaum wrote:
> On 01/09/10 at 23:18 +0900, NARUSE, Yui wrote:
>> Yes, your proposal: change to BSDL single license is good point.
>> But it has some side effect:
>> * lost non-standard name clause 2.c) and 3.c)
>
> Those are additional restrictions. They are actually void, because the
> modifier or the redistributor could just choice to place its work under
> BSL.

Distributor A can modify Ruby's code and distribute under the name
other than Ruby.
Distributor B, who get the code from distributor A, can distribute
under the name of Ruby.

So this is not additional restrictions.
(this clause is more ambiguous on the license in Japanese)

>> * lost "arrangements with the author" clause 2.d) and 3.d)
>
> Same here: I could modify Ruby and place my modifications or my
> redistribution under BSD without doing any of 2.a, 2.b, 2.c, 2.d.

No. By this clause, Matz can change the license only by his thought.

>> * lost 4.
>
> This is already permitted by the BSD license anyway.

4. doesn't need keep copyright notices.

>> If someone uses those clause, they can't update the code from Ruby.
>> So such change needs more care.
>
> So, to summarize, there are two cases:
> - clauses where the Ruby license adds additional restrictions, compared
>    to BSD (example: 2.* 3.*):
>    Then it is possible to circumvent those restrictions by using BSD
>    only.

As I wrote above, it cannot.

> - clauses where the BSD license adds additional restrictions, compared
>    to Ruby's:
>    the only clause in that case is the fact that you must retain the
>    copyright notices. That doesn't sound serious enough to warrant dual
>    licensing. And if that's really a problem, you could actually remove
>    that clause from the BSD license.

I think removed one is not a major BSDL.
I don't think that it is better than Ruby's;
Ruby's is 100% compatible with Ruby's.
Posted by Joshua Ballanco (jballanc)
on 2010-09-01 21:25
(Received via mailing list)
On Aug 31, 2010, at 9:50 AM, NARUSE, Yui wrote:

> * ISC License is more simple
> So I think ISC License is better

Might I also humbly suggest considering the Apache 2 license. The Apache 
2 license is fully compatible with GPLv3, and similar to the BSD 
License, but it contains an extra clause covering patent indemnification 
(see #3 here: http://www.apache.org/licenses/LICENSE-2.0.html).

- Josh
Posted by Urabe Shyouhei (Guest)
on 2010-09-02 01:00
Attachment: signature.asc (899 Bytes)
(Received via mailing list)
(2010/09/02 4:23), Joshua Ballanco wrote:
> Might I also humbly suggest considering the Apache 2 license. The Apache 2 license is fully compatible with GPLv3, and similar to the BSD License, but it contains an extra clause covering patent indemnification (see #3 here: http://www.apache.org/licenses/LICENSE-2.0.html).

Do you have any practical list of patents or patent holders that exist 
today
on our distribution?  I don't.  It seems useless to me.
Posted by NARUSE, Yui (Guest)
on 2010-09-02 02:22
(Received via mailing list)
2010/9/2 Joshua Ballanco <jballanc@gmail.com>:
>> * ISC License is made by Internet Systems Consortium,
>>  and used by BIND and OpenBSD, which seems strict people
>> * ISC License is more simple
>> So I think ISC License is better
>
> Might I also humbly suggest considering the Apache 2 license. The Apache 2 license is fully compatible with GPLv3, and similar to the BSD License, but it contains an extra clause covering patent indemnification (see #3 here: http://www.apache.org/licenses/LICENSE-2.0.html).

The Apache License, Version 2.0 is not compatible with GPLv2, and more
strict than BSDL.
Posted by Joshua Ballanco (jballanc)
on 2010-09-02 08:47
(Received via mailing list)
On Sep 1, 2010, at 3:59 PM, Urabe Shyouhei wrote:

> (2010/09/02 4:23), Joshua Ballanco wrote:
>> Might I also humbly suggest considering the Apache 2 license. The Apache 2 license is fully compatible with GPLv3, and similar to the BSD License, but it contains an extra clause covering patent indemnification (see #3 here: http://www.apache.org/licenses/LICENSE-2.0.html).
> 
> Do you have any practical list of patents or patent holders that exist today
> on our distribution?  I don't.  It seems useless to me.

I was thinking about the future, but again, just a suggestion. The 
incompatibility with GPLv2 essentially rules it out as Yui points out.
Posted by NARUSE, Yui (Guest)
on 2010-09-13 18:33
(Received via mailing list)
I wrote a concrete patch.

ISC License is discouraged by GNU, so this is 2-cluase BSDL.
http://www.gnu.org/licenses/license-list.html#ISC

diff --git a/BSDL b/BSDL
new file mode 100644
index 0000000..d63ffac
--- /dev/null
+++ b/BSDL
@@ -0,0 +1,24 @@
+
+  Copyright (C) 1993-2010 Yukihiro Matsumoto.
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+  1. Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in 
the
+     documentation and/or other materials provided with the 
distribution.
+
+  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
ARE
+  DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
FOR
+  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
CONSEQUENTIAL
+  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
GOODS
+  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+  IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
diff --git a/COPYING b/COPYING
index 9043404..a1f19ff 100644
--- a/COPYING
+++ b/COPYING
@@ -1,6 +1,6 @@
 Ruby is copyrighted free software by Yukihiro Matsumoto 
<matz@netlab.jp>.
-You can redistribute it and/or modify it under either the terms of the 
GPL
-version 2 (see the file GPL), or the conditions below:
+You can redistribute it and/or modify it under either the terms of the
+2-clause BSDL (see the file BSDL), or the conditions below:

   1. You may make and give away verbatim copies of the source form of 
the
      software without restriction, provided that you duplicate all of 
the
diff --git a/COPYING.ja b/COPYING.ja
index aa2a163..5b5b91c 100644
--- a/COPYING.ja
+++ b/COPYING.ja
<skipped; see [ruby-dev:42250]>
Posted by Yukihiro Matsumoto (Guest)
on 2010-09-14 06:01
(Received via mailing list)
Hi,

We've waited for several weeks, no one has shown objection to changing
license, besides Apache license suggestion, so now we can change the
license of Ruby.  Could you apply the patch?

              matz.

In message "Re: [ruby-core:32364] Re: Change Ruby's License to BSDL + 
Ruby's dual license"
    on Tue, 14 Sep 2010 01:33:31 +0900, "NARUSE, Yui" 
<naruse@airemix.jp> writes:

|I wrote a concrete patch.
|
|ISC License is discouraged by GNU, so this is 2-cluase BSDL.
|http://www.gnu.org/licenses/license-list.html#ISC
Posted by NARUSE, Yui (Guest)
on 2010-09-14 06:42
(Received via mailing list)
2010/9/14 Yukihiro Matsumoto <matz@ruby-lang.org>:
> Hi,
>
> We've waited for several weeks, no one has shown objection to changing
> license, besides Apache license suggestion, so now we can change the
> license of Ruby.  Could you apply the patch?

I'll wait a day for reviewing the patch and I'll commit it tomorrow.
Posted by NARUSE, Yui (Guest)
on 2010-09-14 08:26
(Received via mailing list)
knu pointed that "THE AUTHOR" of following line should be "THE AUTHOR
AND CONTRIBUTORS"
because FreeBSD's actual License does so.
+  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
http://svn.freebsd.org/viewvc/base/head/COPYRIGHT?...

So I'll change it.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.