OLPC:What we mean by free and open
What Do We Mean by Open: Software Freedom and OLPC
Author: Benjamin Mako Hill
The Laptop will bring children technology as means to freedom and empowerment. The success of the project in the face of overwhelming global diversity will only be possible by embracing openness and by providing the laptop's users and developers a profound level of freedom.
As the children grow and pursue new ideas, the software and the tools should be able to grow with them and provide a gateway to other technology.
To achieve these and other practical goals and to live up to the principles upon which we believe the success of our platform will be built, we insist that the software platform for the One Laptop Per Child project:
- Must include source code and allow modification so that our developers, the governments that are our customers, and the children who use the laptop can look under the hood to change the software to fit an inconceivable and inconceivably diverse set of needs. Our software must also provide a self-hosting development platform.
- Must allow distribution of modified copies of software under the same license so that the freedoms that our developers depend upon for success remain available to the users and developers who define the next generation of the software. Our users and customers must be able to localize software into their language, fix the software to remove bugs, and repurpose the software to fit their needs.
- Must allow redistribution without permission -- either alone or as part of an aggregate distribution -- because we can not know and should not control how the tools we create will be re-purposed in the future. Our children outgrow our platform, and our software should be able to grow with them.
- Must not require royalty payments or any other fee for redistribution or modification for obvious reasons of economy and pragmatism in the context of our project.
- Must not discriminate against persons, groups or against fields of endeavor. Our software's power will come through its ability to grow and change with the children and in a variety of contexts.
- Must not place restrictions on other software that may be distributed along side it. Software licenses must not bar either proprietary, or "copyleft" software from being distributed on the platform. A world of great software will be used to make this project succeed – both open and closed. We need to be able to choose from all of it.
- Must allow these rights to be passed on along with the software. This means that we must not provide a license specific to the $100 Laptop project or organization or its customers. While we are the developers of this platform today, the users of this platform are the developers of tomorrow and it is through them that the platform will succeed, be transformed, and be passed on. They need the same rights as we do.
- Must not be otherwise encumbered by software patents which restrict modification or use in the ways described above. All patents practiced by software should be sublicenseable and allow our users to make use or sell derivative versions that practice the patent in question.
- Must support and promote open and patent unencumbered data interchange and file formats.
- Must be able to be built using unencumbered tools (e.g., compilers)
The XO software currently does not meet all these goals. For example, it is not by any means self-hosted. Nobody has ever used an XO to rebuild the software for an XO, though it is possible in theory. Also, the software comes with locks that would be hard to bypass if the OLPC organization ever went away (or changed its mind about software freedom). These locks prevent users from installing whatever software they like on their hardware.