<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Licensing Strategy</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h2>Licensing Strategy</h2>

<br>
<p>
OpenOffice.org uses a dual-license strategy for the source code of the projects
technology. The two licenses are:
</p>
<ul>
<li type=disc><a href="../../licenses/gpl_license.html">GNU General Public License (GPL)</a>
<li type=disc><a href="../../licenses/sissl_license.html">Sun Industry Standard Source License (SISSL)</a></ul>
<p>
The dual-license mechanism enables the fullest degree of open and free access to the
technology for both the GPL community as well as other developer communities
that all wish to develop and deliver compatible, high-quality products for a
networked world — powered with open office productivity services technology.
</p>

<br>
<a name=dual_license><b>The Dual License Strategy</b></a>
<br>
<p>
The key objectives for licensing the OpenOffice.org project source code are to enable
it to:
</p>
<br>
<p>
1. Be compatible and accessible to projects using the GNU GPL. The diversity,
innovation, and momentum of projects within the GPL community mandate that
the OpenOffice.org technology use the GPL licensing.<br><br>
2. Provide a licensing structure for other open communities that are incompatible
with GNU GPL licensing. Again, the extensiveness of such projects and their
diversity of application require OpenOffice.org to be accessible to these
communities.
</p>
<br>
<p>
3. Be available for licensing to commercial companies wanting to utilize the
technology within their products and/or provide branded versions of the
technology as products to their customers. Many of these companies require more
traditional commercial license terms and ancillary support services from another
commercial vendor.
</p>
<br>
<p>
4. Support compliance with standards for the OpenOffice.org APIs and XML-based
file formats. Keeping a cohesive adherence to these standards is recognized as key
for the viability of such office productivity in a universal manner. Here, the use of
a reference standard, open publishing of the reference specifications and any
changes to such references, compliance testing mechanisms, and marks of
compliance are the desirable tools required to achieve this goal for products and
services.
</p>
<br>
<p>
Through dual licensing of OpenOffice.org technology, the first three points can be
satisfied by choosing the companion license to the GPL. The second license must be
able to specify requirements of compliance, while providing freedom of innovation
by requiring that incompatible changes to the standard be openly published as
source code. The second license also needs to provide adequate flexibility for
enabling OpenOffice.org technology to be used within commercial products without
compromise of the commercial vendors’ other licenses used in such products. The
Sun Industry Standard Source License (SISSL) satisfies these requirements. The
SISSL specification of a Standard (Exhibit B) to which compliance is required
provides the clause to which licensees must retain compliance for their use of
technology in distributed products. If a licensee makes incompatible modifications,
the license specifies that a reference implementation of the modifications must be
published back to Sun Microsystems under the original SISSL terms and conditions.
</p>

<br>
<p>
<a name=specifics><b>Specifics of the OpenOffice.org License Strategy</b></a>
</p>

<br>
<p>
<a name=dual_licensing_standards><b>Dual Licensing and Standards Compatibility</b></a><br>All source code of the OpenOffice.org project is dual licensed using the GNU GPL
licenses<sup>1</sup> and the OpenOffice.org SISSL. Exhibit B of the OpenOffice.org SISSL will
specify that the GNU GPL or LGPL source code, with the same version number, is
the reference standard for that specific SISSL-licensed source code version.<br><br>
This circular mechanism ensures that SISSL licensees are required to maintain
compatibility with the GPL community versions of the same source code APIs and
file formats. Sun Microsystems will publish any supplied modification reference
implementations under the dual license (GPL/LGPL + SISSL) so that all
communities have access to such modifications.<br><br>
The SISSL License will be issued by Sun Microsystems, Inc., to SISSL licensees via a
click-thru license hosted at the OpenOffice.org source code repository. This license is
granted to the licensee for no fee or royalty charge.
</p>
<br>
<p>
<a name=specification><b>Specification of Standard Versions</b></a><br>The specification for each Standard Version as used by the licensing mechanism will
be specified and published by the OpenOffice.org project under the governance of
the OpenOffice.org Steering Committee.
</p>

<br>
<p>
<a name=staroffice><b>StarOffice Brand Usage</b></a>
</p>

<br>
<p>
In conjunction with the dual-license scheme, Sun Microsystems will provide a
compatibility testing service to OpenOffice.org licensees for a fee. This service will
be charged on a per-platform, per-version basis. Upon achieving compatibility
certification for the specific product, the licensee will be authorized to use the
StarOffice brand on the version of their product for that specifically tested platform
version.
</p>
<br>
<p>
The provisions for use of the well-known StarOffice mark on a license's compatible
products benefits them by delivering the market recognition already established by
the mark and leveraging expanding market recognition of the mark developed by
Sun Microsystems and other StarOffice mark vendors.<br><br>
Additionally, the StarOffice mark conveys a signature of compatibility and
confidence to users. This delivers a significant value to the vendor, their product,
and the user.
</p>

<br>
<p>
1. <b>Note:</b> All libraries and embeddable components of the OpenOffice.org dual license will use the Lesser GPL (LGPL).
</p>

<p align=right valign=bottom><a href="introduction.html">back</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="contributions.html">next</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
</body>
</html>

