What license would you want to see?

What license would you want to see used for OpenSPARC?

Here are a few blogs from Syndicate Conference, to start a discussion.

<a href="http://www.linuxjournal.com/comment/reply/1000023">Sun leaning to GPL for open source SPARC

</a>

by Doc Searls

<a href="http://blogs.zdnet.com/BTL/index.php?p=2276">Sun's Schwartz@Syndicate: Intranets are gonna

die</a>

by David Berlind

<a href="http://blogs.zdnet.com/BTL/index.php?p=2277">Open source SPARC likely to use GPL license</a

>

by Dan Farber

[631 byte] By [dwaynelee@sun] at [2007-11-26 6:06:08]
# 1

What are the OpenSPARC goals? Without consensus on goals, choice of a license seems apt to degenerate into a religious debate.

I think the goals are:

<ul>

<li>Allow academic research into computer architecture with contemporary commercial processor(s) and infrastructure as a base.</li>

<li>Promote commercial development of SPARC compatible processors and related auxliary processor elements</li>

<li>Promote an eco-system of IP suitable for inclusion in a SPARC toolchain and processor</li>

If others agree, then it seems to me that the GPL (v2 at least) is unsuitable for all but the purely academic purposes. A lot of effort went into defining the CDDL to be pretty generic and appropriate for a wide variety commercial purposes. I don't see how the CDDL fails academic uses ... so it would seem to me, that if I've grasped our goals, the CDDL seems like an appropriate license.

khbkhb at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...
# 2

That is a valid question, and I believe your answers

and comments are on the right lines too.

The goal in simplest terms, given the fact that Niagara

is a breakthrough technology, is to offer it to everyone

(as it is a compelling invitation for people to adopt)

so that it becomes the industry standard for 64-bit CMT.

New designs/chips/SOCs for new uses that can be

brought quicker to market by leveraging something

that works.

This in turn will create the pull from different angles.

IP vendors will offer IP blocks. Foundries will want the

designs ported and ramped on their wafer capacity.

EDA vendors will show off their tools. Academia will

get a head start to innovate into highly parallel approaches etc.

Other OSs will be ported to bring the

benefit of the technology to more applications and uses.

One could argue that open source that is OSI blessed is

perhaps more critical than the specific license model.

But I suppose, different users will care about the

license model specially as it pertains to how it affects

them (due to copyleft provisions etc.)

Perhaps, to have the license discussion, we first need

to understand what the bounds and implications of

these license models are as it pertains to hardware.

For example, what does "source" mean in a hardware

context. Clearly RTL is source. Then what is a binary

or executable? Is it finished/packaged silicon, or is it

the PG tape, or something else? What about the

intermediate forms of the design - say the synthesized

gate level netlist, or the transistor netlist? Are these

sources or executables?

I am sure people have discussed/debated these topics

before, but a refresher will help so we can then talk

about the license models.

coolthreads at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...
# 3

> The goal in simplest terms, given the fact that Niagara

> is a breakthrough technology, is to offer it to everyone

> (as it is a compelling invitation for people to adopt)

> so that it becomes the industry standard for 64-bit CMT.

> New designs/chips/SOCs for new uses that can be

> brought quicker to market by leveraging something

> that works.

I'm very happy to hear such words. I wasn't expecting Sun

to encourage new designs and chips from other vendors, but

rather to encourage development of an open architecture

that would remain in practice fabricated solely by Sun.

Bravo for such good intentions!

Basically, then, I see OpenSPARC as the next evolution of

SPARC International and Power.org. The purpose of those

organizations was to promote an open architecture to which

any vendor could design and sell a chip, as well as allow

multiple vendors to partake in discussion involving

the future of the architecture specification itself. Here,

the goal is similar, except that the architecture isn't

the only thing open, and the barrier to entry into the

project is considerably lower; focusing on the community

at large, rather than member organizations.

Given the number of things Sun is planning to provide --

architecture, RTL view of the T1 microarchitecture, tool

chain, simulator, etc -- I firmly believe that the GPL

is the most appropriate license.

Sun is literally open sourcing the entire foundation to an

innovative product line. This provides the community with

a state-of-the-art design to tinker with and allows other

vendors to adopt the design in their work. However, it also

makes it extremely easy to build competing products that

are just as innovative as the T1.

Unlike SPARC International or Power.org, compliance to an

open specification won't be the driving force behind the

adoption of OpenSPARC. The driving force is the innovative

design of the T1 itself. A license that is too permissive

will make it possible for a competing vendor to embrace

and extend OpenSPARC. This may completely kill OpenSPARC

if the parts of the new design that are inconsistent with

the open-source version add considerable value. At the

very least, it fragments the design into several editions

(some open, some proprietary) and therefore works against

the goal of OpenSPARC being an industry-wide standard.

Fully permissive BSD-style licenses are clearly the worst

candidates. However, the CDDL isn't strong enough either.

With OpenSolaris, a file-based copyleft works perfectly.

Most additional value one could add to OpenSolaris would

involve changing the existing code base, not adding

completely new features in completely seperate files. In

my opinion, any conceivable project based on OpenSolaris

will remain 95% OpenSolaris. The hardware world is quite

different.

One could throw a more advanced memory controller into

the mix, replace the SPARC decoder with an x86 front

end, or even put in SMP support. While these may or

may not be great ideas, they are things which probably

involve little change to the main OpenSPARC RTL and

considerable addition of non-copyleft code. Heck, if

Niagara2 wasn't coming out next year, someone could

integrate an FPU into each core and beat Sun to the

multi-threaded scientific computing market.

Again, I believe the GPL provides the most protection to

keeping OpenSPARC open, and promoting it as an

industry-wide standard. This isn't even counting the fact

that the GPL would allow inclusion of existing GPL'd

hardware code, or that the the GPL would encourage much

praise in the open-source community. There's still plenty

of people who haven't embraced the CDDL yet. Besides, it

would be wonderful to have both the GPL LEON3 SPARCv8

processor at the low-end and the GPL OpenSPARC T1 at the

high end. Forgot x86 everywhere; long live SPARC everywhere.

By the way, this entire post was written under the assumption

that mask layouts, FPGA bitstreams, and actual fabricated

silicon wouldn't be considered 'code' or 'executables' under

the GPL but rather 'output of the program' (ie. re-licensable).

Synthesized gate and transitor forms are more like assembly

and object code, in my opinion, but I imagine they could be

argued differently. I'm fully in support of going GPL with

an extra clause stating something to the effect of "Mask

layouts, fabricated chips, and reconfigurable logic bitstreams

produced from this code are not required to adopt the GPL."

jblomstedt at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...
# 4

> Given the number of things Sun is planning to provide --

> architecture, RTL view of the T1 microarchitecture, tool

> chain, simulator, etc -- I firmly believe that the GPL

> is the most appropriate license.

If we talk about GPL, we need to specify which version.

Clearly, version 2 has significant issues which inhibit

the kind of corporate investment OpenSPARC desires.

But version 3 seems to have some corrections which

make it more palatable (and more like CDDL). Alas,

GPLv3 will not likely be ready soon, so there may need

to be an interim license prior to dual licensing, just to

get to market.

> Sun is literally open sourcing the entire foundation to an

> innovative product line. This provides the community with

> a state-of-the-art design to tinker with and allows other

> vendors to adopt the design in their work. However, it also

> makes it extremely easy to build competing products that

> are just as innovative as the T1.

How is this a bad thing, in principle? Sun was founded

on the model of assembling COTS components into

solutions, and though it periodically seems to forget its

roots, it can still follow that model well. When further

innovation is required, it will step up to the task, hence

the UltraSPARC T1.

From a practical perspective, there are markets which

Sun does not have a large share, but which could see

advantages of this openness. So it is a good opportunity

for someone to take this starting point and extend into

new markets with Sun's encouragement. OTOH, going

directly after Sun's market will be more difficult and

even though you have RTL, you have a significant

effort to get to manufacturing a working system. It is

possible, but it isn't the fertile ground. Personally, I'd

like to encourage people to take these designs in new

directions, but don't really expect a direct competitor

to existing or planned Sun systems. Even if there were

such a competitor, and they were successful, I would

expect Sun to pick the product up, after a brief battle.

There is considerable historical precedence for this:

HyperSPARC and Fujitsu, most notably.

Directly back to the target, I don't believe any of the

existing FOSS licenses apply well to hardware. In

many ways, the software->hardware transition is a

one way path. While the hardware gets reused for

its lifetime, it is not clear that the originating software

has value over the lifetime. Being overly protective

of the software (RTL) won't be useful for successive

generations. I'm leaning towards something a bit

more liberal than the current proposals because we

tend to get much less reuse of it anyway. Am I all

wet?

-- richard

relling1 at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...
# 5

my $0,02 of contribution:

I think BSDL BSD License is a good option, or a modified version of BSD.

more infor about at:

[1]http://www.opensource.org/licenses/bsd-license.php

[2]http://www.freebsd.org/copyright/freebsd-license.html

[3]http://www.debian.org/misc/bsd.license

[4]http://en.wikipedia.org/wiki/BSD_License

why BSDL:

according [4] :

"Compatibility with proprietary software licenses

The BSD License allows commercial use, and for the software released under the license to be incorporated into commercial products. Works based on the material may even be released under a proprietary license. Some notable examples of this are the use of BSD networking code in Microsoft products, and the use of numerous FreeBSD components in Mac OS X.

It is possible for something to be distributed with the BSD License and some other license to apply as well. This was in fact the case with very early versions of BSD Unix itself, which included proprietary material from AT&T."

my opinion: I think that we need an License that could contemplate both comercial, academic and opensource interests.

lvcargnini at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...
# 6

> I think BSDL BSD License is a good option.....

> "Compatibility with proprietary software licenses"

BSD style licenses are too permissive, especially given the amount of

investment Sun has put into this project. Instead of BSD, the better

choice would be Sun's CDDL license:

http://www.opensolaris.org/os/about/faq/licensing_faq/

Like BSD, this license allows one to combine CDDL code with entirely

proprietary code, and distribute the executable under any

license. Thus, CDDL code can be used in fully closed source commercial

distributions. Unlike the BSD license, however, the CDDL protects the

original work. The basic gist is that all modifications to code

released under the CDDL must be made public, but all other code in the

combined project remains under the original licensing terms.

Of course, in my post above I discussed why I felt the CDDL was

inappropriate for OpenSPARC and why I felt GPLv2 was the best

choice. In theory, a GPLv2 release of OpenSPARC can still be very

useful in commercial products, since most of the added value different

companies will make won't be related directly to the RTL code. All in

all, several companies sharing code publicly and working towards a

very strong brand based upon OpenSPARC will probably do better in the

end than a few companies working towards different proprietary

versions. In other words, the goal should be to work towards a

thriving community of companies rather than individual corporate

bottom-lines.

Nonetheless, I now disagree that a pure GPLv2 license is the best

choice. In particular, I would love to see OpenSPARC dual-licensed

under both GPLv2 and the CDDL.

--Why CDDL?--

1. Most of the corporate world still has worries about the GPLv2.

2. Many companies, even if they wanted to GPL their product, include

proprietary code in their work that is licensed from other vendors.

As far as my initial worries discussed in the above post, I don't

think they will work out in practice. Companies will benefit more by

working towards a thriving community based on a standard notion of

OpenSPARC than from forking their own versions. I doubt the future

will see several incompatible OpenSPARC derived projects competing

against each other.

In general, the CDDL provides copyleft protection on the released code

that Sun has invested in, allows others to include the work without

worrying about other licensing issues, and will still encourage an

open-source community based around OpenSPARC.

--Why GPL?--

CDDL isn't compatible with the GPL. While the CDDL allows covered code

to be combined with code under other licenses (including the GPL), the

GPL itself forbids the combination of GPL code with CDDL code due to

certain terms that the CDDL license requires. Providing OpenSPARC

under a GPL dual-license will allow interested individuals working on

GPL projects to include OpenSPARC code without licensing worries, just

like the CDDL provides people using non-GPL licenses.

As someone involved in a few GPL hardware projects, and on the mailing

lists of several other GPL hardware projects, I can state that this is

a real concern. The Open Graphics Project, for example, is worried

that future developers who join that project might have seen OpenSPARC

code after it is released. AS such, the project maintainers are trying

to develop some means to make sure that code contributed to that

project didn't come from a GPL-incompatible source.

Dual-license and let the user of the code choose which license makes

better sense in their derived work. It gives you the best of both

worlds.

jblomstedt at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...
# 7

I've written my thoughts about this on my blog: [url=http://www.david-web.co.uk/blog/?p=146]UltraSPARC T1 to be GPL抎?[/url]

To summarise, I think the LGPL is the best option for OpenSPARC. Not only does it provide all the freedoms of the GPL, it also allows the code to be incorporated into a proprietary system (as does the GPL+CDDL dual licensing idea discussed above).

Although actually I don't think any existing license is ideal for OpenSPARC (or any other hardware). I think we need a [L]GPL-like license specifically for hardware, as there are several key issues applicable to hardware which aren't covered by software licenses (see my blog post above).

DavidJohnson at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...
# 8

I have read the above blog reference and certainly agree that hardware is considerably different from software to make any current software license apply directly -- nevertheless, using an existing accepted license is certainly for the better and there are already hardware projects based on BSD, GPL, and LGPL anyway. So, the blog's idea that a GNU Hardware license would be preferred, but LGPL should be used in the meantime is a reasonable conclusion.

However, I believe the LGPL isn't the best choice. It's not quite the same as the CDDL/GPL dual license I suggested above.

Consider section 6 of the LGPL. That's the section which discusses combined executable works that include LGPL code. Section 6 requires that any combined executable work can be adapted by the end-user to use a new or different version of the LGPL portion of the combined work. In software, this means that the executable must either use shared libraries (thus an end-user can install a new shared library and have the executable use it automatically) or be distributed in source-core or object-code form so that an end-user can recompile the non-LGPL portion of the work with a different version of the LGPL portion.

Hardware is certainly different from software, but given the spirit of section 6 -- a user should have the ability to replace any portion of the project that is based on the LGPL code -- I think the FSF folks could (and would) argue that an end-user who purchases a chip based on LGPL technology should have access to some sort of RTL model of the product to which they could modify any LGPL section. While outright modification and production of hardware is beyond average users, it isn't beyond larger companies. An embedded systems distributor or large OEM may very well demand access to RTL or other portions of a product's design in order to design and produce a new chip that has certain elements of the OpenSPARC section changed (say 8 threads per core instead of 4, or two-way issue).

The CDDL places no requirements on combined works. Including CDDL code in a project doesn't grant the end-user of the product any rights except to the original CDDL code itself and any modifications to such code to make it work in the combined product. There is no ambiguity or implied rights in this case as there is with the LGPL.

A dual-license still seems to provide the best solution to both the commercial and open-source crowds, in my opinion.

jblomstedt at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...
# 9

I think section 6 of the LGPL really doesn't apply well to hardware and as such how it applies is rather open to interpretation. As I interpret it:

If you've got two modules burnt to a chip, one of which is LGPL'd the other of which isn't, subsection (a) requires you to:

<ol>

<li>provide a copy of the LGPL'd module's source code</li>

<li>provide EITHER the source of the non-LGPL'd module OR the compiled form of the module.</li>

</ol>

The idea being that the LGPL'd code can then be modified, compiled then burnt to a chip alongside the non LGPL'd module resulting in a modified end product.

The CDDL applies more cleanly to hardware, but it doesn't ensure the same freedoms the LGPL is designed to due to some of the requirements and restrictions.

A not-insignificant advantage of the LGPL is that there's already <a href="http://www.opencores.org/">a lot of hardware licensed under it</a> - the CDDL is not compatible with the LGPL which would mean that LGPL'd and CDDL'd modules could not be used together,

DavidJohnson at 2007-7-6 13:34:23 > top of Java-index,Open Source Technologies,OpenSPARC...