Licenses, was Re: [ng-spice-devel] Catching up
On Mon, 05 Feb 2001, Gillespie, Alan wrote:
> I forget what the actual problem with the Berkeley license was.
I will try to answer this one in a neutral manner, in spite of the
fact that many can be quite emotional over it.
GPL and Berkeley licenses were designed with different purposes. I
respect both, and will use both depending on the circumstances.
The key difference is that GPL requires derivative works to also be
GPL, while the Berkeley license does not have such a restriction.
Thus, under Berkeley license a corporation can use the code as a base
for their own proprietary work. The goal of the Berkeley license is
to encourage commercial exploitation. The commercial Spice programs
are all examples of what is allowed under Berkeley license. This is
appropriate for a university which is funded by grants from industry
and government. It also allows a student full rights to
commercialize the work, even if others made significant contributions.
GPL is designed to prevent such commercial derivatives. The idea is
that it was created as "Free" software, not to give free engineering
services to a corporate entity, which will do anything they can get
away with to improve the profit. Some large corporations are scared
of GPL programs. The mere existence represents intellectual property
threats, similar to a patent in the hands of a competitor. Some
companies feel they must use a clean-room approach at their own
engineering, when a GPL program is available, just like the GPL
people must use a clean-room approach when reverse engineering a
commercial product.
For this reason, when I come up with something that might be
patentable, as soon as possible I publish a prototype under GPL. It
doesn't matter whether it works or not. Example: the partially
implemented multi-rate code in ACS.
The big problem comes up when you use code from outside, with mixed
licenses. When you do this, you must simultaneously comply with the
licenses of all components. The license of the composite must comply
with all. Often, this is impossible. Often, the dispute is over
something trivial.
Even if something is strictly legal, it is improtant to maintain good
will. If you do something the author doesn't like, you create an
unpleasant situation, even if it is strictly legal.
If the program is distributed under Berkeley license, you can't
include any GPL code from outside, because Berkeley license allows
propriatary derivative works. LGPL is ok.
The University does not warrant that it owns the copyright
or other proprietary rights to all software and documentation
provided under this agreement, notwithstanding any copyright
notice, and shall not be liable for any infringement of copyright
or proprietary rights brought by third parties against the reci-
pient of the software and documentation provided under this
agreement.
It is student work, and unknown where pieces actually came from, and
the rights they have. If you redistribute, you take the risk of the
consequences of infringement.
The University of California grants the recipient the right
to modify, copy, and redistribute the software and documentation,
both within the recipient's organization and externally, subject
to the following restrictions:
(a) The recipient agrees not to charge for the University of
California code itself. The recipient may, however, charge
for additions, extensions, or support.
GPL lets you charge. -- subtle conflict. Just enough so you can't
just change the license to GPL.
(b) In any product based on the software, the recipient agrees
to acknowledge the research group that developed the
software. This acknowledgement shall appear in the product
documentation.
GPL says this, too. It is the copyright notice.
(c) The recipient agrees to obey all U.S. Government restric-
tions governing redistribution or export of the software and
documentation.
This is a conflict. If you in the USA, I suppose the same applies
either way. Under GPL, if you don't live in the USA, US law doesn't
apply.
ACS uses GPL. It is not a Spice derivative. The only code that is
derived from Berkeley code is in the models. Something like "BSIM3"
(Berkeley Short channel Igfet Model) is obviously Berkeley. I
consider the models to be data supplied to the simulator, not part of
the simulator itself. Eventually, the models really will be external.
Partial thread listing:
- Licenses, was Re: [ng-spice-devel] Catching up, (continued)