Prerequisites

Of course LibreOffice (or OpenOffice) must be installed on the system. Also unoconv is mandatory and for HTML mangling we also use the tidy tool.

On Ubuntu this can be done with:

$ sudo apt-get install libreoffice unoconv tidy

The scripts in here were tested with Ubuntu and work.

It is mandatory, that the system user running oooctl is a regular user with at least a home directory. LibreOffice relies on that directory to store information even in headless mode.

Recent LibreOffice versions require no X-server for running.

Normally, it should be sufficient to apt-get install unoconv. This should also install all the office packages needed.

Apart from this, you need Python 2.6 or 2.7 installed. The formerly required python-uno package is not needed anymore (but unoconv might require it). Also self-compiled Python variants should work.

Building

User Install

You can use pip to install ulif.openoffice:

$ pip install ulif.openoffice

will install the latest released version from PyPI.

Developer Install

If not done already, install the neccessary external packages:

$ sudo apt-get install libreoffice unoconv tidy

It is recommended to setup sources in a virtual environment:

$ virtualenv py27      # Python 2.6, 2.7 are supported
$ source py27/bin/activate
(py27) $

Get the sources:

(py27) $ git clone https://github.com/ulif/ulif.openoffice.git
(py27) $ cd ulif.openoffice

Install packages for testing:

(py27) $ python setup.py dev

It is recommended to start the oooctl daemon before running tests:

(py27) $ oooctl start

This will make LibreOffice listen in background and reduce runtime of tests significantly.

Running tests:

(py27) $ py.test

We also support tox to run tests for all supported Python versions:

(py27) $ pip install tox
(py27) $ tox

Of course you must have the respective Python versions installed (currently: Python 2.6, 2.7).

Running coverage detector:

(py27) $ py.test --cov=ulif.openoffice    # for cmdline results
(py27) $ py.test --cov=ulif.openoffice --cov-report=html

The latter will generate HTML coverage reports in a subdirectory.

Install packages for Sphinx-base documentation:

(py27) $ python setup.py docs
(py27) $ cd doc
(py27) $ make html

Will generate the documentation in a subdirectory.