Users should be able to run their own code on their own machines
Posted Feb 10, 2006 7:15 UTC (Fri) by xoddam
In reply to: Open Source's New Frontiers (Business Week)
Parent article: Open Source's New Frontiers (Business Week)
> The question of whether there's a moral contract that devices
> using free software should allow replacing the software is open
> to debate. It was not claimed as a right until relatively recently.
You're correct that the argument wasn't *phrased* this way originally.
But free software has always been about the freedom of *users*. Here is
the FSF's definition of free software:
Freedom 0. The freedom to run the program, for any purpose.
Freedom 1. The freedom to study how the program works, and adapt it to
your needs. Access to the source code is a precondition for this.
Freedom 2. The freedom to redistribute copies so you can help your
Freedom 3. The freedom to improve the program, and release your
improvements to the public, so that the whole community benefits. Access
to the source code is a precondition for this.
Look closely at Freedom 1 in this context. If the software is designed
to run on a particular device, but the device will only permit a single
version of the software to run on it, then the software cannot be
considered free. The reason, as articulated clearly and freshly in the
draft GPL v3, is that 'source code' is useless if you can't make *your*
device run *your* code. If you can't run your modified version, you
don't have freedoms 1 and 3.
> The previously requested requirement was that code changes
> be given back.
This has never been part of the definition of free software, it's only a
feature of copyleft licences. BSD-licenced source code doesn't have this
requirement and is still considered free. BSD-licenced software
distributed without source is non-free, and so is any software built for
a TPM-controlled computer when it comes without the key to run your own
version on your own machine.
> That allows you (or another device maker) to use those code
> changes/enhancements on a new device or a different device.
> That seems like a reasonable trade.
No, it's not a reasonable trade because it doesn't grant freedom to the
*user*, only to competitors who have the wherewithal to produce their own
hardware (or acquire a 'mod chip', which is effectively the same thing
and violates bad laws like the DMCA). If the end user doesn't have all
four freedoms, the software isn't free.
The only reason this hasn't been articulated before is that it hasn't
been a problem. At the time the GPLv2 was written, embedded devices
tended not to be reprogrammable at all (I remember RMS made a comment
about ROMs effectively being hardware), and generally didn't run
copylefted software. Software freedom only made sense for people who
were already using fully-user-programmable machines, and were restricted
in their use of existing software only by copyright licences and
contracts like EULAs and NDAs.
But now there are numerous systems 'out there' and many more in the
pipeline which are fully programmable and fully capable of running free
operating systems (some even run particular versions of Linux) but their
users are locked out of genuine software freedom (freedoms 1 and 3) by
TPM and similar schemes. The FSF perceives this as a problem and the
draft GPLv3 addresses it well.
to post comments)