OpenOffice.org

Project :

Mac OS X port

Design : Ben Bois ben@hooboo.com

Introduction

Mac port in the Project

Mac porting project objectives

Todo and roadmap

Connect With the OOo Developer Teams

Summary

Introduction

Speaker introduction :

Eric Bachard,

Professor of Applied Physics, UTBM (France)

Developer

Porting project Co-Lead

OpenOffice.org Project

... a brief history

First working version of OpenOffice.org 2.0

on Mac OS X: january 2005

Mac Intel port : january 2006

Work in progress : Aqua port ( sched : 2007 )

( no X11 / Aqua Look and feel )

OpenOffice.org Project is ...

A Community Project

( LGPL for code , PDL for documentation)

Multi OS ( Linux , Windows, Mac OS X, Solaris, FreeBSD, OpenBSD, OpenVMS )

Multi architectures (Intel, PowerPC, ARM, Alpha ...including 32, 64bits )

Everything is project in OpenOffice.org

Accepted projects : framework, gsl, porting ... (24)

Native Lang Community (72 )

Incubator projects (14 )

WebWork ( 5)

Languages used in OpenOffice.org :

C++ : ~ 90 %

Java	: <4,5%

Ansi C : ~ 2,5 %

Perl	:	1%

Other (11 ) < 2 %

Source : http://blogs.linux.ie/caolan/2007/01/

Mac port in the project

Sources are common, organized in 150 modules (supposed independant)

OpenOffice.org is a framework

the code is old

nothing was existing for Mac OS X port (only an Unix port , including X Windows server, aka X11)

Mac Intel port :

works since January 2006

Available for both PowerPC and Intel (two separate binaries)

Official since 2.0.3 on X11 version

Mac porting project objectives

Provide a real Mac Application

get rid of X11

respect the Aqua Look

respect Aqua Human Interface Guidelines

Programming Requirements :

Good C/C++ knowledge (important)

basic knowledge of the UNIX command line

Know the Carbon API

Own a Mac ...

What do we have to do?

Implement :

direct access to Apple graphical engine, using Apple API: Quartz2D/CoreGraphics (and replacing Xlib use)

native events management, using CarbonEventManager (replacing Xlib management)

Implement :

native font use, using Apple Type Server and ATSUI (for Unicode Imagery) (replacing X11 management)

native Drag and drop,

native sound, using QuickTime (replacing Java Media Framework):

Native Filepicker

Native Printing: current uses cups, but native printing is mandatory

Where is located the code to be modified?

Most of the changes are located in vcl (Visual

Class Layer), for everything graphical, events, fonts,

rendering and printing.

Other, for sound and movies will be in avmedia (where the player is implemented in OpenOffice.org sources).

For drag and drop, dtrans is concerned (Pasteboard Manager implementation)

Filepicker : fpicker, sfx2, scp2, vcl

How will the new implementation be tested?

In vcl module", a toy called svdem is built at buildtime. This binary is linked to libvcl* and so all new stuff can be tested.

e.g. : draw anti-aliased lines works well.

Everything implemented in aqua vcl code :

will be included in libvclplug_aqua,

svdem source code will contain a specific part to proceed tests.

The magic is:

When all needed features will work with svdem, it will work in the new version of OpenOffice.org !!

Todo and roadmap

Step 1 :

Fix Top 10 of issues, to provide a public version : proof of concept

concerned: crashes, windows refresh, missing functions for fonts, cursor .. to make the aqua version usable (not for production)

Step 2

Code review

Integrate aquavcl01 cws

Start basic QA ( manual tests first, feedback from users .. )

Implement missing parts :

- filepicker, sound , drag and drop, printing ...

Step 3

Beta

Complete QA

Step 4

Complete integration

First Aqua version ( 1.0 )

Connect With the OOo Developer Teams

IRC Channels :

server : irc.freenode.net

channel : #ooo_macport

Site : http://porting.openoffice.org/mac

Mailing lists :

dev@openoffice.org: general developers mailing list

mac@porting.openoffice.org: mac porting specific list

dev@gsl.openoffice.org: vcl specific list (more on vcl later)

Design : Ben Bois ben@hooboo.com

eric

2007-02-12T18:40:40