Modularization/Build Wizard

From Apache OpenOffice Wiki
Jump to: navigation, search

OOo Build Wizard

The OOo Build Wizard

Goal

Lower the barrier of entry for OOo hacking and modularization.

Approach

Graphical access to the OOo source code and support of configuring, building and installing OOo (Custom) versions.

User Workflows

  1. Find a remote (OOo) repository, check it out, configure it, build it, install it.
  2. Find a local repository, re-configure it, ...

Requirements

Basic Functionality

  • Find&clone a repository
  • Update a repository
  • Configure a repository
  • Build a repository
  • Install OOo
  • Delete a repository

3rd Party Software

Libraries
  • Identify required 3rd party code
  • manage 3rd party code (install, de-install)
Build Tools
  • Identify and manage build tools
Advanced Functionality
  • Push a repository
  • Provide a repository
  • Clone a local repository
  • re-build on change

Constraints

  • Single User Interface - The user should be able to fulfill the whole lifecycle of checkout out the source, configuring it, build it, installing it, uninstalling, deleting the source.
  • Automatic dependency satisfaction

GUI Mockup

Bw mockup.jpg

Architecture

  • RepoAccessor - This clones, pushes etc. source code.
  • Configurer - Configures a local clone.
  • Builder - Builds it.
  • Prerequisite Manager (PreqManager) - Manages Prerequisite Providers:
    • Mercurial
    • CygWin
    • All external configurable things, such as
      • libxml
      • gnome
      • ...

RepoAccessor

Give access to the Open Office source code repositories. Allow e.g. "clone" a particular version, which may than be build.

Configurer

Show available build time configuration switches. Allow to set configuration parameters. Ensure that external dependencies are resolved, if applicable.

Builder

Start the build, show progress.

Prerequisites Provider

Ensure that a particular prerequisite is available.

On request the prerequisite provider for CygWin offers to download and to install CygWin.

Tasks

Define sub-tasks and schedules for

  • Configurer - Owned by Cynthia Qu
  • Builder
  • RepoAccessor
  • CygWin prerequisite provider
  • GCC prerequisite provider.
  • MS C++ prerequisite provider.
Personal tools