Education ClassRoom/Practice

From Apache OpenOffice Wiki
< Education ClassRoom
Revision as of 12:44, 28 September 2008 by Ericb (Talk | contribs)

Jump to: navigation, search


Objective : create exercices, to practice tools used for development

TODO : define a list of items

Join the Project

Login and accounts

Find a page or a document

  • Find the web page for your own locale in project ( e.g. )
  • Find the Coding Guidelines on the Wiki ( and read it ... )
  • Find the page about cws ( Child Workspace )
  • Find mailing list archive
  • Subscribe to mailing list if you didn't yet
  • Extract mails 10 to 14 from any mailing list

Bonsai use

  • Discover Bonsai
  • Visualize changes in a cws

1) Go to

We'll try to do a request :)

2) Don't modify Module (must be All files in the repository ) Remark : note the name "repository "

3) In the Field "Branch" replace HEAD with cws_dev300_aquavcl07

4) in the field "Date" check "Since the beginning of time "

5) do not modify the other fields

6) Click "Run Query"

=> all the changes in the code, based on DEV300_m9 ( we'll explain later) are on the page !!

7) To see the diff for any commit, click in the Rev. columns. Back to retrieve the current page.

Strongly advised : 8) Look carefully at other changes, what information you can obtain here.

Remark: Bonsai helps when you are searching for changes in the code, author date .. precise information about CODE

LXR use

[Complete me]

Checkout the code


- we suppose you have some bash knowledge, and some programming skills

- your .cvsrc file is ok (else ask on )

Now, open a terminal, use bash, and do :

0 ) create the environment

what follows are command lines

If you don't have a proxy

export CVSROOT=""

There is a proxy, and nothing works using the line above:

Let the proxy be ( name ) , and the open port 1234, then just do :

export CVSROOT=":pserver;proxy=;"

And if you ignore the IP address of the gateway, but you know its name, do :

export CVSROOT=":pserver;;"

create TMP dir (command: mkdir TMP )

cd TMP

1) checkout vcl module from DEV300_m31

cvs co -r DEV300_m31 dtrans

Question: what happens ?

Download all tree :

mkdir DEV300_m31

cd DEV300_m31

cvs -4 co -r DEV300_m31 OpenOffice2

( -z4 is optional )

-> once done ( can be very long), and if no error occurs, you got all source code from DEV300_m31 Milestone !!

Create a patch

2) Modify one file, do "cvs up" , and comment on the result

3) using grep , retrieve the name of the milestone in the sources

4) checkout vcl from a cws under development

cvs -z4 co -r cws_dev300_aquavcl07 vcl

5) retrieve the cwsname in the sources

6) analyse the list of the subdirectories vcl contains

7) modify the code in vcl/source/gdi/sallayout.cxx

(write whatever you want, respecting C++ syntax prefered ;)

8) create a diff with the repository

change directory outside of vcl

in the current dir ( TMP ) , do :

cvs diff -u vcl > my_pretty_patch.diff

9) What does contain the patch ?

Apply and Reverse a patch

  • Simulate a patch application
  • Apply it for true

10) How reverse your changes ?

11) Be sure you have enough place on your hard disk ( count 2GB )

Fix a build breaker (most common breakages )

A) Building

Note: add your own experience here !

Missing modules

e.g. missing alias in DEV300_m13 : hyphen module is not checked, causing missing headers, never delivered and then, a breakage in lingucomponent because of undefined functions/methods and so on

Solution: check out hyphen

export CVSROOT=""

Note: there is another solution for experimented devs, using tunnel

cvs co -r DEV300_m13 hyphen

Missing Files
Missing headers
(deprecated) gcc parser issues

B) Hacking

Syntax Errors
Missing headers
Multi inclusions
Linking issues
Personal tools