Wednesday, December 30, 2009

Defining Free





Defining class=docemphasis1>Free



style='width:90.0%'>




lang=EN-GB style='font-size:16.5pt;font-family:Arial'>Difficult-o-Meter: 1
(monkeys can do it)


Covers:


style='width:90.0%'>















Free software



http://www.gnu.org/philosophy/free-sw.html



GPL



style='color:#003399'>http://www.gnu.org/copyleft/gpl.html



LGPL



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






style='font-size:13.0pt;font-family:Arial'>Freestyle='font-size:13.0pt;font-family:Arial'> Means Different Things to Different
People



The most immediately noticable thing about
"Free Software" is that it is "free" in the cost sense. You
don't have to pay anything to anybody to get Linux and/or any of the software
mentioned in this book. Free can certainly mean
"gratis."



The more subtle and easy-to-overlook thing
about "Free Software" is that it is "free" in the liberated
sense. You can use the code from one program in a program of your own devising.
Free can certainly mean "liberated."



style='font-size:13.0pt;font-family:Arial'>Freestyle='font-size:13.0pt;font-family:Arial'> Means Different Things in Different
Licenses



These different meanings of class=docemphasis1>free are given form in the licenses under which Free
Software is distributed. Only software declared to be in the public domain is
"up for grabs." All other software is distributed under one or
another of the "free" licenses out there.



So why license free software? Just because
you don't care if you get paid for the use of software you write doesn't mean
that you don't care about how it may ultimately be used. For this reason, you
use the ownership rights given you implicitly by law by the act of authorship
to specify limits (or specify the lack of limits) on what a user of your work
may do with the work.



The IANAL Declaration


IANAL means "I am not a lawyer." None
of the authors of this book are lawyers. Some of us watch class=docemphasis1>Law & Order
on TV, but that's about as close as
we get. Do not take the following capsule summaries of various licenses as
legal advice. Don't even take them as accurate representations of the intent of
the licenses. Read each license yourself. If you want to use the code and you
are not sure what a license means, I suggest you seek legal advice.



All of that said, don't be too paranoid if
all you want to do is use the program yourself or give away copies. All of the
licenses we cover here give you at least those rights. If you plan to use the
source code in a program of your own, be more alert. This is where these
licenses differ wildly.



The GPL


GPL stands for GNU Public License. GNU stands
for "GNU's not Unix." GNU is a project launched by the founder of the
Free Software Foundation (FSF), one Richard M. Stallman, or RMS, as he is often
called. He believes that all software should be free. He does not mean that all
software should be gratis, but rather that all software should be
"liberated." The phrase Stallman uses is "Think free speech, not
free beer."



Stallman is often denounced as at best naive,
at worst communist. This arises from a misunderstanding of Stallman's
philosophy. To Stallman, the notion of "owning" an algorithm is as
bizzare as the notion of "owning" the Pythagorean theorem.
To
Stallman, you have bought the software. You should have the "parts."



Furthermore, you should have the full ability to build on the
work of others. You should be able to take that code and improve and extend it.
This is not, in Stallman's philosophy, stealing. The only way you could steal
from the author is if you took his open work, added it to your project, and
then distributed the result without the
original author's source or your extensions. That would be stealing.



The GPL reflects this philosophy. It grants the recipient all
rights to use the source code in any way except:



style='font-size:10.0pt;font-family:Symbol'>�        
You may not refuse to pass the same rights to the source code on
to any third party.



style='font-size:10.0pt;font-family:Symbol'>�        
If you compile or link any GPL'ed code to your code, you must
also provide your code under the same terms as the GPL.



It is this latter point that leads some people to condemn the
GPL as a "viral" license. Some critics of the GPL are bothered by the
fact that using GPL'ed code requires you to release your code under the GPL.



There is a very simple remedy to this, however: Don't use
GPL'ed code. The GPL is very hostile to closed or proprietary software. If you
believe that you will develop a new piece of software and it will be so special
that no one else will be able to reproduce it, and that keeping it secret is
the best way to make you as rich as, well, Bill Gates or Larry Ellison, then
get on with it and good luck! It is certainly within Stallman's rights (or
those of anyone else who chooses to use the GPL) to refuse you the right to use
any of his code on your path to proprietary riches.



The GPL protects not just the author's immediate interest of
keeping her code open, it also protects her broader interest, in that there is
an ever-growing body of free software out there to learn from and build from.



Now, this may not be your philosophy. That's fine. You don't
have to use the GPL. But people who have elected to use the GPL have decided
not to allow you to exploit their generosity by using their work to make you
rich. In this sense, the GPL is as conservative a license as you are ever
likely to find.style='color:#003399'>[*]



[*] Note that these terms
of the GPL come into play only when you want to distribute software. If you are
developing code for yourself or for a client to use privately, it is not an
issue. There is nothing wrong with refusing to share the source code if you
also refuse to share the binary code!



The
LGPL


Of course, this idealism is all well and good. But in a world
where you want people to use your software, including people who may wish to
write closed and proprietary software, you may find that your philosophy class=docemphasis1>prevents this from happening. The GNU C compiler
(gcc) faced this very barrier. In many cases, gcc offered a better compiler
than any offered by the actual vendor of a *nix-type operating system. Many
people didn't want to use it, however, because they didn't want to have to open
their applications just because they linked with the gcc C library.



Stallman and the FSF caved in to some of this pressure and
created the LGPL (variously called the Lesser GPL or Library GPL). This license
permitted you to link with an LGPL'ed library without its forcing you to
release your own source code. The logic was that a library is a complete thing in
itself. The mere act of linking an application to use the library was not
really extending the library code.



Stallman has since come out publicly against using the LGPL.
Still, many products are released under the LGPL.



The
BSD Licenses


The Berkeley Software Distribution (BSD) licenses are the
other major class of "open source" license. Although I'm making the
following number up, I would say roughly 80% of all "open source"
code is released under either the GPL or the BSD license.



The BSD license differs from the GPL primarily in that it does
allow you to modify the code and then keep the modifications closed. In other
words, you cannot take away the rights to the original code, but you can modify
that code and then not share the results. For critics of the GPL, this is the
perfect solution.



For fans of the GPL (and by now it should be clear I am such a
fan�objectivity is a myth), this denies the original author a fundamental
right�namely, the right to control how the code is used. Nonetheless, many
major free software products have been released under the BSD license. And
while this has led to closed commercial variants of some products, it certainly
hasn't been a death knell to free software. Both licenses give you full-use
rights to the released version.



The
Artistic License


The major package released under the Artistic License is Perl.
This license is practically a public domain license, except it does try to
prevent you from calling your derived closed version the same thing as the
original open version.



Public
Domain


This allows anyone to do anything he or she wishes with the
code.



Other
Licenses


There are a host of licenses out there. For a lengthy list and
critique (from the possibly biased creators of the GPL), visit style='color:#003399'>http://www.gnu.org/philosophy/license-list.html.



The
Great Schism



As with any field, leaders tend to become iconoclasts. Some
are born iconoclasts. Some have iconoclasism thrust upon 'em. There is a single
major split in the philosophies of free software. (Note the lowercase letters:
When we use lowercase, we mean software that is free and for which you get the
source code.) The split is between Richard Stallman and his "Free
Software" philosophy and Eric Raymond and Bruce Perens with their
"Open Source" philosophy.



Richard
Stallman


We have already talked about RMS, the father
of the GPL and the first to codify a philosophy of "liberated"
software. People had shared source code in the past; he certainly did not invent
that. What he did was to articulate what it means for software to be
"Free." It boils down to the two main thrusts of the GPL. First, you
have the right to get all the source code with any software, whether it is
"gratis" or not. Giving someone binary code only is like giving them
an encrypted book or a car with a hood that is welded shut. The other thrust is
that if you use code shared in this way, you do not have the right to hide your
source code additions. Part of the price you pay for the labor of the original
programmer is that everyone else shall benefit from your code. If you don't
want to pay that price, fine. But then you don't get to use the original
author's code.



Eric Raymond and Bruce Perens


Bruce Perens created the original Open Source
Definition (OSD) as the Debian Free Software Guidelines (DFSG). Debian is a
Linux distribution that consists entirely of software that meets these
guidelines. Some Linux distributions include closed, commerical, or marginally
open software. Debian never has and never will.



Eric S. Raymond wrote a number of seminal
papers on the phenomenon of what he and Bruce call open
source development
but what I think may be more generally called class=docemphasis1>Internet-distributed software development.
Eric tends
to come to fairly far-reaching conclusions from a limited number of data
points, but it doesn't change the fact that The
Cathedral and the Bazaar
has become what may be the single most
influential essay on the whole phenomenon of free software.



Bruce and Eric maintain a Web site, opensource.org, where they push the notion
of Open Source and downplay the term class=docemphasis1>Free Software.



They also created an "Open Source
Certification and Mark" program that would assure a consumer that a
product's license met their Open Source Definition.



They argue that the term class=docemphasis1>Free Software is scary to business and hard to sell.



What's a Pagan Boy to Do?



The truth is that this is largely a tempest
in a teapot. The DFSG is used to decide what software may be included in
Debian, and it remains one of the most robust Linux distributions around. Stallman
continues to call it "Free Software," and ESR (as Eric Raymond is
often called) continues to call it "Open Source."



The GPL meets the DFSG and the OSD. The
reverse would not necessarily be true. Eric's and Bruce's points about the
marketing of the ideas are well taken, and there is no doubt that Eric and
Bruce have been instrumental in pushing many of these ideas into the corporate
arena at a much faster pace than they would have been taken up on their own.



In this book we will call the products
"free software," and we will capitalize it when we talk about GPL'ed
software. This is not to join the ranks of iconoclasts, but rather to honor
RMS, who really made all of this happen. ESR and Bruce Perens have been staunch
and successful advocates, but there would have been nothing for them to
advocate without Stallman and the FSF.



 





No comments: