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
# 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.
# 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.
# 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."
# 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
# 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.
# 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.
# 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).
# 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.
# 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,
