<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<head>
	<TITLE></TITLE>
	<META NAME="GENERATOR" CONTENT="StarOffice/5.1 (Linux)">
	<META NAME="AUTHOR" CONTENT=" ">
	<META NAME="CREATED" CONTENT="20000718;17495700">
	<META NAME="CHANGEDBY" CONTENT=" ">
	<META NAME="CHANGED" CONTENT="20000718;17495700">
	<STYLE>
	<!--
		@page { size: 8.5in 11in; margin-left: 1.25in; margin-right: 1.25in; margin-top: 1in; margin-bottom: 1in }
	-->
	</STYLE>

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



<p><B><i>SUN MICROSYSTEMS OPEN SOURCES STAROFFICE TECHNOLOGY</i></B>
<p>
<p><b>Source Code Offered Via GNU General Public License and to Reside at
www.OpenOffice.org</b>
<p>
<p>PALO ALTO, CA - July 19, 2000 -  Today at the O'Reilly Open Source
Convention in Monterey, California, Sun Microsystems, Inc. announced it
will release the source code of its StarOffice (TM) Suite, a leading, high
quality, office productivity application software suite, to the open source
community under the GNU General Public License (GPL).   Sun also announced
OpenOffice.org will be formed and managed by Collab.Net and will serve as
the coordination point for the source code, the definition of XML-based
file formats, and the definition of language-independent office application
programming interfaces (APIs.)
<p>
<p>StarOffice is the leading, full-featured productivity suite for all major
platforms, including Solaris (TM) Operating Environment, Windows, Linux,
and, later in the year, the Macintosh.  StarOffice 6, the next version
currently in development, will serve as the source code base for
OpenOffice.org.  With the upcoming StarOffice 6 technology, the next
generation architecture of separate applications and componentized services
will be introduced.
<p>
<p>"Sun's open-sourcing of StarOffice Suite is the single largest open-source
software contribution in GPL history and it adds a key application suite to
the open source portfolio,"  said Marco Boerries, vice president and
general manager of webtop and application software at Sun Microsystems,
Inc.  "This announcement will leverage StarOffice Suite's role as the
leading productivity suite for multiple platforms and will further increase
our momentum as the only competitive alternative to other office suites.
Sun will also continue to develop and aggressively market future versions
of StarOffice Suite, which will be based on OpenOffice.org."
<p>
<p>"Since innovation happens in many places, making the source code for
StarOffice Suite available will enable the enormous community of developers
to bring  their expertise and energy to improve and expand the reach of
this full-featured software suite.  But OpenOffice.org is much more than
just source code--it also includes APIs and XML-file formats.  This will
allow developers to easily work across platforms and have a huge impact,"
said Boerries.
<p> 
<p><b>About OpenOffice.org</b>
<p>OpenOffice.org will host StarOffice source code.  OpenOffice.Org will also
specify XML file formats for documents; specify language-independent APIs;
and provide Microsoft Office file filters, so developers can more easily
modify existing programs and customize specific applications to fit their
needs.
<p>
<p><b>Widespread community support</b>
<p>OpenOffice.org has already garnered major industry support from many
open-source luminaries, including Tim O'Reilly, Miguel de Icaza, Brian
Behlendorf, and Andy Hertzfeld.
<p>  
<p>"Microsoft's lock in on its Office file formats is arguably at least as
important to their monopoly position as their control of the operating
system itself," said Tim O'Reilly, founder and CEO of O'Reilly and
Associates.  "The availability of StarOffice under the GPL will give Linux
a boost on the desktop, but more importantly, the wide availability of
StarOffice Suite's code for reading and writing Microsoft Office formats
will allow other open source projects to provide compatible functionality
as well.  Open data is the other side of the open source coin."
<p>
<p>"Sun's announcement to make their office suite free software under the GPL
and SISSL licenses will be a benefit to everyone.  Their choice of Bonobo
as a component framework will enable powerful scripting and code reuse not
only on the desktop, but on the system as a whole," said Miguel de Icaza,
president and founder of HelixCode Inc. "When I started GNOME three years
ago, I had two goals: a 100% free, easy-to-use desktop environment and
component architecture for GNU/Linux.  With Helix Code and Sun working
together, we can finally see this vision realized.  The GNOME community is
now investigating the best way to integrate these technologies just
released with the GNOME environment with the goal to bring a comprehensive
solution to everyone."
<p>
<p>"The release of StarOffice under an open source license is a tremendously
cool thing," said Brian Behlendorf, co-founder and CTO of Collab.Net.  "The
influence of closed standards and proprietary software has made the office
productivity application space an extremely difficult arena for the open
source community to address.  Sun's action today resolves this problem by
providing a much needed application."
<p> 
<p>"One of the last remaining barriers to wide-spread adoption of Open Source
software on the desktop is the paucity of high quality, easy-to-use
applications.  Today's announcement of the GPLing of Star Office goes a
long way toward filling that gap," said Andy Hertzfeld, co-founder of
Eazel, a leading Linux development software company.  "Everyone at Eazel is
very excited to work with Sun's talented team to integrate their
world-class productivity applications with the Gnome desktop."
<p>
<p>Major Linux companies, including Red Hat, Caldera, SuSE, TurboLinux, Easy
Linux, Mandrakesoft, Stormix, Conectivia, Definite Software PLC, and
Macmillan, have signed agreements to redistribute StarOffice(TM) 5.2
software, making it the number one office productivity suite for Linux and
most have pledged support for OpenOffice.org.
<p> 
<p>"We support Sun's commitment to an open desktop for all UNIX/Linux
environments," says Paul McNamara, vice president of Products and
Platforms, Red Hat Linux, Inc. "The availability of professional
applications like  StarOffice software with Red Hat Linux only serves to
further validate the platform and the future growth potential of Linux."
<p>
<p>"Sun strengthens their commitment to the Linux community with their
announcement 
to open source StarOffice," said Dean Taylor, vice president of marketing
for Caldera Systems, Inc.  "This combination of StarOffice performance and
OpenLinux reliability, helps us deliver a quality product and needed
application to the Linux community."
<p>
<p>"As a Linux solutions provider, SuSE helps consumers, small to
medium-sized  businesses, corporations, government agencies and educators
around the world make informed decisions when purchasing computer
technology," said Roland Dyroff, CEO SuSE Linux AG.  "With Sun's commitment
to open source StarOffice this expands the market for product
implementations based on open standards."
<p>
<p>"As long time supporters of StarOffice software on Linux, MandrakeSoft is
excited Sun is making the source code available.  The benefits that the
open source community will bring to this feature rich suite will continue
the momentum in the market for this exciting alternative to  Microsoft
Office," said Frederic Bastok, COO of MandrakeSoft, a leading Linux publisher.
<p>
<p>For more quotes from leading Linux vendors, please visit
www.sun.com/developers/openoffice
<p>
<p>Release of the StarOffice source code will reside at www.openoffice.org
and will be managed by Collab.Net, a provider of collaborative software
development services based on open source principles.  Collab.Net is
creating the project hosting infrastructure for the openoffice.org site.
This single solution offers a medium for hosting source code and
accessing a robust set of software development tools.  This environment is
a cohesive Web-based, open source development platform that provides
simple, powerful and intuitive access to features including:  code
versioning, source code browsing, automatic change notification, mailing
lists and discussion forums and issue tracking Web administration.  
<p>
<p>In addition to the GPL, Sun intends that all code contributions to the
OpenOffice.org project, including Sun's contribution of the StarOffice
source code, will be made available under the Sun Industry Standards Source
License (SISSL).  This dual-licensing approach is designed to allow all
organizations and individuals to use the source code freely and openly as
they choose. An important requirement of the SISSL license is that it
requires compatibility with the GPL reference implementation of the
OpenOffice.org source code, including APIs and file formats. Copies of both
the GPL and the SISSL licenses are available at
//licensing/
<p>
<p>In addition, Sun also announced today the new OpenOffice.org Foundation,
which will initially be modeled on other successful open source projects
and will consist of a project management committee, source code
maintainers, and developers. Sun will hold a
equal membership position in the OpenOffice.org Foundation project
management committee. 
<p>
<p><b>About StarOffice</b>
<p>StarOffice Suite offers a feature-rich single desktop environment, with
tools such as word processing, spreadsheets, presentations, drawings,
web-publishing, email, scheduling and database applications that offer
businesses and individuals an alternative to proprietary office suites.
For more information regarding OpenOffice.org and the StarOffice source
code, visit / and
http://www.sun.com/staroffice/opensource.
<p> 
<p><b>Availability</b>
<p>The StarOffice source code is scheduled to be available to the open source
community on October 13, 2000.   Sun will retain copyright to the source
code and Sun's ongoing engineering work on StarOffice software will be done
as part of OpenOffice.org. Beginning with StarOffice 6.0, a branded version
of the OpenOffice.org reference implementation will be made available under
the StarOffice software brand.  
<p>
<p><b>About Sun Microsystems, Inc.</b>
<p>	Since its inception in 1982, a singular vision -- "The Network Is The
Computer[tm]" -- has propelled Sun Microsystems (Nasdaq:SUNW) to its
position as a leading provider of industrial-strength hardware, software
and services that power the Internet and allow companies worldwide to
".com" their businesses.  With $14.2 billion in annual revenues, Sun can be
found in more than 170 countries and on the World Wide Web at
http://www.sun.com.
<p>
<p><center><pre># # #</pre></center>
<p>
<p>Sun, Sun Microsystems, the Sun Logo, StarOffice, Solaris, and the Network
Is The Computer are trademarks or registered trademarks of Sun
Microsystems, Inc. in the United States and other countries.



</body>
</HTML>














