Commit graph

409 commits

Author SHA1 Message Date
Mihai Varga
b0282a2a03 Revert "loolwsd: LRU expiry persistent cache"
This reverts commit 74dcec1d3f.
The cronjob replaces this
2015-08-03 21:51:55 +03:00
Mihai Varga
eceb977186 loolwsd: cron job to delete old tiles from rpm packages
place a cronjob file in /etc/cron.d/ which is removed when
the loolwsd rpm packages is uninstalled
2015-08-03 21:50:41 +03:00
Mihai Varga
6812c6aa0b goToPage API
in loleaflet, this is achived by invalidating the cursor and centering
the viewing area around it
2015-08-03 19:07:02 +03:00
Mihai Varga
992f19e6e8 loolwsd: handle parts in Writer
In Writer a part is a page and we only notify the client about the
current page in which the cursor is. Internally (invalidation and
caching) we work with a single part (0)
2015-08-03 17:29:23 +03:00
Mihai Varga
91c98a344e loolwsd: bump version after tarball 2015-08-03 10:14:19 +03:00
Mihai Varga
ac365f6d17 loolwsd: bump version before tarball 2015-08-03 10:13:07 +03:00
Mihai Varga
4ae546d7bd loolwsd: don't move editing tiles to persistent on saveAs 2015-07-29 16:58:43 +03:00
Mihai Varga
a6091f9f6b loolwsd: don't decode the url in the saveAs command 2015-07-29 11:39:35 +03:00
Henry Castro
74dcec1d3f loolwsd: LRU expiry persistent cache
When tile requests from the cache, update time stamp file
so LRU tiles are removed.
2015-07-25 20:12:07 -04:00
Henry Castro
ec094f1601 loolwsd: remove _pendingPreSpawnedChildren.
_pendingPreSpawnedChildren is no longer need it, because
fork() is used.
Also adjusted time sleep to 1 second.
2015-07-24 15:17:46 -04:00
Henry Castro
6dafcc753f loolwsd: process sleep for amount of time ...
specified by MAINTENANCE_INTERVAL
2015-07-24 14:10:24 -04:00
Henry Castro
e107fa662c loolwsd: update loolstat display processes utility 2015-07-24 13:54:35 -04:00
Tor Lillqvist
bbd5e54785 Let's try to have a bit saner dependencies
Surely loolwsd shouldn't depend on dev packages. And libpng12 gets included
automatically.
2015-07-24 14:31:46 +03:00
Tor Lillqvist
5bee6f71a2 Add more synthetic dependencies per customer wish
Not sure why they want to depend on those dev packages!?
2015-07-24 14:03:53 +03:00
Mihai Varga
e29d7c8468 loolwsd: save the whole status not only the fst line 2015-07-22 15:09:14 +03:00
Mihai Varga
b9884a470a loolwsd: be aware of the client's current part
And set lok's part to match the client's when they start editing or
selecting
2015-07-21 16:56:02 +03:00
Mihai Varga
c9fff5d8e3 loolwsd: updated tileCache::invalidateTiles 2015-07-21 14:53:53 +03:00
Mihai Varga
8f48dabf28 loolwsd: discard requests that are in the queue already 2015-07-21 11:08:36 +03:00
Mihai Varga
47790d9d5d loolwsd: use the new invalidate x y widht height command 2015-07-21 11:08:36 +03:00
Tor Lillqvist
fe8ef16827 Minor update to match facts better 2015-07-20 22:19:20 +03:00
Mihai Varga
19d6dec3f7 loolwsd: log timestamp in microseconds
Also, separate messages by comma so we can parse them easily
2015-07-20 12:54:08 +03:00
Henry Castro
c54ea4cd54 loolwsd: added shell script loolstat
loolstat. display a tree of processes and report total
number processes and threads.
2015-07-19 19:34:18 -04:00
Henry Castro
de3d97d5a4 loolwsd: create PID log file.
The PID log file is used by external utilities
to report processes, threads, etc.
2015-07-19 16:49:11 -04:00
Henry Castro
6e5df9acda loolwsd: systemplate added tmp dir
tmp directory is necessary when uses the valgrind tool
2015-07-18 14:28:12 -04:00
Henry Castro
66756a77a9 loolwsd: change named mutex to private static. 2015-07-18 12:35:16 -04:00
Henry Castro
161e5534ec loolwsd: mutex lock when loKit initialization. 2015-07-17 21:54:26 -04:00
Henry Castro
63a33b39f6 loolwsd: moved server socket to main function. 2015-07-17 17:55:57 -04:00
Henry Castro
404b5edbc9 loolwsd: FileTransferHandler no longer need it. 2015-07-17 16:55:49 -04:00
Henry Castro
99ca81a944 loolwsd: move server socket to parent process 2015-07-17 14:04:40 -04:00
Henry Castro
061a2bfc3d loolwsd: rework child monitor status. 2015-07-16 18:05:28 -04:00
Mihai Varga
5085fd4e0c loolwsd: move tiles to persistent folder on save 2015-07-16 12:51:07 +03:00
Mihai Varga
2ebe9f1be1 loolwsd: format and options in 'saveas' are optional 2015-07-16 12:51:07 +03:00
Henry Castro
fd5b676b2d loolwsd: set RTLD_NOW, all undefined symbols in
the library are resolved before dlopen() returns.
Also remove unnecessary commented code.
2015-07-15 20:57:39 -04:00
Mihai Varga
675cfb8c4a loolwsd: send part names with the status message
Also disabled the status length assertion because part names
are separated by new-line characters ('\n')
2015-07-15 18:49:32 +03:00
Henry Castro
3f3b9f7675 loolwsd: remove WSTOPSIG(status).
No child returns status process stop. This cause problems
when we attach one child to debug.
2015-07-15 09:15:12 -04:00
Mihai Varga
0d80d63cb4 loolwsd: don't cancel special tile requests that have an ID 2015-07-14 19:46:29 +03:00
Mihai Varga
97191d985b loolwsd: allow an extra paramater to the tile command (ID) 2015-07-14 19:46:04 +03:00
Henry Castro
bb3611399b loolwsd: Use fork but no execve 2015-07-13 10:13:06 -04:00
Tor Lillqvist
5bf98749ba Use /opt/libreoffice5.0 to match LO 5.0 beta
Note that the LibreOffice version present on the build system, if any, has no
relation to the one the packaged binaries are supposed to run against. When
building RPM or Debian packages, we use the bundled copy of the LibreOfficeKit
headers we have here, and not ones from a LibreOffice source tree.
2015-07-08 18:03:27 +03:00
Mihai Varga
6d2d8361b6 loolwsd: the third argument in postUnoCommand must be null not space 2015-07-08 09:09:58 +03:00
Tor Lillqvist
8864d8432b Bump minor version in this branch 2015-07-07 18:32:55 +03:00
Tor Lillqvist
d39fa21d64 Bump version after tarball 2015-07-07 12:49:52 +03:00
Tor Lillqvist
44074286a3 Bump version for tarball 2015-07-07 12:44:37 +03:00
Tor Lillqvist
b0f2b06fca Add the libnss* pathnames for Debian, too 2015-07-07 12:44:16 +03:00
Tor Lillqvist
3f874060c4 Bump version after tarball 2015-07-07 10:47:28 +03:00
Tor Lillqvist
db73d12cf2 Bump version for tarball 2015-07-07 10:12:13 +03:00
Tor Lillqvist
e29c773879 Include loolwsd.service and sysconfig.loolwsd in the tarball
(Instead of having them as separate SOURCEn in the loolwsd.spec.)

Both are related to systemd. The latter probably is relevant only for
openSUSE. (And I actually couldn't get what I tried doing in it to work, see
739edf9dcf464f407dfe663fb2f497b866e73333.)
(cherry picked from commit f8b29d666d52a3f18b0125aaed309fa3e4d719fb)
2015-07-07 10:11:34 +03:00
Tor Lillqvist
f1b4f72278 Adapt to the CP LO 5.0 beta1
(cherry picked from commit 9be670309fd107d29c4c54c58d2927968d777745)
2015-07-07 10:11:03 +03:00
Tor Lillqvist
baeeb92d1c Add cap_mknod here, too 2015-07-07 09:57:43 +03:00
Jan Holesovsky
767d6a0a32 Create /dev/*random in the chroot so that ssl works.
Also add the missing library to the systemplate.
2015-07-06 19:35:50 +02:00
Henry Castro
e50e302839 loolwsd: Handle file URI schema
In the file:// case, if it is on linux, hard link function is used
and copy only if hard link fails.
2015-07-04 20:46:13 -04:00
Henry Castro
d788fa92e9 loolwsd: let libreoffice handle http protocol 2015-07-03 10:04:24 -04:00
Tor Lillqvist
f4da368a52 Add a FIXME, found by looking, no time to investigate 2015-07-02 16:26:09 +03:00
Jan Holesovsky
fbcbc462d6 One more place where we need to adapt to the new payload format. 2015-06-25 17:35:33 +02:00
Jan Holesovsky
4071022305 The payload format has changed, swap the parameters accondingly. 2015-06-25 17:03:18 +02:00
Jan Holesovsky
a172c73519 Update the bundled includes. 2015-06-25 12:03:16 +02:00
Jan Holesovsky
7c48ea1fe3 Change the tiles cache to 2-level cache.
Now we have 2 caching directories: 'persistent', and 'editing'.

The Persistent cache always represents the document as it is saved, the
Editing one caches the current edits.  The Editing state is copied to
Persistent on save.  The Editing state is destroyed on reload.
2015-06-24 22:07:58 +02:00
Mihai Varga
e8007ea405 Server getTextSelection implementation 2015-06-24 18:08:15 +03:00
Tor Lillqvist
f7a769ef28 Avoid assertion when the --lotemplate parameter ends with a slash 2015-06-17 16:52:54 +03:00
Tor Lillqvist
d7a6a8511c Handle callbacks here, too 2015-06-12 16:58:49 +03:00
Tor Lillqvist
f09991e6c8 Don't use TABs for variable assignment lines 2015-06-09 19:34:32 +03:00
Tor Lillqvist
692b971a55 Add tsqueue.h 2015-06-09 19:34:24 +03:00
Tor Lillqvist
6804750463 Don't bother with storing a ref to Application::instance() in a variable in some places 2015-06-09 18:30:21 +03:00
Tor Lillqvist
d3f4ddd355 Use a queue also in the child processes 2015-06-09 18:30:12 +03:00
Tor Lillqvist
8a2329d698 Log the number of tiles requests and replies 2015-06-09 18:30:04 +03:00
Tor Lillqvist
70b1e58f4c Typo 2015-06-09 18:29:55 +03:00
Tor Lillqvist
629ba87139 Add a "canceltiles" message to the protocol and handle it
Implementing this Was harder than I first expected. The basic idea is as
follows: The master process puts each message arriving from a client that
isn't "canceltiles" into a (client-specific) queue. A separate thread that
pulls messages from the queue at its own pace and handles them as
before. Incoming "canceltiles" messages are handled specially, though: The
queue is emptied of "tile" messages.

The above sounds simple but there are several details that were a bit tricky
to get right.
2015-06-09 18:29:48 +03:00
Tor Lillqvist
1954d95e91 Clarify usage message 2015-06-09 18:29:35 +03:00
Tor Lillqvist
a7f2e5aa29 The buffer parameter to handleInput() can be const 2015-06-08 17:56:10 +03:00
Tor Lillqvist
391d17831d Bump minor number in this master branch 2015-06-05 16:28:49 +03:00
Tor Lillqvist
316bfe487d Correct documentation for _docURL 2015-06-05 13:05:51 +03:00
Tor Lillqvist
ea2141ffe7 Take the tile cache directory as an option, too 2015-06-04 17:09:19 +03:00
Tor Lillqvist
314a9ba826 We want --localstatedir=/var on Debian 2015-06-04 15:53:19 +03:00
Tor Lillqvist
6b0ab577ce Add Debian packaging 2015-06-04 13:08:01 +03:00
Tor Lillqvist
9ab0aaed03 Bump version after tarball 2015-06-04 13:08:00 +03:00
Tor Lillqvist
5985d86642 Bump version for tarball 2015-06-03 20:05:15 +03:00
Tor Lillqvist
f1732ba96d Avoid global dtors, just _Exit() 2015-06-03 09:13:22 +03:00
Tor Lillqvist
2312d9a962 Just use Requires instead of PreReq
They mean the same.
2015-06-03 09:13:22 +03:00
Tor Lillqvist
d3ba2cae5b Post-release bump 2015-06-01 20:18:53 +03:00
Tor Lillqvist
3f0bd39a12 Bump version for tarball 2015-06-01 20:17:15 +03:00
Tor Lillqvist
ec681d2cc8 For some reason I can't get the $LOOLWSD_NUMPRESPAWNS to work
Even though it is set in /etc/sysconfig/loolwsd, it expands to nothing when
used in the loolwsd.services file. Oh well. Let's hardcode a value of 5 for
now.
2015-06-01 20:14:40 +03:00
Tor Lillqvist
7848cca80c Try to make this handled by systemd 2015-06-01 19:53:29 +03:00
Tor Lillqvist
bbf844f8da Fix copy/paste error in help message 2015-06-01 19:52:48 +03:00
Tor Lillqvist
a8bbebb4b2 Drop more too specific dependencies 2015-06-01 18:32:04 +03:00
Tor Lillqvist
74b5227dec Drop a few too specific dependencies 2015-06-01 17:55:12 +03:00
Tor Lillqvist
1e8a22d4d6 Bump version to 1.0.31 after "release" 2015-06-01 16:36:42 +03:00
Tor Lillqvist
a59f176929 Bump version to 1.0.30 for tarball 2015-06-01 16:36:42 +03:00
Tor Lillqvist
b317bfb9a0 Add the packages that the TDF build of LO should require (but doesn't)
LibreOffice from TDF, packaged in RPM, does not have proper dependencies as it
is supposed to be usable on different distros and can't know what names are
used for packages for system libraries used, like the one containing
libdbus-glib. But we must have all dependent libraries installed when running
the loolwsd-systemplate-setup command in the %post phase. As this spec file de
facto is for openSUSE 13.2 only anyway, we can find out the package names and
depend on them...

Add the list from running:

rpm -qf --queryformat '%{NAME} ' `find /opt/libreofficedev5.1 -name '*.so' -o -name '*.so.[0-9]*' | while read file; do ldd $file; done | grep -v dynamic | cut -d " " -f 3 | grep -E '^(/lib|/usr)/' | sort -u`
2015-06-01 16:34:58 +03:00
Tor Lillqvist
58e4e15c6a Post-release bump to 1.0.29 2015-05-29 18:36:37 +03:00
Tor Lillqvist
9076ba8a75 Bump version to 1.0.28 for tarball 2015-05-29 18:35:42 +03:00
Tor Lillqvist
b54731fdce We do need to require the LO packages
They need to be installed before loolwsd is installed, because our %post
action needs to know where LO is installed so that it can create the
systemplate and child-roots directories on the same file system where LO
is. Oh this is crazy and over-engineered. I wonder if it makes sense at all to
even consider packaging this loolwsd in some generically useful way, or if it
should be considered a manual thing for customers / users to install and
configure.

Sadly the TDF builds of LO use the version number in the package names, so we
can't depend on *some* TDF build of LO (like >= 5.0), but must have a specific
version in this spec file. Sigh.
2015-05-29 18:31:53 +03:00
Tor Lillqvist
4303f1ee38 Improve tile cache handling for file: documents
Handle also documents specified with a file: URI. Move creating the
modtime.txt file to the constructor of the TileCache object for the document.
2015-05-29 12:26:54 +03:00
Tor Lillqvist
3ed22306e8 Post-release bump to 1.0.27 2015-05-29 10:10:20 +03:00
Tor Lillqvist
47aa6c74ed Bump version to 1.0.26 for tarball 2015-05-29 10:06:48 +03:00
Tor Lillqvist
775603a736 Don't use sudo to run setcap when building from rpmbuild
Not a good idea to run an interactive command during a non-interactive
make. We do the setcap in the %post step in the spec file anyway.
2015-05-29 10:05:37 +03:00
Tor Lillqvist
f94cef92c8 Post-release bump to 1.0.25 2015-05-29 09:47:51 +03:00
Tor Lillqvist
2230b3f0c5 Bump version to 1.0.24 for tarball 2015-05-29 09:47:03 +03:00
Tor Lillqvist
a608aaee90 Add an invalidate: message that is in LOOL style with named parameters
The invalidatetiles: message as generated directly from the
LOK_CALLBACK_INVALIDATE_TILES will be dropped soon.
2015-05-29 09:44:39 +03:00
Tor Lillqvist
1b85e8eaaa Be more consistent in using 'using' 2015-05-29 08:49:49 +03:00
Tor Lillqvist
26161d6063 Handle the EMPTY case of LOK_CALLBACK_INVALIDATE_TILES, too 2015-05-29 08:39:21 +03:00