<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<h2>Spotlight: On Developers 
  and Technology</h2>
<p>23 July 2001</p><br>
<p>On Licensing. This discussion <a href="//www-discuss/current/msg04262.html" target="_blank">began 
  </a>with a simple desire: a grammar checker in OpenOffice.org. In phrasing the 
  desire, the community member raised the question about the interoperation of 
  Free Software licenses, specifically, the GPL, or <a href="http://www.fsf.org/copyleft/gpl.html" target="_blank">GNU 
  General Public License</a>. OpenOffice.org code is <a href="//license.html" target="_blank">licensed 
  </a>under the <a href="http://www.fsf.org/graphics/philosophicalgnu.html" target="_blank">GNU 
  Lesser General Public License (LGPL)</a> and the <a href="//licenses/sissl_license.html" target="_blank">Sun 
  Industry Standards Source License (SISSL)</a>. The difference in licensing makes 
  for some incompatibility. To forestall confusion, Michelle Milledge, one of 
  OpenOffice.org's community managers, proposed a <a href="//www-discuss/current/msg04321.html" target="_blank">FAQ</a> 
  that would clarify the distinctions between the two licenses. Immediately, community 
  members such as <a href="//www-discuss/current/msg04313.html" target="_blank">Gianluca 
  Turconi</a> and <a href="//www-discuss/current/msg04338.html" target="_blank">Gary 
  Edwards,</a> among many others, presented carefully reasoned arguments on the 
  licenses and what they mean, philosophically and practically. </p>
<p><a href="../index.html">Return to the homepage.</a></p>
</body>
</html>

