libreoffice-online/loolwsd
2015-04-22 21:47:53 +03:00
..
.gitignore Work in progress: "pre-forking", chroot, etc. Non-working state 2015-04-22 21:42:17 +03:00
AUTHORS Autofooize 2015-03-09 11:19:00 +02:00
ChangeLog Autofooize 2015-03-09 11:19:00 +02:00
configure.ac Work in progress: "pre-forking", chroot, etc. Non-working state 2015-04-22 21:42:17 +03:00
Connect.cpp Now the chroot etc re-work is getting closer to working 2015-04-22 21:44:17 +03:00
COPYING Autofooize 2015-03-09 11:19:00 +02:00
INSTALL Autofooize 2015-03-09 11:19:00 +02:00
LoadTest.cpp Tweak temporary timing parameters a bit while hacking 2015-04-22 21:47:53 +03:00
LoadTest.hpp Start on load testing 2015-03-26 17:04:08 +02:00
LOKitClient.cpp Bump Emacs fill-column to 100 2015-04-22 21:43:11 +03:00
LOKitHelper.hpp Bump Emacs fill-column to 100 2015-04-22 21:43:11 +03:00
LOOLProtocol.cpp Now the chroot etc re-work is getting closer to working 2015-04-22 21:44:17 +03:00
LOOLProtocol.hpp Now the chroot etc re-work is getting closer to working 2015-04-22 21:44:17 +03:00
LOOLSession.cpp Call shutdown on the peer's websocket when the session to the client dies 2015-04-22 21:47:13 +03:00
LOOLSession.hpp Clean up the jail after the prisoner has died 2015-04-22 21:46:33 +03:00
LOOLWSD.cpp We indeed don't need the signalfd stuff, I hope 2015-04-22 21:47:20 +03:00
LOOLWSD.hpp Terminology change: s/fork/spawn 2015-04-22 21:45:31 +03:00
Makefile.am Now the chroot etc re-work is getting closer to working 2015-04-22 21:44:17 +03:00
NEWS Autofooize 2015-03-09 11:19:00 +02:00
protocol.txt A bit more info 2015-03-24 19:04:16 +02:00
README Terminology change: s/fork/spawn 2015-04-22 21:45:31 +03:00
setup-sys-chroot Work in progress: "pre-forking", chroot, etc. Non-working state 2015-04-22 21:42:17 +03:00
TileCache.cpp Bump Emacs fill-column to 100 2015-04-22 21:43:11 +03:00
TileCache.hpp Cache also document status 2015-03-13 14:17:51 +02:00
TODO This is done 2015-04-22 21:46:50 +03:00
Util.cpp Bump Emacs fill-column to 100 2015-04-22 21:43:11 +03:00
Util.hpp Bump Emacs fill-column to 100 2015-04-22 21:43:11 +03:00

LibreOffice On-Line WebSocket server
====================================

Installation
------------

LibreOffice On-Line WebSocket server has the following dependencies:

* libpng
* Poco library: http://pocoproject.org/index.html.

Poco can be built with ./configure --prefix=/opt/poco && make install, but
distro packages exist too.

On openSUSE, you can use:

    zypper ar http://download.opensuse.org/repositories/devel:/libraries:/c_c++/openSUSE_13.2/devel:libraries:c_c++.repo
    zypper in poco

Building
--------

loolwsd uses autoconf/automake, so build using the usual:

    autoreconf
    automake --add-missing
    ./configure --enable-silent-rules --with-lokit-path=<...>/include
    make

where <...> is the location of the LibreOffice source tree.

If you have self-built Poco, add the following to ./configure:

    --with-poco-includes=<...>/include --with-poco-libs=<...>/lib

If you have the Poco debugging libraries (eg. you have a self-built Poco), you
can add --enable-debug to the configure options for additional debugging.

For Windows, a proper VS2013 project is needed.

There is still unconditional debugging output etc. This is a work in progress.

Running
-------

Run the loolwsd in the daemon mode:

    ./loolwsd --lopath=<...>/instdir/program

and connect loleaflet to that (see loleaflet/README for more info).

Again, <...> is location of the LibreOffice source tree with a built
LibreOffice.  This is work in progress, and consequently needs the latest
LibreOffice master.

Run loolwsd for instance like this, to run it the way it is supposed
to eventually be run "for real":

    ./loolwsd --systemplate=/home/tml/lo/master/lool-sys-template --lotemplate=/home/tml/lo/master/instdir --childroot=/home/tml/lo/master/lool-child-root

The lool-sys-template directory tree above is something set up using
the setup-sys-chroot script here. Improvements to that script are very
likely needed on various distros.

Also, it you plan to hack on this, you probably want to familiarize
yourself with loolwsd's --test and --numprespawns options, and the
'connect' test program.

For interactive testing, you can use the loolwsd --test switch, or you
can use the 'connect' program. Both accept "commands" from the
protocol on standard input. For instance:

    (echo load foo.odt; echo tile width=500 height=500 tileposx=0 tileposy=0 tilewidth=10000 tileheight=10000; sleep 10) |
    ./loolwsd --systemplate=/home/tml/lo/master/lool-sys-template --lotemplate=/home/tml/lo/master/instdir --childroot=/home/tml/lo/master/lool-child-root

The handling of termination is a bit fragile, occasionally it dumps
core somewhere in LO code when quitting. Don't be scared, work in progress.

Protocol description
--------------------

See protocol.txt for a description of the protocol to be used over the
websocket.