Article: Know Your Rights [regarding Open Source Software]
Sep 15, 2000 — by Rick Lehrbaum — from the LinuxDevices Archive — viewsOne of the more confusing aspects of the open source phenomenon is the proliferation of different source code licensing schemes. If you are considering using software developed by others within your products, you'll probably want to have an intellectual property lawyer read the individual license agreements in detail and summarize your rights. However, this quick guide to the licensing terminology should be enough to get you started.
Proprietary Software
In the most traditional licensing model for commercial software, no customer is allowed to examine the source code for the product. The one exception to this is a customer willing to pay an additional, often exorbitant, source code license fee. But even if you do buy the source code for such a product, you cannot publish that code or otherwise cause it to fall into the possession of anyone outside the licensed group. And your rights to modify the source code may be restricted.
Shareware
With shareware, the traditional model is somewhat reversed. The software is distributed for free, and may even be passed on to others. Users of the shareware product are honor-bound to pay the developer's registration fee, whatever it may be. A variant on this licensing scheme, termed crippleware, will not function fully until the registration fee is paid. Freeware is shareware with no registration fee. The source code is typically not included with any of these.
Free Software
Free software, on the other hand, is all about access to the source code. The free software movement (www.fsf.org) is as much a political organization as anything else. Under the free software licensing model, it is your right to use the software, modify it, and redistribute it in any way you like. It's even okay for you to charge for your distribution. However, these broad rights are conditioned upon your commitment to provide similar access to your modifications and to never narrow the licensing rights as a condition of distribution.
Proponents of free software generally believe that all information, especially source code, has a right to be free. Therefore, they mean free software in the “free speech” sense, not as in “free lunch.” They advocate attachment of a copyleft, which says that “anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it.”
Public Domain Software
Public domain software is just as free as free software, but less restrictive. It can be used, modified, or redistributed in any way. However, you are free to make changes to the software and keep those changes proprietary. You can even choose to charge for the original code or a derivative, without providing access to the source code at all. In that way, anyone can make use of public domain software in any way, without consulting a lawyer beforehand.
Unless otherwise indicated, all of the source code published in ESP [Embedded Systems Programming] is placed into the public domain by its author(s). In other words, while copying the text of the article is a copyright infringement, using the source code in your work is perfectly legal.
GNU General Public License (GPL)
Since 1984, the goal of the GNU project has been to develop a complete UNIX environment that is licensed as free software. Although some of the code involved is public domain, the vast majority is licensed under GPL. GPL is a specific implementation of copyleft. This is analogous to copyright law, in which there is a general right that is implemented in various ways in different contracts and print and electronic publications.
GPL prohibits proprietary patents related to modifications of the software, prohibits royalties, and requires that the same terms be attached when redistributing the software or a derivative of it. Of course, anyone can create software and then license it under these same terms. Use of the GPL language is not restricted to GNU-related projects. (Their copyleft is not copyrighted.)
The popular GNU compiler and associated tools are licensed under GPL. This means that anyone making a new and improved GNU compiler must give their new source code back to the community. However, it is important to note that this does not mean that software built with the compiler must also become free. It is legal to use a free software tool to produce proprietary software.
GNU Lesser General Public License (LGPL)
The LGPL is used to license free software so that it can be incorporated into both free software and proprietary software. In other words, it is a weaker sibling of GPL. The rules are basically the same, with one major exception: the requirement that you open up the source code to your own extensions to the software is removed. So while LGPL components remain free software, they can be included within a larger proprietary software package.
The real downside of the GPL, particularly for embedded developers, is that it's designed to discourage the creation of proprietary software and to encourage free software. If you wanted to build your firmware around a GPL package or library, you'd be forced to give away the source code to your firmware. But this is not a problem with an LGPL package, like the GNU C library, which can be legally included as part of proprietary software.
Open Source
Unfortunately, this is where things get confusing. Although we've framed our debate with those words, there is no clear definition for “open source software” and no standard license. Many companies are using the term open source these days, but in far different ways. And while the idea is similar to that of free software (you can generally still use, modify, and redistribute the software), there is far less emphasis on the right of the source code to be free. While not as true with respect to Linux, many open source companies seem to be unwilling to give up central control of their software. (Free software has no owner.)
What's important about open source software, particularly for embedded developers, is that its licensing terms are more like LGPL than GPL. In other words, you are typically free to add your own proprietary software to the open source code and produce a proprietary result. The free software movement doesn't much like this, but is otherwise more in alignment with the newer open source movement than in opposition to it.
Community Source
Sun Microsystems' community source licensing program was launched to give Sun and its customers the simultaneous advantages of both free and proprietary software. Users of the software have full access to Sun's source code and can do their research and development work before paying licensing fees. They can even modify the code for any purpose. However, users are asked to register at the time of code download and are ultimately required to negotiate licensing terms with Sun prior to launching any commercial product based on that code.
Sun felt this licensing model was a better alternative than making its formerly proprietary software into free software. By keeping licensing fees in the equation, Sun hopes to reap some benefits from all this giving away of its most valuable code. (To date they have made the source code for Solaris, StarOffice, and many Java technologies available on their Web site.) By retaining their role as a central authority on the software and a provider of compatibility testing, they hope to reduce chaos and source code fragmentation in the market.
This guest column, by Michael Barr of Embedded Systems Programming, is Copyright © 2000 by CMP Media, Inc. and has been reproduced here with permission. It originally appeared as part of a “point/counterpoint” article series on open source software (available online, here).
Do you have questions or comments on this article? talkback here
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.