<!DOCTYPE html>
<html><head>
<title>FAQ for OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)</title>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<div class='Acta1'>
<h2>FAQ for OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)</h2>
<p><em>Last updated 2003-02-23 by Dan Williams</em></p>
<h4><a name="top"></a>Sections</h4>
<dl>
  <dt><a href="#genquestions"><strong>General Questions</strong></a></dt>
	
		<dd><a href="#q1">What is OpenOffice.org?</a></dd>
		<dd><a href="#q2">What are we announcing today?</a></dd>
		<dd><a href="#q3">Who can / should use this software?</a></dd>
		<dd><a href="#q3">What can the OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta) release do today?</a></dd>
		<dd><a href="#q4">What is OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)?</a></dd>
		<dd><a href="#q4">What does the X11 graphics mean?</a></dd>
		<dd><a href="#q5">When will OpenOffice.org 1.0 for Mac OS X and Darwin (Final) be officially released?</a></dd>
		<dd><a href="#q6">How can I help the OpenOffice.org Mac OS X/Darwin porting team?</a></dd>
		<dd><a href="#q7">What are the limitations of the OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)?</a></dd>
		<dd><a href="#q8">When will an Aqua version be available?</a></dd>
		<dd><a href="#q9">Will OpenOffice.org 1.0 run on OS 9 and earlier operating systems?</a></dd>
		<dd><a href="#q10">What support is offered with the OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)?</a></dd>
		<dd><a href="#q11">What are the objectives of OpenOffice.org?</a></dd>
		<dd><a href="#q12">Why is OpenOffice.org significant?</a></dd>
		<dd><a href="#q13">What role has Sun Microsystems, Inc., had in the Mac OS X/Darwin port so far?</a></dd>
		<dd><a href="#q14">What is Apple Computer, Inc.'s involvement with the project?</a></dd>
		<dd><a href="#q15">What prevents someone from moving from Microsoft Office v.X to OpenOffice.org on Mac OS X?</a></dd>
		<dd><a href="#q16">What is the difference between Sun's StarOffice 6.0 [tm] and OpenOffice.org 1.0?</a></dd>
		<dd><a href="#q17">Will there ever be a StarOffice for Mac OS X?</a></dd>
		<dd><a href="#q18">Where can I get more information about OpenOffice.org?</a></dd>
	
  <dt><a href="#devquestions"><strong>Developer Questions</strong></a></dt>
	
		<dd><a href="#q19">From a developer's standpoint, what needs to be done with OpenOffice.org on Mac OS X/Darwin?</a></dd>
		<dd><a href="#q20">What is the state of the build on Mac OS X/Darwin?</a></dd>
		<dd><a href="#q21">What tools are used to build OpenOffice.org on Mac OS X/Darwin?</a></dd>
		<dd><a href="#q22">If I want to help or contribute patches, whom should I contact?</a></dd>
		<dd><a href="#q23">What kind of hardware does a developer need to work on the OS X OpenOffice.org port?</a></dd>
	
</dl>
<hr>
<h3><a name="genquestions">General Questions</a></h3>
<!-- ---------------------------------- -->
<p><a name="q1"><strong>Question:</strong></a> What is OpenOffice.org?</p>

<p class='indent'><strong>Answer:</strong> OpenOffice.org 1.0 is a full-featured office productivity suite that provides a near drop-in replacement for Microsoft Office. Users report that little or no training is required for people migrating from other office suites - everything works the way people expect.</p>
<p class='indent'>The free office productivity software suite features key desktop applications - including word processor, spreadsheet, presentation and drawing programs - in more than 25 languages. In addition, OpenOffice.org 1.0 works transparently with a variety of file formats, enabling users to exchange documents freely with users of other office suites, such as Microsoft Office and StarOffice [tm] 6.0 software. OpenOffice.org 1.0 software is stable and runs natively on multiple platforms, including Linux, PPC Linux, Solaris [tm], Windows and many other flavors of Unix, and will fully support Mac OS X and Darwin upon completion of the port.</p>
<p class='indent'>OpenOffice.org 1.0 is the culmination of more than 2 years of collaborative effort by members of the OpenOffice.org community, which is comprised of Sun employees, volunteers, CollabNet, and end users, all working to create a world-class international office suite that will run on all major platforms.</p>
<p class='indent'>Written in C++ and with documented APIs licensed under the LGPL and SISSL Open Source licenses, OpenOffice.org allows any knowledgeable developer to benefit from the source. And, because the file format for OpenOffice.org is XML, interoperability is easy, making future development and adoption more certain.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q2"><strong>Question:</strong></a> What are we announcing today?</p>

<p class='indent'><strong>Answer:</strong> Today, OpenOffice.org and the OpenOffice.org Mac OS X/Darwin porting team announces the release of OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta).</p>
<a href="#top">Top</a>
<hr>
<p><a name="q3"><strong>Question:</strong></a> Who can / should use this software?</p>

<p class='indent'><strong>Answer:</strong> The release announced today brings OpenOffice.org 1.0 to all users running Apple's Mac OS X v10.2 or higher operating system (v10.1 binaries will be available soon), as well as Apple's open-source Darwin OS.  Mac users can now download the OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta) and begin deploying this free office suite for day-to-day use as near total replacement for Microsoft Office on their Mac OS X-based computers.</p>
<p class='indent'>OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta) offers Mac users
  the same open file formats, unlimited language portability and cross-platform
  compatibility enjoyed by users across all the other supported platforms, including
  Linux, Windows, Solaris and FreeBSD. Users can 'OPEN' and 'SAVE AS' MS Office
  file formats and will enjoy the confidence of permanent file access granted
  by OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)'s use the international
  standard XML file format specification.</p>

<a href="#top">Top</a>
<hr>
<p><a name="q4"><strong>Question:</strong></a> What can the OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta) release do today?</p>

<p class='indent'><strong>Answer:</strong> All four main components of the OpenOffice.org suite, Writer, Draw, Calc, and Impress, may be used productively to create, save, load, print, present, and manipulate all common types of documents. OpenOffice.org offers compatibility with Microsoft Office file formats, allowing any Microsoft Office file to be opened and manipulated natively.</p>

<p class='indent'>Improvements over our previous Beta version include:
<ul>
<li>Full international language and keyboard support for editing, display, and printing
<li>Improvements in font support and font antialiasing
<li>Improved printing support, including automatic recognition of all 10.2 printers in the Mac OS X Print Center

<li>Seamless "Print to PDF" support
<li>Mozilla address book connectivity
<li>Audio support (OS X only)
<li>JDBC support for database accessibility
<li>Automatic URL handling (clicking a URL fires up appropriate OS X application) (OS X only)
<li>Improved version of Start OOo program for better Finder and OroborOSX/XDarwin integration
</ul><p class='indent'></p>

<p class='indent'>Still, while this release is not final and is intended to solicit public feedback, bug reports, and to attract developers to the project, it is feature-complete for our first X11 (Final) release.  The main focus will be on fixing bugs in the Final Beta to allow for a full Final release in Spring 2003.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q5"><strong>Question:</strong></a> What is OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)?</p>

<p class='indent'><strong>Answer:</strong> Today's release of the software will be followed closely by the full OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final) release.  In the interim, the Final Beta release is intended for general public consumption to help the OpenOffice.org team fix bugs before the 1.0 X11 (Final) version is released.  The X11 Final Beta still requires the XWindows windowing system from the XFree86 project.</p>
<p class='indent'></p>Work will be ongoing to create a stable, bug-free port based on OpenOffice.org 1.0.1 (and later 1.1), which will include both the XWindows version and a Mac OS X Quartz/Aqua graphics version, but more developers are needed. Everyone is invited to join the project and lend a hand!<p class='indent'></p>
<a href="#top">Top</a>
<hr>
<p><a name="q6"><strong>Question:</strong></a> What does the X11 graphics mean?</p>

<p class='indent'><strong>Answer:</strong> The XWindow System, version X11R6, is a set of libraries and programs that implement core components of a Graphical User Interface. As a Unix standard, the XWindow system is consequently able to run on Apple's Mac OS X and its Darwin core, providing the base for OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta). The XWindow System is hugely popular with Unix and Linux operating systems, and that support was leveraged to create the version of OpenOffice.org for Mac OS X and Darwin released today.  While applications that leverage the XWindow System do not have the Aqua look and feel that Mac users are accustomed to, they are just as functional as any other Mac OS program.</p>

<a href="#top">Top</a>
<hr>
<p><a name="q7"><strong>Question:</strong></a> When will OpenOffice.org 1.0 for Mac OS X and Darwin (Final) be officially released?</p>

<p class='indent'><strong>Answer:</strong>  There are really two answers to this question.  First, the OpenOffice.org Mac OS X/Darwin porting team is scheduled to release an OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final) version in Spring 2003.  This release will still require software from the XFree86 project to run, specifically the XWindows windowing system, but will be a full, final, production release of the OpenOffice.org 1.0 office suite for Mac OS X and Darwin.</p>
<p class='indent'>For the full Mac OS X native, Aquafied version of OpenOffice.org with a Mac look &amp; feel, there is no set release date since it depends on the help available. The more developers that join the porting team to work on the OpenOffice.org Mac OS X and Darwin ports, the quicker development will proceed. Even after development is complete there will still need to be testing, bug fixing, internationalization, and other tasks such as authoring of end-user documentation. However, progress is being made and help is needed to reach this goal more quickly.</p>
<a href="#top">Top</a>
<hr>

<p><a name="q8"><strong>Question:</strong></a> How can I help the OpenOffice.org Mac OS X/Darwin porting team?</p>

<p class='indent'><strong>Answer:</strong> Get involved! Join the OpenOffice.org Community and participate in development; all are welcome. Even if you don't have programming experience, your help would be greatly appreciated. There is much to be done on the Mac OS X/Darwin port, including finishing missing implementations, fixing bugs, working on documentation, evangelizing OpenOffice.org, and testing. To join the project and project mailing lists, see <a href="/project/porting/mac/">http://porting.openoffice.org/mac/</a> and join the team!</p>
<a href="#top">Top</a>
<hr>
<p><a name="q9"><strong>Question:</strong></a> What are the limitations of the OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)?</p>

<p class='indent'><strong>Answer:</strong> This release is not a full Final release, but is feature-complete;  all that remains before an X11 Final release is to fix bugs uncovered in the Final Beta.  It is also intended to show developers and users the potential of the OpenOffice.org suite and to attract interest in finishing the Mac OS X and Darwin ports. Also, the Aqua interface version is not available at this time as it is currently under heavy development. The Mac OS X/Darwin porting team hopes that interested developers will join up with the team to finish the missing parts of the Mac OS X and Darwin ports.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q10"><strong>Question:</strong></a> When will an Aqua version be available?</p>

<p class='indent'><strong>Answer:</strong> The Quartz/Aqua build represents a substantial amount of work on the OpenOffice.org user interface, and there is much still to be done. The more developers the Mac OS X/Darwin port of OpenOffice.org attracts, the faster progress will be. At this point, there is no estimated time of completion for the Aqua native interface due the amount of work yet to be done and the number of contributing developers.  Our <a HREF="/project/porting/mac/timeline.html">timeline for development</a> offers an estimate of project course with the current resources available to us.  As always, these delivery dates can be moved up with increased involvement from the community.</p>

<a href="#top">Top</a>
<hr>
<p><a name="q11"><strong>Question:</strong></a> Will OpenOffice.org 1.0 run on OS 9 and earlier operating systems?</p>

<p class='indent'><strong>Answer:</strong> No, it will not. The current Macintosh porting effort for OpenOffice.org is targeting Mac OS X v10.1 and higher. There is no porting team working on support for older operating systems. Because of the technical differences between OS X and older operating systems and how they are used in the porting code, older Mac OS releases are essentially a different operating system for the purposes of the OpenOffice.org source code. Supporting OS 9 and earlier releases would require a second porting team to start from scratch. There are no plans to create an OS 9 porting team at this time.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q12"><strong>Question:</strong></a> What support is offered with the OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta)?</p>

<p class='indent'><strong>Answer:</strong> This is a Final Beta, and therefore comes with no formal user support. Instead, get involved with OpenOffice.org and help the project out! There are a number of OpenOffice.org mailing lists to which questions, problems, and issues can be posted. These can be found at <a href="/project/porting/">/project/porting</a>.  There is a testing forum (Testing - Mac OS X) at www.ooodocs.org specifically for issues with the Mac OS X/Darwin port. Instructions for building OpenOffice.org are posted at the Mac OS X/Darwin porting section of <a href="/project/porting/">/project/porting/</a>, and anyone who is interested is encouraged to try the build out and to join the porting project.</p>
<a href="#top">Top</a>
<hr>

<p><a name="q13"><strong>Question:</strong></a> What are the objectives of OpenOffice.org?</p>

<p class='indent'><strong>Answer:</strong> The objectives of OpenOffice.org are to:
<ul>
  <li> Provide a free open source office suite in many languages and on many platforms;</li>
  <li> Provide open access to the source code;</li>

  <li> Establish open productivity XML-based file formats and language-independent component APIs;</li>
  <li> Enable innovation, which will build the next generation of open network productivity services.</li>
</ul><p class='indent'></p>
<a href="#top">Top</a>
<hr>
<p><a name="q14"></a><strong>Question:</strong> Why is OpenOffice.org significant?</p>

<p class='indent'><strong>Answer:</strong> It is important for many reasons: 

<ul>
  <li> Total cost of ownership is favorable, the office suite is free!;</li>
  <li> Open file formats give continuous file compatibility over time and compatibility with files generated with other suites;</li>
  <li> Multi lingual, Multi platform - every one can standardize on it and it is ideal for anyone in an environment using mixed operating systems;</li>
  <li> Stability and features are strong and getting stronger;</li>

  <li> Ease of use - Training is not an issue, anyone who had used an office suite will find OpenOffice.org intuitive;</li>
  <li> Future modules and developments are positive:</li>
  <li> A future groupware project, working on developing functionality sufficient to make OpenOffice.org a complete replacement for Microsoft office plus MS Exchange server;</li>
  <li> XMerge (plug-in Java based framework for converting documents between formats for hand held devices). Allows you to view, edit and format the original document within your handheld. Not feasible without XML.</li>
</ul><p class='indent'></p>

<a href="#top">Top</a>
<hr>
<p><a name="q15"><strong>Question:</strong></a> What role has Sun Microsystems, Inc., had in the Mac OS X/Darwin port so far?</p>

<p class='indent'><strong>Answer:</strong> Sun has been extremely helpful in support of all the porting projects, including the Mac OS X/Darwin port. In addition to actually releasing the OpenOffice.org source code under license to the community in the first place, Sun engineers have contributed code, assistance, and support to the Mac OS X/Darwin porting team.</p>
<p class='indent'> Sun continues to sponsor and support the innovation in the OpenOffice.org community and remains a strong supporter for the use of open standards in the industry. It is critical for all of Sun's customers that there be open, viable, cutting-edge office productivity software available to run in the heterogeneous network and across all platforms. OpenOffice.org makes it possible. Through open standards and by expanding the market for product implementations based on open standards Sun can lead through hardware and related services. Sun believes 'innovation happens elsewhere' and the OpenOffice.org community has shown true creativity and innovation both in development and marketing of OpenOffice.org 1.0.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q16"><strong>Question:</strong></a> What is Apple Computer, Inc.'s involvement with the project?</p>

<p class='indent'><strong>Answer:</strong> Apple Computer, Inc. is generally very supportive of Open Source development, including projects such as the Mac OS X/Darwin port of OpenOffice.org, but has no formal relationship with OpenOffice.org or the Mac OS X/Darwin porting team.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q17"><strong>Question:</strong></a> What prevents someone from moving from Microsoft Office v.X to OpenOffice.org on Mac OS X?</p>

<p class='indent'><strong>Answer:</strong> The OpenOffice.org Mac OS X/Darwin porting team members have actually been using OpenOffice.org 1.0 for all their office-suite needs since October 2002.  With the release of OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta), the port is almost ready for prime-time, and needs only heavy testing and the resulting bug fixes to be a complete office suite on Mac OS X and Darwin.  As always, more developers are needed and welcomed to help the port move along and begin to look and behave like a native Mac OS X application.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q18"><strong>Question:</strong></a> What is the difference between Sun's StarOffice 6.0 [tm] and OpenOffice.org 1.0?</p>

<p class='indent'><strong>Answer:</strong> OpenOffice.org 1.0, which shares the same code base as Sun's StarOffice 6.0 [tm] software is - like StarOffice - a full-featured office suite that provides a near drop-in replacement for Microsoft Office. OpenOffice.org 1.0 offers software freedom, enabling a free market for service and support, while the Sun-branded product, StarOffice 6.0 software, offers fee-based support and training, along with deployment and migration services.</p>
<p class='indent'>StarOffice 6.0 [tm] includes some proprietary code in the form of third-party licensed technology, which is not available in OpenOffice.org 1.0. Examples of this third-party technology include: 
<ul>

  <li>Certain fonts (including, especially, Asian language fonts) 
  <li>Dieckmann spell checker (OpenOffice.org has a community developed open source spellchecker) 
  <li>The database component (Adabas D) 
  <li>Certain file filters 
  <li>Extensive clip art gallery 
</ul>
<p class='indent'>OpenOffice.org 1.0 is available in 27 different languages with new language ports being added continuously.  The suite has been ported to other operating system platforms, including Linux (both Intel and PPC), Solaris, Windows, and FreeBSD, with other ports continuously in development.<p class='indent'></p>
<a href="#top">Top</a>
<hr>
<p><a name="q19"><strong>Question:</strong></a> Will there ever be a StarOffice for Mac OS X?</p>

<p class='indent'><strong>Answer:</strong> Sun Microsystems has no current plans to bring the StarOffice suite to Mac OS X. However, Sun contributed much of the base and core technologies for the current Mac OS X/Darwin port, and the Mac OS X/Darwin porting team is working hard to finish it. Sun continues to provide support to the OpenOffice.org community, and therefore the Mac OS X/Darwin porting project.</p>

<a href="#top">Top</a>
<hr>
<p><a name="q20"><strong>Question:</strong></a> Where can I get more information about OpenOffice.org?</p>

<p class='indent'><strong>Answer:</strong> The OpenOffice.org website (<a href="/">/</a>) is the best location for up-to-date information on OpenOffice.org. For more information about the Mac OS X/Darwin port, check out <a href="/project/porting/mac/">http://porting.openoffice.org/mac/</a>.</p>
<hr>
<h3><a name="devquestions">Developer Questions</a></h3>


<p><a name="q21"><strong>Question:</strong></a> From a developer's standpoint, what needs to be done with OpenOffice.org on Mac OS X/Darwin?</p>

<p class='indent'><strong>Answer:</strong> There are a number of modules and functions of OpenOffice.org for Mac OS X/Darwin that either are incomplete in implementation or completely lacking implementation. For example, the Aqua interface implementation is largely incomplete. Other features like Drag &amp; Drop, and full-screen graphics are incomplete for the Quartz/Aqua native version, and only mostly supported in the X11 graphics version. Developers are greatly encouraged to join the porting team at OpenOffice.org and help fill in the missing pieces.</p>
<p class='indent'> See the roadmap at <a href="/project/porting/mac/timeline.html">j/http://porting.openoffice.org/mac/timeline.html</a> for more detailed information on what still needs to be completed.</p>

<a href="#top">Top</a>
<hr>
<p><a name="q21"><strong>Question:</strong></a> What is the state of the build on Mac OS X/Darwin?</p>

<p class='indent'><strong>Answer:</strong> The OOO_STABLE_1_PORTS CVS branch contains code for two versions of the Mac OS X/Darwin port: X11 graphics and Quartz/Aqua graphics. Currently, further patches are also required for Mac OS X/Darwin and Quartz/Aqua functionality and are in the process of commit approval. OpenOffice.org 1.0.1 builds fully and creates an install set for the X11 graphics version. The Quartz/Aqua graphics version does not build completely and many functions are missing. Much more work must be done to bring the Quartz/Aqua version up to par with the X11 version.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q22"><strong>Question:</strong></a> What tools are used to build OpenOffice.org on Mac OS X/Darwin?</p>

<p class='indent'><strong>Answer:</strong> The build process involves heavy use of shell scripts and makefiles, relying on Apple's developer tools, the Mac OS X/Darwin BSD layer, and other open source development software. The compiler currently in use is Apple's version of gcc2, and all debugging must be done from the command line with gdb. Build support for gcc3 is still in progress at this time.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q23"><strong>Question:</strong></a> If I want to help
  or contribute patches, whom should I contact?</p>

<p class='indent'><strong>Answer:</strong> The best thing to do is to join up with the Porting project of OpenOffice.org (<a href="/project/porting/">http://porting.openoffice.org</a>) and subscribe to the mailing lists there. The current Mac OS X/Darwin development team reads those lists and responds to questions posted there. For patches over 10 lines of code, the author must have signed the Joint Copyright Agreement (JCA) and filed it with the OpenOffice.org project. Then the changes can be submitted to a Mac OS X/Darwin committer, the general procedure of which is normal for most open source projects.</p>

<a href="#top">Top</a>
<hr>
<p><a name="q24"><strong>Question:</strong></a> What kind of hardware does a developer need to work on the OS X OpenOffice.org port?</p>

<p class='indent'><strong>Answer:</strong> The best you can get your hands on. OpenOffice.org is a large and complex project. To get reasonable performance while building and debugging, developers should probably have a G4-based Macintosh running Mac OS X v10.1 or higher. It is recommended that the machine have at least 300 MB of RAM and 3GB of free hard disk space to perform a build. Developers can probably work on the port with older hardware but it will require quite a bit of patience.  Still, a full compile of the source code takes about 12 - 16 hours on fast machines.</p>
<a href="#top">Top</a>
<hr>
</div>
</body>
</html>

