MIT vs. Ruby/GPL License

Rails uses the MIT license. The Ruby license is essentially the GPL
(it’s a dual license).

So what are the basic differences between the two and why would you
pick one over the other?

Thanks,
T.

On Sunday 14 October 2007 09:31 am, Trans wrote:

Rails uses the MIT license. The Ruby license is essentially the GPL
(it’s a dual license).

So what are the basic differences between the two and why would you
pick one over the other?

Interesting question, and one I’m tempted to answer even though others
are
certainly better quailified. (I.e., IANAE(xpert)) I guess I’ll
consider this
a learning exercise, to see how much I do know.

(Aside: I’m curious: I’m a little surprised you haven’t come across and
come
to some resolution on the issues involved–do you program primarily in
Windows as opposed to Linux?)

I have trouble remembering things, I remember less about the MIT license
than
the GPL license, and know (if I can remember) most about the GPL version
2.

First of all both the MIT and GPL licenses are in some sense “free”.

The meaning of free in this context is freedom as opposed to free beer.

Richard Stallman, the guy who, at least in some sense, started the drive
towards a free operating system, originated and advocates the GPL
license.
He lists four freedoms that could be associated with software–can I
remember
them to recite them or must I look them up?

Hmm, I guess I’ll refer you to the following page which contains the
GNU’s
“Free Software Definition” (gnu is (one of?) the organizations founded
by
Richard Stallman, the other being the FSF (or are they the same
organization–I guess I don’t really know)):

When you read over that page, pay particular attention to
“copyleft”–the
primary difference between the GPL and other free (??) licenses (like
the MIT
license) is the copyleft part–the GPL requires copyleft, many others
(MIT,
BSD, … do not). (Richard Stallman considers free licenses without
copyleft
to be non-free.)

I anticipate releasing any software I write under the GPL license.

There are other choices like dual licenses and, hmm, I forget what they
call
them, but like what Ghostscript and some others do–(iirc) they
initially
release their software (i.e., current versions) under a license other
than
the GPL, and then after some period of time (or at the release of the
next
version) they release the older version under the GPL.

Aside: If you get into dual licenses, take any recent writings on the
subject
by Theo de Raadt (the OpenBSD founder) with a grain of salt–in a fairly
recent dispute, he made the claim that dual licenses required that the
terms
of both licenses be applicable, whereas most dual licenses are specified
with
an “or” (you can license it this way or that way–of course a dual
license
could be written with an “and”–I’m not sure that would be useful in any
way).

BTW, other issues to consider are which software can be intermixed in
some way
even though they use different licenses.

Another way of looking at it the general subject is this:

With a license like the MIT (and BSD, and …) you give away your
software
(almost) unconditionally, anybody can take your software and use it for
any
purpose without returning anything to you (they can make a proprietary
package from it, make a fortune, and not share anything with you).

With a license like the GPL, your software gift is conditional–the
receiver
of the gift must (to use a phrase that I haven’t heard in this context
before) “pay it forward”. In other words, they must keep the gift
available
including any improvements they may make.

You can make money with either type of license, but it is ususally by
means of
a service model than a use model. To clarify, a way of making money
with
free software is selling support for it, as opposed to selling a license
for
its use.

Note that the GPL does allow you to charge for the software, but anyone
who
buys your software can re-distribute it at a lower price, down to zero
(or
negative numbers??).

There is also a (potential) different issue (??) related to selling the
source
code–the intent (and words), iirc, is that you can only recoup your
(copying) costs (or a reasonable fee–I forget what it says) for the
source
code.

At most, this is just a start. Do some reading and ask some questions.

regards,
Randy K.

Trans wrote:

Rails uses the MIT license. The Ruby license is essentially the GPL
(it’s a dual license).

So what are the basic differences between the two and why would you
pick one over the other?

Thanks,
T.

T.,

I normally enjoy your posts, and I do hate to be negative, but it feels
like ruby-talk has been plagued with a lot of
200-followup-barely-on-topic threads lately, and your post could easily
be (given this strong opinions that people can form about FOSS
licensing) the start of yet another.

Would it be too much to ask for you to go off and read some of the
commentary on these licenses that can be found on the web, form some
conclusions, and then, if necessary (and I don’t think it will be)
follow up with “I’ve read this material and this is what I think and
here are some RUBY-SPECIFIC questions I have or conclusions I’ve come to
that I’d like to share?”

You can start your research with the text of the licenses. MIT is here:
The MIT License – Open Source Initiative. GPL here:
http://www.gnu.org. I notice several books are available on Amazon,
including Understanding_Open_Source_and_Free_Software_Licensing.

To the list, I apologize. I try to keep my posts positive, contributory,
and on-topic. I recognize that this one is simply cranky.

On Oct 14, 8:29 am, Randy K. [email protected] wrote:

a learning exercise, to see how much I do know.

(Aside: I’m curious: I’m a little surprised you haven’t come across and come
to some resolution on the issues involved–do you program primarily in
Windows as opposed to Linux?)

Me too :wink:

I’ve been using the Ruby license. But everything I’ve done until now
has been purely open. That’s about to change though, so the question
becomes a more important one.

them to recite them or must I look them up?
license) is the copyleft part–the GPL requires copyleft, many others (MIT,

Another way of looking at it the general subject is this:

With a license like the MIT (and BSD, and …) you give away your software
(almost) unconditionally, anybody can take your software and use it for any
purpose without returning anything to you (they can make a proprietary
package from it, make a fortune, and not share anything with you).

So MIT is more akin to BSD --less restrictive.

Note that the GPL does allow you to charge for the software, but anyone who
buys your software can re-distribute it at a lower price, down to zero (or
negative numbers??).

There is also a (potential) different issue (??) related to selling the source
code–the intent (and words), iirc, is that you can only recoup your
(copying) costs (or a reasonable fee–I forget what it says) for the source
code.

At most, this is just a start. Do some reading and ask some questions.

Very helpful thank you. For the moment I will hone in on one question:

If a gem is released under GPL and your app depends on it, does that
mean your source must also be freely available in a way compatible to
the GPL? If not, then what about if you drop the same library into
your vendor/ directory and redistribute it along with your app?

Thanks,
T.

MIT license does have one restriction:

QTE
The above copyright notice and this permission notice shall be included
in
all copies or substantial portions of the Software.
UNQTE

Which in practice means that you should remember adding a copyright
statement at the top of the LICENSE file.

On Sunday 14 October 2007 12:17 pm, Trans wrote:

On Oct 14, 8:29 am, Randy K. [email protected] wrote:

On Sunday 14 October 2007 09:31 am, Trans wrote:
I’ve been using the Ruby license. But everything I’ve done until now
has been purely open. That’s about to change though, so the question
becomes a more important one.

Thanks!

I should point out that after I pressed send, I read the page that I
referred you to (and some pages linked from that page) a little more
carefully (they seem to be pages I hadn’t seen before–I guess it’s been
fairly a long time since I dug into this stuff), and realize that some
of my
previous statements were not accurate.

The first being that Richard Stallman does consider some licenses
without
copyleft to be free. If I recognize others as I reread what I wrote,
I’ll
try to point them out.

So MIT is more akin to BSD --less restrictive.

That is my belief, but I should admit that I haven’t had much exposure
to the
MIT license.

At most, this is just a start. Do some reading and ask some questions.

Very helpful thank you. For the moment I will hone in on one question:

You’re welcome! (But after my further reading, I’m beginning to believe
I
should have let somebody else dip their foot in the water first. :wink:

If a gem is released under GPL and your app depends on it, does that
mean your source must also be freely available in a way compatible to
the GPL? If not, then what about if you drop the same library into
your vendor/ directory and redistribute it along with your app?

I don’t think I can give an instant (correct :wink: answer to that. I’d
suggest
you look for and read up on the LGPL–it was originally intended to
stand for
the Library GPL, but has since been changed to stand for the Lesser GPL,
but
its focus is on issues related to your concern.

Good luck!

Randy K.

On Oct 14, 10:00 am, “Terry P.” [email protected] wrote:

I don’t think the difference between MIT and GPL License has much purpose in
connection with Ruby :slight_smile:

Let’s go license free! Kind of like skinny dipping :wink:

As far as licenses go:

I generally find the ISC, MIT/X and BSD Style licenses (in that order) much
preferable to the GPL. Namely because it does not have much chance to get in
my way. I also don’t trust the Free Software Foundation and their GPL not to
screw me over at a later day (e.g. GPL 2 or above; e.t.c.)

Any one with questions about the GPL should check the FAQ

Frequently Asked Questions about the GNU Licenses - GNU Project - Free Software Foundation

That link helped --well almost. This is what it says on the subject:

What is the difference between "mere aggregation" and "combining two modules into one program"? Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.
Combining two modules means connecting them together so that they

form a single larger program. If either part is covered by the GPL,
the whole combination must also be released under the GPL–if you
can’t, or won’t, do that, you may not combine them.

What constitutes combining two parts into one program? This is a

legal question, which ultimately judges will decide. We believe that a
proper criterion depends both on the mechanism of communication (exec,
pipes, rpc, function calls within a shared address space, etc.) and
the semantics of the communication (what kinds of information are
interchanged).

If the modules are included in the same executable file, they are

definitely combined in one program. If modules are designed to run
linked together in a shared address space, that almost surely means
combining them into one program.

By contrast, pipes, sockets and command-line arguments are

communication mechanisms normally used between two separate programs.
So when they are used for communication, the modules normally are
separate programs. But if the semantics of the communication are
intimate enough, exchanging complex internal data structures, that too
could be a basis to consider the two parts as combined into a larger
program.

Kind of fuzzy.

T.

I don’t think the difference between MIT and GPL License has much
purpose in
connection with Ruby :slight_smile:

As far as licenses go:

I generally find the ISC, MIT/X and BSD Style licenses (in that order)
much
preferable to the GPL. Namely because it does not have much chance to
get in
my way. I also don’t trust the Free Software Foundation and their GPL
not to
screw me over at a later day (e.g. GPL 2 or above; e.t.c.)

Any one with questions about the GPL should check the FAQ

http://www.gnu.org/licenses/gpl-faq.html

and the actual text (yes it is boring)

http://www.gnu.org/copyleft/gpl.html

Older versions are probably available online.

Then compare it with the very short in comparason license texts of the
other
licenses. That will help any one a lot more the chatter on Ruby-Talk (no
offense meant to other subscribers).

Most stuff I write with any intention of leaving ~/code//src/ has a
topper in
it, some thing like this. Which is basically a template for the ISC
License
for any language that uses the # symbol for comments. I keep a
~/code/licenses/<license/ directory with templates like this for a
number of
licenses. And a version for different comment types, mostly /
*/, //,
and #
(C, C++, and Bourne style).

################################################################################

Copyright (c) 2007, My Name < My E-mail address>

################################################################################

Permission to use, copy, modify, and/or distribute this software for

any #

purpose with or without fee is hereby granted, provided that the above

copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL

WARRANTIES #

WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF

MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE

FOR #

ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES

WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN

ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT

OF #

OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

################################################################################

I also like the joke version of the BSD License on the uncyclopedia
although
I don’t actually use it in programs. I think the joking makes a good
point of
what a license should allow. I.e. Do what ever the hell you want with
it,
just remember who wrote it, and the author is not responsible for
damages.

http://uncyclopedia.org/wiki/BSD#License

TerryP.

Trans wrote:

The Ruby license says that you can use the the GPL, or you can use the
explicit terms of the Ruby license. Here’s the text of the Ruby license.

Ruby is copyrighted free software by Yukihiro M.
[email protected].
You can redistribute it and/or modify it under either the terms of the
GPL
(see COPYING.txt file), 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
    original copyright notices and associated disclaimers.

  2. You may modify your copy of the software in any way, provided that
    you do at least ONE of the following:

    a) place your modifications in the Public Domain or otherwise
    make them Freely Available, such as by posting said
    modifications to Usenet or an equivalent medium, or by allowing
    the author to include your modifications in the software.

    b) use the modified software only within your corporation or
    organization.

    c) rename any non-standard executables so the names do not
    conflict
    with standard executables, which must also be provided.

    d) make other distribution arrangements with the author.

  3. You may distribute the software in object code or executable
    form, provided that you do at least ONE of the following:

    a) distribute the executables and library files of the software,
    together with instructions (in the manual page or equivalent)
    on where to get the original distribution.

    b) accompany the distribution with the machine-readable source
    of
    the software.

    c) give non-standard executables non-standard names, with
    instructions on where to get the original software
    distribution.

    d) make other distribution arrangements with the author.

  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 this
    terms.

    They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and
    some
    files under the ./missing directory. See each file for the
    copying
    condition.

  5. The scripts and library files supplied as input to or produced as
    output from the software do not automatically fall under the
    copyright of the software, but belong to whomever generated them,
    and may be sold commercially, and may be aggregated with this
    software.

  6. THIS SOFTWARE IS PROVIDED “AS IS” AND WITHOUT ANY EXPRESS OR
    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    PURPOSE.

Trans wrote:

interchanged).
intimate enough, exchanging complex internal data structures, that too
could be a basis to consider the two parts as combined into a larger
program.

Kind of fuzzy.

T.

All this proves is that the distinction between the English language and
code is starting to erode, and when a programmer, like Richard M.
Stallman, dabbles in Law, it gets worse. :slight_smile:

On 10/14/07, M. Edward (Ed) Borasky [email protected] wrote:

The Ruby license says that you can use the the GPL, or you can use the
explicit terms of the Ruby license.

Except for some of the source files you cannot… because those are
GPL. See quotes below. Ruby license is a rather weird device that
shouldn’t be used for anything other than Ruby itself.

QTE LICENSE
But some files in the distribution are not written by the author, so
that they are not under this terms. They are gc.c(partly),
utils.c(partly), regex.[ch], st.[ch] and some files under the
./missing directory. See each file for the copying condition.
UNQTE LICENSE

QTE regex.c
you can redistribute it and/or modify it under the terms of the GNU
Library General Public License
UNQTE regex.c

Ok, this is relevant in that it is a big software issue, but let’s
just end this thread.
It will only become an argument, and often an un-civil one.
If you want to know more about the various licensing concepts, just
start in Wikipedia. There is plenty there to get you going.
It is a deeply contentious issue and extremely difficult to discuss
reasonably.
We will do good to Ruby-Talk by leaving this discussion for other
forums. Slashdot is a typical one.
If you have questions about the license of a particular gem or Ruby
itself, address their creators, they do put their e-mail addresses in
the licensing information in the software distribution.

On Mon, Oct 15, 2007 at 02:50:29AM +0900, Trans wrote:

Kind of fuzzy.

My understanding is that a gem distributed under the terms of the GPL
then causes the program in which you use it via a require statement to
be subject to the terms of the GPL as well. This is, for an interpreted
program such as one using the reference implementation of Ruby, roughly
equivalent to a statically linked library in a binary compiled program
written in C – where the GPL would certainly apply to the whole program
if the library were distributed under the terms of the GPL.

On the other hand, the source without the library could be distributed
under whatever other license you like. If it were distributed under a
license with which the GPL is not compatible, however, anyone who
received it would then not be able to compile it with the GPLed library
statically linked and subsequently distribute it, since the terms of the
GPL and those of the other license you used would be in direct legal
conflict with one another.

Moral of the story – don’t license your code under the CDDL if it
requires a GPLed library and you want people to be able to compile and
redistribute the software (such as via the software management system of
a Linux distribution or BSD Unix OS) legally. I won’t comment for the
moment on the wisdom of using the BSD license, the CDDL, or the GPL, in
and of themselves, because this is ruby-talk and flame wars are bad.

Disclaimer: I am not a lawyer. I just think about stuff like this a
lot.

From: “Randy K.” [email protected]

If a gem is released under GPL and your app depends on it, does that
mean your source must also be freely available in a way compatible to
the GPL? If not, then what about if you drop the same library into
your vendor/ directory and redistribute it along with your app?

I don’t think I can give an instant (correct :wink: answer to that. I’d suggest
you look for and read up on the LGPL–it was originally intended to stand for
the Library GPL, but has since been changed to stand for the Lesser GPL, but
its focus is on issues related to your concern.

Indeed. I’m writing a partly open source, partly closed source
application at the moment. Any library released under GPL is
off-limits to me (unless it is a library bundled with the operating
system.)

(Which is fine, if that’s really what the library author intended.)

Personally I’ll not release a library under the GPL, since I
prefer to impose the fewest restrictions on who can link with my
library.

Regards,

Bill

On Mon, Oct 15, 2007 at 01:06:38AM +0900, Tim H. wrote:

commentary on these licenses that can be found on the web, form some
To the list, I apologize. I try to keep my posts positive, contributory,
and on-topic. I recognize that this one is simply cranky.

I understand the intent behind your commentary, and don’t really see any
particular need to apologize. For my part, at least, there’s nothing to
forgive.

For T.:

If you want to discuss it with someone off-list, and think I may be
someone that can help, I’ll be happy to discuss the matter with you. I
have very specific opinions on the matter, but I’m also of the opinion
that everyone should be able to form his or her own opinions, so I’ll
try
to be as clear about the matter as possible complete with very distinct
separation between facts and opinions.

Chad P. wrote:

On Mon, Oct 15, 2007 at 02:50:29AM +0900, Trans wrote:

Kind of fuzzy.

My understanding is that a gem distributed under the terms of the GPL
then causes the program in which you use it via a require statement to
be subject to the terms of the GPL as well. This is, for an interpreted

Kind of fuzzy isn’t the half of it!

*It’s not that clear. * Ruby programs are typically not distributed as
compiled works, so each file is separate. You don’t distribute the
complete program, only the pieces that you wrote. The gem comes from
elsewhere. And the GPL doesn’t limit execution of programs, only
distribution. (Most of the commentary is written from the perspective
of C programmers, and doesn’t necessarily apply to Ruby programs.)

On Mon, Oct 15, 2007 at 06:47:19AM +0900, Charles D Hixson wrote:

Kind of fuzzy isn’t the half of it!

*It’s not that clear. * Ruby programs are typically not distributed as
compiled works, so each file is separate. You don’t distribute the
complete program, only the pieces that you wrote. The gem comes from
elsewhere. And the GPL doesn’t limit execution of programs, only
distribution. (Most of the commentary is written from the perspective
of C programmers, and doesn’t necessarily apply to Ruby programs.)

Yes, but . . . it’s entirely possible that someone might want to ship a
bundled application. In such a circumstance, you’re probably trying to
make things convenient for an end-user that shouldn’t have to know
anything about, say, ruby gems. An installer that sticks everything in
place really changes the face of things for you in such a circumstance.

M. Edward (Ed) Borasky wrote:

All this proves is that the distinction between the English language and
code is starting to erode, and when a programmer, like Richard M.
Stallman, dabbles in Law, it gets worse. :slight_smile:

Stallman is a coder? Didn’t know about that. What did he code?

On 14/10/2007, Trans [email protected] wrote:

on the other program.
the semantics of the communication (what kinds of information are
separate programs. But if the semantics of the communication are
intimate enough, exchanging complex internal data structures, that too
could be a basis to consider the two parts as combined into a larger
program.

Kind of fuzzy.

It is. You cannot decide that unless you go to court, and even then it
won’t be final.

Note however that there is LGPL for libraries that can be used in
non-GPL software so in general you should probably avoid GPL stuff
when non-free software is involved.

But even in ruby with its marshaling capability, drb, and whatnot you
get slight difference between single process and multiprocess
situation.
iirc it is not possible to restore objects for which the class is not
present so you are limited to basic types and objects from libraries
you can load in both processes.

Thanks

Michal

On Oct 14, 2007, at 18:58 , Daniel DeLorme wrote:

Stallman is a coder? Didn’t know about that. What did he code?

Emacs, gcc, gdb… GIYF.

Michael G.
grzm seespotcode net