I believe the question of what license to use for a product really
depends on what kind of adoption you want your source code to have.
Is the source distribution for Vorbis:
A) an example of how to implement the Vorbis specification.
B) a product you want companies to pay for and individuals to get for free.
C) the implementation you actually want everyone to use.
If the Vorbis source code is in fact just an example of the
specification or a product you want companies to pay for and
individuals to get for free, then GPL is just what you want. It
means that folks who want to write free stuff and don't have the
money and time to implement their own can use your GPLed version.
Commercial companies can either implement their own internal version
for use with their own proprietary source or pay you for a special
license.
The GPL is in fact one of the best licenses for making lots of money
off your free source projects. I know a number of consultants who
use the GPL to get paid by multiple companies for the same source!
The GPL license forces the companies to pay the consultant for a
special one-time commercial license so they can use it in their
proprietary source, but the GPL also keeps the source free so the
consultant can reuse it in his/her next contract. A great way to
feel like a good free source doobie while you rake in lots of dough
from evil corporate America...
...and all the small companies trying to make a buck in this cutthroat market.
Frankly, this is why the GPL annoys me. If you want to call your
source "free" then you shouldn't charge any money for it. If
Vorbis
charges for commercial licenses then who would want to contribute a
major feature enhancement to the source? Why do unpaid work on a
free source project so that the owners can get paid for it? The BSD
licenses (and to a lesser extent the LGPL) are the only licenses
which commit the author to writing source which is free to everyone.
Yes the BSD license allows you to make money off your free source,
but it also allows everyone else to do it too.
So if you actually want everyone to use your implementation, then an
LGPL or BSD license is more desirable. With these licenses,
commercial and free products alike can link with Vorbis while the
libraries themselves stay free.
True, a BSD license will allow companies to add features without
sending them back to you, but by and large you don't want those
patches anyway. If the company wants a generic feature, they'll
often ask you to add it (this is what we often see at MIT). You
should feel free to charge a "support fee" to pay your rent while you
write it. There's nothing wrong with charging companies for work you
are actually doing, because you aren't charging for the enhancements
other people did for free. If the company is doing the addition
themselves then chances are it is closely tied to their own private
sources and useless to anyone else.
Yes, you will lose a few patches and fixes, but you probably do
anyway because some folks are too lazy to make their patches portable
or clean them up enough to send them in. However, it is to
companies' advantage to send in generic patches, because then they
don't have to reapply them to take a new version. So if you are
enhancing Vorbis regularly then everyone will want to send you
patches so they don't get too different from the mainline.
If you are worried about the BSD license allowing folks to make
incompatible versions of Vorbis by tweaking your source and
redistributing it, put a clause in your license saying that modified
sources cannot be redistributed under the name "Vorbis" (see Kerberos
5 sources for examples of this language). This prevents "embrace and
extend" Microsoft-style thinking from screwing you over and also
encourages folks to send in feature enhancements.
Now in the case of Vorbis, I would recommend the LGPL or BSD license.
As I understand it, the real goal of Vorbis is to spread itself as
far and wide as possible and defeat the evil scourge of MP3 licensing
fees.
If you charge companies for commercial licenses of your GPLed code,
they will just turn around and charge the consumer, making commercial
encoders with Vorbis codecs just as expensive as the MP3 ones. If
the company implements its own version, it will charge the customers
for the people it hired to write it. Commercial Vorbis encoders
won't be any cheaper than MP3 ones. This is not what you want.
Companies aren't going to add a new encoder unless there is some
major advantage, and Vorbis's major selling point is its the lack of
licensing fees.
If you want Vorbis to spread like the plague then it needs to be free
to everyone, including commercial companies. It needs to be so free
that companies don't have to spend a cent to add it to their existing
products. Just pop in a library and go.
And the "you can just implement it as an application" argument
doesn't fly. On the Macintosh you don't have inter-process
communication. How exactly is a Vorbis application supposed to
communicate with the commercial encoder? Write to a file and then
have the module read from it? I'd prefer not to have to make
disgusting design decisions because of the *software license*. It
reminds me of working around government export control regulations.
My two cents,
--lxs
-----------------------------------------------------------------------------
Alexandra Ellwood
<lxs@mit.edu>
MIT Information Systems http://mit.edu/lxs/www/
-----------------------------------------------------------------------------
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/