Google Mail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Message from discussion What is free software?
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Follow-up To:
Add Cc | Add Follow-up to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers that you hear
 
Mark Kent  
View profile   Translate to Translated (View Original)
 More options 7 Aug 2007, 17:09
Newsgroups: comp.os.linux.advocacy
From: Mark Kent <mark.k...@demon.co.uk>
Date: Tue, 7 Aug 2007 17:09:19 +0100
Local: Tues 7 Aug 2007 17:09
Subject: What is free software?
There has been a long-running debate on GPLv3 in this group, one which
has recently re-surfaced with the subject of binary-only drivers as the
centre-point.

It was clear to me from much of that discussion that there is very
little understand of what the "freedom" part of free software is all
about, and even less understanding of quite why it is so important.

In order to address this, I've created this posting, which includes some
components of the FSF's own pages, and some commentary of my own.

So, let's start with the bit about where it's defined.  Why?  Because a
recent poster indicated that the use of binary-only drivers is just a
slight compromise of intent, whereas, in reality, it compromises 3 out
of 4 of the intended freedoms of free software.  So, a peak at the FSF's
own definition is in order:

        The Free Software Definition

        We maintain this free software definition to show clearly what
        must be true about a particular software programme for it to be
        considered free software.

        Free software is a matter of liberty, not price. To understand
        the concept, you should think of free as in free speech, not as
        in free beer.

So, we are mostly concerned with liberty, and not price.  A binary,
proprietary, driver, might be free of charge, but it is not free in
other key respects, those respects are listed here:

        Free software is a matter of the users' freedom to run,
        copy, distribute, study, change and improve the software. More
        precisely, it refers to four kinds of freedom, for the users of
        the software:

        The freedom to run the programme, for any purpose (freedom 0).

        The freedom to study how the programme works, and adapt it to your
        needs (freedom 1). Access to the source code is a precondition
        for this.

        The freedom to redistribute copies so you can help your neighbour
        (freedom 2).

        The freedom to improve the programme, and release your
        improvements to the public, so that the whole community benefits
        (freedom 3). Access to the source code is a precondition for this.

So, if we have all of these, is it free?  Yes:

        A programme is free software if users have all of these
        freedoms. Thus, you should be free to redistribute copies, either
        with or without modifications, either gratis or charging a fee
        for distribution, to anyone anywhere. Being free to do these
        things means (among other things) that you do not have to ask
        or pay for permission.

But, if we are charged for it, is it /still/ free?  Well, yes it is, at
least, in the terms of the GPL and the freedoms enumerated above.  The
fact that a binary driver might be free of charge does not mean that it
meets the definition of free software above.  You might argue that this
doesn't matter, however, this is not the case.  Why?  Because of
lock-in;  if you have a binary-only blob, you are limited to the usage
which the supplier intended, and any other usages it can /accidentally/
perform.  Because, if you want to use it on a different platform, for
example, an nVidia binary driver on a PPC, then you need to be able to:

        You should also have the freedom to make modifications and use
        them privately in your own work or play, without even mentioning
        that they exist. If you do publish your changes, you should not be
        required to notify anyone in particular, or in any particular way.

Clearly, if the source-code is not available, even on the x86 version,
and you find one of the very many bugs in the nVidia driver (just look
up on the web to see just how many there are), then you are unable to
fix and patch the driver.  This is precisely the reason why
free-software drivers have, over time, come to massively outperform
their closed-source counterparts, because the problems and bugs can be
fixed.  Also, if you cannot get access to the source code, then you have
a problem here, too:

        The freedom to run the programme means the freedom for any kind of
        person or organisation to use it on any kind of computer system,
        for any kind of overall job and purpose, without being required
        to communicate about it with the developer or any other specific
        entity. In this freedom, it is the user's purpose that matters,
        not the developer's purpose; you as a user are free to run a
        programme for your purposes, and if you distribute it to someone
        else, she is then free to run it for her purposes, but you are
        not entitled to impose your purposes on her.

You cannot run the binary-only software in any situation except the few
which the supplier considered worthwhile.  It's been suggested in cola
that, for example, users of PPC machines are too few to be considered
worth worrying about, that we should only worry about the "majority" of
users, that freedom is something which is unimportant, that we should
compromise this area.  Well, if you cannot run software, then it fails
in its purpose completely.  If that means that you, the user, is unable
to user the hardware and software as you wish, then you have been
locked-out by the vendor.  This is not an acceptable situation, and
clearly breaks the intended freedom of free software.

Now, what happens if your friend has a similar machine to you, and you
want to help them do the same thing you're doing?  Here:

        The freedom to redistribute copies must include binary or
        executable forms of the programme, as well as source code, for
        both modified and unmodified versions. (Distributing programmes
        in runnable form is necessary for conveniently installable free
        operating systems.) It is ok if there is no way to produce a
        binary or executable form for a certain programme (since some
        languages don't support that feature), but you must have the
        freedom to redistribute such forms should you find or develop
        a way to make them.

Of course, with binary-only software, then you cannot help in this way.
In my own computing room, whilst I can have nVidia cards supported on
some combinations of x86 machine, I cannot take that same code and run
it on the PPC machine.  I'm not free to use my own computers as I see
fit.

        In order for the freedoms to make changes, and to publish improved
        versions, to be meaningful, you must have access to the source
        code of the programme. Therefore, accessibility of source code
        is a necessary condition for free software.

In case you missed it, I'll repeat the above point again:

"Therefore, accessibility of source code is a necessary condition for
free software".

So, to everyone who thinks that binary drivers are okay, I hope the
above has demonstrated precisely what the problems are with them;  to
everyone who thinks that binary drivers are just a slight shift in
position, I hope it's become clear that they drive a JCB through the
middle of the intention of free software.

--
| Mark Kent   --   mark at ellandroad dot demon dot co dot uk          |
| Cola faq:  http://www.faqs.org/faqs/linux/advocacy/faq-and-primer/   |
| Cola trolls:  http://colatrolls.blogspot.com/                        |
| My (new) blog:  http://www.thereisnomagic.org                        |


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google