Licenses Versus Contracts
What's the difference between a license and a contract? And why does it matter? Without getting too bogged down into legalese, there are some very critical differences between licenses and contracts, especially when we're framing the two concepts as related to software usage.
First, a license is just a grant of rights to do something. You can get a fishing license from the Department of Natural Resources, which gives you the right to go fishing someplace. You can get a marriage license from the state, which gives you the right to marry your fiancé(e). Or you can get a software license, which grants you the right to use the designated software. A license can have restrictions; a fishing license can limit the number of fish you can catch, just as a software license can limit the number of users you can have using that software.
A contract, on the other hand, is a binding agreement between two parties. There are a number of things that a contract must have in order to be legally binding. For example, a contract usually consists of the following items, and in many cases is required to include these items:
Acceptance of the offer
Promise to perform
Terms and conditions for performance
For example, suppose you're selling a car. You set a price (offer); a potential buyer may accept the price, or may make a counteroffer. When you agree on a price (acceptance), you have the makings of a contract. The agreement is that the two of you will exchange money (consideration) and the car in good working order. As long as the buyer pays, you have to deliver the car (promise to perform). You might also have agreed that the car is in good working order, or even that it is sold "as is," with no guarantee of working at all (a car sold for parts, for example). If you take the buyer's money, but don't give him the car, you have failed to perform, and are in breach of contract. Similarly, if he takes the car and his check bounces, he is in breach of contract.
So why all the hullabaloo over whether the agreement with your software vendor is a license or a contract? Because a license deals specifically with the grant of rights, not the actual transfer of rights. Under a contract, the software company would actually be transferring certain rights to you, and then those rights (such as the right to freely resell, copy, or distribute the software, and so on) would be yours. By simply granting you certain rights to use the software in a prescribed manner, the software manufacturer retains the copyright ownership of their software, and all of the power to control how the software is used that comes with owning the copyrights.
This distinction between a license and a contract is critical trying to determine how the GPL affects your ability to use software. As you'll see shortly, it doesn't really affect end users any more than a typical EULAin fact, often it's less restrictive than the standard EULA. The real impact of the GPL is the developer's ability to alter GPL licensed software, and to pass on those changes to other users.