<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gang65</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gang65"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/Gang65"/>
	<updated>2026-10-19T02:35:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Ubuntu_Build_Instructions&amp;diff=194057</id>
		<title>Ubuntu Build Instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Ubuntu_Build_Instructions&amp;diff=194057"/>
		<updated>2011-02-15T21:22:13Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Ubuntu 9.10 Karmic Koala and Ubuntu 10.04 Lucid Lynx */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
{{Documentation/Note|Please add only Ubuntu-specifics here! Use the information on the [[Development/OpenOffice.org Building Guide/Building on Linux|Building Guide]] and only fall back to this document if you need help with Ubuntu-specifics (like package names).}}&lt;br /&gt;
== Ubuntu 9.10 Karmic Koala and Ubuntu 10.04 Lucid Lynx==&lt;br /&gt;
&lt;br /&gt;
To build you need the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install g++ gcc bison flex libarchive-zip-perl libcups2-dev libpam0g-dev \&lt;br /&gt;
sun-java6-jdk gperf libfreetype6-dev libxaw7-dev libfontconfig1-dev libxrandr-dev patch \&lt;br /&gt;
libgconf2-dev libgnomevfs2-dev ant libgtk2.0-dev junit junit4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the sun jdk you must activate the &amp;quot;ubuntu lucid partner&amp;quot; archive in the software sources.&lt;br /&gt;
&lt;br /&gt;
To make sure that all packages are installed you could just simply run command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get build-dep openoffice.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can build OOo with &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --disable-mozilla --with-junit=&amp;quot;/usr/share/java/junit4.jar&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For other options regarding mozilla code please see [[Documentation/Building_Guide/Building_on_Linux#create_prebuilt_mozilla|here]].&lt;br /&gt;
&lt;br /&gt;
In case you want to get some libraries from the system instead of building them yourself, the following packages are candidates to be installed also:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python-dev ccache libgraphite-dev \&lt;br /&gt;
libwpd8-dev libxslt-dev libdb4.7-dev libneon27-dev libhunspell-dev libaltlinuxhyph-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then follow the &amp;#039;&amp;#039;&amp;#039;[[Documentation/Building Guide|Building Guide]]&amp;#039;&amp;#039;&amp;#039; to continue.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Building]]&lt;br /&gt;
*[[Debug Build Problems]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Distribution-Specific Build Instructions]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Calc/Performance/The_Ou_case&amp;diff=189625</id>
		<title>Calc/Performance/The Ou case</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Calc/Performance/The_Ou_case&amp;diff=189625"/>
		<updated>2010-12-04T20:03:11Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
{{DISPLAYTITLE:The Ou Case}}&lt;br /&gt;
&lt;br /&gt;
Loading a large plain data file takes very long.&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* [http://blogs.zdnet.com/Ou/?p=120 George Ou&amp;#039;s blog entry]&lt;br /&gt;
* [http://www.lanarchitect.net/Examples/200264-l.sxc The test case file] (.sxc), convert to ODF .ods for profiling&lt;br /&gt;
* [http://www.lanarchitect.net/Examples/200264-l.zip Same data, but zip&amp;#039;ed Excel-XML]&lt;br /&gt;
Note that the numbers published in the article compare Excel .xls binary file format with Calc .ods, which is apples and oranges.&lt;br /&gt;
&lt;br /&gt;
Findings:&lt;br /&gt;
&lt;br /&gt;
* [http://svn.services.openoffice.org/opengrok/xref/Current%20(trunk)/sc/source/filter/xml/xmlsubti.cxx source/filter/xml/xmlsubti.cxx]&lt;br /&gt;
** 38% of time spent in ScMyTables::NewColumn() because of replicated use of aTableVec[nTableCount - 1]  (vector::operator[]) &amp;lt;br&amp;gt; Note: percentage may be off due to compilation without optimization to obtain exact line numbers that may result in STLport&amp;#039;s vector methods being differently compiled.&lt;br /&gt;
*** proposed fix: should obtain the pointer once instead.&lt;br /&gt;
** Similar for other places where aTableVec[xxx] is used.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;TODO:&amp;#039;&amp;#039;&amp;#039; Check all ScMyTables::.*() and ScMyTableData::.*()&lt;br /&gt;
** Especially for 63342857 calls to AddColumn() and NewColumn() that result in 1168654944 calls to operator[] ...&lt;br /&gt;
** 63081776 calls to AddColumn() originate from ScXMLTableRowCellContext::EndElement()&lt;br /&gt;
** Those are highly suspicious and seem to indicate that too many temporary elements are created for empty columns/cells (needs verification).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Calc|Performance/{{SUBPAGENAME}}]]&lt;br /&gt;
[[Category:Performance]]&lt;br /&gt;
[[Category:To-Do]]&lt;br /&gt;
[[Category:InProgress]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Architecture/To-Dos&amp;diff=183734</id>
		<title>Architecture/To-Dos</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Architecture/To-Dos&amp;diff=183734"/>
		<updated>2010-09-17T23:17:38Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Replace code with 3rd party */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Architecture]] [[Category:To-Do]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page intends to collect various architectural deficiencies (aka the pet peeves of various people) of OpenOffice.org, and lists the areas where&amp;#039;s work in progress to improve on the architecture.&lt;br /&gt;
&lt;br /&gt;
Depending on the specific count algorithm, OOo consists of approximately 7E6 lines of code (the overwhelming lot being c++, all other being an order of magnitude less (Java, Perl, Basic, Python)). This sheer size in and of itself is a problem - the code base is notorious for crashing or slowing down to a crawl various software engineering tools, from debugger to dependency analysis to reverse design extraction.&lt;br /&gt;
&lt;br /&gt;
The code itself varies greatly in quality, style, and age (the latter invariably leading to the former, if you recall the history and evolvement of c++), with parts being there virtually unmodified for 10+ years, and others just recently written from scratch.&lt;br /&gt;
&lt;br /&gt;
Taken together, this leads to a lot of complexity and [http://artax.karlin.mff.cuni.cz/~kendy/ooo/cut-n-paste/src680-m154.txt.gz redundancy], which is very hard to remove.&lt;br /&gt;
&lt;br /&gt;
Facing this amount of code, the big rules must be:&lt;br /&gt;
*simplify&lt;br /&gt;
**remove internal redundancy&lt;br /&gt;
**remove external redundancy (use external projects, whereever possible)&lt;br /&gt;
**remove unused or dead code&lt;br /&gt;
**remove legacy functionality, which does no longer provide noticeable value (e.g. [[Framework/Modules/binfilter|binfilter]])&lt;br /&gt;
&lt;br /&gt;
*refactor for orthogonality&lt;br /&gt;
**make subsystems implement independent functionality&lt;br /&gt;
**enable combinations of those subsystems to be freely combinable&lt;br /&gt;
**carry that to the UI level (no artificial restrictions on what one can do with UI objects - e.g. shapes can be rotated, and clearly text frames should, too)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Architectural To-Dos==&lt;br /&gt;
&amp;lt;DPL&amp;gt;category=To-Do&lt;br /&gt;
category=Architecture&amp;lt;/DPL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Infrastructure Improvements==&lt;br /&gt;
&lt;br /&gt;
*[[BuildSpeedup | Speeding up the build system]], and maybe even make it consider global dependencies (currently, OOo has the notion of modules, which approximately map to toplevel directories in the build tree. Automatic build-time dependency calculation is currently only available on the intra-module level).&lt;br /&gt;
&lt;br /&gt;
*Making the actual design more accessible, improving upon existing solutions like [http://ooo.ximian.com/lxr/ LXR] or [http://ooo.ximian.com/bonsai/ Bonsai]. Ultimately, this should result in refactorings of the source code being both much easier and much safer than today, by providing information where and how specific functionality is used. A prerequisite for that would be a parser that &amp;#039;&amp;#039;really&amp;#039;&amp;#039; knows about c++ - [http://www.gccxml.org/ gccxml] might be a starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Runtime System Improvements==&lt;br /&gt;
&lt;br /&gt;
This is about making the implementation languages safer, and easier to use. What follows could also be subsumed under &amp;quot;transparency on the implementation level&amp;quot;. When something can be used transparently, or appears transparent to a user, it is an implementation aspect she need not care about. Being able to program in an environment which is transparent with regard to lots of aspects, empowers the developer to focus on the problem at hand, not having to litter her code with mundane tasks such as memory management or locking.&lt;br /&gt;
&lt;br /&gt;
*Make threading transparent. Currently, fulfilling the contract of a UNO component regarding thread-safeness is&lt;br /&gt;
#tedious work, because normally each involved object has to acquire and release a mutex on method entry and exit, respectively&lt;br /&gt;
#almost impossible to get right, let alone verified to work correctly (no races, no deadlocks), because of the sheer mass of involved objects and mutices (the number of distinct states that would have to be checked for a proper verification is intractable for anything but the most trivial examples). The upcoming [[Uno/Effort/Binary/Extend Threading-Model|extended Binary Uno threading-model]] makes thread-safeness transparent, by automatically locking and unlocking when entering or exiting components on a much coarser level than single methods.&lt;br /&gt;
&lt;br /&gt;
*Make other mundane stuff transparent. Like memory management (via garbage collection, or refcounting via [http://www.boost.org/libs/smart_ptr/index.html smart ptrs], [http://api.openoffice.org/docs/DevelopersGuide/ProfUNO/ProfUNO.htm#1+4+2+7+3+Mapping+of+Interface UNO reference]), or [http://en.wikipedia.org/wiki/Transaction_processing transactionality] (the mode of making changes take place either completely, or not at all. Having a component behave in a non-transactional way in the face of an error makes recovery rather hard. There&amp;#039;s more to transactionality than exception-safeness. Imagine two users collaborating on the same document).&lt;br /&gt;
&lt;br /&gt;
==General Refactoring Improvements==&lt;br /&gt;
For many reasons the OpenOffice.org codebase is difficult to understand and navigate.  On of the reasons is a lack of cleanup in the code.  There is a never ending list of things that ought to be done-- add some of your own.&lt;br /&gt;
&lt;br /&gt;
*Actually remove deprecated things.  Things like String and [http://go-oo.org/lxr/ident?i=UniString UniString] need to go.  svtools and tools have loads of stuff that is duplicated elsewhere or is deprecated.  Getting rid of these sorts of things will make maintaining application code much easier.  &lt;br /&gt;
&lt;br /&gt;
*Document things.  Some of the code has comments that at one time were correct.  Some code has German comments.  While most of the OpenOffice.org programmers sind Deutschschprachig, there is an unofficial understanding that German comments mean &amp;quot;don&amp;#039;t touch.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Code Improvements==&lt;br /&gt;
===Remove unused code===&lt;br /&gt;
Binary Loading/Saving stuff in ItemSets, depend on EditEngine Loading/Saving (only used for Clipboard) - MT&lt;br /&gt;
&lt;br /&gt;
===Remove duplicate code===&lt;br /&gt;
Consolidate slightly copied and modified code.&lt;br /&gt;
* BigPointerArray vs. SvPointerArray&lt;br /&gt;
* RTL Strings with Tools Strings&lt;br /&gt;
&lt;br /&gt;
Consolidate Text Engines&lt;br /&gt;
* Text Engine&lt;br /&gt;
* Writer Engine&lt;br /&gt;
* Edit Engine&lt;br /&gt;
&lt;br /&gt;
===Replace code with 3rd party===&lt;br /&gt;
Replace self made containers with STL containers.&lt;br /&gt;
* Tools Container,&lt;br /&gt;
* SvPointerArray ([http://www.openoffice.org/issues/show_bug.cgi?id=112395 Issue 112395]), &lt;br /&gt;
* BigPointerArray,&lt;br /&gt;
* &amp;quot;GetPos&amp;quot; is mostly used wrong -&amp;gt; remove it (algorithmic complexity to hight O(n*n)) - [http://svn.services.openoffice.org/opengrok/search?q=GetPos&amp;amp;project=/DEV300_m87 list of the GetPos usage]&lt;br /&gt;
&lt;br /&gt;
===Improve modularity===&lt;br /&gt;
?Clear &amp;quot;Mission Statements&amp;quot; for modules?&lt;br /&gt;
&lt;br /&gt;
===[[VCL]]===&lt;br /&gt;
get rid of internal event queue.&lt;br /&gt;
&lt;br /&gt;
==Framework Improvements==&lt;br /&gt;
&lt;br /&gt;
The framework module already has a very modular architecture solely based on UNO components. Amongst others, it manages menus and toolbars, but it does not manage docked windows like e.g. navigator or impress task pane. These windows are still managed in sfx2 and their implementations are based on sfx2 classes. No non-sfx2 based module can use them.&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s the roadmap:&lt;br /&gt;
&lt;br /&gt;
* add a LayoutManager for DockingWindows to the framework module that works in the same way as the LayoutManager for toolbars&lt;br /&gt;
* implement docking handlers for the windows managed by this LayoutManager in the same way as for the toolbars&lt;br /&gt;
* provide factories for the sfx2 based implementations of Docking Windows&lt;br /&gt;
* simplify the frame classes in sfx2; without the sfx internal layout manager for DockingWindows only one &amp;quot;frame&amp;quot; class is necessary&lt;br /&gt;
* put the current container windows inside of task windows managed by a Task service (later they might become tabs in a tab bar)&lt;br /&gt;
* move the LayoutManager from the frame to the task (or add some &amp;quot;super manager&amp;quot;) so that frames can share their tools&lt;br /&gt;
&lt;br /&gt;
Amongst others this will allow to have more than one view to one (&amp;quot;split view&amp;quot;) or several documents in one system task window.&lt;br /&gt;
&lt;br /&gt;
===Status Quo===&lt;br /&gt;
&lt;br /&gt;
The new LayoutManager and the docking handlers are already worked on and nearly finished. Next step will be the mentioned factories. There also is a prototype for a task window and a task service that can be adjusted to our needs. The biggest challenge currently is the &amp;quot;super manager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Application-specific Improvements==&lt;br /&gt;
One of the lingering problems on the application level is the fact that, in spite of modularized lower-level functionality, application functionality cannot be shared &amp;#039;&amp;#039;between&amp;#039;&amp;#039; OOo&amp;#039;s applications (except via embedding of a whole application (OLE)). This is because for neither Calc nor Writer, there are reusable application engines, like a text engine providing text editing and layouting functionality, or a table engine providing formula and calculation support. Draw/Impress already uses a shared engine, dubbed &amp;#039;Drawing Layer&amp;#039;. But there&amp;#039;s still considerable functionality hidden in the application code, which is worth extracting. Especially the missing Writer engine manifests itself in duplicated text editing functionality in EditEngine and TextEngine (used by Impress and Calc for their corresponding text functionality).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div name=&amp;quot;Example&amp;quot; class=&amp;quot;boilerplate metadata&amp;quot; id=&amp;quot;example&amp;quot; style=&amp;quot;background-color: #fee; margin: 0 1em; padding: 0 10px; border: 1px solid #aaa;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Writer uses a different implementation when displaying pictures, opposed to Draw/Impress. Thus, if you insert a picture into a writer document, you have a different feature set available as in Draw/Impress or Calc. For example, the Writer graphic object is able to render a variety of border styles, but at the same time, is unable to rotate the picture. To have rotated pictures in Writer, one has to insert that picture in a Draw document, copy the resulting drawing layer object, and paste that into Writer.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div name=&amp;quot;Example&amp;quot; class=&amp;quot;boilerplate metadata&amp;quot; id=&amp;quot;example&amp;quot; style=&amp;quot;background-color: #fee; margin: 0 1em; padding: 0 10px; border: 1px solid #aaa;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example 2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Draw/Impress applications use a different implementation for displaying text, as opposed to the Writer. Thus, if you insert a text shape in Impress, you can&amp;#039;t have two-column layout with it, nor does it provide change tracking (&amp;#039;redlining&amp;#039;). On the other hand, the Writer&amp;#039;s fly frames, which superficially perform the same task as the Impress text shape, cannot be rotated.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another area of improvement is rendering. Currently, all application&amp;#039;s graphical output is based on the OutputDevice class, which provides only very basic rendering facilities (in fact, besides largely extended text output functionality (to handle OOo&amp;#039;s i18n requirements), this interface has basically remained unchanged for a long time). Specifically, things like performant alpha compositing or anti-aliased geometry rendering are extremely hard to achieve with the current design. Therefore, starting with OOo 2.0, the [http://api.openoffice.org/docs/common/ref/com/sun/star/rendering/XCanvas.html XCanvas] interface is slated to gradually replace OutputDevice in all applications.&lt;br /&gt;
&lt;br /&gt;
===Writer===&lt;br /&gt;
&lt;br /&gt;
*break up the monolith&lt;br /&gt;
*make the import filters more modular&lt;br /&gt;
*port rendering to XCanvas&lt;br /&gt;
&lt;br /&gt;
===Calc===&lt;br /&gt;
See [[Calc/To-Dos]]&lt;br /&gt;
&lt;br /&gt;
===Draw/Impress===&lt;br /&gt;
&lt;br /&gt;
*break up the monolith&lt;br /&gt;
*become more decoupled from sfx2&lt;br /&gt;
*redesign API ([[Impress_Performance | performance]])&lt;br /&gt;
&lt;br /&gt;
*port Drawing Layer to XCanvas (see [[DrawingPrimitives]] for one of the preconditions)&lt;br /&gt;
&lt;br /&gt;
*Allow slides to inherit animations from the master slide&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DomainDeveloper&amp;diff=183733</id>
		<title>DomainDeveloper</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DomainDeveloper&amp;diff=183733"/>
		<updated>2010-09-17T22:43:33Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Developers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A mapping of names to OOo accounts.&lt;br /&gt;
&lt;br /&gt;
Abbrev.:&lt;br /&gt;
&lt;br /&gt;
* PL : Project Lead&lt;br /&gt;
* CL : Project Co-Lead&lt;br /&gt;
* CC : Community Council Member&lt;br /&gt;
* ESC : Engineering Steering Committee Member &lt;br /&gt;
* CVS : has write access to the OOo CVS repository&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Developers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || CVS || @openoffice.org || [[IRC Communication]] || Notes || Affiliation&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Agerskov|Claus Agerskov]]||   || cs||Agerskov, cagerskov||PL Project Management Tool ([http://oopm.openoffice.org oopm])||AgerCon&lt;br /&gt;
|-&lt;br /&gt;
| Volker Ahrendt|| X || va||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Kai Ahrens|| X || ka || Kai_Ahrens ||PL Graphic Applications||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Rail Aliev || X  || rail || rail ||  Ru and Tr NL Co-lead || Infra-Resource &lt;br /&gt;
|-&lt;br /&gt;
| Gene Anaya||   || ganaya||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:JoostAndrae|Joost Andrae]]|| X || ja||ja_||CL qa, release testing en-US builds and releasing/uploading builds and releases||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ericb|Eric Bachard]] || X || ericb||ericb2|| PL Education, Mac OSX/Linux PPC port and vcl/impress hacker || [http://education.openoffice.org Education project], unaffiliated&lt;br /&gt;
|-&lt;br /&gt;
| Kai Backman||  || kaib ||KaiB||||&lt;br /&gt;
|-&lt;br /&gt;
| Sascha Ballach|| X || sab||||||&lt;br /&gt;
|-&lt;br /&gt;
| Jayant Balraj Madavi||   || jayant_madavi||aZEN_JM||Connectivity / Database||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Barfurth|| X || jb||JoergB||Configuration Util||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Omer Bar-or|| X || cremlae||cremlae||Mac porting||Google Summer of Code&lt;br /&gt;
|-&lt;br /&gt;
| Mathias Bauer|| X || mba||||PL Writer, CL Framework, XML||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thorsten Behrens|| X || thb||thorsten||vcl/impress/toolkit visionary||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Thomas Benisch|| X || tbe||||Scripting framework||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Stephan Bergmann|| X || sb||||CL UDK||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Andreas Bille|| X || abi||||||&lt;br /&gt;
|-&lt;br /&gt;
| Éric Bischoff|| X || ebischoff||ebischoff||KDE A/B driver||Bureau Cornavin&lt;br /&gt;
|-&lt;br /&gt;
| Nick Blievers|| X || nick||||IRIX||&lt;br /&gt;
|-&lt;br /&gt;
| Daniel Boelzle|| X || dbo||||UNO core/bridges/packages||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Bolte|| X || obo||||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Henning Brinkmann|| X || hbrinkm|| hbrinkm|| WW8 Filter, DOCX Filter ||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Cedricbosdo|Cédric Bosdonnat]]|| X || cedricbosdo || cbosdonnat || Writer Filters, ooeclipse integration || Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Rafaella Braconi||   || coni||Rafaella ||PL l10n, Globalization Program Manager||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Brauer|| X || mib||||PL XML||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Braun|| X || obr||obr||System Integration/Accessibility Hacker||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Andreas Bregas|| X || ab||||StarBasic||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Brunsmann||   || jbrunsmann||||UDK||&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Budischewski||   || jbu||PyUNO hacker||||&lt;br /&gt;
|-&lt;br /&gt;
| Peter Burow|| X  || pb||plumbumm||UI||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Aidan Butler||   || aidan||||XML filters||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ScottCarr|Scott Carr]] || X  || kcarr||kcarr||Documentation||Progbits&lt;br /&gt;
|-&lt;br /&gt;
| Giuseppe Castagno || X || beppec56 || beppec56_  or beppe_c || PDF output||&lt;br /&gt;
|-&lt;br /&gt;
| Colin Charles||   || drbyte||bytee||Malaysian native-lang project||bytebot.net&lt;br /&gt;
|-&lt;br /&gt;
|Jian Hong Cheng || X || chengjh ||  || Writer || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
| Xiuzhi Cheng|| X || xzcheng || xiuzhi|| ESC,Xml,ODF|| OOo community&lt;br /&gt;
|-&lt;br /&gt;
| [[User:jza|Alexandro Colorado]]|| X || jza || jza|| CL [[OOoES|ES]] || &lt;br /&gt;
|-&lt;br /&gt;
| Behrend Cornelius|| X || bc||||Wizards||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ccornell|Clayton Cornell]] || X || ccornell || ccornell || Documentation Project co-lead ||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Michael Cziebalski||   || mci||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:pdefilippis|Pierre de Filippis]]|| X || pdefilippis||aliscafo||Mac OSX native porting||&lt;br /&gt;
|-&lt;br /&gt;
| Yuri Dario ||   || ydario || Paperino || OS/2 Port || Serenity Systems intl&lt;br /&gt;
|-&lt;br /&gt;
| Andrew Dent|| X ||ace_dent||ace_dent||ui/custom_images||&lt;br /&gt;
|-&lt;br /&gt;
| Naren Devaiah||   || ||ndev||Performance||Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
| Nitin Dongre||   || ||nitin_BITS||||Novell, Inc.(intern)&lt;br /&gt;
|-&lt;br /&gt;
| Radek Doulik||   || radekdoulik||rodo_||Canvas hacker||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Carsten Driesner|| X || cd|| cd_oo ||PL Framework||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Herbert Duerr|| X || hdu||hdu_hh||GSL||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:bei|Bernd Eilers]]|| X || bei||rfc821||[[EIS]]||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| René Engelhard|| X || rene||_rene_||config_office, Debian packager||Debian&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Pereriksson|Per Eriksson]] || || pereriksson || || CL, MarCon Sweden ||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Jbfaure|Jean-Baptiste Faure]]||X||jbfaure||jbfaure ||PL FR native-lang project|| &lt;br /&gt;
|-&lt;br /&gt;
| Hubert Figuière|| X || hub || hub || PPTX || Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Claudio F Filho||   || filhocf||filhocf||Brazilian portuguese Localization||BrOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| Andre Fischer|| X || af||||Impress||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Uwe Fischer || X || ufi || ufiooo || Application Help, Documentation || Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Ken Foskey||   || waratah||waratah||config_office/dmake man||slug.org.au&lt;br /&gt;
|-&lt;br /&gt;
| Duncan Foster||   || dfoster||||||&lt;br /&gt;
|-&lt;br /&gt;
| David Fraser||   || davidfraser||davidfraser||South African translations, multilingual builds||translate.org.za&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Nf|Nils Fuhrmann]]||   || nf||SunNF||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Martin Gallwey|| X || mtg||marty_||XML/Writer/packaging||&lt;br /&gt;
|-&lt;br /&gt;
| Pierre-Andre Galmes || || pagalmes || pagalmes || Chart2 ||StarXpert&lt;br /&gt;
|-&lt;br /&gt;
| Tony Galmiche|| X || tonygalmiche||||FR native-lang project||&lt;br /&gt;
|-&lt;br /&gt;
| Sunil Gandhi||   || ||tyro||||NOSIP&lt;br /&gt;
|-&lt;br /&gt;
|Zemin Gao ||  || gaozemin|| gaozm || Calc || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Sophie Gautier|| X || sgauti|| sophi || ||.&lt;br /&gt;
|-&lt;br /&gt;
| Vladimir Glazounov|| X || vg||||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Laurent Godard || X || laurentgodard || lgodard || CC, PL Extensions, Fr Native-lang Project || inDesko/Nuxeo &lt;br /&gt;
|-&lt;br /&gt;
| Jody Goldberg|| X || jodygoldberg||jody||[[Calc]] spreadsheet-ness||&lt;br /&gt;
|-&lt;br /&gt;
| Dirk Grobler|| X || dg|||| ||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Sg|Steffen Grund]]|| X || sg|| || NetBeans Integration ||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Bettina Haberer||   || bh||||RFEOwner||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Bo Han || X || hanbo || hanbo || VBA Interop || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Ingrid Halama|| X || iha||||Chart||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Chris Halls|| X || haggai||haggai||Debian packager&amp;amp;amp;misc. hacker||Credativ Ltd., Debian&lt;br /&gt;
|-&lt;br /&gt;
| Gregor Hartmann|| X || gh|| Lachs ||Testtool, gsicheck, buildbot||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Bustamam Harun||   || bustamam||||Malaysian stuff||&lt;br /&gt;
|-&lt;br /&gt;
| Kevin Hendricks|| X || khendricks||||PL Lingucomponent, PowerPC||&lt;br /&gt;
|-&lt;br /&gt;
| Con Hennessy||   || cphennessy||cph2 or cph_||hacker &amp;amp;amp; former council person||OpenApp&lt;br /&gt;
|-&lt;br /&gt;
| Ivo Hinkelmann|| X || ihi||ivo||l10n tooling/general/RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Eric Hoch|| X || maveric||mav_eric||Mac Porting||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Lutz_Hoeger|Lutz Hoeger]]|| X || lh ||lutzh||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Hönnig|| X || mi||||PL API||&lt;br /&gt;
|-&lt;br /&gt;
| Ilko Höpping|| X || ih||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jan Holešovský|| X || kendy||kendy||KDE integration||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Martin Hollmichel|| X || mh||Ratte/Nesshof||PL External, Tools, Porting, CC||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Karl Hong|| X || khong||||i18n, CJK expert||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:icobgr|Hristo Hristov]] ||   || icobgr || icobgr || PL Bulgarian native-lang project ||&lt;br /&gt;
|-&lt;br /&gt;
| Matthias Huetsch|| X || mhu||||Performance/strategy, PL UCB, CC, ESC||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Sven Jacobi|| X || sj||||Escherwizard||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Jahnke||   || jj||||tooling||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Pavel Janík|| X || pjanik||paveljanik||PL Czech native-lang project, CL l10n, CC, ESC, l10n builds||&lt;br /&gt;
|-&lt;br /&gt;
| Sunil Amitkumar Janki || || sjanki || sjanki || GNU Linux mipsel porter || &lt;br /&gt;
|-&lt;br /&gt;
| Christian Jansen||   || cj ||||Menu and Toolbar?||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Ocke Janssen|| X || oj||Base||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Berry Jia|| X || berryjia||||||&lt;br /&gt;
|-&lt;br /&gt;
| Mingfei Jia || X  || jiamingfei ||   || Lotus Smart Suite filter,MS Word encryption || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
| Chuang Jiang ||   || jiangc ||   || || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Pascal Junck||   || pjunck||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:pj@openoffice.org|Peter Junge]]|| X || pj|| peter13j|| OOo community contact || &lt;br /&gt;
|-&lt;br /&gt;
| Christian Junker||   || Cyb||christianju||API||Trees For Life&lt;br /&gt;
|-&lt;br /&gt;
| Etsushi Kato || X || ekato ||   || Mac OS X Port || Independent &lt;br /&gt;
|-&lt;br /&gt;
| Hirano Kazunari||   || khirano||||Japanese||&lt;br /&gt;
|-&lt;br /&gt;
| Mihaela Kedikova|| X || misheto||||grid control||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Dhananjay Keskar|| X || dkeskar ||dkeskar||Performance,Buildbot,cat-herder||Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
| Volodymyr Khrystynych||   || volody||||XML Filter||&lt;br /&gt;
|-&lt;br /&gt;
| Robert Kinsella||   || rkinsella||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Matthias Klose||   || doko||doko||Ubuntu, gcc, python packager||Canonical, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Bartosz Kosiorek|||| gang65|||| Bug Tracker||&lt;br /&gt;
|-&lt;br /&gt;
| Laszlo Kovacs||   || lkovacs||||Documentation||&lt;br /&gt;
|-&lt;br /&gt;
| Tobias Krause|| X || tkr||||ucb||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Martin Kretzschmar|| X || mkretzschmar||martink||Gnome / Debian||Student&lt;br /&gt;
|-&lt;br /&gt;
| Will Lachance||   || wlach||wlach_||Word Perfect File Filters||Net Integration Technologies, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Marcus Lange|| X || mla||mla||[http://download.openoffice.org download websites], uploading/releasing Developer Snapshots, Beta versions, RCs and releases||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Thomas Lange|| X || tl||tl13||||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Lars Langhans|| X || lla||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Hans-Joachim Lankenau|| X || hjs||ause||dmake makefile expert, RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Németh László|| X || nemeth||||PL lingucomponent||&lt;br /&gt;
|-&lt;br /&gt;
| Jakob Lechner|| X || jakob_lechner||||Writer||Fabalabs&lt;br /&gt;
|-&lt;br /&gt;
| Michael Leibowitz||  X || mikeleib ||mikeleib||performance||Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
| Hui Li||   || lihuiibm || Hui_Li ||VBA Interop||IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
|Jian Li||   || lijian || lijian|| Writer|| CS2C&lt;br /&gt;
|-&lt;br /&gt;
| Wind Li|| X || windly||||Address books||&lt;br /&gt;
|-&lt;br /&gt;
| Xing Li || X  || lixxing ||   || Accessibility || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
|Weike Liang || X || liangweike || liangweike || Graphics ||&lt;br /&gt;
|-&lt;br /&gt;
| Ping Liao||   || pliao||||||&lt;br /&gt;
|-&lt;br /&gt;
| Tor Lillqvist|| X || tml||tml_||||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Fong Lin || X  || pflin || Fong  || VBA Interop, Scripting, CJK Enhancement || Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Joachim Lingner|| X || jl||||Java, CLI||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Christian Lippka|| X || cl || cl ||Graphic Applications||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Chen Liu||   || liuchenn|| liuchen ||VBA Interop||IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
|Jianli Liu ||  || liujl|| liujianli || Graphics|| [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Mindy Liu||   || mindyliu||||||&lt;br /&gt;
|-&lt;br /&gt;
|[[User:liutao |Tao Liu]]   || X  || liutao || liutao  ||PL modularization ,PyUNO, Async dialogs,|| &lt;br /&gt;
|-&lt;br /&gt;
| YiSong Liu||  || Liu YiSong || Liu YiSong|| PYUNO || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
|Yu Liu || X  || ch2000liuy || LiuYU  || Swriter || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
|Yuhua Liu ||  || liuyuhua|| yuhua|| ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:fl|Frank Loehmann]]|| X || fl ||frankl||PL [http://ux.openoffice.org User Experience]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Dl|Dieter Loeschky]]|| X || dl ||||PL: ODF Toolkit||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Philipp Lohmann|| X || pl||PhilippL||VCL/X11 (GSL) hacker||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michel Loiseleur|| || mloiseleur|| coren`|| Bugfixes ||Linagora&lt;br /&gt;
|-&lt;br /&gt;
| Jackson Low|| X || xxjack12xx||||Porting||&lt;br /&gt;
|-&lt;br /&gt;
| Patrick Luby||   || pluby||||Mac||&lt;br /&gt;
|-&lt;br /&gt;
|Jingrong Luo ||  || Luo Jingrong|| Luo Jingrong|| ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
|Yue Lv ||  || lvyue || lvyue || Calc ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:majun|Jun Ma]]||   ||majun51  ||  ||  writer  || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Katarina Machalkova|| X || bubli|| bubli|| OOXML Export ||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Prasad Madhav || X || pmadhav || pmadhav || Buildbot || Intern@Intel &lt;br /&gt;
|-&lt;br /&gt;
| Babak Mahbod||   || bmahbod||||||&lt;br /&gt;
|-&lt;br /&gt;
| Martin Maher||   || mmaher||||Writer &amp;amp;amp; Filter chap||&lt;br /&gt;
|-&lt;br /&gt;
| Nakata Maho|| X || maho||_maho_||PL QA, PL JA, FreeBSD guy||Independent&lt;br /&gt;
|-&lt;br /&gt;
|Yonggang Mao || X || maoyonggang|| maoyg|| Calc || CS2C&lt;br /&gt;
|-&lt;br /&gt;
| John Marmion|| X || jmarmion||||||&lt;br /&gt;
|-&lt;br /&gt;
| Andreas Martens|| X || ama||||PL Writer||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Shane M Mathews|| X || smmathews|| smmathews ||[[Impress:_OpenGL_rendered_transitions]]||student&lt;br /&gt;
|-&lt;br /&gt;
| Frank Mau|| X || fma||||tooling||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:smsm1|Shaun McDonald]] || X || smsm1 || shaunmcdonald || Mac Port, buildbot MacPort1 || Graduate&lt;br /&gt;
|-&lt;br /&gt;
| Caolán McNamara|| X || cmc||caolan||CL Writer &amp;amp;amp; Filter man|| [http://www.redhat.com Red Hat Inc.]&lt;br /&gt;
|-&lt;br /&gt;
| Michael Meeks|| X || mmeeks||michael_||ugly hack-er, ESC||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Frank Meies|| X || fme||||Writer||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Federico Mena-Quintero||   || federicomena||federico||perfectionist||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Ismael Merzaq|| X || isma87||ismael_||Mac OSX native porting||Student&lt;br /&gt;
|-&lt;br /&gt;
| Michael Mi||   || mmi||||||&lt;br /&gt;
|-&lt;br /&gt;
| Björn Michaelsen|| X || b_michaelsen ||b_michaelsen|| Writer, Bookmarks, Performance, User Feedback Program, New Build System||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Björn Milcke|| X || bm||bm_||Chart||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Petr Mladek||   || pmladek||pmladek||SUSE RPMs, ooo-build releases||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Cyrille Moureaux|| X || cyrillem||Cyrille||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Mmp|Matthias Müller-Prove]]|| X || mmp|| mprove|| [[User Experience]] || Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Bluedwarf|Takashi Nakamoto]]|| || bluedwarf|| || Japanese || Student&lt;br /&gt;
|-&lt;br /&gt;
| Jan Navrátil || X || jnavrati || jnavrati || || [http://www.redhat.com Red Hat Inc.]&lt;br /&gt;
|-&lt;br /&gt;
| Niklas Nebel|| X || nn||niklasn||PL [[Calc]]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Christoph Neumann|| X || cn||||[[UnoApiTest]]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Frank Neumann|| X || fne||||MacPort||&lt;br /&gt;
|-&lt;br /&gt;
| NicelKM|| X || mnicel||nicel||||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Jan Nieuwenhuizen|| X || jcn||janneke||Layout code, hacker ||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ChristophNoack|Christoph Noack]]|| X || christophnoack ||christoph_n||CL [http://ux.openoffice.org User Experience]||&lt;br /&gt;
|-&lt;br /&gt;
| Bertram Nolte||   || bnolte||||||&lt;br /&gt;
|-&lt;br /&gt;
| Tomas O&amp;#039;Connor||   || toconnor||||Scripting Framework||&lt;br /&gt;
|-&lt;br /&gt;
| Maximilian Odendahl|| X  || mod||mod||[[Notes2]] [[SQL_Syntax_Highlighting]]|| Student / SEPT-Solutions&lt;br /&gt;
|-&lt;br /&gt;
| Takashi Ono || X  || tono ||   || MinGW port || Independent&lt;br /&gt;
|-&lt;br /&gt;
| Lars Oppermann|| X || lo||||||&lt;br /&gt;
|-&lt;br /&gt;
| Rakesh Pandit || X || rakeshpandit|| chacha_chaudhry|| Education Project - Starmath/fix module warnings|| Education Project&lt;br /&gt;
|-&lt;br /&gt;
| Rodrigo Parra Novo|| X || rodarvus||rodarvus||Gnumeric/Abiword OpenDocument Format support and port to Maemo||INdT (Instituto Nokia de Tecnologia)&lt;br /&gt;
|-&lt;br /&gt;
| Pierre Pasteau|| X || pastea_p || pierrep|| Education Project, SeaMonkey migration || Education Project&lt;br /&gt;
|-&lt;br /&gt;
| Edward Peterlin|| X || OPENSTEP||||Mac||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Fpe|Frank Peters]]|| X || fpe||||CL Documentation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Christof Pintaske|| X || cp||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Ron Piterman||   || rpiterman||||||&lt;br /&gt;
|-&lt;br /&gt;
| Sebastien Plisson|| X  || plipli||plipli||Developer on Aqua port||OO Aqua Port&lt;br /&gt;
|-&lt;br /&gt;
| Noel Power||   || npower||noelp||VBA Interop, Scripting||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Nikolai Pretzell|| X || np || ||Autodoc, code quality||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jonathan Pryor|| || jpryor || jonp || || Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Canghua Qu||  || quch || Canghua || AutoTest, Graphics || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Volker Quetschke|| X || vq||vq||W32-tcsh/bash build environment and dmake Hacker, ESC||Gravity Waves&lt;br /&gt;
|-&lt;br /&gt;
| Tino Rachui|| X || tra||tinor||GSL/Unix Hacker||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Goran Rakić || X ||goranrakic || || Serbian Native-Lang PL || &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Kr|Kay Ramme]]|| X || kr||||PL UDK||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ErAck|Eike Rathke]]|| X || er||erAck||CL [[Calc]], engine; CL i18n; stricken with number formatter||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Rauch|| X || mrauch||||NetBSD||&lt;br /&gt;
|-&lt;br /&gt;
| Jens-Heiner Rechtien|| X || hr||blauwal||RE; OOo SCM (CVS, CWS tooling); Porting; Compilers||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Daniel Rentz|| X || dr|| drr ||[[Calc]] Excel filter, UI||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Florian Reuter|| X || flr||||Writer filters||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Georg Richter|| X || grichter||georg||Base, native MySQL driver||MySQL AB&lt;br /&gt;
|-&lt;br /&gt;
| Hennes Rohling|| X || hro||||GSL &amp;amp;amp; Util||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Bibek Sahu||   || Bibek||bibek||Impress pieces||Trees For Life&lt;br /&gt;
|-&lt;br /&gt;
| Andreas Schlüns|| X || as||||Framework||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Ingo Schmidt|| X || is||||(Native) Installation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Jsc|J&amp;amp;uuml;rgen Schmidt]]|| X || jsc||jsc||PL API, PL Extensions, UNO, SDK||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Schmidtm|Matthias Schmidt]] ||   || schmidtm || schmidtm || Mac OSX Aqua Port || Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Stephan Schäfer|| X || ssa||ssa||VCL||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Frank Schönheit|| X || fs||FrankS||Database Access, Forms||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Sus|Svante Schubert]]|| X || sus||Svante||XML &amp;amp; ODFTOOLKIT co-lead, ODFDOM project chair, Member of OASIS ODF TC, OASIS OIC TC, OASIS ODF SC Metadata||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Sts|Stella Schulze]]|| X || sts||||[http://ui.openoffice.org/nonav/VisualDesign/ Visual Design]||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Julian Seward || || sewardj || || valgrind ||&lt;br /&gt;
|-&lt;br /&gt;
| Darragh Sherwin||   || dsherwin||darragh||E-Legislation / E-GovSystems||Propylon&lt;br /&gt;
|-&lt;br /&gt;
| Wei Guo Shi || X  || shiwg ||   || Accessibility and Smart Suite filter || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Robertzhou | RobertZhou]]|| X || robertzhou|| shizhoubo|| [[Framework]] || CS2C&lt;br /&gt;
|-&lt;br /&gt;
| Raul Siddhartha||   || rsiddhartha||raul||GTK File Selector||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Sarah Smith||   || ssmith||||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:mox|Mox Soini]] || X || mox || Moxed || Mac Porting || &lt;br /&gt;
|-&lt;br /&gt;
| Rajesh Sola||   || rajeshsola||sola||misc.||NOSIP&lt;br /&gt;
|-&lt;br /&gt;
| Kai Sommerfeld|| X || kso||||manager &amp;amp;amp; hacker||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Specht|| X || os||||PL UI||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| Jörg Spindler||   || jspindler||||||&lt;br /&gt;
|-&lt;br /&gt;
| Michael Stahl|| X || mst||||Writer, RDF, Metadata||Oracle&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Rescue|Joey Stanford]] ||  || Rescue/k0fcc || Rinchen || CL [http://eo.openoffice.org/ Esperanto native-lang project] || [http://canonical.com Canonical]&lt;br /&gt;
|-&lt;br /&gt;
| Fridrich Štrba|| X || fridrich_strba||Fridrich||Word Perfect Hacker||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Keith Stribley|| X || kstribley||||Graphite fonts, Myanmar l10n||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Muthusuba|Muthu Subramanian]]|| X || muthusuba||muthusuba||misc.||&lt;br /&gt;
|-&lt;br /&gt;
| Louis Suárez-Potts||   || louis||louis||Community Manager||Collab.net&lt;br /&gt;
|-&lt;br /&gt;
|Quanfa Tang ||  || tqfa|| tangquanfa|| Calc || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| David Tardon || X || dtardon || dtardon || || [http://www.redhat.com Red Hat Inc.]&lt;br /&gt;
|-&lt;br /&gt;
| Stefan Taxhet|| X || st||stx12||CC, interpersonal problem fixer||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Armin Theissen||   || armin||||||&lt;br /&gt;
|-&lt;br /&gt;
| Caio Tiago Oliveira|| X || asrail||asrail||CL QA, release testing pt-BR builds||BrOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| Jan Tietjens||   || tietjens||||||&lt;br /&gt;
|-&lt;br /&gt;
| Rüdiger Timm|| X || rt|| rtimm ||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:mt|Malte Timmermann]]|| X || mt|| Malte || Accessibility, Security, Performance||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Gerhard Tonn||   || tonn||||s390||&lt;br /&gt;
|-&lt;br /&gt;
| Willem van Dorp||   || willem.vandorp||||||&lt;br /&gt;
|-&lt;br /&gt;
| Tom Verbeek|| X || tv|||| ||&lt;br /&gt;
|-&lt;br /&gt;
| Sander Vesik||   || svesik||||||&lt;br /&gt;
|-&lt;br /&gt;
| Daniel Vogelheim|| X || dvo||||XML||&lt;br /&gt;
|-&lt;br /&gt;
| Mikhail Voitenko|| X || mav||mav||Framework||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Robert Vojta|| X || rvojta||rvojta||Mac OS X related issue||&lt;br /&gt;
|-&lt;br /&gt;
| Dirk Völzke|| X || dv||||Installation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
|Xu Ming Wang || X || flyccloud or Wangxum ||  || Calc || IBM Corp.&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Sparcmoz|Jim Watson]]|| X || sparcmoz|| sparcmoz||GNU Linux sparc porter||clug.org.au&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Weiz |Zhao Wei ]] ||   || weiz || weiz || Chart2 || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Armin Weiss|| X || aw||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Gerd Weiss|| X || gm||||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Dan Williams|| X || fa||dcbw||Mac et. al. hacker|| [http://www.redhat.com Red Hat Inc.]&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Wittmann|| X || od||Writer||||Oracle&lt;br /&gt;
|-&lt;br /&gt;
|[[User:wuy|Yan Wu]] || X || wuy ||   ||Framework ||CS2C&lt;br /&gt;
|-&lt;br /&gt;
| Stephan Wunderlich|| X || sw||||||&lt;br /&gt;
|- &lt;br /&gt;
| Antonio Xu|| X || antoxu || antoxu || Async dialogs, PRC improvements || Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
|Dehua Xu ||   || xudehua || xudh  ||||&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Steve_yin|Steve Yin]] || X  || steve_yin || steve_yin || Microsoft Office file format, PDF, Accessibility, ODF || [http://symphony.lotus.com IBM Corp.]&lt;br /&gt;
|-&lt;br /&gt;
| Kohei Yoshida|| X || kohei||kohei_||[[Calc]] hacker, Calc optimization solver developer||Novell, Inc.&lt;br /&gt;
|-&lt;br /&gt;
| Guoqiang Yu|| X || yugq || yugq|| Performance || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Xiaoyang Yu||   || || ||Disk block reordering||Intel Corporation &lt;br /&gt;
|-&lt;br /&gt;
| George Zahopoulos|| X || georgez||||||&lt;br /&gt;
|-&lt;br /&gt;
| Kurt Zenker|| X || kz||smoketester||RE||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Zhangxiaofei|Xiaofei Zhang]]|| X || Zhangxiaofei || zhangxiaofei/FelixZ || [[Framework]] ||CS2C&lt;br /&gt;
|-&lt;br /&gt;
|Jianwei Zhao ||   || zhaojianwei || zhaojianwei ||  Swriter  || [[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Jeremy Zheng|| X || zhiming || Jeremy || Async dialogs, PRC improvements || Intel Corporation&lt;br /&gt;
|-&lt;br /&gt;
| Zengliangjun || X || Zengliangjun ||  liangjun || [[Performance]] ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| Kuang Liang || X || Kuang Liang ||  kuangliang || [[Performance]] ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-&lt;br /&gt;
| [[User:liheng|Heng Li]] || X || liheng ||  liheng || [[Performance]] ||[[Beijing Redflag Chinese 2000 Software Co., Ltd.|Beijing Redflag CH2000]]&lt;br /&gt;
|-}&lt;br /&gt;
&lt;br /&gt;
=== QA Engineers ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name ||CVS||@openoffice.org || [[IRC Communication]] || Interested modules || Notes || Affiliation&lt;br /&gt;
|-&lt;br /&gt;
| Stefan Baltzer||||sba||||writer||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thorsten Bosbach||X||tbo||||framework, testautomation||framework test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Oliver Craemer||X||oc||||[[Calc]], testautomation||calc test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Helge Delfs||X||hde||||testautomation, writer||Test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Fredrik Haegg||X||fha||||||||&lt;br /&gt;
|-&lt;br /&gt;
| Hasan Ilter||||hi||||writer, printing, pdf export||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Michael Rüß||||mru||||writer, word im/export||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Éric Savary||||es||||writer, accessibility||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:jsi|Joerg Sievers]]||X||jsi||jogi||porting||Mac- and Solaris SPARC port testing||&lt;br /&gt;
|-&lt;br /&gt;
| Joerg Skottke||X||jsk||skotti||framework, qa/qatesttool||Framework test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Marc Neumann||X||msc||||database, testautomation||Database access test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Chris Lukasiak||||clu||||database||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Frank Stecher||||fst||||[[Calc]]||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Jack Warchold|||| jw||||writer, import/export filters||||&lt;br /&gt;
|-&lt;br /&gt;
| Uwe Luebbers||||ul||||framework||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thorsten Martens||||tm||||framework||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Olaf Felka|||| of||of_sun||framework, installation||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Thomas Klarhoefer||||kla||||chart||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Wolfram Garten||X|| wg||||draw, impress||draw, impress test automation||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Christian Guenther||||cgu||||draw, impress||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| Ulf Stroehler|||| us||||||||Sun Microsystems&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Thorsten_Ziehm|Thorsten Ziehm]]||||| thorstenziehm||||||QA lead||Sun Microsystems&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are tracking pending JCAs in the document [[Pending JCAs]].&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
* [[Commit Rights]]&lt;br /&gt;
* [[Contributing Patches]]&lt;br /&gt;
* [[User_Experience/Community|User Experience Team]]&lt;br /&gt;
* A map of OOo developers around the world is available at http://www.frappr.com/ooodev, please add yourself to the map if you&amp;#039;re involved in OOo development. It&amp;#039;s just fun to see who&amp;#039;s where :-)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Getting_the_source&amp;diff=175067</id>
		<title>Documentation/Building Guide/Getting the source</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Getting_the_source&amp;diff=175067"/>
		<updated>2010-07-13T20:42:37Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* SCM-Access for the current development line (named DEV300) using Mercurial as SCM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
{{DISPLAYTITLE:Getting the source}}&lt;br /&gt;
&lt;br /&gt;
The source code can be fetched in several ways, as described below.&lt;br /&gt;
&lt;br /&gt;
= Source Tarballs (for package maintainers) =&lt;br /&gt;
&lt;br /&gt;
The latest release version of the source code can be downloaded as tarballs from [http://download.openoffice.org/ Download], see &amp;#039;&amp;#039;&amp;#039;Source&amp;#039;&amp;#039;&amp;#039; on the right.&lt;br /&gt;
&lt;br /&gt;
The source is pretty big and has therefore been split into several files.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Tarball&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|OOo_3.x.x_src_core.tar.bz2&lt;br /&gt;
|The necessary part for each build, the other tarballs depend on this one.&lt;br /&gt;
|-&lt;br /&gt;
|OOo_3.x.x_src_system.tar.bz2&lt;br /&gt;
|Libraries that usually exist on a standard Linux system&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;{{Template:Documentation/Note|It&amp;#039;s not absolutely necessary to build own versions for these modules on Linux. If you intend to build on Linux &amp;#039;&amp;#039;&amp;#039;without&amp;#039;&amp;#039;&amp;#039; the &amp;#039;&amp;#039;&amp;#039;system&amp;#039;&amp;#039;&amp;#039; tarball:&lt;br /&gt;
* You will need to tell ./configure explicitly to use the system libraries for the software that is otherwise contained in this tarball. Otherwise the build will fail.&lt;br /&gt;
* System software is in active development. If it has changed significantly (and Mozilla sometimes does), the build may fail or OpenOffice.org may not work correctly.&lt;br /&gt;
* unowinreg.dll - Do not be fooled by the .dll extension. Without it, the build will fail on Linux and it is not included in the core package. Don&amp;#039;t worry about downloading this now because the build process will tell you where to get it and where to stick it to proceed.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ref&amp;gt;. For a Windows build this package is usually required.&lt;br /&gt;
|-&lt;br /&gt;
|OOo_3.x.x_src_binfilter.tar.bz2&lt;br /&gt;
|The filters for old binary StarOffice formats&lt;br /&gt;
|-&lt;br /&gt;
|OOo_3.x.x_src_l10n.tar.bz2&lt;br /&gt;
|Translations of the software for many languages&lt;br /&gt;
|-&lt;br /&gt;
|OOo_3.x.x_src_extensions.tar.bz2&lt;br /&gt;
|Extensions source package&lt;br /&gt;
|-&lt;br /&gt;
|OOo_3.x.x_src_testautomation.tar.bz2&lt;br /&gt;
|Automated test suite (optional)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For a full build you need them all. For development, the &amp;#039;&amp;#039;&amp;#039;core&amp;#039;&amp;#039;&amp;#039; package is usually all you need.&lt;br /&gt;
&lt;br /&gt;
Unpack the tarballs one at a time to a directory. They will create a new directory with the name of the milestone, such as &amp;lt;tt&amp;gt;OOO310_m11&amp;lt;/tt&amp;gt;. This folder will from now on be the &amp;lt;code&amp;gt;$SRC_ROOT&amp;lt;/code&amp;gt;, when you run &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; it will create a shell-script that will set the environment variable to this path.&lt;br /&gt;
{{Template:Documentation/Caution|Avoid using winzip to extract the downloaded source archive. Observed problems include:&lt;br /&gt;
* CR-LF errors that can affect makefiles and cause compile errors&lt;br /&gt;
* Certain files unpacked into root folder, esp. likely when actual path is deeply nested (e.g. &amp;lt;code&amp;gt;foo/bar/source/foo/java/org/x/y/z/w/LongFileName.hmm&amp;lt;/code&amp;gt;) which again causes mysterious compile errors.&lt;br /&gt;
Use the tar from Cygwin instead:&lt;br /&gt;
&lt;br /&gt;
unzip for &amp;lt;tt&amp;gt;.gz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvzf OOo_3.x.x_src_core.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzip2 for &amp;lt;tt&amp;gt;.bz2&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;tar xvjf OOo_3.1.0_src_core.tar.bz2&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
= SCM-Access for the current development line (named DEV300) using Mercurial as SCM =&lt;br /&gt;
&lt;br /&gt;
Mercurial (hg) replaces Subversion end of October 2009. The mercurial master repository is already in place. You can clone the repository with&lt;br /&gt;
&lt;br /&gt;
 hg clone http://hg.services.openoffice.org/DEV300 &amp;lt;working_dir&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OOo Mercurial repository is huge. Cloning the OOo repository as shown above my take some hours depending on the quality of your internet connection. We provide a nightly snapshot as Mercurial bundle which is currently about 1.3 GB in size. Utilizing this bundle is the fastest way to get an initial clone of the repository.&lt;br /&gt;
&lt;br /&gt;
Download the bundle here: http://hg.services.openoffice.org/bundle/DEV300.hg&lt;br /&gt;
 mkdir &amp;lt;working_dir&amp;gt;&lt;br /&gt;
 cd &amp;lt;working_dir&amp;gt;&lt;br /&gt;
 hg init&lt;br /&gt;
 hg unbundle &amp;lt;path_to_bundle&amp;gt;/DEV300.hg&lt;br /&gt;
 hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
 hg update&lt;br /&gt;
&lt;br /&gt;
Both methods will get you a repository and a working tree with the latest changes.&lt;br /&gt;
&lt;br /&gt;
List all available milestones (a stable development version released by RelEng):&lt;br /&gt;
 hg tags&lt;br /&gt;
&lt;br /&gt;
Checking out a milestone&lt;br /&gt;
 hg update -rDEV300_mXX&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip| For more information on using Mercurial with OOo, see:&lt;br /&gt;
* [[Mercurial]]&lt;br /&gt;
* [[:Category:Mercurial]]}}&lt;br /&gt;
&lt;br /&gt;
= SCM-Access for the 3.2 release code line (named OOO320) using Subversion as SCM =&lt;br /&gt;
Checking out a milestone (a stable development version released by RelEng)&lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.services.openoffice.org/ooo/tags/DEV300_mXX/&lt;br /&gt;
&lt;br /&gt;
Replace XX with the highest currently available milestone.&lt;br /&gt;
&lt;br /&gt;
The files will be placed in the current directory.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
&lt;br /&gt;
 http://svn.services.openoffice.org/ooo/tags/&lt;br /&gt;
&lt;br /&gt;
for a list of available milestones.&lt;br /&gt;
{{Template:Documentation/Note|For more information on using Subversion with OOo, see:&lt;br /&gt;
* [[Setting up Subversion Access]]&lt;br /&gt;
* [[OOo and Subversion|Using Subversion and the new CWS Tooling]]}}&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|For pre-3.1 releases, see [[Getting the source (older versions)]].}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
{{PDL1}}&lt;br /&gt;
[[Category:SVN]][[Category:Mercurial]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Mercurial/Getting_Started&amp;diff=173661</id>
		<title>Mercurial/Getting Started</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Mercurial/Getting_Started&amp;diff=173661"/>
		<updated>2010-06-30T07:38:50Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mercurial}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
This page aims to help cvs/svn users to get started with mercurial, without the need to dig in cyberspace for basic stuff.&lt;br /&gt;
If you have a tip or general remark to share, feel free to edit the page - It&amp;#039;s a wiki after all :-)&lt;br /&gt;
Especially if you see something wrong here, just correct it without asking for permission on the ML&lt;br /&gt;
&lt;br /&gt;
= The very basics: Mercurial is a DVCS =&lt;br /&gt;
Mercurial (hg) is a distributed version control system. This is a major difference compared to tools like CVS or subversion and that difference imposes a changed workflow compared to centralized version control systems.&lt;br /&gt;
&lt;br /&gt;
== Your checkout is a full repository ==&lt;br /&gt;
In a simplified view, every checkout is a full repository. You have history and version info for other branches in your local tree. So naturally such a checkout is rather big compared to a single-revision checkout done by cvs and svn. So you won&amp;#039;t checkout a full repo every time (unless you have bandwidth to waste and too much time on your hands :-)&lt;br /&gt;
Instead you will regularly update your local copy with the changes that were added to the repository and then &amp;quot;clone&amp;quot; (that&amp;#039;s the term used for a &amp;quot;checkout&amp;quot;) your local repository instead.&lt;br /&gt;
&lt;br /&gt;
== Your commits go to your local repository first ==&lt;br /&gt;
Another difference is that any change you commit will be done in your local copy only at first.&lt;br /&gt;
You can accumulate many different commits locally and need to &amp;quot;push&amp;quot; changes to the master to finally have them in the main repo/available for everyone.&lt;br /&gt;
&lt;br /&gt;
== There are no version numbers anymore ==&lt;br /&gt;
Because multiple persons can do local commits, have different &amp;quot;local master copies&amp;quot; (somebody else could have pushed a change to the master before that alters the file you change yourself), it is impossible to refer to a specific version of a file by a version number. What is version 23 of a file? The one in your local copy, that doesn&amp;#039;t exist on the master yet? Or version 23 of a file of another user that did commit the same file locally?&lt;br /&gt;
So instead of version numbers, specific versions are referred to using &amp;quot;changeset&amp;quot; identifiers. Think of it as checksums.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip| Mercurial offers the possibilities to use easier to type numeric revisions instead of changeset identifiers during work with a local repository. But remember: these numbers have no meaning outside this specific local repository. Don&amp;#039;t use them when communicating with others.}} &lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
Remembering the three points above are enough to get you going. If you want to know more you&amp;#039;ll find all things Mercurial at the [[hg:|Mercurial Wiki]]. An excellent tutorial can be found in &amp;quot;tour&amp;quot; chapters of the [http://hgbook.red-bean.com/read/ Mercurial book], which is also available online. Another excellent illustrated tutorial aimed at a broad audience (written by [http://joelonsoftware.com/ Joel Spolski], no less) can be found [http://hginit.com/ here].&lt;br /&gt;
&lt;br /&gt;
The Mercurial command line help is quite well written and concise. Make good use of it. Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ hg merge --help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get an overview over all commands and some concepts type:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ hg help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= So how to use it then (aka: What commands do I have to type?) =&lt;br /&gt;
&lt;br /&gt;
You want to play around with the OpenOffice.org sources without bothering with all the things a OOo domain developer needs to keep in mind? You aren&amp;#039;t interested in this CWS thing at all? Good, this section is for you.&lt;br /&gt;
&lt;br /&gt;
== Creating a local copy ==&lt;br /&gt;
Creating a local copy means to clone from the master - the URL for the the main OOo development code line is http://hg.services.openoffice.org/DEV300&lt;br /&gt;
 $ hg clone http://hg.services.openoffice.org/DEV300 local_DEV300&lt;br /&gt;
If you know that you&amp;#039;ll only use this as basis for different local clones and don&amp;#039;t want it to create the actual source-files, then you can use&lt;br /&gt;
 $ hg clone -U http://hg.services.openoffice.org/DEV300 local_DEV300&lt;br /&gt;
This will create a treeless version, i.e. you&amp;#039;ll get an (apparently) empty OOo-tip-repo-only directory that holds the history/changeset data only, but not the actual files. Saves some diskspace and lessens the risk of modifying the master you intended to keep pristine.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip| The OOo mercurial repository is quite huge, so doing cloning from the OOo server will take substantial time. A significant faster way is to download a nightly (GMT) created so called &amp;#039;&amp;#039;[[hg:Bundle|bundle]]&amp;#039;&amp;#039; of DEV300 which is available at http://hg.services.openoffice.org/bundle/DEV300.hg. This bundle contains the full history in one highly compressed file (currently about 800MB in size). Create a treeless local DEV300 copy with&lt;br /&gt;
 $ mkdir local_DEV300&lt;br /&gt;
 $ cd local_DEV300&lt;br /&gt;
 $ hg init&lt;br /&gt;
 $ hg unbundle &amp;lt;path_to_bundle&amp;gt;/DEV300.hg&lt;br /&gt;
and proceed with updating it with the latest changes as described below.}}&lt;br /&gt;
&lt;br /&gt;
== Pulling new changes from the master and updating the local copy ==&lt;br /&gt;
As mentioned above, doing a full clone from the OOo server every time would be a waste, so how to stay up-to-date then?&lt;br /&gt;
&lt;br /&gt;
Updating means &amp;quot;pulling the new changes&amp;quot; from the master:&lt;br /&gt;
 $ cd local_DEV300 # change to the directory of your main clone&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
{{Template:Documentation/Caution| While this grabs all the changes that were done on the master since the last checkout, it will &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; automatically update the source-code files on your disk. It basically only gets the history and changesets.}}&lt;br /&gt;
Not updating the source tree is just what we want for a treeless copy. But if you want local source-files to reflect the newest changes, you need to do an update of your tree:&lt;br /&gt;
 $ hg update&lt;br /&gt;
Since pulling the newest changes and updating to those changes is rather common, you can use the -u switch to the pull command to do both in one go:&lt;br /&gt;
 # alternative to separate pull and update&lt;br /&gt;
 $ hg pull -u http://hg.services.openoffice.org/DEV300&lt;br /&gt;
{{Template:Documentation/Note| The URL is optional in all of the above commands - if omitted, it will just use the URL that was used to clone the repo.}}&lt;br /&gt;
&lt;br /&gt;
== Cloning from the local repo to create a working copy ==&lt;br /&gt;
It is easier to keep a pristine copy of the sources as a base for new work, than to clean up an already modified repo, especially when you&amp;#039;re not familiar with the tools yet :-) - so to create a working playground for your real work, clone from your local main-clone:&lt;br /&gt;
 $ hg clone local_DEV300 working_DEV300 # where local_DEV300 is your main-checkout&lt;br /&gt;
&lt;br /&gt;
If you need an earlier milestone examine the tags and update your working copy to the desired milestone (you might want to use clone -U in the command above then).&lt;br /&gt;
 $ cd working_DEV300&lt;br /&gt;
 $ hg tags                 # in case you don&amp;#039;t already know the name of the tag&lt;br /&gt;
 $ hg update -r DEV300_m60 # if you want milestone DEV300:m60&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| The above method is much faster than the apparently easier method of using clone with a revision.&lt;br /&gt;
&amp;lt;strong&amp;gt;Don&amp;#039;t use&amp;lt;/strong&amp;gt;&lt;br /&gt;
 $ hg clone -r DEV300_m60 local_DEV300 working_DEV300&lt;br /&gt;
as mercurial would have to examine the whole history to throw out everything that wasn&amp;#039;t part of DEV300_m60, and it cannot make use of hardlinks, thus it will require a significant amount of diskspace as well.&lt;br /&gt;
Depending on how fast your system is, the difference can be something like 30 minutes for the &amp;quot;clone -r&amp;quot; method and just 3 minutes for the &amp;quot;first clone, then update&amp;quot; one. You have been warned.}}&lt;br /&gt;
&lt;br /&gt;
== Explore the working tree and history ==&lt;br /&gt;
&lt;br /&gt;
The basic Mercurial commands are very similar to their equivalents in SVN and CVS.&lt;br /&gt;
&lt;br /&gt;
 $ hg status sw             # shows the status of all files in directory sw&lt;br /&gt;
 $ hg status                # shows the status of the whole tree!&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Most Mercurial commands, when specified without file/directory argument, will operate on the whole tree. This will come as a surprise to SVN and CVS users. You&amp;#039;ll notice it when your status command scans the whole tree instead of a single directory, or you accidentally commit files in a far away directory.}}&lt;br /&gt;
&lt;br /&gt;
  $ hg log cws.pl           # shows all changesets affecting file cws.pl&lt;br /&gt;
  $ hg log -v | more        # shows all changes in the repository in verbose format&lt;br /&gt;
  $ hg log -v -r 262026     # shows verbose log of the changset with the numeric id 262026 (only locally valid!)&lt;br /&gt;
&lt;br /&gt;
  $ hg diff cws.pl          # shows local (= not yet committed) modifications of cws.pl&lt;br /&gt;
  $ hg diff --git           # shows all not yet committed modifications in tree, format is git-diff&lt;br /&gt;
  $ hg diff -c 2e9d06d9922d # show all changes made by changeset 2e9d06d9922d&lt;br /&gt;
  $ hg diff -r 4e62cb377115 -r d6f5cf344cec cws.pl # show diff of cws.pl between the two rev.&lt;br /&gt;
&lt;br /&gt;
== Committing your changes ==&lt;br /&gt;
&lt;br /&gt;
Commit your changes to your local repository is straighforward:&lt;br /&gt;
 &lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: #i4711# implement foobar gadget&amp;quot; # Commit all your locally modified files&lt;br /&gt;
 $ hg commit cws.pl         # Commit cws.pl, an editor will pop up for the commit log&lt;br /&gt;
&lt;br /&gt;
== Merging ==&lt;br /&gt;
&lt;br /&gt;
Occasionally you will need to merge changes. Say you are working on repository cloned a while ago and now you want to update to the latest DEV300 milestone:&lt;br /&gt;
&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
&lt;br /&gt;
Mercurial will tell you that you need to merge the freshly pull changes with your local changes&lt;br /&gt;
&lt;br /&gt;
 $ hg merge&lt;br /&gt;
&lt;br /&gt;
In many cases automerging the files will suffice, but occasionally you&amp;#039;ll get conflicts. Fix the conflicts and mark the conflicted file as resolved.&lt;br /&gt;
&lt;br /&gt;
 $ hg resolve -m solenv/bin/cws.pl   # mark the conflict in cws.pl as resolved&lt;br /&gt;
&lt;br /&gt;
Check if there are more unresolved conflicts with&lt;br /&gt;
&lt;br /&gt;
 $ hg resolve -l&lt;br /&gt;
&lt;br /&gt;
When all conflicted files are resolved commit the result with&lt;br /&gt;
&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: merge with DEV300 m63&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Exchanging your work with others ==&lt;br /&gt;
&lt;br /&gt;
There are a number of ways on how to exchange your work with others. OpenOffice.org domain developers use a process called &amp;quot;child workspaces (CWS)&amp;quot; as the main way to organize collaboration. How to work with Mercurial based Child Workspaces is described [[Mercurial/Cws|here]].&lt;br /&gt;
&lt;br /&gt;
If you are not (yet) a OOo domain developer you can export your changes as patch and attach it to an issue or send it to the developers mailing list&lt;br /&gt;
&lt;br /&gt;
 $ hg export tip &amp;gt; tip.patch&lt;br /&gt;
&lt;br /&gt;
When you made larger changes you could use the [[hg:PatchbombExtension|patchbomb extension]] for proper formatting before sending to the mailing list.&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Mercurial/Setup&amp;diff=173660</id>
		<title>Mercurial/Setup</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Mercurial/Setup&amp;diff=173660"/>
		<updated>2010-06-30T07:36:22Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mercurial}}&lt;br /&gt;
&lt;br /&gt;
=Installing Mercurial=&lt;br /&gt;
&lt;br /&gt;
Mercurial source and binary distributions are available at the [[hg:|Mercurial Wiki]]. Many Linux distributions, OpenSolaris and cygwin (Windows) offer Mercurial packages as well. Installing from source requires a working [http://www.python.org/ Python] installation. Windows users have the choice between a cygwin based Mercurial and [[hg:TortoiseHg|TortoiseHg]], the latter one &amp;quot;is an all-inclusive Mercurial binary installer package for Windows&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Some cygwin versions exhibit a bug which affects hg and other tools. If your cygwin hg complains about: &amp;quot;*** fatal error - could not load shell32, Win32 error 487&amp;quot; use TortoiseHg instead.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=SSH Authentication=&lt;br /&gt;
&lt;br /&gt;
Domain developers can publish their changes on [http://hg.services.openoffice.org hg.services.openoffice.org]. If you are not a domain developer or do not plan to publish your changes via this way to the OOo community just skip this section. Mercurial is a distributed SCM, there are other ways to contribute your changes without having write access to this server.&lt;br /&gt;
&lt;br /&gt;
==SSH key generation==&lt;br /&gt;
&lt;br /&gt;
On Unix or Windows/cygwin a SSH identity (private/public key pair) is generated with:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t dsa&lt;br /&gt;
&lt;br /&gt;
You&amp;#039;ll be asked for pass phrase which protects your private key. Per default the public key is named &amp;lt;tt&amp;gt;$HOME/.ssh/id_dsa.pub&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that SSH keys created between September 2006 and May 2008 on Debian or Debian derived systems like Ubuntu may be insecure. Please use recent SSH tools.&lt;br /&gt;
&lt;br /&gt;
If you want a dedicated identity for just OOo SVN usage, generate a specially named key pair&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t dsa -f ~/.ssh/id_dsa_ooo_svn &lt;br /&gt;
&lt;br /&gt;
==Initial Migration of Keys==&lt;br /&gt;
&lt;br /&gt;
All existing public keys for SVN usage have been migrated for Mercurial use as well. If you are a new domain developer please create a new issue, attach your public key to it and and add it as a dependency to [http://www.openoffice.org/issues/show_bug.cgi?id=94002 issue 94002].&lt;br /&gt;
&lt;br /&gt;
==Ongoing Maintenance==&lt;br /&gt;
&lt;br /&gt;
We will continue to use IssueZilla for managing and tracking key additions and changes.&lt;br /&gt;
Please see [http://www.openoffice.org/docs/ddSSHGuide.html#sendingkey Submitting Your Certificate (Public Key)].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Configuring Mercurial=&lt;br /&gt;
&lt;br /&gt;
Mercurial can be configured via system, user and repository configure files. The most interesting one is the user specific configuration file in &amp;lt;tt&amp;gt;$HOME/.hgrc&amp;lt;/tt&amp;gt;. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ui]&lt;br /&gt;
# The user name will appear as author tag on commits.&lt;br /&gt;
username=Joe Developer &amp;lt;nowiki&amp;gt;&amp;lt;jdeveloper@openoffice.org&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Domain developers only: OOo ssh authentication for pushing &lt;br /&gt;
# to &amp;#039;outgoing&amp;#039; repositories.&lt;br /&gt;
ssh=ssh -C -i &amp;lt;path_to_OOo_ssh_identity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[extensions]&lt;br /&gt;
# Required if &amp;#039;cws fetch&amp;#039; is used to fetch a CWS.&lt;br /&gt;
hgext.mq=&lt;br /&gt;
# Enables the bundled win32text extension. See [hooks] section.&lt;br /&gt;
hgext.win32text=&lt;br /&gt;
&lt;br /&gt;
[hooks]&lt;br /&gt;
# Reject commits which would introduce windows-style CR/LF.&lt;br /&gt;
# Enabling this hook is strongly suggested for OOo development.&lt;br /&gt;
pretxncommit.crlf = python:hgext.win32text.forbidcrlf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s examine this configuration file entry for entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ui]&lt;br /&gt;
username=Joe Developer &amp;lt;nowiki&amp;gt;&amp;lt;jdeveloper@openoffice.org&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The author tag of a changeset is set on commit, and becomes part of the history. Set this entry to identify yourself as author, common usage is to use your name and the OOo email address here.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip| It&amp;#039;s possible to use other email addresses than the OOo one, but in this case please add your OOo account in square braces. Example: &amp;quot;Joe Developer [jdeveloper] &amp;lt;joe@example.com&amp;gt;&amp;quot;. It must always be possible to relate a contribution with an OOo account, the contribution will be rejected otherwise. If you are absolutely not comfortable with disclosing your real name it&amp;#039;s possible to use a pseudonym or just your account name instead, but be reasonable.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ui]&lt;br /&gt;
ssh=ssh -C -i &amp;lt;path_to_OOo_ssh_identity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OOo domain developers can create &amp;quot;child workspaces&amp;quot;, which are effectively public feature branches. Publishing changes on [http://hg.services.openoffice.org hg.services.openoffice.org] requires SSH access, which is configured here. Be sure to use a compressed ssh connection (&amp;lt;tt&amp;gt;-C&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[extensions]&lt;br /&gt;
hgext.mq=&lt;br /&gt;
hgext.win32text=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mercurial supports a huge number of useful [http://mercurial.selenic.com/wiki/UsingExtensions extensions], many of them come bundled. Enable here whatever you want to use. The &amp;#039;mq&amp;#039; extension is required if you want to use the &amp;#039;cws fetch&amp;#039; tool since it makes use of &amp;#039;hg strip&amp;#039; which is part of the &amp;#039;mq&amp;#039; extension. The &amp;#039;win32text&amp;#039; extension is strongly suggested for all OOo developers who work on windows at least occasionally, it provides a hook which prevents you from committing files with CR/LF in them. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[hooks]&lt;br /&gt;
pretxncommit.crlf = python:hgext.win32text.forbidcrlf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is one of the hooks provided by &amp;#039;win32text&amp;#039;. Disable it on the peril of aggravating the whole OOo developer community.&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Mercurial/Cws&amp;diff=173645</id>
		<title>Mercurial/Cws</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Mercurial/Cws&amp;diff=173645"/>
		<updated>2010-06-29T19:50:23Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Creating the child workspace in EIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mercurial}}&lt;br /&gt;
This page discusses the Mercurial part of handling child workspaces (CWSs). It assumes some basic Mercurial knowledge which you can find at the [[Mercurial/Getting Started|Getting Started Page]].&lt;br /&gt;
&lt;br /&gt;
= The OpenOffice.org repository setup =&lt;br /&gt;
&lt;br /&gt;
The OpenOffice.org Mercurial repository is huge, it contains more than 260000 changesets and exceeds 1 GiB in size. Repeatably exchanging this vast numbers of changesets over the Net is prohibitive and wasteful. It&amp;#039;s also not necessary. We were careful to employ a setup which is designed to minimize the number of changesets exchanged over the Net. The basic idea is to create a so called &amp;#039;outgoing&amp;#039; repository for each CWS on the main OOo SCM server. The &amp;#039;outgoing&amp;#039; repository already has each changeset up to and including the milestone the CWS was created on. It is meant as the main collaboration point around the child workspace and is also the place where release engineering will fetch a child workspace when it&amp;#039;s ready for integration.&lt;br /&gt;
&lt;br /&gt;
[[Image:Dscm-setup-ver3.png|500px|center|OpenOffice.org repository setup]]&lt;br /&gt;
&lt;br /&gt;
= Workflow =&lt;br /&gt;
&lt;br /&gt;
The workflow is best explained with an example:&lt;br /&gt;
&lt;br /&gt;
== Creating the child workspace in EIS ==&lt;br /&gt;
&lt;br /&gt;
You need to have &amp;lt;code&amp;gt;perl SOAP::Lite&amp;lt;/code&amp;gt; module installed for &amp;lt;tt&amp;gt;cws create&amp;lt;/tt&amp;gt; to work.  See [[CPAN install]] page for how to install Perl modules. &lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|On a Debian/Ubuntu based distribution install the &amp;lt;tt&amp;gt;libsoap-lite-perl&amp;lt;/tt&amp;gt; package: &lt;br /&gt;
 sudo aptitude install libsoap-lite-perl&lt;br /&gt;
}}&lt;br /&gt;
Create CWS config file &amp;lt;code&amp;gt;$HOME/.cwsrc&amp;lt;/code&amp;gt; [http://wiki.services.openoffice.org/wiki/CWS following on instruction] &lt;br /&gt;
&lt;br /&gt;
Create child workspace with name &amp;lt;code&amp;gt;foo42&amp;lt;/code&amp;gt;, latest available milestone:&lt;br /&gt;
&lt;br /&gt;
 $ cws create --hg DEV300 foo42&lt;br /&gt;
&lt;br /&gt;
This command will register CWS &amp;#039;&amp;#039;foo42&amp;#039;&amp;#039; with EIS and set its SCM property to Mercurial. An &amp;#039;outgoing&amp;#039; repository will be created (this may take up to one hour) on the SCM server where you can publish your changes.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| &amp;lt;code&amp;gt;cws create&amp;lt;/code&amp;gt; will in future default to hg, obsoleting the &amp;lt;code&amp;gt;--hg&amp;lt;/code&amp;gt; switch - as soon as we get rid of SVN for the OOO310 and OOO320 codelines.}}&lt;br /&gt;
&lt;br /&gt;
As an alternative way you can use the EIS web fronted to create the CWS and set it to status &amp;#039;new&amp;#039;. Don&amp;#039;t forget to set the SCM property to &amp;#039;HG&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==  Preparing the working tree ==&lt;br /&gt;
&lt;br /&gt;
===Method A===&lt;br /&gt;
&lt;br /&gt;
Make sure that your local pristine copy contains the latest milestone.&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;local_pristine_copy&amp;gt;&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
&lt;br /&gt;
Clone your working tree from the pristine local copy&lt;br /&gt;
 &lt;br /&gt;
 $ hg clone &amp;lt;local_pristine_copy&amp;gt; foo42&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Caution|&amp;#039;&amp;#039;&amp;#039; Note the above is valid only for a new created cws, not for older cws!&amp;#039;&amp;#039;&amp;#039; This is because the above command will clone the cws up to the current head of the master. This might not be what you want when you want to work on an existing cws currently based on an older milestone, because in that case you would need to merge changes from the master immediately (what once was a &amp;quot;cws rebase&amp;quot;). So when you need a working copy of an older cws and dont want to merge the newest changes on the master use:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ hg clone -r &amp;lt;current_cws_milestone&amp;gt; &amp;lt;local_pristine_copy&amp;gt; foo42&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information see the [[Mercurial/Tips And Tricks|Tips And Tricks Section]].}}&lt;br /&gt;
&lt;br /&gt;
Change the default push location to the OOo SCM server&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;#039;default-push=ssh://hg@hg.services.openoffice.org/cws/foo42&amp;#039; &amp;gt;&amp;gt; foo42/.hg/hgrc&lt;br /&gt;
&lt;br /&gt;
If there are already changes in the outgoing repository pull them into your working tree&lt;br /&gt;
&lt;br /&gt;
 $ cd foo42&lt;br /&gt;
 $ hg pull -u http://hg.services.openoffice.org/cws/foo42&lt;br /&gt;
&lt;br /&gt;
===Method B===&lt;br /&gt;
&lt;br /&gt;
If there is a proper &amp;#039;&amp;#039;$HOME/.cwsrc&amp;#039;&amp;#039; configuration (see below), you can use the &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; command.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| Use the version of &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; which comes with DEV300 m63 or later. }}&lt;br /&gt;
&lt;br /&gt;
 $ cws fetch -c foo42 foo42&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Make sure that either your local source contains the used milestone *or* the &amp;#039;outgoing&amp;#039; repository is already available on the server. Otherwise you might base your working tree on an older milestone. If this happened, just do a pull/update from http://hg.services.openoffice.org/DEV300}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; command adds the default-push location and a hook (prevents the commit of CR/LF in changed files), no need to configure this by hand.&lt;br /&gt;
&lt;br /&gt;
== Commit changes ==&lt;br /&gt;
&lt;br /&gt;
Not much to be said here. Please format the first line of the commit message according to the example below:&lt;br /&gt;
&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: #i4711#: implement feature foo&amp;quot; foo.cxx&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Remember, &amp;#039;&amp;#039;hg commit&amp;#039;&amp;#039; will search the whole tree for to be committed changes if no file/directory is specified.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| Why the name of the CWS in front of the first commit message line? This way we can immediately see which CWS was the origin of a changeset when browsing the history.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip| Make the first line of your commit message concise and stand alone (like an email subject). This will make for a far better browseable history in the long run. See [http://mercurial.selenic.com/wiki/ChangeSetComments] why.}}&lt;br /&gt;
&lt;br /&gt;
== Publishing changes ==&lt;br /&gt;
&lt;br /&gt;
Committing changes just does add them to your local repository. For publishing your changes to the OOo developer community just push them to the &amp;#039;outgoing&amp;#039; repository.&lt;br /&gt;
&lt;br /&gt;
 $ hg push ssh://hg@hg.services.openoffice.org/cws/foo42&lt;br /&gt;
&lt;br /&gt;
If the repository &amp;#039;&amp;#039;hgrc&amp;#039;&amp;#039; has the correct &amp;quot;default-push&amp;quot; entry, the URL can be omitted.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| If someone else pushed changes to the outgoing repository, &amp;#039;&amp;#039;hg push&amp;#039;&amp;#039; might tell you that your push would create a new head and abort. It&amp;#039;s possible to override the abort with the&amp;#039;&amp;#039; -f (--force)&amp;#039;&amp;#039; switch. &amp;#039;&amp;#039;&amp;#039;Never&amp;#039;&amp;#039;&amp;#039; do this. Just pull the changesets in question, merge them and then push the combined result.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| If you are inclined to fake^H^H^H^Hbeautify the commit history, do it before pushing your changesets to the outgoing repository. Once there, your changesets are published and thus should never be meddled with.}}&lt;br /&gt;
&lt;br /&gt;
==Merge changes from the latest milestone in to the CWS==&lt;br /&gt;
&lt;br /&gt;
Updating your CWS to the latest milestone is easier and by *far* faster than with CVS and SVN.&lt;br /&gt;
&lt;br /&gt;
First pull the latest changes from DEV300 into your CWS&lt;br /&gt;
&lt;br /&gt;
 $ cd foo42&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
 $ hg merge&lt;br /&gt;
&lt;br /&gt;
Often enough the merge might result in conflicts. You can list the merged files with and without conflicts with&lt;br /&gt;
 $ hg resolve -l&lt;br /&gt;
&lt;br /&gt;
Once a conflict is fixed mark the corresponding file as resolved&lt;br /&gt;
 $ hg resolve -m &amp;lt;conflicted_file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To start over with the merge process (this will loose all your conflict resolutions up to now!!!)&lt;br /&gt;
 $ hg resolve -a&lt;br /&gt;
&lt;br /&gt;
When every conflict is resolved commit the result of the merge&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: merge with DEV300 m60&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When you are satisfied with merge don&amp;#039;t forget to bump up the milestone in EIS&lt;br /&gt;
 $ hg push ssh://hg@hg.services.openoffice.org/cws/foo42&lt;br /&gt;
 $ cws setcurrent -m m60&lt;br /&gt;
&lt;br /&gt;
The milestone can also be changed via EIS web front end.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t know which was the latest milestone? Find out with&lt;br /&gt;
 $ cws query latest&lt;br /&gt;
&lt;br /&gt;
==Integration==&lt;br /&gt;
&lt;br /&gt;
When the CWS is nominated, RE will take the changesets from the &amp;#039;outgoing&amp;#039; repository. Obviously at this point in time latest your changesets must be published there.&lt;br /&gt;
&lt;br /&gt;
RE might ask you to update your CWS again if there are to many conflicts. Just do another pull/merge/resolve/commit/push cycle then.&lt;br /&gt;
&lt;br /&gt;
=Configuring &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039;=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; can be configured to make use of LOCAL (means: on the same disk) and LAN resources for fast clone operations.&lt;br /&gt;
&lt;br /&gt;
Simply add and configure the following entries in your $HOME/.cwsrc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Directory where pristine copies of OOo master workspaces (ie. DEV300) are kept on the local disk&lt;br /&gt;
# HG_LOCAL_SOURCE=&lt;br /&gt;
# Example:&lt;br /&gt;
HG_LOCAL_SOURCE=/export/hg_clean&lt;br /&gt;
&lt;br /&gt;
# URL where pristine copies of OOo master workspaces (ie. DEV300) are available in a LAN&lt;br /&gt;
# HG_LAN_SOURCE=&lt;br /&gt;
# Example:&lt;br /&gt;
HG_LAN_SOURCE=http://myserver.example.com:8000/&lt;br /&gt;
&lt;br /&gt;
# The OOo SCM server&lt;br /&gt;
HG_REMOTE_SOURCE=http://hg.services.openoffice.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[.cwsrc]] for a complete configuration file.&lt;br /&gt;
&lt;br /&gt;
[[Category:CWSTooling]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Mercurial/Cws&amp;diff=173644</id>
		<title>Mercurial/Cws</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Mercurial/Cws&amp;diff=173644"/>
		<updated>2010-06-29T19:37:18Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Creating the child workspace in EIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mercurial}}&lt;br /&gt;
This page discusses the Mercurial part of handling child workspaces (CWSs). It assumes some basic Mercurial knowledge which you can find at the [[Mercurial/Getting Started|Getting Started Page]].&lt;br /&gt;
&lt;br /&gt;
= The OpenOffice.org repository setup =&lt;br /&gt;
&lt;br /&gt;
The OpenOffice.org Mercurial repository is huge, it contains more than 260000 changesets and exceeds 1 GiB in size. Repeatably exchanging this vast numbers of changesets over the Net is prohibitive and wasteful. It&amp;#039;s also not necessary. We were careful to employ a setup which is designed to minimize the number of changesets exchanged over the Net. The basic idea is to create a so called &amp;#039;outgoing&amp;#039; repository for each CWS on the main OOo SCM server. The &amp;#039;outgoing&amp;#039; repository already has each changeset up to and including the milestone the CWS was created on. It is meant as the main collaboration point around the child workspace and is also the place where release engineering will fetch a child workspace when it&amp;#039;s ready for integration.&lt;br /&gt;
&lt;br /&gt;
[[Image:Dscm-setup-ver3.png|500px|center|OpenOffice.org repository setup]]&lt;br /&gt;
&lt;br /&gt;
= Workflow =&lt;br /&gt;
&lt;br /&gt;
The workflow is best explained with an example:&lt;br /&gt;
&lt;br /&gt;
== Creating the child workspace in EIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to have &amp;lt;code&amp;gt;perl SOAP::Lite&amp;lt;/code&amp;gt; module installed for &amp;lt;tt&amp;gt;cws create&amp;lt;/tt&amp;gt; to work.  See [[CPAN install]] page for how to install Perl modules. &lt;br /&gt;
&lt;br /&gt;
On a Debian/Ubuntu based distribution install the &amp;lt;tt&amp;gt;libsoap-lite-perl&amp;lt;/tt&amp;gt; package: &lt;br /&gt;
 sudo aptitude install libsoap-lite-perl&lt;br /&gt;
&lt;br /&gt;
Create CWS config file &amp;lt;code&amp;gt;$HOME/.cwsrc&amp;lt;/code&amp;gt; [http://wiki.services.openoffice.org/wiki/CWS following on instruction] &lt;br /&gt;
&lt;br /&gt;
Create child workspace with name &amp;lt;code&amp;gt;foo42&amp;lt;/code&amp;gt;, latest available milestone:&lt;br /&gt;
&lt;br /&gt;
 $ cws create --hg DEV300 foo42&lt;br /&gt;
&lt;br /&gt;
This command will register CWS &amp;#039;&amp;#039;foo42&amp;#039;&amp;#039; with EIS and set its SCM property to Mercurial. An &amp;#039;outgoing&amp;#039; repository will be created (this may take up to one hour) on the SCM server where you can publish your changes.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| &amp;lt;code&amp;gt;cws create&amp;lt;/code&amp;gt; will in future default to hg, obsoleting the &amp;lt;code&amp;gt;--hg&amp;lt;/code&amp;gt; switch - as soon as we get rid of SVN for the OOO310 and OOO320 codelines.}}&lt;br /&gt;
&lt;br /&gt;
As an alternative way you can use the EIS web fronted to create the CWS and set it to status &amp;#039;new&amp;#039;. Don&amp;#039;t forget to set the SCM property to &amp;#039;HG&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==  Preparing the working tree ==&lt;br /&gt;
&lt;br /&gt;
===Method A===&lt;br /&gt;
&lt;br /&gt;
Make sure that your local pristine copy contains the latest milestone.&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;local_pristine_copy&amp;gt;&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
&lt;br /&gt;
Clone your working tree from the pristine local copy&lt;br /&gt;
 &lt;br /&gt;
 $ hg clone &amp;lt;local_pristine_copy&amp;gt; foo42&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Caution|&amp;#039;&amp;#039;&amp;#039; Note the above is valid only for a new created cws, not for older cws!&amp;#039;&amp;#039;&amp;#039; This is because the above command will clone the cws up to the current head of the master. This might not be what you want when you want to work on an existing cws currently based on an older milestone, because in that case you would need to merge changes from the master immediately (what once was a &amp;quot;cws rebase&amp;quot;). So when you need a working copy of an older cws and dont want to merge the newest changes on the master use:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ hg clone -r &amp;lt;current_cws_milestone&amp;gt; &amp;lt;local_pristine_copy&amp;gt; foo42&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information see the [[Mercurial/Tips And Tricks|Tips And Tricks Section]].}}&lt;br /&gt;
&lt;br /&gt;
Change the default push location to the OOo SCM server&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;#039;default-push=ssh://hg@hg.services.openoffice.org/cws/foo42&amp;#039; &amp;gt;&amp;gt; foo42/.hg/hgrc&lt;br /&gt;
&lt;br /&gt;
If there are already changes in the outgoing repository pull them into your working tree&lt;br /&gt;
&lt;br /&gt;
 $ cd foo42&lt;br /&gt;
 $ hg pull -u http://hg.services.openoffice.org/cws/foo42&lt;br /&gt;
&lt;br /&gt;
===Method B===&lt;br /&gt;
&lt;br /&gt;
If there is a proper &amp;#039;&amp;#039;$HOME/.cwsrc&amp;#039;&amp;#039; configuration (see below), you can use the &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; command.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| Use the version of &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; which comes with DEV300 m63 or later. }}&lt;br /&gt;
&lt;br /&gt;
 $ cws fetch -c foo42 foo42&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Make sure that either your local source contains the used milestone *or* the &amp;#039;outgoing&amp;#039; repository is already available on the server. Otherwise you might base your working tree on an older milestone. If this happened, just do a pull/update from http://hg.services.openoffice.org/DEV300}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; command adds the default-push location and a hook (prevents the commit of CR/LF in changed files), no need to configure this by hand.&lt;br /&gt;
&lt;br /&gt;
== Commit changes ==&lt;br /&gt;
&lt;br /&gt;
Not much to be said here. Please format the first line of the commit message according to the example below:&lt;br /&gt;
&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: #i4711#: implement feature foo&amp;quot; foo.cxx&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Remember, &amp;#039;&amp;#039;hg commit&amp;#039;&amp;#039; will search the whole tree for to be committed changes if no file/directory is specified.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| Why the name of the CWS in front of the first commit message line? This way we can immediately see which CWS was the origin of a changeset when browsing the history.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip| Make the first line of your commit message concise and stand alone (like an email subject). This will make for a far better browseable history in the long run. See [http://mercurial.selenic.com/wiki/ChangeSetComments] why.}}&lt;br /&gt;
&lt;br /&gt;
== Publishing changes ==&lt;br /&gt;
&lt;br /&gt;
Committing changes just does add them to your local repository. For publishing your changes to the OOo developer community just push them to the &amp;#039;outgoing&amp;#039; repository.&lt;br /&gt;
&lt;br /&gt;
 $ hg push ssh://hg@hg.services.openoffice.org/cws/foo42&lt;br /&gt;
&lt;br /&gt;
If the repository &amp;#039;&amp;#039;hgrc&amp;#039;&amp;#039; has the correct &amp;quot;default-push&amp;quot; entry, the URL can be omitted.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| If someone else pushed changes to the outgoing repository, &amp;#039;&amp;#039;hg push&amp;#039;&amp;#039; might tell you that your push would create a new head and abort. It&amp;#039;s possible to override the abort with the&amp;#039;&amp;#039; -f (--force)&amp;#039;&amp;#039; switch. &amp;#039;&amp;#039;&amp;#039;Never&amp;#039;&amp;#039;&amp;#039; do this. Just pull the changesets in question, merge them and then push the combined result.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| If you are inclined to fake^H^H^H^Hbeautify the commit history, do it before pushing your changesets to the outgoing repository. Once there, your changesets are published and thus should never be meddled with.}}&lt;br /&gt;
&lt;br /&gt;
==Merge changes from the latest milestone in to the CWS==&lt;br /&gt;
&lt;br /&gt;
Updating your CWS to the latest milestone is easier and by *far* faster than with CVS and SVN.&lt;br /&gt;
&lt;br /&gt;
First pull the latest changes from DEV300 into your CWS&lt;br /&gt;
&lt;br /&gt;
 $ cd foo42&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
 $ hg merge&lt;br /&gt;
&lt;br /&gt;
Often enough the merge might result in conflicts. You can list the merged files with and without conflicts with&lt;br /&gt;
 $ hg resolve -l&lt;br /&gt;
&lt;br /&gt;
Once a conflict is fixed mark the corresponding file as resolved&lt;br /&gt;
 $ hg resolve -m &amp;lt;conflicted_file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To start over with the merge process (this will loose all your conflict resolutions up to now!!!)&lt;br /&gt;
 $ hg resolve -a&lt;br /&gt;
&lt;br /&gt;
When every conflict is resolved commit the result of the merge&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: merge with DEV300 m60&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When you are satisfied with merge don&amp;#039;t forget to bump up the milestone in EIS&lt;br /&gt;
 $ hg push ssh://hg@hg.services.openoffice.org/cws/foo42&lt;br /&gt;
 $ cws setcurrent -m m60&lt;br /&gt;
&lt;br /&gt;
The milestone can also be changed via EIS web front end.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t know which was the latest milestone? Find out with&lt;br /&gt;
 $ cws query latest&lt;br /&gt;
&lt;br /&gt;
==Integration==&lt;br /&gt;
&lt;br /&gt;
When the CWS is nominated, RE will take the changesets from the &amp;#039;outgoing&amp;#039; repository. Obviously at this point in time latest your changesets must be published there.&lt;br /&gt;
&lt;br /&gt;
RE might ask you to update your CWS again if there are to many conflicts. Just do another pull/merge/resolve/commit/push cycle then.&lt;br /&gt;
&lt;br /&gt;
=Configuring &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039;=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; can be configured to make use of LOCAL (means: on the same disk) and LAN resources for fast clone operations.&lt;br /&gt;
&lt;br /&gt;
Simply add and configure the following entries in your $HOME/.cwsrc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Directory where pristine copies of OOo master workspaces (ie. DEV300) are kept on the local disk&lt;br /&gt;
# HG_LOCAL_SOURCE=&lt;br /&gt;
# Example:&lt;br /&gt;
HG_LOCAL_SOURCE=/export/hg_clean&lt;br /&gt;
&lt;br /&gt;
# URL where pristine copies of OOo master workspaces (ie. DEV300) are available in a LAN&lt;br /&gt;
# HG_LAN_SOURCE=&lt;br /&gt;
# Example:&lt;br /&gt;
HG_LAN_SOURCE=http://myserver.example.com:8000/&lt;br /&gt;
&lt;br /&gt;
# The OOo SCM server&lt;br /&gt;
HG_REMOTE_SOURCE=http://hg.services.openoffice.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[.cwsrc]] for a complete configuration file.&lt;br /&gt;
&lt;br /&gt;
[[Category:CWSTooling]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Mercurial/Cws&amp;diff=173643</id>
		<title>Mercurial/Cws</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Mercurial/Cws&amp;diff=173643"/>
		<updated>2010-06-29T19:27:24Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Creating the child workspace in EIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mercurial}}&lt;br /&gt;
This page discusses the Mercurial part of handling child workspaces (CWSs). It assumes some basic Mercurial knowledge which you can find at the [[Mercurial/Getting Started|Getting Started Page]].&lt;br /&gt;
&lt;br /&gt;
= The OpenOffice.org repository setup =&lt;br /&gt;
&lt;br /&gt;
The OpenOffice.org Mercurial repository is huge, it contains more than 260000 changesets and exceeds 1 GiB in size. Repeatably exchanging this vast numbers of changesets over the Net is prohibitive and wasteful. It&amp;#039;s also not necessary. We were careful to employ a setup which is designed to minimize the number of changesets exchanged over the Net. The basic idea is to create a so called &amp;#039;outgoing&amp;#039; repository for each CWS on the main OOo SCM server. The &amp;#039;outgoing&amp;#039; repository already has each changeset up to and including the milestone the CWS was created on. It is meant as the main collaboration point around the child workspace and is also the place where release engineering will fetch a child workspace when it&amp;#039;s ready for integration.&lt;br /&gt;
&lt;br /&gt;
[[Image:Dscm-setup-ver3.png|500px|center|OpenOffice.org repository setup]]&lt;br /&gt;
&lt;br /&gt;
= Workflow =&lt;br /&gt;
&lt;br /&gt;
The workflow is best explained with an example:&lt;br /&gt;
&lt;br /&gt;
== Creating the child workspace in EIS ==&lt;br /&gt;
&lt;br /&gt;
You need to have perl SOAP::Lite module installed for &amp;lt;tt&amp;gt;cws create&amp;lt;/tt&amp;gt; to work.  See [[CPAN install]] page for how to install Perl modules. &lt;br /&gt;
On a Debian/Ubuntu based distribution install the &amp;lt;tt&amp;gt;libsoap-lite-perl&amp;lt;/tt&amp;gt; package: &lt;br /&gt;
 sudo aptitude install libsoap-lite-perl&lt;br /&gt;
&lt;br /&gt;
Create child workspace with name foo42, latest available milestone:&lt;br /&gt;
&lt;br /&gt;
 $ cws create --hg DEV300 foo42&lt;br /&gt;
&lt;br /&gt;
This command will register CWS &amp;#039;&amp;#039;foo42&amp;#039;&amp;#039; with EIS and set its SCM property to Mercurial. An &amp;#039;outgoing&amp;#039; repository will be created (this may take up to one hour) on the SCM server where you can publish your changes.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;cws create&amp;#039;&amp;#039; will in future default to hg, obsoleting the &amp;#039;&amp;#039;--hg&amp;#039;&amp;#039; switch - as soon as we get rid of SVN for the OOO310 and OOO320 codelines.}}&lt;br /&gt;
&lt;br /&gt;
As an alternative way you can use the EIS web fronted to create the CWS and set it to status &amp;#039;new&amp;#039;. Don&amp;#039;t forget to set the SCM property to &amp;#039;HG&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==  Preparing the working tree ==&lt;br /&gt;
&lt;br /&gt;
===Method A===&lt;br /&gt;
&lt;br /&gt;
Make sure that your local pristine copy contains the latest milestone.&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;local_pristine_copy&amp;gt;&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
&lt;br /&gt;
Clone your working tree from the pristine local copy&lt;br /&gt;
 &lt;br /&gt;
 $ hg clone &amp;lt;local_pristine_copy&amp;gt; foo42&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Caution|&amp;#039;&amp;#039;&amp;#039; Note the above is valid only for a new created cws, not for older cws!&amp;#039;&amp;#039;&amp;#039; This is because the above command will clone the cws up to the current head of the master. This might not be what you want when you want to work on an existing cws currently based on an older milestone, because in that case you would need to merge changes from the master immediately (what once was a &amp;quot;cws rebase&amp;quot;). So when you need a working copy of an older cws and dont want to merge the newest changes on the master use:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ hg clone -r &amp;lt;current_cws_milestone&amp;gt; &amp;lt;local_pristine_copy&amp;gt; foo42&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information see the [[Mercurial/Tips And Tricks|Tips And Tricks Section]].}}&lt;br /&gt;
&lt;br /&gt;
Change the default push location to the OOo SCM server&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;#039;default-push=ssh://hg@hg.services.openoffice.org/cws/foo42&amp;#039; &amp;gt;&amp;gt; foo42/.hg/hgrc&lt;br /&gt;
&lt;br /&gt;
If there are already changes in the outgoing repository pull them into your working tree&lt;br /&gt;
&lt;br /&gt;
 $ cd foo42&lt;br /&gt;
 $ hg pull -u http://hg.services.openoffice.org/cws/foo42&lt;br /&gt;
&lt;br /&gt;
===Method B===&lt;br /&gt;
&lt;br /&gt;
If there is a proper &amp;#039;&amp;#039;$HOME/.cwsrc&amp;#039;&amp;#039; configuration (see below), you can use the &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; command.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| Use the version of &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; which comes with DEV300 m63 or later. }}&lt;br /&gt;
&lt;br /&gt;
 $ cws fetch -c foo42 foo42&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Make sure that either your local source contains the used milestone *or* the &amp;#039;outgoing&amp;#039; repository is already available on the server. Otherwise you might base your working tree on an older milestone. If this happened, just do a pull/update from http://hg.services.openoffice.org/DEV300}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; command adds the default-push location and a hook (prevents the commit of CR/LF in changed files), no need to configure this by hand.&lt;br /&gt;
&lt;br /&gt;
== Commit changes ==&lt;br /&gt;
&lt;br /&gt;
Not much to be said here. Please format the first line of the commit message according to the example below:&lt;br /&gt;
&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: #i4711#: implement feature foo&amp;quot; foo.cxx&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Remember, &amp;#039;&amp;#039;hg commit&amp;#039;&amp;#039; will search the whole tree for to be committed changes if no file/directory is specified.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| Why the name of the CWS in front of the first commit message line? This way we can immediately see which CWS was the origin of a changeset when browsing the history.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip| Make the first line of your commit message concise and stand alone (like an email subject). This will make for a far better browseable history in the long run. See [http://mercurial.selenic.com/wiki/ChangeSetComments] why.}}&lt;br /&gt;
&lt;br /&gt;
== Publishing changes ==&lt;br /&gt;
&lt;br /&gt;
Committing changes just does add them to your local repository. For publishing your changes to the OOo developer community just push them to the &amp;#039;outgoing&amp;#039; repository.&lt;br /&gt;
&lt;br /&gt;
 $ hg push ssh://hg@hg.services.openoffice.org/cws/foo42&lt;br /&gt;
&lt;br /&gt;
If the repository &amp;#039;&amp;#039;hgrc&amp;#039;&amp;#039; has the correct &amp;quot;default-push&amp;quot; entry, the URL can be omitted.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| If someone else pushed changes to the outgoing repository, &amp;#039;&amp;#039;hg push&amp;#039;&amp;#039; might tell you that your push would create a new head and abort. It&amp;#039;s possible to override the abort with the&amp;#039;&amp;#039; -f (--force)&amp;#039;&amp;#039; switch. &amp;#039;&amp;#039;&amp;#039;Never&amp;#039;&amp;#039;&amp;#039; do this. Just pull the changesets in question, merge them and then push the combined result.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| If you are inclined to fake^H^H^H^Hbeautify the commit history, do it before pushing your changesets to the outgoing repository. Once there, your changesets are published and thus should never be meddled with.}}&lt;br /&gt;
&lt;br /&gt;
==Merge changes from the latest milestone in to the CWS==&lt;br /&gt;
&lt;br /&gt;
Updating your CWS to the latest milestone is easier and by *far* faster than with CVS and SVN.&lt;br /&gt;
&lt;br /&gt;
First pull the latest changes from DEV300 into your CWS&lt;br /&gt;
&lt;br /&gt;
 $ cd foo42&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
 $ hg merge&lt;br /&gt;
&lt;br /&gt;
Often enough the merge might result in conflicts. You can list the merged files with and without conflicts with&lt;br /&gt;
 $ hg resolve -l&lt;br /&gt;
&lt;br /&gt;
Once a conflict is fixed mark the corresponding file as resolved&lt;br /&gt;
 $ hg resolve -m &amp;lt;conflicted_file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To start over with the merge process (this will loose all your conflict resolutions up to now!!!)&lt;br /&gt;
 $ hg resolve -a&lt;br /&gt;
&lt;br /&gt;
When every conflict is resolved commit the result of the merge&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: merge with DEV300 m60&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When you are satisfied with merge don&amp;#039;t forget to bump up the milestone in EIS&lt;br /&gt;
 $ hg push ssh://hg@hg.services.openoffice.org/cws/foo42&lt;br /&gt;
 $ cws setcurrent -m m60&lt;br /&gt;
&lt;br /&gt;
The milestone can also be changed via EIS web front end.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t know which was the latest milestone? Find out with&lt;br /&gt;
 $ cws query latest&lt;br /&gt;
&lt;br /&gt;
==Integration==&lt;br /&gt;
&lt;br /&gt;
When the CWS is nominated, RE will take the changesets from the &amp;#039;outgoing&amp;#039; repository. Obviously at this point in time latest your changesets must be published there.&lt;br /&gt;
&lt;br /&gt;
RE might ask you to update your CWS again if there are to many conflicts. Just do another pull/merge/resolve/commit/push cycle then.&lt;br /&gt;
&lt;br /&gt;
=Configuring &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039;=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; can be configured to make use of LOCAL (means: on the same disk) and LAN resources for fast clone operations.&lt;br /&gt;
&lt;br /&gt;
Simply add and configure the following entries in your $HOME/.cwsrc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Directory where pristine copies of OOo master workspaces (ie. DEV300) are kept on the local disk&lt;br /&gt;
# HG_LOCAL_SOURCE=&lt;br /&gt;
# Example:&lt;br /&gt;
HG_LOCAL_SOURCE=/export/hg_clean&lt;br /&gt;
&lt;br /&gt;
# URL where pristine copies of OOo master workspaces (ie. DEV300) are available in a LAN&lt;br /&gt;
# HG_LAN_SOURCE=&lt;br /&gt;
# Example:&lt;br /&gt;
HG_LAN_SOURCE=http://myserver.example.com:8000/&lt;br /&gt;
&lt;br /&gt;
# The OOo SCM server&lt;br /&gt;
HG_REMOTE_SOURCE=http://hg.services.openoffice.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[.cwsrc]] for a complete configuration file.&lt;br /&gt;
&lt;br /&gt;
[[Category:CWSTooling]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Mercurial/Cws&amp;diff=173538</id>
		<title>Mercurial/Cws</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Mercurial/Cws&amp;diff=173538"/>
		<updated>2010-06-28T23:43:15Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Creating the child workspace in EIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Mercurial}}&lt;br /&gt;
This page discusses the Mercurial part of handling child workspaces (CWSs). It assumes some basic Mercurial knowledge which you can find at the [[Mercurial/Getting Started|Getting Started Page]].&lt;br /&gt;
&lt;br /&gt;
= The OpenOffice.org repository setup =&lt;br /&gt;
&lt;br /&gt;
The OpenOffice.org Mercurial repository is huge, it contains more than 260000 changesets and exceeds 1 GiB in size. Repeatably exchanging this vast numbers of changesets over the Net is prohibitive and wasteful. It&amp;#039;s also not necessary. We were careful to employ a setup which is designed to minimize the number of changesets exchanged over the Net. The basic idea is to create a so called &amp;#039;outgoing&amp;#039; repository for each CWS on the main OOo SCM server. The &amp;#039;outgoing&amp;#039; repository already has each changeset up to and including the milestone the CWS was created on. It is meant as the main collaboration point around the child workspace and is also the place where release engineering will fetch a child workspace when it&amp;#039;s ready for integration.&lt;br /&gt;
&lt;br /&gt;
[[Image:Dscm-setup-ver3.png|500px|center|OpenOffice.org repository setup]]&lt;br /&gt;
&lt;br /&gt;
= Workflow =&lt;br /&gt;
&lt;br /&gt;
The workflow is best explained with an example:&lt;br /&gt;
&lt;br /&gt;
== Creating the child workspace in EIS ==&lt;br /&gt;
&lt;br /&gt;
You need to have perl SOAP::Lite module installed for &amp;lt;tt&amp;gt;cws create&amp;lt;/tt&amp;gt; to work.  See [[CPAN install]] page for how to install Perl modules.&lt;br /&gt;
&lt;br /&gt;
Create child workspace with name foo42, latest available milestone:&lt;br /&gt;
&lt;br /&gt;
 $ cws create --hg DEV300 foo42&lt;br /&gt;
&lt;br /&gt;
This command will register CWS &amp;#039;&amp;#039;foo42&amp;#039;&amp;#039; with EIS and set its SCM property to Mercurial. An &amp;#039;outgoing&amp;#039; repository will be created (this may take up to one hour) on the SCM server where you can publish your changes.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| &amp;#039;&amp;#039;cws create&amp;#039;&amp;#039; will in future default to hg, obsoleting the &amp;#039;&amp;#039;--hg&amp;#039;&amp;#039; switch - as soon as we get rid of SVN for the OOO310 and OOO320 codelines.}}&lt;br /&gt;
&lt;br /&gt;
As an alternative way you can use the EIS web fronted to create the CWS and set it to status &amp;#039;new&amp;#039;. Don&amp;#039;t forget to set the SCM property to &amp;#039;HG&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==  Preparing the working tree ==&lt;br /&gt;
&lt;br /&gt;
===Method A===&lt;br /&gt;
&lt;br /&gt;
Make sure that your local pristine copy contains the latest milestone.&lt;br /&gt;
&lt;br /&gt;
 $ cd &amp;lt;local_pristine_copy&amp;gt;&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
&lt;br /&gt;
Clone your working tree from the pristine local copy&lt;br /&gt;
 &lt;br /&gt;
 $ hg clone &amp;lt;local_pristine_copy&amp;gt; foo42&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Caution|&amp;#039;&amp;#039;&amp;#039; Note the above is valid only for a new created cws, not for older cws!&amp;#039;&amp;#039;&amp;#039; This is because the above command will clone the cws up to the current head of the master. This might not be what you want when you want to work on an existing cws currently based on an older milestone, because in that case you would need to merge changes from the master immediately (what once was a &amp;quot;cws rebase&amp;quot;). So when you need a working copy of an older cws and dont want to merge the newest changes on the master use:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ hg clone -r &amp;lt;current_cws_milestone&amp;gt; &amp;lt;local_pristine_copy&amp;gt; foo42&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information see the [[Mercurial/Tips And Tricks|Tips And Tricks Section]].}}&lt;br /&gt;
&lt;br /&gt;
Change the default push location to the OOo SCM server&lt;br /&gt;
&lt;br /&gt;
 $ echo &amp;#039;default-push=ssh://hg@hg.services.openoffice.org/cws/foo42&amp;#039; &amp;gt;&amp;gt; foo42/.hg/hgrc&lt;br /&gt;
&lt;br /&gt;
If there are already changes in the outgoing repository pull them into your working tree&lt;br /&gt;
&lt;br /&gt;
 $ cd foo42&lt;br /&gt;
 $ hg pull -u http://hg.services.openoffice.org/cws/foo42&lt;br /&gt;
&lt;br /&gt;
===Method B===&lt;br /&gt;
&lt;br /&gt;
If there is a proper &amp;#039;&amp;#039;$HOME/.cwsrc&amp;#039;&amp;#039; configuration (see below), you can use the &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; command.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| Use the version of &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; which comes with DEV300 m63 or later. }}&lt;br /&gt;
&lt;br /&gt;
 $ cws fetch -c foo42 foo42&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Make sure that either your local source contains the used milestone *or* the &amp;#039;outgoing&amp;#039; repository is already available on the server. Otherwise you might base your working tree on an older milestone. If this happened, just do a pull/update from http://hg.services.openoffice.org/DEV300}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; command adds the default-push location and a hook (prevents the commit of CR/LF in changed files), no need to configure this by hand.&lt;br /&gt;
&lt;br /&gt;
== Commit changes ==&lt;br /&gt;
&lt;br /&gt;
Not much to be said here. Please format the first line of the commit message according to the example below:&lt;br /&gt;
&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: #i4711#: implement feature foo&amp;quot; foo.cxx&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| Remember, &amp;#039;&amp;#039;hg commit&amp;#039;&amp;#039; will search the whole tree for to be committed changes if no file/directory is specified.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| Why the name of the CWS in front of the first commit message line? This way we can immediately see which CWS was the origin of a changeset when browsing the history.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip| Make the first line of your commit message concise and stand alone (like an email subject). This will make for a far better browseable history in the long run. See [http://mercurial.selenic.com/wiki/ChangeSetComments] why.}}&lt;br /&gt;
&lt;br /&gt;
== Publishing changes ==&lt;br /&gt;
&lt;br /&gt;
Committing changes just does add them to your local repository. For publishing your changes to the OOo developer community just push them to the &amp;#039;outgoing&amp;#039; repository.&lt;br /&gt;
&lt;br /&gt;
 $ hg push ssh://hg@hg.services.openoffice.org/cws/foo42&lt;br /&gt;
&lt;br /&gt;
If the repository &amp;#039;&amp;#039;hgrc&amp;#039;&amp;#039; has the correct &amp;quot;default-push&amp;quot; entry, the URL can be omitted.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution| If someone else pushed changes to the outgoing repository, &amp;#039;&amp;#039;hg push&amp;#039;&amp;#039; might tell you that your push would create a new head and abort. It&amp;#039;s possible to override the abort with the&amp;#039;&amp;#039; -f (--force)&amp;#039;&amp;#039; switch. &amp;#039;&amp;#039;&amp;#039;Never&amp;#039;&amp;#039;&amp;#039; do this. Just pull the changesets in question, merge them and then push the combined result.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| If you are inclined to fake^H^H^H^Hbeautify the commit history, do it before pushing your changesets to the outgoing repository. Once there, your changesets are published and thus should never be meddled with.}}&lt;br /&gt;
&lt;br /&gt;
==Merge changes from the latest milestone in to the CWS==&lt;br /&gt;
&lt;br /&gt;
Updating your CWS to the latest milestone is easier and by *far* faster than with CVS and SVN.&lt;br /&gt;
&lt;br /&gt;
First pull the latest changes from DEV300 into your CWS&lt;br /&gt;
&lt;br /&gt;
 $ cd foo42&lt;br /&gt;
 $ hg pull http://hg.services.openoffice.org/DEV300&lt;br /&gt;
 $ hg merge&lt;br /&gt;
&lt;br /&gt;
Often enough the merge might result in conflicts. You can list the merged files with and without conflicts with&lt;br /&gt;
 $ hg resolve -l&lt;br /&gt;
&lt;br /&gt;
Once a conflict is fixed mark the corresponding file as resolved&lt;br /&gt;
 $ hg resolve -m &amp;lt;conflicted_file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To start over with the merge process (this will loose all your conflict resolutions up to now!!!)&lt;br /&gt;
 $ hg resolve -a&lt;br /&gt;
&lt;br /&gt;
When every conflict is resolved commit the result of the merge&lt;br /&gt;
 $ hg commit -m&amp;quot;foo42: merge with DEV300 m60&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When you are satisfied with merge don&amp;#039;t forget to bump up the milestone in EIS&lt;br /&gt;
 $ hg push ssh://hg@hg.services.openoffice.org/cws/foo42&lt;br /&gt;
 $ cws setcurrent -m m60&lt;br /&gt;
&lt;br /&gt;
The milestone can also be changed via EIS web front end.&lt;br /&gt;
&lt;br /&gt;
Don&amp;#039;t know which was the latest milestone? Find out with&lt;br /&gt;
 $ cws query latest&lt;br /&gt;
&lt;br /&gt;
==Integration==&lt;br /&gt;
&lt;br /&gt;
When the CWS is nominated, RE will take the changesets from the &amp;#039;outgoing&amp;#039; repository. Obviously at this point in time latest your changesets must be published there.&lt;br /&gt;
&lt;br /&gt;
RE might ask you to update your CWS again if there are to many conflicts. Just do another pull/merge/resolve/commit/push cycle then.&lt;br /&gt;
&lt;br /&gt;
=Configuring &amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039;=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;cws fetch&amp;#039;&amp;#039; can be configured to make use of LOCAL (means: on the same disk) and LAN resources for fast clone operations.&lt;br /&gt;
&lt;br /&gt;
Simply add and configure the following entries in your $HOME/.cwsrc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Directory where pristine copies of OOo master workspaces (ie. DEV300) are kept on the local disk&lt;br /&gt;
# HG_LOCAL_SOURCE=&lt;br /&gt;
# Example:&lt;br /&gt;
HG_LOCAL_SOURCE=/export/hg_clean&lt;br /&gt;
&lt;br /&gt;
# URL where pristine copies of OOo master workspaces (ie. DEV300) are available in a LAN&lt;br /&gt;
# HG_LAN_SOURCE=&lt;br /&gt;
# Example:&lt;br /&gt;
HG_LAN_SOURCE=http://myserver.example.com:8000/&lt;br /&gt;
&lt;br /&gt;
# The OOo SCM server&lt;br /&gt;
HG_REMOTE_SOURCE=http://hg.services.openoffice.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[.cwsrc]] for a complete configuration file.&lt;br /&gt;
&lt;br /&gt;
[[Category:CWSTooling]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Architecture/To-Dos&amp;diff=173459</id>
		<title>Architecture/To-Dos</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Architecture/To-Dos&amp;diff=173459"/>
		<updated>2010-06-28T11:51:24Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Replace code with 3rd party */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;[[Category:Architecture]] [[Category:To-Do]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page intends to collect various architectural deficiencies (aka the pet peeves of various people) of OpenOffice.org, and lists the areas where&amp;#039;s work in progress to improve on the architecture.&lt;br /&gt;
&lt;br /&gt;
Depending on the specific count algorithm, OOo consists of approximately 7E6 lines of code (the overwhelming lot being c++, all other being an order of magnitude less (Java, Perl, Basic, Python)). This sheer size in and of itself is a problem - the code base is notorious for crashing or slowing down to a crawl various software engineering tools, from debugger to dependency analysis to reverse design extraction.&lt;br /&gt;
&lt;br /&gt;
The code itself varies greatly in quality, style, and age (the latter invariably leading to the former, if you recall the history and evolvement of c++), with parts being there virtually unmodified for 10+ years, and others just recently written from scratch.&lt;br /&gt;
&lt;br /&gt;
Taken together, this leads to a lot of complexity and [http://artax.karlin.mff.cuni.cz/~kendy/ooo/cut-n-paste/src680-m154.txt.gz redundancy], which is very hard to remove.&lt;br /&gt;
&lt;br /&gt;
Facing this amount of code, the big rules must be:&lt;br /&gt;
*simplify&lt;br /&gt;
**remove internal redundancy&lt;br /&gt;
**remove external redundancy (use external projects, whereever possible)&lt;br /&gt;
**remove unused or dead code&lt;br /&gt;
**remove legacy functionality, which does no longer provide noticeable value (e.g. [[Framework/Modules/binfilter|binfilter]])&lt;br /&gt;
&lt;br /&gt;
*refactor for orthogonality&lt;br /&gt;
**make subsystems implement independent functionality&lt;br /&gt;
**enable combinations of those subsystems to be freely combinable&lt;br /&gt;
**carry that to the UI level (no artificial restrictions on what one can do with UI objects - e.g. shapes can be rotated, and clearly text frames should, too)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Architectural To-Dos==&lt;br /&gt;
&amp;lt;DPL&amp;gt;category=To-Do&lt;br /&gt;
category=Architecture&amp;lt;/DPL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Infrastructure Improvements==&lt;br /&gt;
&lt;br /&gt;
*[[BuildSpeedup | Speeding up the build system]], and maybe even make it consider global dependencies (currently, OOo has the notion of modules, which approximately map to toplevel directories in the build tree. Automatic build-time dependency calculation is currently only available on the intra-module level).&lt;br /&gt;
&lt;br /&gt;
*Making the actual design more accessible, improving upon existing solutions like [http://ooo.ximian.com/lxr/ LXR] or [http://ooo.ximian.com/bonsai/ Bonsai]. Ultimately, this should result in refactorings of the source code being both much easier and much safer than today, by providing information where and how specific functionality is used. A prerequisite for that would be a parser that &amp;#039;&amp;#039;really&amp;#039;&amp;#039; knows about c++ - [http://www.gccxml.org/ gccxml] might be a starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Runtime System Improvements==&lt;br /&gt;
&lt;br /&gt;
This is about making the implementation languages safer, and easier to use. What follows could also be subsumed under &amp;quot;transparency on the implementation level&amp;quot;. When something can be used transparently, or appears transparent to a user, it is an implementation aspect she need not care about. Being able to program in an environment which is transparent with regard to lots of aspects, empowers the developer to focus on the problem at hand, not having to litter her code with mundane tasks such as memory management or locking.&lt;br /&gt;
&lt;br /&gt;
*Make threading transparent. Currently, fulfilling the contract of a UNO component regarding thread-safeness is&lt;br /&gt;
#tedious work, because normally each involved object has to acquire and release a mutex on method entry and exit, respectively&lt;br /&gt;
#almost impossible to get right, let alone verified to work correctly (no races, no deadlocks), because of the sheer mass of involved objects and mutices (the number of distinct states that would have to be checked for a proper verification is intractable for anything but the most trivial examples). The upcoming [[Uno/Effort/Binary/Extend Threading-Model|extended Binary Uno threading-model]] makes thread-safeness transparent, by automatically locking and unlocking when entering or exiting components on a much coarser level than single methods.&lt;br /&gt;
&lt;br /&gt;
*Make other mundane stuff transparent. Like memory management (via garbage collection, or refcounting via [http://www.boost.org/libs/smart_ptr/index.html smart ptrs], [http://api.openoffice.org/docs/DevelopersGuide/ProfUNO/ProfUNO.htm#1+4+2+7+3+Mapping+of+Interface UNO reference]), or [http://en.wikipedia.org/wiki/Transaction_processing transactionality] (the mode of making changes take place either completely, or not at all. Having a component behave in a non-transactional way in the face of an error makes recovery rather hard. There&amp;#039;s more to transactionality than exception-safeness. Imagine two users collaborating on the same document).&lt;br /&gt;
&lt;br /&gt;
==General Refactoring Improvements==&lt;br /&gt;
For many reasons the OpenOffice.org codebase is difficult to understand and navigate.  On of the reasons is a lack of cleanup in the code.  There is a never ending list of things that ought to be done-- add some of your own.&lt;br /&gt;
&lt;br /&gt;
*Actually remove deprecated things.  Things like String and [http://go-oo.org/lxr/ident?i=UniString UniString] need to go.  svtools and tools have loads of stuff that is duplicated elsewhere or is deprecated.  Getting rid of these sorts of things will make maintaining application code much easier.  &lt;br /&gt;
&lt;br /&gt;
*Document things.  Some of the code has comments that at one time were correct.  Some code has German comments.  While most of the OpenOffice.org programmers sind Deutschschprachig, there is an unofficial understanding that German comments mean &amp;quot;don&amp;#039;t touch.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Code Improvements==&lt;br /&gt;
===Remove unused code===&lt;br /&gt;
Binary Loading/Saving stuff in ItemSets, depend on EditEngine Loading/Saving (only used for Clipboard) - MT&lt;br /&gt;
&lt;br /&gt;
===Remove duplicate code===&lt;br /&gt;
Consolidate slightly copied and modified code.&lt;br /&gt;
* BigPointerArray vs. SvPointerArray&lt;br /&gt;
* RTL Strings with Tools Strings&lt;br /&gt;
&lt;br /&gt;
Consolidate Text Engines&lt;br /&gt;
* Text Engine&lt;br /&gt;
* Writer Engine&lt;br /&gt;
* Edit Engine&lt;br /&gt;
&lt;br /&gt;
===Replace code with 3rd party===&lt;br /&gt;
Replace self made containers with STL containers.&lt;br /&gt;
* Tools Container,&lt;br /&gt;
* SvPointerArray ([http://www.openoffice.org/issues/show_bug.cgi?id=112395 Issue 112395]), &lt;br /&gt;
* BigPointerArray,&lt;br /&gt;
* &amp;quot;GetPos&amp;quot; is mostly used wrong -&amp;gt; remove it (algorithmic complexity to hight O(n*n))&lt;br /&gt;
&lt;br /&gt;
===Improve modularity===&lt;br /&gt;
?Clear &amp;quot;Mission Statements&amp;quot; for modules?&lt;br /&gt;
&lt;br /&gt;
===[[VCL]]===&lt;br /&gt;
get rid of internal event queue.&lt;br /&gt;
&lt;br /&gt;
==Framework Improvements==&lt;br /&gt;
&lt;br /&gt;
The framework module already has a very modular architecture solely based on UNO components. Amongst others, it manages menus and toolbars, but it does not manage docked windows like e.g. navigator or impress task pane. These windows are still managed in sfx2 and their implementations are based on sfx2 classes. No non-sfx2 based module can use them.&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s the roadmap:&lt;br /&gt;
&lt;br /&gt;
* add a LayoutManager for DockingWindows to the framework module that works in the same way as the LayoutManager for toolbars&lt;br /&gt;
* implement docking handlers for the windows managed by this LayoutManager in the same way as for the toolbars&lt;br /&gt;
* provide factories for the sfx2 based implementations of Docking Windows&lt;br /&gt;
* simplify the frame classes in sfx2; without the sfx internal layout manager for DockingWindows only one &amp;quot;frame&amp;quot; class is necessary&lt;br /&gt;
* put the current container windows inside of task windows managed by a Task service (later they might become tabs in a tab bar)&lt;br /&gt;
* move the LayoutManager from the frame to the task (or add some &amp;quot;super manager&amp;quot;) so that frames can share their tools&lt;br /&gt;
&lt;br /&gt;
Amongst others this will allow to have more than one view to one (&amp;quot;split view&amp;quot;) or several documents in one system task window.&lt;br /&gt;
&lt;br /&gt;
===Status Quo===&lt;br /&gt;
&lt;br /&gt;
The new LayoutManager and the docking handlers are already worked on and nearly finished. Next step will be the mentioned factories. There also is a prototype for a task window and a task service that can be adjusted to our needs. The biggest challenge currently is the &amp;quot;super manager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Application-specific Improvements==&lt;br /&gt;
One of the lingering problems on the application level is the fact that, in spite of modularized lower-level functionality, application functionality cannot be shared &amp;#039;&amp;#039;between&amp;#039;&amp;#039; OOo&amp;#039;s applications (except via embedding of a whole application (OLE)). This is because for neither Calc nor Writer, there are reusable application engines, like a text engine providing text editing and layouting functionality, or a table engine providing formula and calculation support. Draw/Impress already uses a shared engine, dubbed &amp;#039;Drawing Layer&amp;#039;. But there&amp;#039;s still considerable functionality hidden in the application code, which is worth extracting. Especially the missing Writer engine manifests itself in duplicated text editing functionality in EditEngine and TextEngine (used by Impress and Calc for their corresponding text functionality).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div name=&amp;quot;Example&amp;quot; class=&amp;quot;boilerplate metadata&amp;quot; id=&amp;quot;example&amp;quot; style=&amp;quot;background-color: #fee; margin: 0 1em; padding: 0 10px; border: 1px solid #aaa;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Writer uses a different implementation when displaying pictures, opposed to Draw/Impress. Thus, if you insert a picture into a writer document, you have a different feature set available as in Draw/Impress or Calc. For example, the Writer graphic object is able to render a variety of border styles, but at the same time, is unable to rotate the picture. To have rotated pictures in Writer, one has to insert that picture in a Draw document, copy the resulting drawing layer object, and paste that into Writer.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div name=&amp;quot;Example&amp;quot; class=&amp;quot;boilerplate metadata&amp;quot; id=&amp;quot;example&amp;quot; style=&amp;quot;background-color: #fee; margin: 0 1em; padding: 0 10px; border: 1px solid #aaa;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example 2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Draw/Impress applications use a different implementation for displaying text, as opposed to the Writer. Thus, if you insert a text shape in Impress, you can&amp;#039;t have two-column layout with it, nor does it provide change tracking (&amp;#039;redlining&amp;#039;). On the other hand, the Writer&amp;#039;s fly frames, which superficially perform the same task as the Impress text shape, cannot be rotated.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another area of improvement is rendering. Currently, all application&amp;#039;s graphical output is based on the OutputDevice class, which provides only very basic rendering facilities (in fact, besides largely extended text output functionality (to handle OOo&amp;#039;s i18n requirements), this interface has basically remained unchanged for a long time). Specifically, things like performant alpha compositing or anti-aliased geometry rendering are extremely hard to achieve with the current design. Therefore, starting with OOo 2.0, the [http://api.openoffice.org/docs/common/ref/com/sun/star/rendering/XCanvas.html XCanvas] interface is slated to gradually replace OutputDevice in all applications.&lt;br /&gt;
&lt;br /&gt;
===Writer===&lt;br /&gt;
&lt;br /&gt;
*break up the monolith&lt;br /&gt;
*make the import filters more modular&lt;br /&gt;
*port rendering to XCanvas&lt;br /&gt;
&lt;br /&gt;
===Calc===&lt;br /&gt;
See [[Calc/To-Dos]]&lt;br /&gt;
&lt;br /&gt;
===Draw/Impress===&lt;br /&gt;
&lt;br /&gt;
*break up the monolith&lt;br /&gt;
*become more decoupled from sfx2&lt;br /&gt;
*redesign API ([[Impress_Performance | performance]])&lt;br /&gt;
&lt;br /&gt;
*port Drawing Layer to XCanvas (see [[DrawingPrimitives]] for one of the preconditions)&lt;br /&gt;
&lt;br /&gt;
*Allow slides to inherit animations from the master slide&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Keyboard_Shortcuts_Specification_Guidelines&amp;diff=173022</id>
		<title>Keyboard Shortcuts Specification Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Keyboard_Shortcuts_Specification_Guidelines&amp;diff=173022"/>
		<updated>2010-06-24T08:22:30Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Useful links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:left; width:100px:&amp;quot;&amp;gt;&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page gives some hints for specifying new keyboard shortcuts.&lt;br /&gt;
The addressees are UX people, developers, QA people and all those who contribute in an I-Team to the redaction of a specification.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WARNING&amp;#039;&amp;#039;&amp;#039;: most of the time it will not be possible to fulfill all requirements at the same time but the specification of a shortcut should have reviewed ALL requirements and note the known conflicts, technical gaps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Possible conflicts and influence areas around keyboard shortcuts&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[image:Shortcutcloud.jpg]]&lt;br /&gt;
&lt;br /&gt;
= How to choose a shortcut =&lt;br /&gt;
== The &amp;quot;mnemonic effect&amp;quot; ==&lt;br /&gt;
Take, if possible, the first letter of the function name (&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;opy, &amp;#039;&amp;#039;&amp;#039;O&amp;#039;&amp;#039;&amp;#039;pen...) or a letter which &amp;quot;brands&amp;quot; this name (e&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;ecute, po&amp;#039;&amp;#039;&amp;#039;W&amp;#039;&amp;#039;&amp;#039;er)&lt;br /&gt;
&lt;br /&gt;
== Interoperability &amp;amp; Integration ==&lt;br /&gt;
What do competitors or the operating systems use when they have the same function?&lt;br /&gt;
&lt;br /&gt;
= Possible Conflicts and Influence Areas =&lt;br /&gt;
&lt;br /&gt;
== Internal Consistency ==&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of a shortcut across every OOo applications which share the same functions.&lt;br /&gt;
&lt;br /&gt;
if a function exists in Writer, Calc, Impress, it should have the same shortcut.&lt;br /&gt;
&lt;br /&gt;
Have a look at &amp;quot;Tools - Customize - Shortcuts&amp;quot; for every application to compare the mapping, see what is in use and is not.&lt;br /&gt;
&lt;br /&gt;
But don&amp;#039;t trust blindly this dialog! Some shortcuts are unfortunately hard coded and don&amp;#039;t appear there! *Try* the shortcut in the application.&lt;br /&gt;
&lt;br /&gt;
== External Consistency ==&lt;br /&gt;
=== Interoperability ===&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of the shortcut vs competitors&amp;#039; similar applications and functions.&lt;br /&gt;
&lt;br /&gt;
=== Integration ===&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of the shortcut vs &amp;quot;standard&amp;quot; operating systems&amp;#039;/window managers&amp;#039; shortcut with similar functions.&lt;br /&gt;
&lt;br /&gt;
Think *multi platform*: Linux (KDE, Gnome...), Solaris, Windows, MAC (cmd vs. ctrl)&lt;br /&gt;
Avoid collisions with system shortcuts&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Some shortcuts have been localized (See: http://specs.openoffice.org/g11n/menus/LocalizedShortcuts.sxw).&lt;br /&gt;
&lt;br /&gt;
Respect the existing localization before moving any existing shortcut or even creating new ones by analogy (with the existing English terms).&lt;br /&gt;
&lt;br /&gt;
Ex: provided a new function &amp;quot;Open Document Read-Only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It could be smart to think about Ctrl+Shift+O by analogy with Ctrl+O.&lt;br /&gt;
&lt;br /&gt;
This is good but not enough... Think about the Localization and check that e.g. in Spanish &amp;quot;Open&amp;quot; is &amp;quot;Abrir&amp;quot; hence &amp;quot;Ctrl+A&amp;quot; so that it might be clever to localize to Ctrl+Shift+A...&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
* [http://developer.kde.org/documentation/standards/kde/style/keys/shortcuts.html KDE Standard shortcuts]&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/bb545460.aspx Guideline for user interaction with your MS Win applications]&lt;br /&gt;
* [http://support.apple.com/kb/HT1343 Mac OS X keyboard shortcuts]&lt;br /&gt;
* [http://www.novell.com/coolsolutions/tip/2289.html Gnome / KDE Keyboard Shortcuts]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Specification Guidelines]][[Category:Specification]][[Category:Shortcut]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Keyboard_Shortcuts_Specification_Guidelines&amp;diff=173021</id>
		<title>Keyboard Shortcuts Specification Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Keyboard_Shortcuts_Specification_Guidelines&amp;diff=173021"/>
		<updated>2010-06-24T08:20:13Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Useful links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:left; width:100px:&amp;quot;&amp;gt;&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page gives some hints for specifying new keyboard shortcuts.&lt;br /&gt;
The addressees are UX people, developers, QA people and all those who contribute in an I-Team to the redaction of a specification.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WARNING&amp;#039;&amp;#039;&amp;#039;: most of the time it will not be possible to fulfill all requirements at the same time but the specification of a shortcut should have reviewed ALL requirements and note the known conflicts, technical gaps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Possible conflicts and influence areas around keyboard shortcuts&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[image:Shortcutcloud.jpg]]&lt;br /&gt;
&lt;br /&gt;
= How to choose a shortcut =&lt;br /&gt;
== The &amp;quot;mnemonic effect&amp;quot; ==&lt;br /&gt;
Take, if possible, the first letter of the function name (&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;opy, &amp;#039;&amp;#039;&amp;#039;O&amp;#039;&amp;#039;&amp;#039;pen...) or a letter which &amp;quot;brands&amp;quot; this name (e&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;ecute, po&amp;#039;&amp;#039;&amp;#039;W&amp;#039;&amp;#039;&amp;#039;er)&lt;br /&gt;
&lt;br /&gt;
== Interoperability &amp;amp; Integration ==&lt;br /&gt;
What do competitors or the operating systems use when they have the same function?&lt;br /&gt;
&lt;br /&gt;
= Possible Conflicts and Influence Areas =&lt;br /&gt;
&lt;br /&gt;
== Internal Consistency ==&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of a shortcut across every OOo applications which share the same functions.&lt;br /&gt;
&lt;br /&gt;
if a function exists in Writer, Calc, Impress, it should have the same shortcut.&lt;br /&gt;
&lt;br /&gt;
Have a look at &amp;quot;Tools - Customize - Shortcuts&amp;quot; for every application to compare the mapping, see what is in use and is not.&lt;br /&gt;
&lt;br /&gt;
But don&amp;#039;t trust blindly this dialog! Some shortcuts are unfortunately hard coded and don&amp;#039;t appear there! *Try* the shortcut in the application.&lt;br /&gt;
&lt;br /&gt;
== External Consistency ==&lt;br /&gt;
=== Interoperability ===&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of the shortcut vs competitors&amp;#039; similar applications and functions.&lt;br /&gt;
&lt;br /&gt;
=== Integration ===&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of the shortcut vs &amp;quot;standard&amp;quot; operating systems&amp;#039;/window managers&amp;#039; shortcut with similar functions.&lt;br /&gt;
&lt;br /&gt;
Think *multi platform*: Linux (KDE, Gnome...), Solaris, Windows, MAC (cmd vs. ctrl)&lt;br /&gt;
Avoid collisions with system shortcuts&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Some shortcuts have been localized (See: http://specs.openoffice.org/g11n/menus/LocalizedShortcuts.sxw).&lt;br /&gt;
&lt;br /&gt;
Respect the existing localization before moving any existing shortcut or even creating new ones by analogy (with the existing English terms).&lt;br /&gt;
&lt;br /&gt;
Ex: provided a new function &amp;quot;Open Document Read-Only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It could be smart to think about Ctrl+Shift+O by analogy with Ctrl+O.&lt;br /&gt;
&lt;br /&gt;
This is good but not enough... Think about the Localization and check that e.g. in Spanish &amp;quot;Open&amp;quot; is &amp;quot;Abrir&amp;quot; hence &amp;quot;Ctrl+A&amp;quot; so that it might be clever to localize to Ctrl+Shift+A...&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
* [http://developer.kde.org/documentation/standards/kde/style/keys/shortcuts.html KDE Standard shortcuts]&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/bb545460.aspx How to create shortcuts for MS Windows applications]&lt;br /&gt;
* [http://support.apple.com/kb/HT1343 Mac OS X keyboard shortcuts]&lt;br /&gt;
* [http://www.novell.com/coolsolutions/tip/2289.html Gnome / KDE Keyboard Shortcuts]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Specification Guidelines]][[Category:Specification]][[Category:Shortcut]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Keyboard_Shortcuts_Specification_Guidelines&amp;diff=173020</id>
		<title>Keyboard Shortcuts Specification Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Keyboard_Shortcuts_Specification_Guidelines&amp;diff=173020"/>
		<updated>2010-06-24T08:19:42Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:left; width:100px:&amp;quot;&amp;gt;&lt;br /&gt;
= Scope =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page gives some hints for specifying new keyboard shortcuts.&lt;br /&gt;
The addressees are UX people, developers, QA people and all those who contribute in an I-Team to the redaction of a specification.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;WARNING&amp;#039;&amp;#039;&amp;#039;: most of the time it will not be possible to fulfill all requirements at the same time but the specification of a shortcut should have reviewed ALL requirements and note the known conflicts, technical gaps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Possible conflicts and influence areas around keyboard shortcuts&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[image:Shortcutcloud.jpg]]&lt;br /&gt;
&lt;br /&gt;
= How to choose a shortcut =&lt;br /&gt;
== The &amp;quot;mnemonic effect&amp;quot; ==&lt;br /&gt;
Take, if possible, the first letter of the function name (&amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;opy, &amp;#039;&amp;#039;&amp;#039;O&amp;#039;&amp;#039;&amp;#039;pen...) or a letter which &amp;quot;brands&amp;quot; this name (e&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;ecute, po&amp;#039;&amp;#039;&amp;#039;W&amp;#039;&amp;#039;&amp;#039;er)&lt;br /&gt;
&lt;br /&gt;
== Interoperability &amp;amp; Integration ==&lt;br /&gt;
What do competitors or the operating systems use when they have the same function?&lt;br /&gt;
&lt;br /&gt;
= Possible Conflicts and Influence Areas =&lt;br /&gt;
&lt;br /&gt;
== Internal Consistency ==&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of a shortcut across every OOo applications which share the same functions.&lt;br /&gt;
&lt;br /&gt;
if a function exists in Writer, Calc, Impress, it should have the same shortcut.&lt;br /&gt;
&lt;br /&gt;
Have a look at &amp;quot;Tools - Customize - Shortcuts&amp;quot; for every application to compare the mapping, see what is in use and is not.&lt;br /&gt;
&lt;br /&gt;
But don&amp;#039;t trust blindly this dialog! Some shortcuts are unfortunately hard coded and don&amp;#039;t appear there! *Try* the shortcut in the application.&lt;br /&gt;
&lt;br /&gt;
== External Consistency ==&lt;br /&gt;
=== Interoperability ===&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of the shortcut vs competitors&amp;#039; similar applications and functions.&lt;br /&gt;
&lt;br /&gt;
=== Integration ===&lt;br /&gt;
&lt;br /&gt;
Take care about the consistency of the shortcut vs &amp;quot;standard&amp;quot; operating systems&amp;#039;/window managers&amp;#039; shortcut with similar functions.&lt;br /&gt;
&lt;br /&gt;
Think *multi platform*: Linux (KDE, Gnome...), Solaris, Windows, MAC (cmd vs. ctrl)&lt;br /&gt;
Avoid collisions with system shortcuts&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Some shortcuts have been localized (See: http://specs.openoffice.org/g11n/menus/LocalizedShortcuts.sxw).&lt;br /&gt;
&lt;br /&gt;
Respect the existing localization before moving any existing shortcut or even creating new ones by analogy (with the existing English terms).&lt;br /&gt;
&lt;br /&gt;
Ex: provided a new function &amp;quot;Open Document Read-Only&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It could be smart to think about Ctrl+Shift+O by analogy with Ctrl+O.&lt;br /&gt;
&lt;br /&gt;
This is good but not enough... Think about the Localization and check that e.g. in Spanish &amp;quot;Open&amp;quot; is &amp;quot;Abrir&amp;quot; hence &amp;quot;Ctrl+A&amp;quot; so that it might be clever to localize to Ctrl+Shift+A...&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
* [http://developer.kde.org/documentation/standards/kde/style/keys/shortcuts.html KDE Standard shortcuts]&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/bb545460.aspx How to create shortcuts for MS Windows applications]&lt;br /&gt;
* [http://support.apple.com/kb/HT1343 - Mac OS X keyboard shortcuts]&lt;br /&gt;
* [http://www.novell.com/coolsolutions/tip/2289.html Gnome / KDE Keyboard Shortcuts]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Specification Guidelines]][[Category:Specification]][[Category:Shortcut]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=ReleaseSchedule&amp;diff=172459</id>
		<title>ReleaseSchedule</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=ReleaseSchedule&amp;diff=172459"/>
		<updated>2010-06-17T12:53:44Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=OpenOffice.org release roadmap=&lt;br /&gt;
&lt;br /&gt;
 [[OOoRelease33 | OpenOffice.org 3.3]] : June 2010&lt;br /&gt;
 [[OOoRelease331 | OpenOffice.org 3.3.1]] : September 2010&lt;br /&gt;
 [[OOoRelease34 | OpenOffice.org 3.4]] : December 2010&lt;br /&gt;
 [[OOoRelease341 | OpenOffice.org 3.4.1]] : March 2011&lt;br /&gt;
&lt;br /&gt;
{{OOo Releases}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Ubuntu_Build_Instructions&amp;diff=171442</id>
		<title>Ubuntu Build Instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Ubuntu_Build_Instructions&amp;diff=171442"/>
		<updated>2010-06-08T17:41:04Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Ubuntu 9.10 Karmic Koala */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
{{Documentation/Note|Please add only Ubuntu-specifics here! Use the information on the [[Development/OpenOffice.org Building Guide/Building on Linux|Building Guide]] and only fall back to this document if you need help with Ubuntu-specifics (like package names).}}&lt;br /&gt;
== Ubuntu 9.10 Karmic Koala and Ubuntu 10.04 Lucid Lynx==&lt;br /&gt;
&lt;br /&gt;
To build you need the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install g++ gcc bison flex libarchive-zip-perl libcups2-dev libpam0g-dev subversion \&lt;br /&gt;
sun-java6-jdk gperf libfreetype6-dev libxaw7-dev libfontconfig1-dev libxrandr-dev patch \&lt;br /&gt;
libgconf2-dev libgnomevfs2-dev ant python-dev libgtk2.0-dev ccache libgraphite-dev \&lt;br /&gt;
libwpd8-dev libxslt-dev libdb4.7-dev libneon27-dev libhunspell-dev libaltlinuxhyph-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or use this url:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt:g++,gcc,bison,flex,libarchive-zip-perl,libcups2-dev,libpam0g-dev,subversion,sun-java6-jdk,gperf,libfreetype6-dev,libxaw7-dev,libfontconfig1-dev,libxrandr-dev,patch,libgconf2-dev,libgnomevfs2-dev,ant,python-dev,libgtk2.0-dev,ccache,libgraphite-dev,libwpd8-dev,libxslt-dev,libdb4.7-dev,libneon27-dev,libhunspell-dev,libaltlinuxhyph-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then follow the &amp;#039;&amp;#039;&amp;#039;[[Documentation/Building Guide|Building Guide]]&amp;#039;&amp;#039;&amp;#039; to continue.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Building]]&lt;br /&gt;
*[[Debug Build Problems]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Distribution-Specific Build Instructions]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_Linux&amp;diff=171441</id>
		<title>Documentation/Building Guide/Building on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide/Building_on_Linux&amp;diff=171441"/>
		<updated>2010-06-08T17:38:18Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
{{DISPLAYTITLE:Building on Linux}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
= Overview =&lt;br /&gt;
{{Template:Documentation/Note|&amp;lt;code&amp;gt;$SRC_ROOT&amp;lt;/code&amp;gt; will denote the directory in which the source code of OpenOffice.org is stored.}}&lt;br /&gt;
{{Template:Documentation/Tip|You are advised to check the release notes for the release you are building to inform yourself about changes since previous releases.}}&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
== hardware requirements ==&lt;br /&gt;
&lt;br /&gt;
* 1 or more reasonable fast CPUs, x-way CPU&amp;#039;s recommended.&lt;br /&gt;
&lt;br /&gt;
* 1 GB Ram ( 2 GB recommended )&lt;br /&gt;
&lt;br /&gt;
* at least 10 GB free disk space&lt;br /&gt;
&lt;br /&gt;
== software requirements ==&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip|You can find distribution specific package lists in the [[:Category:Distribution-Specific_Build_Instructions|Distribution specific build instructions pages]].}}&lt;br /&gt;
&lt;br /&gt;
* glibc:&lt;br /&gt;
** for OOo&amp;lt;=3.1: 2.2.x or higher&lt;br /&gt;
** for OOo&amp;gt;3.1: 2.3.2 or higher&lt;br /&gt;
&lt;br /&gt;
* C/C++ Compiler:&lt;br /&gt;
** gcc &amp;gt;= 3.3 &lt;br /&gt;
** gcc 4.2.3 is the current reference compiler &lt;br /&gt;
&lt;br /&gt;
* The X11 development libraries and header files&amp;lt;ref name=&amp;quot;Foot1&amp;quot;&amp;gt;{{Template:Documentation/Note|Should be in place with most Linux distributions. Note the there are currently some issues with X version 4.3.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* PAM including the development headers&amp;lt;ref name=&amp;quot;Foot2&amp;quot;&amp;gt;{{Template:Documentation/Note|PAM should be installed by default on most linux distributions. You should only need to add the development package.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* bash&amp;lt;ref name=&amp;quot;Foot3&amp;quot;&amp;gt;{{Template:Documentation/Note|You can also (still?) use tcsh instead of bash, but bash is installed almost everywhere anyway. It is possible to use bash or tcsh as shell. This is switched with the &amp;lt;CODE&amp;gt;--with-use-shell&amp;lt;/CODE&amp;gt; configure switch.}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* gtk2 and libtiff including the development headers&amp;lt;ref name=&amp;quot;Foot4&amp;quot;&amp;gt;{{Template:Documentation/Note|The gtk2, jpeg and tiff libraries are not required if you disable the crash-reporter when running &amp;lt;CODE&amp;gt;./configure&amp;lt;/CODE&amp;gt;.}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Full Builds =&lt;br /&gt;
&lt;br /&gt;
To perform a full build, you need to follow these steps:&lt;br /&gt;
&lt;br /&gt;
== configure ==&lt;br /&gt;
* Run the &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt; script to check all requirements. Run the following command to view all possible options.&lt;br /&gt;
&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
An example configure command: &lt;br /&gt;
 ./configure --with-use-shell=bash --disable-mozilla --without-junit --disable-odk&lt;br /&gt;
&lt;br /&gt;
See the last information box in the configure script or [[:Category:Distribution-Specific_Build_Instructions]] for more information for your platform.&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Caution| Please check for any warnings emitted by the configure-script.  The page [[OpenSolaris Build Instructions/Configure Errors]] may be helpful in debugging all the dependencies.}}&lt;br /&gt;
&lt;br /&gt;
== bootstrap ==&lt;br /&gt;
When configure finished successfully, run:&lt;br /&gt;
&lt;br /&gt;
 ./bootstrap&lt;br /&gt;
&lt;br /&gt;
to create the dmake executable required to build OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
== setting the environment ==&lt;br /&gt;
&lt;br /&gt;
When the configure script has been run successfully a file &amp;lt;code&amp;gt;LinuxX86Env.Set.sh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;LinuxX86-64Env.Set.sh&amp;lt;/code&amp;gt; was created&amp;lt;ref name=&amp;quot;Foot5&amp;quot;&amp;gt;{{Template:Documentation/Note|When you want to use tcsh instead of bash, you will need to use the file &amp;lt;code&amp;gt;LinuxX86Env.Set&amp;lt;/code&amp;gt; instead:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; source LinuxX86Env.Set&lt;br /&gt;
 rehash&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you do not use tcsh, it is better to delete that file, as it will get in the way for tab-completion sooner or later.}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;.&lt;br /&gt;
Do this:&lt;br /&gt;
&lt;br /&gt;
 source LinuxX86Env.Set.sh&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 source LinuxX86-64Env.Set.sh&lt;br /&gt;
&lt;br /&gt;
to set up the environment for the build&amp;lt;ref name=&amp;quot;Foot6&amp;quot;&amp;gt;By default, native packages (.deb/.rpm) will be build.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Template:Documentation/Tip|If you want to have something faster and easier to test:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;export FORCE2ARCHIVE=true&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will create a tarball that can easily be unpacked and run anywhere.}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== starting the build ==&lt;br /&gt;
Build the software by typing the following in &amp;lt;code&amp;gt;$SRC_ROOT&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;Foot7&amp;quot;&amp;gt;{{Template:Documentation/Note|You can also run:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
but GNU make will just start build.pl.&lt;br /&gt;
For details run:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;build --help&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 cd instsetoo_native &amp;amp;&amp;amp; build --all&lt;br /&gt;
The building procedure will take at least an hour (on a 3 GHz Quad-Core with 8GB RAM without CCACHE).&lt;br /&gt;
&lt;br /&gt;
= Partial Builds =&lt;br /&gt;
There are two ways to do partial builds:&lt;br /&gt;
* compatible&lt;br /&gt;
* incompatible&lt;br /&gt;
Only do compatible partial builds if you know exactly what you are doing.&lt;br /&gt;
{{Documentation/Note|For more information, see [[Compatible Builds]].}}&lt;br /&gt;
== rebuilding from a module (incompatible build) ==&lt;br /&gt;
&lt;br /&gt;
If you decide to change a module in an incompatible way, you will need to rebuild all modules depending on it (directly or indirectly):&lt;br /&gt;
&lt;br /&gt;
 cd $SRC_ROOT/instsetoo_native&lt;br /&gt;
 build --from $INCOMPATIPLEMODULE --prepare&lt;br /&gt;
 build --from $INCOMPATIBLEMODULE&lt;br /&gt;
&lt;br /&gt;
== rebuilding a module (compatible build) ==&lt;br /&gt;
&lt;br /&gt;
To rebuild a module you can delete all output directories with, rebuild and redeliver into the solver with:&lt;br /&gt;
&lt;br /&gt;
 cd $MODULE&lt;br /&gt;
 build --from $MODULE --prepare&lt;br /&gt;
 build &amp;amp;&amp;amp; deliver&lt;br /&gt;
&lt;br /&gt;
A simple &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;$SRC_ROOT/instsetoo_native&amp;lt;/code&amp;gt; will recreate the installation sets, provided all other modules have already been build.&amp;lt;ref name=&amp;quot;Foot8&amp;quot;&amp;gt;{{Documentation/Caution|&amp;lt;code&amp;gt;build --all&amp;lt;/code&amp;gt; would rebuild changed/missing files. However, it does not check for incompatible modules. If unsure, use &amp;lt;code&amp;gt;build --from --prepare&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Caution|This does &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; check for incompatible modules. If unsure, use an incompatible build (see above).}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Building a Module with Debug Information =&lt;br /&gt;
&lt;br /&gt;
To rebuild a module with debug information and additional assertions and checks, run:&lt;br /&gt;
&lt;br /&gt;
 cd $MODULE&lt;br /&gt;
 build --from $MODULE --prepare # removes old output trees and solver&lt;br /&gt;
 build debug=true --from $MODULE&lt;br /&gt;
&lt;br /&gt;
Drop the newly created binaries into an existing installation. Building an installation set with them will not help, as binaries are stripped on packing by default.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip|For details, see [[Debugging]].}}&lt;br /&gt;
&lt;br /&gt;
= Finding Installation Sets =&lt;br /&gt;
&lt;br /&gt;
The english installation set will be located at &amp;lt;code&amp;gt;$SRC_ROOT/instsetoo_native/unxlngi6.pro/OpenOffice/{deb,rpm,archive}/install/en-US/&amp;lt;/code&amp;gt;&amp;lt;ref name=&amp;quot;Foot9&amp;quot;&amp;gt;The en-US in the path names indicates that the localization is American English. This value corresponds to the language tags defined by RFC 1766 (Tags for the Identification of Languages). The German installation set will be located in a &amp;lt;tt&amp;gt;de&amp;lt;/tt&amp;gt; subdirectory. This scheme holds true for all localizations you may have chosen explicitly.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Tip|Running the configure script with the --with-lang option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments. Check the value of the &amp;lt;code&amp;gt;completelangiso&amp;lt;/code&amp;gt; macro in &amp;lt;code&amp;gt;$SRC_ROOT/solenv/inc/postset.mk&amp;lt;/code&amp;gt; for all the currently supported language tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --with-lang=&amp;quot;de fr&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This enables the build of the localized German and French version. The environment variable &amp;lt;code&amp;gt;WITH_LANG&amp;lt;/code&amp;gt; will then contain the language tags of the additional (en-US will always be build)&lt;br /&gt;
languages.}}&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note|If you build additional localized languages it is possible to generate Language Packs that contain only the changes needed to add the additional language to an OpenOffice.org of a different language. The following commands will generate language packs languages that were specified with the --with-lang switch during the configure phase. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $SRC_ROOT/instsetoo_native/util&lt;br /&gt;
dmake ooolanguagepack&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
{{Template:Documentation/Caution|Note that you can only build the language packs &amp;#039;&amp;#039;&amp;#039;after&amp;#039;&amp;#039;&amp;#039; you have build the complete office with all selected languages.}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Note| For 64-bit Linux it is &amp;lt;code&amp;gt;unxlngx6.pro&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;unxlngi6.pro&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
= Tips And Tricks =&lt;br /&gt;
== ccache ==&lt;br /&gt;
&lt;br /&gt;
 export CCACHE_DIR=&amp;quot;some/place/with/space&amp;quot;&lt;br /&gt;
 ccache -M 2G -F 100000&lt;br /&gt;
 export CXX=&amp;quot;ccache g++&amp;quot;&lt;br /&gt;
 export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== dependencies ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;nodep&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If you set the environment variable &amp;lt;code&amp;gt;nodep&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;TRUE&amp;lt;/code&amp;gt;, then dependency information files are not created - the build finishes faster.&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Caution|But only enable that on a clean build. Once you have built OOo and then made modifications, unset the variable again to be on the safe side.}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NO_HIDS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Similar to the &amp;lt;code&amp;gt;nodep&amp;lt;/code&amp;gt; variable, this one prevents the generation of HIDs (Help IDs) that are mainly used for automated testing - if you only want to build OOo, you don&amp;#039;t need those.&lt;br /&gt;
&lt;br /&gt;
== parallel builds ==&lt;br /&gt;
If you have a multiprocessor machine or similar, you can run a parallel build. There are two levels  of parallelism  - one operating on makefile (directory) level, the other one on the global level. The two levels of parallelism result from the two-step build procedure in the OOo build environment. The build script runs through all the directories it reads from the build.lst files in all modules and calls dmake for every directory. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;parallelism on the global level&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
For parallelism on the global level, you have to run build from &amp;lt;code&amp;gt;$SRC_ROOT&amp;gt;/instsetoo_native&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;-P&amp;lt;number&amp;gt;&amp;lt;/code&amp;gt; switch, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build -P2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This takes build how many dmake processes it is allowd to start in parallel.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;parallelism on the directory level&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 export MAXPROCESS=&amp;lt;numer or processes&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This tells dmake how many targets it is allowed to build in parallel. When you don&amp;#039;t use build.pl but build a single directory (single makefile), you can achieve the same with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dmake -P2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;combining both levels&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If you want to have parallelism on both levels, you can call&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build -P2 -- -P2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;--&amp;quot; is a special build.pl parameter that passes every further parameters to the dmake processes it starts.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; Recommendation &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Experience tells that using the doubled number of cores in your machine is a good choice, using more threads does not make a big difference, except if the combined option is chosen. So even on single core machines using two threads will speed up the build considerably.&lt;br /&gt;
&lt;br /&gt;
== create prebuilt mozilla ==&lt;br /&gt;
For the mozilla-components you have the choice to either build from mozilla sources, to use precompiled packages or to use system-mozilla (the one installed on your buildsystem, not everything might work, depending on the version you got installed).&lt;br /&gt;
You can easily create your own version of the prepacked binaries if you wish to do so (either because you cannot use the official ones because of mismatch of compiler version used to build them/other technical reasons or because you want to use stuff you didn&amp;#039;t build yourself).&lt;br /&gt;
To do so:&lt;br /&gt;
&lt;br /&gt;
* build the &amp;lt;code&amp;gt;moz&amp;lt;/code&amp;gt; module from the mozilla sources&lt;br /&gt;
* use &amp;lt;code&amp;gt;--enable-build-mozilla&amp;lt;/code&amp;gt; when running configure and put the mozilla-source tarball to &amp;lt;code&amp;gt;moz/download&amp;lt;/code&amp;gt;&lt;br /&gt;
* in &amp;lt;code&amp;gt;moz&amp;lt;/code&amp;gt; run &amp;lt;code&amp;gt;dmake zip&amp;lt;/code&amp;gt; to create the zip files&lt;br /&gt;
* you&amp;#039;ll find the zips in &amp;lt;code&amp;gt;{platform}.pro/zipped&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy them to a location of your liking.&lt;br /&gt;
Now instead of using &amp;lt;code&amp;gt;--enable-build-mozilla&amp;lt;/code&amp;gt;, use &amp;lt;code&amp;gt;--disable-build-mozilla&amp;lt;/code&amp;gt; and copy the zips you created or downloaded to &amp;lt;code&amp;gt;moz/zipped&amp;lt;/code&amp;gt; and these will be used when compiling.&lt;br /&gt;
This will greatly reduce build-time (you save the time that would otherwise be spent on compiling mozilla).&lt;br /&gt;
= See Also =&lt;br /&gt;
* [[:Category:Distribution-Specific Build Instructions]]&lt;br /&gt;
* [[Prepared Build Images]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{PDL1}}&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DerivedWorks&amp;diff=171344</id>
		<title>DerivedWorks</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DerivedWorks&amp;diff=171344"/>
		<updated>2010-06-08T09:43:35Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[This page is in serious need of updating. Then again, it&amp;#039;s been somewhat superseded by the Solutions page.]&lt;br /&gt;
&lt;br /&gt;
This page will track derivatives of OpenOffice.org.  Feel free to add to it if you know of any, and please include URLs.  A derived work listed here could be free or proprietary, and should not be limited to language or platform.  It may include those works that use OpenOffice.org in part or in whole.  As well, a separate section could also track distributions, e.g., by Novell or Debian or Ubuntu. We are listing these mainly to track them and not for advertising purposes. Some of the companies listed below may no longer be producing derivatives of OpenOffice.org, as the license for the source changed in 2005, with 2.0, when we dropped the [http://www.openoffice.org/license.html SISSL] and moved to using the LGPL exclusively.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Preliminary List ==&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=3&lt;br /&gt;
!Product name&lt;br /&gt;
!Company&lt;br /&gt;
!Windows&lt;br /&gt;
!Mac OS X&lt;br /&gt;
!Linux&lt;br /&gt;
!Solaris&lt;br /&gt;
!License&lt;br /&gt;
!Web Site&lt;br /&gt;
!Wikipedia&lt;br /&gt;
|-&lt;br /&gt;
|ChinaOffice&lt;br /&gt;
|GoldSoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.goldsoft.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Co-Create Office&lt;br /&gt;
|Co-Create&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|Free&lt;br /&gt;
|http://www.ccoss.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EuroOffice 2005&lt;br /&gt;
|Multiráció Kft.&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.eurooffice2005.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|KaiOffice&lt;br /&gt;
|KaiSource&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.kaisource.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagyarOffice&lt;br /&gt;
|Multiráció Kft.&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.magyaroffice.hu/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMedia Office&lt;br /&gt;
|Platasoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|LGPL/proprietary&lt;br /&gt;
|http://www.platasoft.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MYOffice 2007&lt;br /&gt;
|OASYS&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.oasys.com.my/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NeoOffice&lt;br /&gt;
|NeoOffice.org&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|GPL&lt;br /&gt;
|http://neooffice.org/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NextOffice&lt;br /&gt;
|Well Develop&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.nextoffice.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OfficeOne&lt;br /&gt;
|?&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://shop.avanquest.com/france/produits/prod.php?pid=120/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OfficeTLE&lt;br /&gt;
|?&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.thaisoftware.co.th/index.php?tpid=pro:AR-0028&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOfficePL&lt;br /&gt;
|OpenOffice Software&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.openoffice.com.pl/index.php?id=201&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOffice.ux.pl&lt;br /&gt;
|Ux Systems&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL/proprietary&lt;br /&gt;
|http://www.ux.pl/openoffice/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOfficeT7&lt;br /&gt;
|Top7&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.openzone.pl/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Oracle Open Office]]&lt;br /&gt;
|Oracle&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.oracle.com/us/products/applications/open-office/index.html&lt;br /&gt;
|http://en.wikipedia.org/wiki/Oracle_Open_Office&lt;br /&gt;
|-&lt;br /&gt;
|OxygenOffice Professional&lt;br /&gt;
|OxygenOffice Professional&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL&lt;br /&gt;
|http://ooop.sf.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RedOffice&lt;br /&gt;
|Red Flag 2000&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.redoffice.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SunShine Office&lt;br /&gt;
|CS2C&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.cs2c.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ThizOffice&lt;br /&gt;
|ThizTech&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.thizlinux.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UP Office&lt;br /&gt;
|Philippines University&lt;br /&gt;
|1.0&lt;br /&gt;
|&lt;br /&gt;
|2.0&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://os.up.edu.ph/modules.php?name=Downloads&amp;amp;d_op=viewdownload&amp;amp;cid=2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workplace&lt;br /&gt;
|IBM&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|[workplacehome|http://www-142.ibm.com/software/workplace/products/product5.nsf/wdocs/workplacehome&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WPS Office&lt;br /&gt;
|KingSoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.wps.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|602Office&lt;br /&gt;
|Software602&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.602.cz/cz/produkty/602office_2_2/&lt;br /&gt;
|http://cs.wikipedia.org/wiki/602Office&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jambo OpenOffice&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.o.ne.tz/&lt;br /&gt;
|http://en.wikipedia.org/wiki/Jambo_OpenOffice&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RomanianOffice&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.romanianoffice.ro/&lt;br /&gt;
|http://en.wikipedia.org/wiki/RomanianOffice&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Go-OO&lt;br /&gt;
|Novell&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL&lt;br /&gt;
|http://go-oo.org/&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Redoffice]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DerivedWorks&amp;diff=171343</id>
		<title>DerivedWorks</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DerivedWorks&amp;diff=171343"/>
		<updated>2010-06-08T09:41:44Z</updated>

		<summary type="html">&lt;p&gt;Gang65: /* Preliminary List */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[This page is in serious need of updating. Then again, it&amp;#039;s been somewhat superseded by the Solutions page.]&lt;br /&gt;
&lt;br /&gt;
This page will track derivatives of OpenOffice.org.  Feel free to add to it if you know of any, and please include URLs.  A derived work listed here could be free or proprietary, and should not be limited to language or platform.  It may include those works that use OpenOffice.org in part or in whole.  As well, a separate section could also track distributions, e.g., by Novell or Debian or Ubuntu. We are listing these mainly to track them and not for advertising purposes. Some of the companies listed below may no longer be producing derivatives of OpenOffice.org, as the license for the source changed in 2005, with 2.0, when we dropped the [http://www.openoffice.org/license.html SISSL] and moved to using the LGPL exclusively.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Preliminary List ==&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=3&lt;br /&gt;
!Product name&lt;br /&gt;
!Company&lt;br /&gt;
!Windows&lt;br /&gt;
!Mac OS X&lt;br /&gt;
!Linux&lt;br /&gt;
!Solaris&lt;br /&gt;
!License&lt;br /&gt;
!Web Site&lt;br /&gt;
!Wikipedia&lt;br /&gt;
|-&lt;br /&gt;
|ChinaOffice&lt;br /&gt;
|GoldSoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.goldsoft.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Co-Create Office&lt;br /&gt;
|Co-Create&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|Free&lt;br /&gt;
|http://www.ccoss.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EuroOffice 2005&lt;br /&gt;
|Multiráció Kft.&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.eurooffice2005.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|KaiOffice&lt;br /&gt;
|KaiSource&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.kaisource.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagyarOffice&lt;br /&gt;
|Multiráció Kft.&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.magyaroffice.hu/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMedia Office&lt;br /&gt;
|Platasoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|LGPL/proprietary&lt;br /&gt;
|http://www.platasoft.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MYOffice 2007&lt;br /&gt;
|OASYS&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.oasys.com.my/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NeoOffice&lt;br /&gt;
|NeoOffice.org&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|GPL&lt;br /&gt;
|http://neooffice.org/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NextOffice&lt;br /&gt;
|Well Develop&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.nextoffice.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OfficeOne&lt;br /&gt;
|?&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://shop.avanquest.com/france/produits/prod.php?pid=120/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OfficeTLE&lt;br /&gt;
|?&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.thaisoftware.co.th/index.php?tpid=pro:AR-0028&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOfficePL&lt;br /&gt;
|OpenOffice Software&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.openoffice.com.pl/index.php?id=201&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOffice.ux.pl&lt;br /&gt;
|Ux Systems&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL/proprietary&lt;br /&gt;
|http://www.ux.pl/openoffice/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOfficeT7&lt;br /&gt;
|Top7&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.openzone.pl/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Oracle Open Office]]&lt;br /&gt;
|Oracle&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.oracle.com/us/products/applications/open-office/index.html&lt;br /&gt;
|http://en.wikipedia.org/wiki/Oracle_Open_Office&lt;br /&gt;
|-&lt;br /&gt;
|OxygenOffice Professional&lt;br /&gt;
|OxygenOffice Professional&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL&lt;br /&gt;
|http://ooop.sf.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Pladao Office&lt;br /&gt;
|?&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|LGPL&lt;br /&gt;
|http://pladao.org/index.php?newlang=english&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RedOffice&lt;br /&gt;
|Red Flag 2000&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.redoffice.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SunShine Office&lt;br /&gt;
|CS2C&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.cs2c.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ThizOffice&lt;br /&gt;
|ThizTech&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.thizlinux.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UP Office&lt;br /&gt;
|Philippines University&lt;br /&gt;
|1.0&lt;br /&gt;
|&lt;br /&gt;
|2.0&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://os.up.edu.ph/modules.php?name=Downloads&amp;amp;d_op=viewdownload&amp;amp;cid=2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workplace&lt;br /&gt;
|IBM&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|[workplacehome|http://www-142.ibm.com/software/workplace/products/product5.nsf/wdocs/workplacehome&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WPS Office&lt;br /&gt;
|KingSoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.wps.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|602Office&lt;br /&gt;
|Software602&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.602.cz/cz/produkty/602office_2_2/&lt;br /&gt;
|http://cs.wikipedia.org/wiki/602Office&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jambo OpenOffice&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.o.ne.tz/&lt;br /&gt;
|http://en.wikipedia.org/wiki/Jambo_OpenOffice&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RomanianOffice&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.romanianoffice.ro/&lt;br /&gt;
|http://en.wikipedia.org/wiki/RomanianOffice&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Go-OO&lt;br /&gt;
|Novell&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL&lt;br /&gt;
|http://go-oo.org/&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Redoffice]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Oracle_Open_Office&amp;diff=171338</id>
		<title>Oracle Open Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Oracle_Open_Office&amp;diff=171338"/>
		<updated>2010-06-08T09:27:39Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.oracle.com/us/products/applications/open-office/index.html Oracle Open Office] (known before 2010 as [http://www.sun.com/software/star/staroffice/index.jsp StarOffice]) is a [http://www.oracle.com Oracle] proprietary office suite based on [[OpenOffice.org]].&lt;br /&gt;
&lt;br /&gt;
See [http://en.wikipedia.org/wiki/Oracle_Open_Office the Wikipedia entry].&lt;br /&gt;
[[Category:Term]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Oracle_Open_Office&amp;diff=171337</id>
		<title>Oracle Open Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Oracle_Open_Office&amp;diff=171337"/>
		<updated>2010-06-08T09:26:51Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.oracle.com/us/products/applications/open-office/index.html Oracle Open Office] (known before 2010 as [http://www.sun.com/software/star/staroffice/index.jsp StarOffice]) is a [http://www.oracle.com Oracle] proprietary office suite based on [[OpenOffice.org]].&lt;br /&gt;
&lt;br /&gt;
See [http://en.wikipedia.org/wiki/StarOffice the Wikipedia entry].&lt;br /&gt;
[[Category:Term]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=StarOffice&amp;diff=171336</id>
		<title>StarOffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=StarOffice&amp;diff=171336"/>
		<updated>2010-06-08T09:25:28Z</updated>

		<summary type="html">&lt;p&gt;Gang65: moved StarOffice to Oracle Open Office:&amp;amp;#32;Change the name of StarOffice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Oracle Open Office]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Oracle_Open_Office&amp;diff=171335</id>
		<title>Oracle Open Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Oracle_Open_Office&amp;diff=171335"/>
		<updated>2010-06-08T09:25:28Z</updated>

		<summary type="html">&lt;p&gt;Gang65: moved StarOffice to Oracle Open Office:&amp;amp;#32;Change the name of StarOffice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.sun.com/software/star/staroffice/index.jsp StarOffice] is a [http://www.sun.com Sun Microsystems] proprietary office suite based on [[OpenOffice.org]].&lt;br /&gt;
&lt;br /&gt;
See [http://en.wikipedia.org/wiki/StarOffice the Wikipedia entry].&lt;br /&gt;
[[Category:Term]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=DerivedWorks&amp;diff=171333</id>
		<title>DerivedWorks</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=DerivedWorks&amp;diff=171333"/>
		<updated>2010-06-08T09:24:04Z</updated>

		<summary type="html">&lt;p&gt;Gang65: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[This page is in serious need of updating. Then again, it&amp;#039;s been somewhat superseded by the Solutions page.]&lt;br /&gt;
&lt;br /&gt;
This page will track derivatives of OpenOffice.org.  Feel free to add to it if you know of any, and please include URLs.  A derived work listed here could be free or proprietary, and should not be limited to language or platform.  It may include those works that use OpenOffice.org in part or in whole.  As well, a separate section could also track distributions, e.g., by Novell or Debian or Ubuntu. We are listing these mainly to track them and not for advertising purposes. Some of the companies listed below may no longer be producing derivatives of OpenOffice.org, as the license for the source changed in 2005, with 2.0, when we dropped the [http://www.openoffice.org/license.html SISSL] and moved to using the LGPL exclusively.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Preliminary List ==&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellspacing=0 cellpadding=3&lt;br /&gt;
!Product name&lt;br /&gt;
!Company&lt;br /&gt;
!Windows&lt;br /&gt;
!Mac OS X&lt;br /&gt;
!Linux&lt;br /&gt;
!Solaris&lt;br /&gt;
!License&lt;br /&gt;
!Web Site&lt;br /&gt;
!Wikipedia&lt;br /&gt;
|-&lt;br /&gt;
|ChinaOffice&lt;br /&gt;
|GoldSoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.goldsoft.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Co-Create Office&lt;br /&gt;
|Co-Create&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|Free&lt;br /&gt;
|http://www.ccoss.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|EuroOffice 2005&lt;br /&gt;
|Multiráció Kft.&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.eurooffice2005.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|KaiOffice&lt;br /&gt;
|KaiSource&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.kaisource.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Lycoris&lt;br /&gt;
|Lycoris (now Mandriva)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.lycoris.com/products/ppak/ (broken)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MagyarOffice&lt;br /&gt;
|Multiráció Kft.&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.magyaroffice.hu/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MultiMedia Office&lt;br /&gt;
|Platasoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|LGPL/proprietary&lt;br /&gt;
|http://www.platasoft.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MYOffice 2007&lt;br /&gt;
|OASYS&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.oasys.com.my/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NeoOffice&lt;br /&gt;
|NeoOffice.org&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|GPL&lt;br /&gt;
|http://neooffice.org/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NextOffice&lt;br /&gt;
|Well Develop&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.nextoffice.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OfficeOne&lt;br /&gt;
|?&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://shop.avanquest.com/france/produits/prod.php?pid=120/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OfficeTLE&lt;br /&gt;
|?&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.thaisoftware.co.th/index.php?tpid=pro:AR-0028&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOfficePL&lt;br /&gt;
|OpenOffice Software&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.openoffice.com.pl/index.php?id=201&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOffice.ux.pl&lt;br /&gt;
|Ux Systems&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL/proprietary&lt;br /&gt;
|http://www.ux.pl/openoffice/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenOfficeT7&lt;br /&gt;
|Top7&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.openzone.pl/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Oracle Open Office]]&lt;br /&gt;
|Oracle&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.oracle.com/us/products/applications/open-office/index.html&lt;br /&gt;
|http://en.wikipedia.org/wiki/Oracle_Open_Office&lt;br /&gt;
|-&lt;br /&gt;
|OxygenOffice Professional&lt;br /&gt;
|OxygenOffice Professional&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL&lt;br /&gt;
|http://ooop.sf.net/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Pladao Office&lt;br /&gt;
|?&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|X&lt;br /&gt;
|LGPL&lt;br /&gt;
|http://pladao.org/index.php?newlang=english&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RedOffice&lt;br /&gt;
|Red Flag 2000&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.redoffice.com/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|SunShine Office&lt;br /&gt;
|CS2C&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.cs2c.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ThizOffice&lt;br /&gt;
|ThizTech&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.thizlinux.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UP Office&lt;br /&gt;
|Philippines University&lt;br /&gt;
|1.0&lt;br /&gt;
|&lt;br /&gt;
|2.0&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://os.up.edu.ph/modules.php?name=Downloads&amp;amp;d_op=viewdownload&amp;amp;cid=2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workplace&lt;br /&gt;
|IBM&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|[workplacehome|http://www-142.ibm.com/software/workplace/products/product5.nsf/wdocs/workplacehome&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|WPS Office&lt;br /&gt;
|KingSoft&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|proprietary&lt;br /&gt;
|http://www.wps.com.cn/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|602Office&lt;br /&gt;
|Software602&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.602.cz/cz/produkty/602office_2_2/&lt;br /&gt;
|http://cs.wikipedia.org/wiki/602Office&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Jambo OpenOffice&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.o.ne.tz/&lt;br /&gt;
|http://en.wikipedia.org/wiki/Jambo_OpenOffice&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RomanianOffice&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|?&lt;br /&gt;
|http://www.romanianoffice.ro/&lt;br /&gt;
|http://en.wikipedia.org/wiki/RomanianOffice&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Go-OO&lt;br /&gt;
|Novell&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|X&lt;br /&gt;
|&lt;br /&gt;
|LGPL&lt;br /&gt;
|http://go-oo.org/&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Redoffice]]&lt;/div&gt;</summary>
		<author><name>Gang65</name></author>
	</entry>
</feed>