From Wiki.ooo4kids.org
Jump to: navigation, search

Back to Environment Setup

Please do not translate the page yet

This page is Linux dedicated.


File Systems

Here are some filesystem listed by compatibility:

Compatible for build: Ext3, Ext4, ReiserFS.

Might run into some problems: NTFS, UFS.

Not Compatible for build: Vfat.

Building OOo4Kids on Archlinux

This is the easiest build on Linux.

Here are the unofficial OOo4Kids PKGBUILD and its post-install script :

PKGBUILD (created : 31st July 2010, last modification 6 july 2011)

ooo4kids.install (created : 31st July 2010)

Instructions :

Create the above files in an empty folder (as plain text files named PKGBUILD and ooo4kids.install).

Run makepkg -s (the -s option installs the missing dependencies if needed)

The binary packages this generates will soon be availaible on the [archlinux.fr official repository]

Check the sources, build and install OOo4Kids (Debian, Ubuntu, Fedora and Mandriva or Sugar)


To build OOo4Kids on Linux (all distributions), some development tools are mandatory, but it is important to add what you will not need too.

Below, some parts you don't need to install

  • You don't need to install Java
  • You don't need to install Apache-Ant
  • You don't need to install Mozilla, nor download anything Mozilla

This said, below is listed what you need to install on Linux ....

Suggested packages

Note: apt-get is used below, on Debian and Ubuntu, but on Mandriva, you'll have to replace 'apt-get' with 'urpmi' (the need is similar). For Fedora, you'll have to replace 'apt-get' with 'yum'.

You will need at least followings packages. Feel free to copy/paste what you need ;-)

sudo apt-get install libarchive-zip-perl
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libpam-dev
sudo apt-get install gperf
sudo apt-get install python-dev
sudo apt-get install curl
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libxaw7-dev
sudo apt-get install libxrandr-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libgconf2-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libcupsys2-dev
sudo apt-get install libgstreamer0.10-dev
sudo apt-get install libgstreamer-plugins-base0.10-dev
sudo apt-get install libcups2-dev
sudo apt-get install libxslt1-dev
sudo apt-get install xsltproc
sudo apt-get install zip
sudo apt-get install unzip

Packages specific for Mandriva_2010.0 32 bits -

urpmi libcurl-devel    (with its dependances)
urpmi libwaw7
urpmi libxaw-devel
urpmi libxrandr2-devel
urpmi libGConf2-devel (with its dependances)
urpmi libgtk+2.0_0-devel
urpmi perl-Archive-Any  (takes perl-Archive-Zip with it in dependances)
urpmi libpython2.6-devel-2.6.4-1.4mdv2010.0.i586  (or later, but 2.6, not 3.1)

Packages specific for Fedora -

sudo yum install libX11-devel
sudo yum install xorg-x11-proto-devel 
sudo yum install libXau-devel 
sudo yum install libxcb-devel 
sudo yum install libXaw-devel
sudo yum install libxslt-devel
sudo yum install freetype-devel
sudo yum install pam-devel
sudo yum install gcc-c++				
sudo yum install cups-devel
sudo yum install gstreamer-devel
sudo yum install gstreamer-plugins-base-devel
sudo yum install perl-Archive-Zip
sudo yum install python-devel
sudo yum install patch 
sudo yum install libgnome-devel 
sudo yum install rpmdevtools  
sudo yum install redland 
sudo yum install redland-devel

Recommended tools

  • ccache

If you intend to build OpenOffice.org several times, you probably can benefit of ccache since it will speed up your future builds. The first time you make a build with ccache you won't notice it, but the next time the build will go up to five times faster.

To install it:

sudo apt-get install ccache

There are two ways to enable ccache - one is to set environment variables, the other way is to use symlinks.

Using environment variables:

export CC="ccache gcc"
export CXX="ccache g++"

Using the symlink approach:

# create a directory for the links 
mkdir ~/bin
# create the symlinks pointing to ccache with the name of the compiler
ln -s /path/to/ccache ~/bin/gcc
ln -s /path/to/ccache ~/bin/g++
ln -s /path/to/ccache ~/bin/cc
ln -s /path/to/ccache ~/bin/c++
# now all you need to enable ccache is to prepend ~/bin to your PATH
$ export PATH=~/bin:$PATH

for both methods, you can add the "export ..." lines to your ~/.profile - that way you don't need to manually set it when building. You can still temporarily disable ccache (export CCACHE_DISABLE=1) in case you don't want to use it.

Since OOo is rather huge, you should increase the cache-size to 1 GB or more

ccache -M 1G
  • subversion version 1.5.4 or later

Since OOo's source code is managed using Subversion currently, you also need the svn client to checkout sources (otherwise you would be bount to source-tarballs that aren't generated that frequently). You can either compile yourself or use the subversion universal binaries from the subversion project Version 1.5.4 or later is required because of important fixes related to the merge-feature.

To install it:

sudo apt-get install subversion

Build it

Checkout the source code

The goal of this step is to get the source code for OpenOffice 3.0 milestone 47. The total size is 4,4 Go. This can take a lot of time depending of your bandwidth connection. (i.e.: With my 1MO DSL it take me more than 4 hours)

Firstly, you need to install subversion package. On a debian-like OS :

apt-get install subversion

The command to use is :

svn checkout -r1481 svn://svn.adullact.net/svnroot/ooo4kids1/trunk my_OOo4Kids

Stable 1.3 version is revision 1481. Any more recent revision can lead to unbuildable sources. You are warned :)

Will download the entier sources tree (1.2 GB). Count 15 GB reserved on the hard disk, for a full build ( 8 locales).

Launch the configure

...and the configure command line is :

 ./configure --with-lang="ar de es fi fr it nb nl pl ru sl uk zh-CN zh-TW" \
             --with-system-python \
             --with-system-libxml \
             --disable-gnome-vfs \
             --with-OOo4Kids \
             --disable-gtk \

... and so on !

The bootstrap (compilation of dmake)

Just type the following command in /path/to/my_OOo4Kids


Source the compilation environment

Use the following command under linux Intel:

source LinuxX86Env.Set.sh

Use the following command under linux PowerPC:

source LinuxPPCEnv.Set.sh

Check if all is ok with:

set | grep OOo4Kids 

You should have:



cd instsetoo_native 

If your machine is 1GHz / 1GB or RAM :

build --all -P3 
  1. and go buy coffee, beer .. and come back ~ 10 hours later

And if you are the lucky owner of an i7 920 + 6GB of RAM + SSH hard disk ;-) prefer :

build --all -P6 -- -P6 -- -P6 -- -P6  
  1. (for me, the build took 50 minutes with cold ccache, 28 minutes with hot ccache, both for 8 locales)

Now you know, and it is up to you to imagine the right value if your machine is between both machines above ;-)

Build and install on Gentoo Linux

Dependencies on Gentoo :

(This list is inspired from the OpenOffice.org 3.2.1-r1 package compilation)


I compiled OOo4Kids (rev 1119) using these options :

./configure --with-lang="fr" \
            --with-system-python \
            --with-system-libxml \
            --enable-cups \
            --disable-gnome-vfs \
            --with-OOo4Kids \
            --disable-gtk \
            --with-system-hunspell \

Package issues

The –with-package-format=installed is necessary in order to avoid the system looking for rpm dependencies...

Husnpell issues

Moreover, we discovered a bug. This issue happened also on *BSD systems. It is due to hunspell.

The solution is, on Gentoo :

benjamin@Licorne ~/Git/OOo4Kids $ svn diff hunspell/makefile.mk 
Index: hunspell/makefile.mk
--- hunspell/makefile.mk	(révision 1100)
+++ hunspell/makefile.mk	(copie de travail)
@@ -71,7 +71,7 @@
-BUILD_ACTION=make && make check

Build and install on Puppy Linux

Install ccache (optionnal, but extremely usefull)

Download it there :


decompress it, cd ccache-2.4

./configure && make && make install

+ add in your ~/.bashrc :

CC="ccache gcc"

CXX="ccache g++"

export CC CXX

=> and at every new terminal you'll open, CC will contain ccache gcc and CXX will contain ccache g++

The installation is the same as the other, excepted that you'll have to manually install the tools below.

Missing (from devx_412.sfs image disk): Archive:zip , gperf, gconf, Linux pam

To install Archive zip

  • Open a terminal
  • Create a new dir :

mkdir devel

  • Change for the new dir

cd devel

If you are behind a firewall set FTP_PASSIVE to 1.

$ export FTP_PASSIVE="1"

To start the CPAN module, type :

$ perl -MCPAN -e shell

Then, in the prompt, type :

> Install Archive::Zip

=> answer to all questions (default values are ok) => build the Perl module => install ( don't forget make install)

To install libpam



  • decompress Linux-PAM- (up to date today)

configure, make , make install

To install gperf

  • download gperf gperf-3.0.4.tar.gz ( january 2010 )

URL : http://www.gnu.org/software/gperf/#TOCdownloading

  • decompress the archive

cd gperf-3.0.4 ./configure make make install

To install gconf

install GConf-2.25 or inferior. The reason is simple :

gconf is only used at configure time, and recent GConf need glib-2.16 while glib on the dev system is 2.14 only. So use more recent GConf will never work, unless you manually define the GHashTableIter iter (introduced and defined in glib-2.16 ).

URL : http://ftp.gnome.org/pub/gnome/sources/GConf/2.25/GConf-2.25.2.tar.gz


..but :

There are some missing dependencies (yes, it sucks)

checking for DEPENDENT... configure: error: Package requirements (glib-2.0 > 2.14.0 gmodule-2.0 >= 2.7.0 gobject-2.0 >= 2.7.0 ORBit-2.0 >= 2.4.0 dbus-1 >= 1.0.0 dbus-glib-1 >= 0.74) were not met:

  • No package 'ORBit-2.0' found
  • No package 'dbus-1' found
  • No package 'dbus-glib-1' found

=> everything is mandatory, so better install it  :-/

Orbit-2.0 installation

In fact, after the configure Orbit-2.0 seems to be ok (means most of Orbit-2.0 dependencies are satisfied by default in the devx_421.sfs )

To download Orbit-2.0 : http://www.linuxfromscratch.org/blfs/view/svn/gnome/ORBit2.html

To install Orbit-2.0 :

./configure --prefix=/usr && make && make install

dbus-1 installation

Follow the instructions below : http://www.linuxfromscratch.org/blfs/view/cvs/general/dbus.html

Download : http://dbus.freedesktop.org/releases/dbus/dbus-1.2.16.tar.gz

create dbus directory cp dbus-1.2.16.tar.gz into dbus cd bdus tar zxvf dbis-1.2.16.tar.gz cd dbus-1.2.16

./configure --prefix=/usr && make && make install

dbus-glib-1 installation

Get it: http://dbus.freedesktop.org/releases/dbus-glib/

Compile and install it:

./configure --prefix=/usr && make && make install

Uff !! .... Now we can install GConf :

cd GConf-2.25.2 ./configure --prefix=/usr --without-openldap && make && make install

NOTE : openldap sucks too ...

Checkout the sources

mkdir devel

cd devel

svn co -r1052 svn://svn.adullact.net/svnroot/ooo4kids1/trunk OOo4Kids1.2

=> will create OOo4Kids1.2 containing all the sources, ready for configure.


...and the configure command line is : (typed from inside OOo4Kids )

 ./configure --with-lang="ar de es fi fr it nb nl pt ru sl uk zh-CN zh-TW" \
             --with-system-python \
             --with-system-libxml \
             --disable-gnome-vfs \
             --with-OOo4Kids \
             --disable-gtk \

Of course, if you only need one locale, just use --with-lang=your_locale :-) e.g. --with-lang=fr


./bootstrap # will build dmake (only once)

cd instsetoo_native

build --all -P3 # and go buy coffee, beer .. and come back ~ 10 hours later

Install OOo4Kids

Test the result

Now that the compilation is finish, you would probably want to try launch your OOo4kids :)

For the record, to install OOo4Kids, you must download the right archives contained in a .tar.gz, that you mus decompress in a dedicated folder. Further information below.

Install on Debian or Ubuntu

Obsolete. Will be updated soon

Install on Mandriva

.rpm is the archive extension name on those distributions.

Tested with:

  • Mandriva GLinux 2009.1 (mipsel architecture)
  • Mandriva one 2010 32 bits
  • Mandriva one 2010.1 beta 2 32 bits
  • Please list the Mandriva releases on which the following instructions did the work

To install:

  • Download the archive containing the RPM packages
  • Open a terminal and run the following commands from the directory where the archive was saved:
tar xvzf OOo4Kids*.tar.gz
cd fr/RPMS
cp desktop-integration/OOo4Kids1.1-mandriva-menus-1.2-10.noarch.rpm ./
  • Finally, as root, still from the fr/RPMS directory:
urpmi *.rpm

To uninstall (as root):

urpme OOo4Kids1.2-core01
urpme OOo4Kids1.2-mandriva-menus

(the menu integration package does not depend on the core installation)

Install on Fedora /Red Hat

To install:

  • Download the archive containing the RPM packages
  • Open a terminal and run the following commands from the directory where the archive was saved:
tar xvzf OOo4Kids*.tar.gz
cd fr/RPMS
cp desktop-integration/OOo4Kids1.2-redhat-menus-1.2-07.noarch.rpm ./
  • Finally, as root, still from the fr/RPMS directory:
rpm -ivh *.rpm

To uninstall (as root):

rpm -e OOo4Kids1.2-core01
rpm -e OOo4Kids1.2-redhat-menus

(the menu integration package does not depend on the core installation)

Instructions for PCLinuxOS


French Link : PCLinuxOS at TuxFamily.org

PCLinuxOS distribution uses .rpm like archives, and the current versions of OOo4Kids and OOoLight should install straight away on this distribution.

TAG TODO.png Need some feedback ...


TAG TODO.png Complete me ...

The need is to create the icon on the desktop.

Install on openSUSE

To install:

  • Download the archive containing the RPM packages (OOo4Kids*install.tar.gz)
  • Open a terminal and run the following commands from the directory where the archive was saved:
tar xvzf OOo4Kids*.tar.gz
cd en-US/RPMS
  • Copy the openSUSE menu installation file into the en-US/RPMS directory:
cp desktop-integration/OOo4Kids1.2-suse-menus-1.2-11.noarch.rpm ./
  • Finally, as root, still from the en-US/RPMS directory:
zypper install *.rpm
  • You may have to log-out and log back in before OOo4Kids programs show up on your openSUSE menu

To uninstall (as root):

  • View all installed packages:
zypper se ooo4
  • Uninstall core packages:
zypper remove -u OOo4Kids1.2-core01
  • Uninstall OOo4Kids UNO Runtime Environment:
zypper remove -u OOo4Kids-ure
  • Uninstall desktop integration
zypper remove -u OOo4Kids1.2-suse-menus
  • (the menu integration package does not depend on the core installation)

ARM Target


Things are a bit different on Linux ARM, since everything is embedded.

The term "ARMv7" refers to the Instruction Set Architecture (ISA) version 7. Variants of this ISA are to be found in the more recent Cortex family of cores


Building OOo4Kids or OOoLight, you can choose the targeted processor for compatibility purpose. To achieve that, pass the right --with-arm-target at configure time.

Possible cases :

  • --with-arm-target=5 (or inferior value) : ARMV5 will be defined, no additional gcc (<4.6) flag used. This is basic Debian armel port.
  • --with-arm-target=6 : ARMV6 will be defined, and we'll use: ARCH_FLAGS+=-march=armv6 -mfloat-abi=FLOAT_FLAG additional gccflags. This is old Ubuntu armel port, working on machines using armv6 instruction set, but do NOT comply to armv7 instruction set.
  • no flag or --with-arm-target=7 (or superior) ARMV7 will be defined, and we'll use ARCH_FLAGS+=-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=FLOAT_FLAG gcc flags

When using ARMV7, there is one atomic optimization used in sal, with the interlock refcount management. Thanks to Jani Monoses for his help contribution (he added dmb instruction, in case of multi cores use).

IMPORTANT : if no options is passed at configure time, default will be ARMV7

Float abi

Please note the used flag will depend on your distribution

  • armel, and current Ubuntu Nathy : FLOAT_FLAG is set to softfp
  • armhf : True Debian armhf port, FLOAT_FLAG is set to hard

Further information about gcc flags, see : gcc online doc, in ARM options

Ubuntu natty (ARM version)


  • TAG DONE.png Build done
  • TAG DONE.png .deb creation broken. was debian/rule issue.

Everything is similar to any Linux Debian or Ubuntu x86.

You can find everything : https://wiki.ubuntu.com/ARM

Images : https://wiki.ubuntu.com/ARM/OMAP

The installation installs using a default resolution (1280MRx720-16@60)

Complete boot setenv :

setenv bootargs quiet splash ro elevator=noop vram=12M \
                root=UUID=xxddffhh-dfgh-4343-1229-ergergtjgtj fixrtc

First boot log:

eric@beagle:/var/log$ cat jasper.log 
Caching vfat content in /dev/.initramfs/jasper-vfat ...
Resizing root partition ...

Disk /dev/mmcblk0: 1936 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/mmcblk0p1   *      0+      8       9-     72261    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          9    1935    1927   15478627+  83  Linux
/dev/mmcblk0p3          0       -       0          0    0  Empty
/dev/mmcblk0p4          0       -       0          0    0  Empty
New situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/mmcblk0p1   *      0+      8       9-     72261    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          9    1935    1927   15478627+  83  Linux
/dev/mmcblk0p3          0       -       0          0    0  Empty
/dev/mmcblk0p4          0       -       0          0    0  Empty
Successfully wrote the new partition table

Re-reading the partition table ...

Re-writing vfat partition ...
mkdosfs 3.0.9 (31 Jan 2010)
Resizing root filesystem ...
e2fsck 1.41.14 (22-Dec-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mmcblk0p2: 120749/238320 files (0.1% non-contiguous), 372101/476511 blocks
resize2fs 1.41.14  22-Dec-2010  Resizing the filesystem on /dev/mmcblk0p2 to 3869656  4k  blocks. Begin pass 1  max = 104  Extending the inode table     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX The filesystem on /dev/mmcblk0p2 is now 3869656 blocks long.  
tune2fs 1.41.14 (22-Dec-2010)
512+0 records in
512+0 records out
Setting up swapspace version 1, size = 536866816 bytes
UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (hidden)
Image Name:   Ubuntu boot script
Created:      Fri Feb 25 20:04:53 2011
Image Type:   ARM Linux Script (uncompressed)
Data Size:    280 Bytes = 0.27 kB = 0.00 MB
Load Address: 00000000
Entry Point:  00000000
   Image 0: 272 Bytes = 0.27 kB = 0.00 MB


'''Configure command line''' : 
./configure \
              --with-OOo4Kids \
              --with-lang=fr \
              --with-package-format="deb installed" \
              --without-fonts \
              --disable-gnome-vfs \
              --with-system-libxml \
              --with-system-python \
              --with-system-zlib \
              --with-system-neon \
              --with-system-openssl \
              --with-system-boost \
              --with-system-curl \

Debian (armhf)

Work in progress

Issues :

  • Introduce new arch : unxlnrh in the build process TAG DONE.png
  • Fix libwpd build issues TAG DONE.png
  • Migrate to libwpd-0.9 and commit Fabien Rendu patches TAG TODO.png
  • Fix oooxml build issues : TAG DONE.png (was LD_LIBRARY_PATCH mess, like on OpenBSD port)
  • Fix .deb creations on Linux ARM TAG DONE.png (all ports should work now)
  • Fix dpkg_deb script on Linux ARM TAG DONE.png (was debian/rule)
  • New (unofficial) repository for armel and armhf TAG DONE.png

The build should break, due to gcc-4.6.x and, but the build fixes will be commited in the sources very soon.

FIXME : provide the revision number once the fixes are commited

To install this experimental Debian port, you can download the image disk : armhf SD image disk (a big THANK YOU to Constantinos Margaritis)

Tu use them, follow the instructions.

Important: you'll need to install (probably compile yourself) xz tools.

Debian (using qemu)


See : Debian ARM

Same installation and configuration as on Debian Intel.

  • TAG DONE.png Build: successfull
  • TAG DONE.png Launch : successfull

Configure command line

./configure --with-OOo4Kids\

Angström Linux ARM(v7 mini) case

Current work in progress : building on a micro SD card, 16Go. Linux based on Angstrom Linux, and the Gnome version made by the great Steve Sakoman.

More precisely, we'll use pre-installed distribution, Gnome for OMAP3 processor. See sakoman.com page for the installation instructions.

Note: if you got a Pandaboard, s/OMAP3/OMAP4/  ;-)


revision r12 is the current version. To start the build, you'll need to install :

In the distribution

To install something, proceeed as follow :

As root
# opkg update
# opkg install zip \
               flex \
               bison \
               libxaw-dev \
               libxaw-6-6 \
               libxaw7-7 \
               libneon25 \
               libneon-dev \
               openssl-dev \
               libxslt \
               libxslt-dev \
               libxslt-utils \
               python-dev \
               gperf \
               curl-dev \
               libcurl4 \
               libneon27 \
               libneon-dev \
               libarchive-zip-perl \
               gnome-python-dev \      # in fact this archive is useless, but helps to install bunch of usefull -dev archives ;)
               python-modules \
               python-distutils \
               boost \

More about opkg : opkg -h

Note: apparently, you need to be root to obtain information when doing " opkg list | grep something"

Not distribution provided (will be fixed in r13)

  • libxaw : solved. ->(su or sudo) opkg install libxaw-dev libxaw-6-6 libxaw7-7
  • zip : solved -> (su or sudo) and opkg install zip

Below, the one who should be removed very soon(because already installable with opkg):

/!\ The flex issue has been identified recently : was m4 missing as dependency. Work in progress

Don't forget to satisfy the possible dependencies you'll meet for the build. Once built, install everything as root ( in /usr/local prefered)

Experimental versions (en-US and fr only) are available at : this URL (optimized versions will be proposed soon)

Making an opk package

See : http://inportb.com/2010/10/19/making-an-opkg-package/

First build

Current configure command line (will certainly be updated soon):

           --with-OOo4Kids \
           --with-lang=fr \
           --with-package-format=installed \
           --without-fonts \
           --disable-gtk \
           --disable-gnome-vfs \
           --disable-gstreamer \
           --with-system-libxml \
           --with-system-python \
           --with-system-zlib \
           --with-system-neon \
           --with-system-openssl \
           --with-system-boost \


  • TAG DONE.png Build completed
  • TAG DONE.png some issues with regcomp (segfault at packaging time). Fixed using recent changes in the bridges.
  • TAG DONE.png improved sal interlock (take care of different processors types, like ARMv6 and superior (no need to stick with ARMv1, far too slow)
  • TAG DONE.png flex & bison issue (severe). Fixed : was flex and bison depending on m4
  • TAG DONE.png Works on OMAP3, using Angstrom Linux distribution.


Not everything is perfect, and you can help to improve things, e.g. filing issues. Thanks in advance.

See  : known Issues


Will be updated very soon, with new archives and using a true Package.gz :

Soon : armhf versions (en-US and fr only, build in progress ... )

Personal tools