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.