blob: ad80b93ec9ca1b80e4f630f49a30f63d2cbef45f [file] [log] [blame]
<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h1>What Still Needs to be Done to Complete the Mac OS X 10.0.x Port?</h1>
</font></b>
<p> As of the OO638C release tag, only the modules in the Abstraction and
Infrastructure Layers of OpenOffice.org have been ported. Accordingly, a full
build of OpenOffice.org is not possible at this time. The purpose of this document
is to provide a list of all of the known tasks that need to be done to create
an installable and runnable version of OpenOffice.org for Mac OS X 10.0.x. </p>
<p> For all items in the list, it is assumed that the developer has been able
to build all of the modules in the Abstraction and Infrastructure Layers of
OpenOffice.org and can successfully run their test programs. For instructions
on how to build the Abstraction and Infrastructure Layers of OpenOffice.org
on Mac OS X 10.0.x, <a href="build_mac.html">see the build instructions.</a> </p>
<p> <b>Warning:</b> This list is only applicable to the OO638C release
tag and Mac OS X 10.0.x. Due to the continuing enhancement in functionality of OpenOffice.org, developers
may find tasks that need to be done that are not on this list.</p>
<table cellpadding="4" cellspacing="1" bgcolor="#ffffff" width="100%">
<tr>
<td colspan="2" bgcolor="#00315A" align="CENTER"><font color="#FFFFFF" face="Arial, Helvetica" size="2"><b>List
of Remaining Mac OS X 10.0.x Porting Tasks</b> </font></td>
</tr>
<tr>
<th bgcolor="#99CCFF" align="CENTER"><font color="#00315A" face="Arial, Helvetica" size="2"><b>
Task </b> </font> </th>
<th bgcolor="#99CCFF" align="CENTER"><font color="#00315A" face="Arial, Helvetica" size="2"><b>Description
</b></font></th>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Get remaining modules to compile</td>
<td bgcolor="#f0f0f0" valign="top"> As of the OO638C release tag, about
half of the modules are able to be compiled on Mac OS X 10.0.x. Hence, the remaining
modules need to be made to compile before the installation program and
OpenOffice.org itself can be run. Although nearly all of the code in the
remaining modules is platform independent, developers will find many
instances where the code will not compile without some changes. Most of
the required changes will fall into one or more of the following categories:
<ul>
<li> Mac OS X 10.0.x compiler and other technical issues - For an extensive list
of such issues, <a href="http://porting.openoffice.org/mac/macosx_issues.html">see
the issues page. </a></li>
<li> Missing native code - By default, if there is native windowing code,
the build will try to build the X11-based windowing code. In such cases,
you will need to create a new platform-dependent directory and create
the necessary C++ class implementations and C functions to support Mac
OS X's windowing APIs. For an example of how to create a new platform-dependent
directory, take a look at the dtrans/source/aqua and the dtrans/source/X11
directories in the source code. </li>
</ul>
</td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Unicode font support</td>
<td bgcolor="#f0f0f0" valign="top"> The current code only supports printing
of ASCII characters and only supports printing using the default system
font. In order to support the Western European languages that OpenOffice.org
supports on other platforms, printing of Unicode characters needs to be
implemented. Also, in order for OpenOffice.org to have a smooth appearance,
support for multiple fonts and font sizes needs to be implemented. The current
font support for Mac OS X 10.0.x is implemented in the vcl/aqua/source/gdi source
directory. </td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Java 1.2 JNI support</td>
<td bgcolor="#f0f0f0" valign="top"> The Java 1.1 JNI APIs do not work correctly
in Mac OS X 10.0.x's native Java Runtime Environment (JRE). So, the current Java
support for Mac OS X 10.0.x uses Java 1.2 JNI APIs. This implementation, however,
is very minimal, in that the only configuration that has been implemented
is setting of the JRE's CLASSPATH. In order for OpenOffice.org to properly
interact with the Java 1.2 JNI APIs, the implementation needs to be expanded
to include setting of the following items:
<ul>
<li>JRE command line options (e.g. stack size, debug port, etc.)</li>
<li>System properties</li>
</ul>
The current JNI API support for Mac OS X 10.0.x is implemented in the stoc/source/javavm
source directory. </td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Dialog modality</td>
<td bgcolor="#f0f0f0" valign="top"> OpenOffice.org's vcl module does not rely
on native code to implement modal windows. Instead, the platform-independent
code uses emulated modality by controlling the stacking order of modeless
windows. In the current implementation, the code controlling the stacking
order is not connected to the Mac OS X 10.0.x native windows. The current Mac OS
X native event handling support is implemented in the vcl/aqua/source/app
source directory and the platform-independent event processing is in the
vcl/source/window source directory. </td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Setup program native code</td>
<td bgcolor="#f0f0f0" valign="top"> The setup program uses some native event
handling code to control the installation process. This native code has
been implemented. However, it has not been tested. Hence, some debugging
should be expected. The current native event handling code for the setup
program is in the setup2/aqua/source/loader source directory.</td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Printer support</td>
<td bgcolor="#f0f0f0" valign="top"> No printing support has been implemented.
In the OO638C release tag, all of the printing related C++ methods
contain empty implementations. Hence, these empty methods need to be implemented
to enable the following OpenOffice.org functionality:
<ul>
<li>Printer identification and selection</li>
<li>Rendering to the selected printer</li>
</ul>
The empty C++ methods for printer support are in the vcl/aqua/source/gdi
source directory. </td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Full screen graphics support</td>
<td bgcolor="#f0f0f0" valign="top"> No full screen graphics support has been
implemented. In the OO638C release tag, all of C++ methods that route
text and graphics rendering to the desktop contain empty implementations.
Hence, these empty methods need to be implemented to enable OpenOffice.org's
full screen functionality used within OpenOffice.org's presentation code.
The empty C++ methods for full screen graphics support are in the vcl/aqua/source/window
source directory. </td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Sound support</td>
<td bgcolor="#f0f0f0" valign="top"> No sound support has been implemented.
In the OO638C release tag, all of C++ methods that enable loading
and playing of sound files contain empty implementations. The empty C++
methods for sound support are in the vcl/aqua/source/gdi source directory.
</td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Copy and paste support</td>
<td bgcolor="#f0f0f0" valign="top"> No copy and paste support has been implemented.
In the OO638C release tag, all of UNO C++ methods that enable copying
and pasting of multiple content types contain empty implementations. The
empty C++ methods for copy and paste support are in the dtrans/source/aqua
source directory. </td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Drag and drop support</td>
<td bgcolor="#f0f0f0" valign="top"> No drag and drop support has been implemented.
In the OO638C release tag, all of UNO C++ methods that enable dragging
and dropping of multiple content types contain empty implementations. The
empty C++ methods for drag and drop support are in the dtrans/source/aqua
source directory. </td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Database support</td>
<td bgcolor="#f0f0f0" valign="top"> OpenOffice.org requires the Berkeley DB
database to support its internal database functionality on Linux. Hence,
this piece of open-source software might be required on Mac OS X 10.0.x as well.
If this software is required, it will need to be ported to Mac OS X 10.0.x. Links
to the Berkeley DB source code can be found at <a href="http://www.sleepycat.com">www.sleepycat.com</a>.
</td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">OpenGL graphics support</td>
<td bgcolor="#f0f0f0" valign="top"> OpenOffice.org uses the OpenGL APIs to
render 3D graphics. In the OO638C release tag, all of C++ methods
that connect the platform-independent code in the vcl module to the native
OpenGL functions contain empty implementations. The empty C++ methods for
OpenGL support are in the vcl/aqua/source/gdi source directory. </td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">Encapsulated PostScript (EPS) graphics
support</td>
<td bgcolor="#f0f0f0" valign="top"> OpenOffice.org supports rendering of EPS
to windows and printers. In the OO638C release tag, all of C++ methods
that support rendering of EPS contain empty implementations. The empty C++
methods for rendering EPS are in the vcl/aqua/source/gdi source directory.
</td>
</tr>
<tr>
<td bgcolor="#f0f0f0" valign="top">3rd party plugin support</td>
<td bgcolor="#f0f0f0" valign="top"> OpenOffice.org makes use of third party
libraries to perform some functionality on other platforms. These libraries,
like Netscape or Internet Explorer plugins, can render graphics within a
clip region of an OpenOffice.org window. No third party plugins are known
to be required for OpenOffice.org to run on Mac OS X 10.0.x. However, if a third
party plugin is needed or desired, the SalObject C++ class will need to
be implemented for Mac OS X 10.0.x. In the OO638C release tag, all of SalObject
C++ methods contain empty implementations. The empty SalObject C++ methods
are in the vcl/aqua/source/window source directory. </td>
</table>
</body>
</html>