start

# Training on ooo-build

## Introduction

### Purpose

- Simplify building OpenOffice.org
- System for maintaining patch sets
- Some enhancements to the build system
- Enhance community around building

### Resources

Learn how to use these! They will make your life much easier!

- Use the new wiki at http://wiki.services.openoffice.org/wiki/
- openoffice@lists.ximian.com mailing list
- IRC chat - #OpenOffice.org and #go-oo on freenode
- Standard OpenOffice.org mailing lists
- Issuezilla
- http://planet.go-oo.org/

### Attitude

- Perseverance
- Willingness to ask questions
- Willingness to get stuck in and try work it out yourself

## Run through Build

### Basic Building

Hands-on building based on source tree. Follow Getting It, Building, Installing, Running on wiki (for Linux)

- write simple shell script to remember your config options, use autoconf.sh if you’re going to tweak configure.in
- Use tee -a to create logs of builds
- --html in build call is nice too
- You have to follow a cycle of waiting for an error, fixing it and continuing.

While the build is in process deal with other issues.

### dealing with build problems

- Look at what the error message is, where it happens
- Work out the key phrases from the log files
- Search issuezilla, see if you can find it
- If not file an issue first while you try figure it out
- Make sure issues / reports are clear and make it easy for others to understand
- If you fix it yourself, mark the issue fixed and explain how you did it - then others can learn
- if the problem relates to ooo-build - patches etc, then next step after filing is IRC
- if its a more general problem then use the dev mailing list for the appropriate project (subscribe!)
- always try and make sure that if somebody finds your mail /issue and you fixed the problem you explained how
- Keep notes! Wikis etc

#### Typical problems

- Perl Modules need installing. Use CPAN
- Library development files need installing. Use your package manager
- Java - really easier with Sun’s Java, particularly if you have an old gcj

#### Patch problems

- Sometimes a patch hasn’t been applied but is in applied_patches. Remove it from there, remove stamp/patch.apply, run Make again
- When patches fail to apply you can fix them up or exclude them from the list of patches by commenting them out in the apply file
- If things get too hard, ask for help
- If things get totally messed up, make clean / make distclean and start again (ccache helps here)

### ooo-build source structure

- configure command, options
- bin directory - description of different files in wiki
- src directory - downloads required files here (uses bin/download)
- patches directory, how apply works, unapplying reapplying etc
- how to deal with patches that don’t apply / cause problems
- stages - configure, download, unpack, patch, create themes etc, build

### Building for localization

- --with-lang flags
- where to put the GSI files (src dir)
- rebuilding quickly
- generated install files - basic language included in install, language packs
- resource files and config that contains localization
- disk space etc

### Dictionaries

- see install-dict etc in bin directory
- can add dictionaries in src dir like GSI files - picks up if right name
- list of dictionaries in bin/install-dictionaries
- this does some hacking to the install structure, not tested by me
- --without-myspell-dicts option is default in configure, this might cause problems

### Building on Windows

- Your life is much easier with ooo-build
- You really need the full version of Visual Studio unless you want to hack around
- Also all the SDKs etc they say - download them all to start with!
- Install into standard directories to save yourself headaches
- Hopefully some day this will work simply with free compilers
- ooo-build should automatically find all the right stuff
- cygwin snapshots etc for freezes, how to unfreeze stuff
- Generates MSI files, you can also copy modified things into a build tree

## Testing and Debugging

- Install, run, check everything looks translated!
- If not you have to dig into the files, but most often the process works, so check your translations

## Submitting stuff back

- Get on the dev@l10n.openoffice.org mailing list
- Have an account on openoffice.org
- Submit issues for ihi with your GSI files
- Keep track of release times, try and get your GSI files up to date
- Pavel does community builds too (but you’re doing your own) - but nice to get the official builds right