Tracy R Reed wrote:

This question doesn't make sense if it isn't about "accidental"
inclusions. If a GPL library happens to be the cornerstone of the code
then you have already made a conscious decision to keep it all in hour
forever or to release the code when you distribute it outside.

House.  I knew what you meant. ;)

The distinction is as follows:

In software, the final artifact is the code. The code is the product; the product is the code.

In VLSI, the final artifact is a chip or, if you prefer the final digital artifact, a stream of mask data. The code is used to create the final artifact, but is *not* the final artifact.

You don't know, a priori, what you are going to do with that artifact. Will the foundry make a change? Will you subcontract to someone to make a change and regenerate? Will you subcontract to someone to move that chip to a new technology? Any of these actions result in a need to transfer all tools used to generate the final artifact to someone external to the company.

As such, the only solution is to avoid all GPL code.

For the BSD license to have made such a big difference are we to assume
that many companies are making changes to SPICE2 and distributing SPICE2
binaries outside of the company without releasing the source? What does
this have to do with the SPICE2 user base coalescing into a whole?
Sounds more like incompatible forking.

Absolutely. However, we again have a distinction between the code being the end artifact and something else being the end artifact. In SPICE2, the end artifact is an analysis, not code.

SPICE2 was a general circuit simulator. It works very nicely for general circuits and fails spectacularly for some types of reasonably common circuits.

I could take the SPICE2 code, and create a simulator that worked well for one of those troublesome circuits. My input was a SPICE2 input deck. My output was a SPICE2 analysis deck. However, my simulator worked for a slightly different class of problems and I could sell it. This started a network effect. The more people used the SPICE2 input and output formats, the more they became a standard. Eventually even IBM internal simulators had to support SPICE2 formats because they were so pervasive. The format had enough internal "hooks" that you couldn't move too far from the original code in implementation.

With SPICE3, Berkeley tried to grab some of the money by changing the license. Result? SPICE3 never had any real uptake. All the commercial companies went back to SPICE2 whenever they wanted to use code. This was bad because SPICE3 had quite a lot of good algorithm and device physics work put into it. However, it all languished. The SPICE3 input deck format never really caught on. The output formats never really caught on. Instead, a commercial version, HSPICE, became the new standard because it was close to SPICE2 (the variables and knowledge from SPICE2 were mostly useful for HSPICE) but gradually drifted away from compatibility since SPICE3 takeup was not strong enough to pin it down as a standard.

Some people have tried to change the SPICE3 license, but the standard bureaucratic problems arise. Nobody wants to be the one to sign off on a license change that somebody else might make money off of.

In addition, SPICE is an unusual case. It is a piece of code which has existed and been useful for more than 30 years. There aren't many other pieces of code which have that problem.

-a


--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list

Reply via email to