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

<div class='Acta1'>
<h2>FAQ for OpenOffice.org 1.0.3 for Mac OS X (X11)</h2>
<p><em>Last updated 2003-06-21 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 1.0.3?</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="#q4">What can the OpenOffice.org 1.0.3 for Mac OS X (X11) release do today?</a></dd>
		<dd><a href="#q6">What does the (X11) mean?</a></dd>
		<dd><a href="#q8">How can I help the OpenOffice.org Mac OS X/Darwin porting team?</a></dd>
		<dd><a href="#q9">What are the limitations of the OpenOffice.org 1.0.3 for Mac OS X (X11)?</a></dd>
		<dd><a href="#q10">When will a fully native Aqua version be available?</a></dd>
		<dd><a href="#q11">Will OpenOffice.org 1.0 run on OS 9 and earlier operating systems?</a></dd>
		<dd><a href="#q12">What support is offered with the OpenOffice.org 1.0.3 for Mac OS X (X11)?</a></dd>
		<dd><a href="#q13">What are the objectives of OpenOffice.org?</a></dd>
		<dd><a href="#q14">Why is OpenOffice.org significant?</a></dd>
		<dd><a href="#q15">What role has Sun Microsystems, Inc., had in the Mac OS X/Darwin port so far?</a></dd>
		<dd><a href="#q16">What is Apple Computer, Inc.'s involvement with the project?</a></dd>
		<dd><a href="#q17">What prevents someone from moving from Microsoft Office v.X to OpenOffice.org on Mac OS X?</a></dd>
		<dd><a href="#q18">What is the difference between Sun's StarOffice 6.0 [tm] and OpenOffice.org 1.0?</a></dd>
		<dd><a href="#q19">Will there ever be a StarOffice for Mac OS X?</a></dd>
		<dd><a href="#q20">Where can I get more information about OpenOffice.org?</a></dd>
	
  <dt><a href="#devquestions"><strong>Developer Questions</strong></a></dt>
	
		<dd><a href="#q21">From a developer's standpoint, what needs to be done with OpenOffice.org on Mac OS X/Darwin?</a></dd>
		<dd><a href="#q22">What is the state of the build on Mac OS X/Darwin?</a></dd>
		<dd><a href="#q23">What tools are used to build OpenOffice.org on Mac OS X/Darwin?</a></dd>
		<dd><a href="#q24">If I want to help or contribute patches, whom should I contact?</a></dd>
		<dd><a href="#q25">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 1.0.3?</p>

<p class='indent'><strong>Answer:</strong> OpenOffice.org 1.0.3 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.3 software is stable and runs natively on multiple platforms, including Mac OS X, Linux, PPC Linux, Solaris [tm], Windows and many other flavors of Unix.</p>
<p class='indent'>OpenOffice.org 1.0.3 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 the best 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 announce the end-user release of OpenOffice.org 1.0.3 for Mac OS X (X11), available for immediate download.</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.3 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.3 for Mac OS X (X11) 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.3 for Mac OS X (X11) 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.3 for Mac OS X (X11)'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.3 for Mac OS X (X11) 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'>Features include:
<ul>
<li>Full international language and keyboard support for editing, display, and printing 
<li>Clear, smooth font antialiasing for professional-looking documents
<li>Tight integration with the Mac OS X Printing System, including USB &amp; Rendezvous shared printers
<li>Seamless integration with the Mac OS X Finder, through the Start OpenOffice.org launcher application
<li>Easy-to-use "Print to PDF" support 
<li>Mozilla address book connectivity 
<li>Audio support (Mac OS X only) 
<li>JDBC support for database accessibility 
<li>Automatic World Wide Web hyperlink handling, using normal Mac OS X applications
</ul><p class='indent'></p>
<a href="#top">Top</a>
<hr>
<p><a name="q6"><strong>Question:</strong></a> What does the (X11) 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.3 for Mac OS X (X11). 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.  This release is designed to function with both Apple's X11 product and releases from the volunteer XFree86 project.</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, creating better graphics for the Mac port, 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.3 for Mac OS X (X11)?</p>

<p class='indent'><strong>Answer:</strong> This is full end-user release.  It is believed that no bugs beyond the minor ones mentioned as "known issues" exist, or were not found in the intensive testing period leading up to this release.  However, if bugs are found and reported, they will be worked on and hopefully fixed.  Some features, like embedable internet plugins, Java applets, and some OLE objects will never work with the X11 release.  Also, a fully native 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, most importantly the Aqua interface.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q10"><strong>Question:</strong></a> When will a fully native 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.3 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.3 for Mac OS X (X11)?</p>

<p class='indent'><strong>Answer:</strong> Because OpenOffice.org is a volunteer, not-for-profit, informal group, this release comes with no user support. Vendors may, however, re-package this release and sell it with support to the extent allowed under the LGPL and SISSL licenses.  If informal support is desired, 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/index.html">/project/porting</a>.  There is a testing forum (Testing - Mac OS X) at http://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/index.html">/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.3 for Mac OS X (X11), the port is completely ready for prime-time.  Still, 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>
<a href="#top">Top</a>
<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">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="q22"><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. OpenOffice.org 1.0.3 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="q23"><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, awaiting updated development tools from Apple.</p>
<a href="#top">Top</a>
<hr>
<p><a name="q24"><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/index.html">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="q25"><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 8 - 12 hours on fast machines (Dual 1.25GHz+).</p>
<a href="#top">Top</a>
<hr>
</div>


     
   
</body>
</html>

