Commit graph

196 commits

Author SHA1 Message Date
NickWingate
4b03e5d193 Add fourth number to LOOLWSD versioning
E.g. 21.06.1 can now be 21.06.1.0

Signed-off-by: NickWingate <nicholas.wingate03@gmail.com>
Change-Id: Ib7db15dfafa06c4ddcdef28a8831a91bb847a389
2021-09-28 11:14:28 +02:00
Andras Timar
30ef4a62d5 fix Lintian errors: binary-or-shlib-defines-rpath
E: loolwsd: binary-or-shlib-defines-rpath usr/bin/loolconvert /snap/loolwsd/current/usr/lib
E: loolwsd: binary-or-shlib-defines-rpath usr/bin/loolconvert /opt/poco/lib

These RPATHs are not needed when we statically link poco, as we do with production
packages.

Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I5050fe1f1925937388793d443020fdc6a14ec97d
2021-09-25 19:04:59 +02:00
Pranam Lashkari
daef96dcb3 freemium: corrected typos
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: If21f4471b3ad4b20f049e2e9f2330e31989ead0b
2021-09-01 09:44:19 +02:00
Henry Castro
9266fa5793 add option --with-feedback-location
Change-Id: I2f5b1556f0b976e9c3cb1f78383d2d05e6aef892
Signed-off-by: Henry Castro <hcastro@collabora.com>
2021-08-06 17:21:18 +02:00
Henry Castro
c8e2d25d24 add initial feedback option
Change-Id: I9357f556474e5ada881e27983c95f7527b284efc
Signed-off-by: Henry Castro <hcastro@collabora.com>
2021-08-06 17:21:18 +02:00
Pedro Pinto Silva
6e64ffeba0 Freemium: Dialog: Improve default text, rewording
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1be4a06e8159050e578c2da319a3b99a982302b2
2021-07-20 14:41:18 +05:30
Pranam Lashkari
e02e1df76d Introduce Freemium options
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ib6b68ff74839cf84f2d8c8cfb7d380be9209f923
2021-07-20 14:41:18 +05:30
Tor Lillqvist
51b4f74960 Rename the Trace Event log to have the extension .json as that is what it is
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I46ab020ff0950decff1578fe20949b4494c63732
2021-06-21 12:43:17 +03:00
Ashod Nakashian
e0934a3382 configure: allow for setting --with-lo-path with --enable-fuzzers
But if lo-path is missing with fuzzers, it's acceptable.

This allows for generating the systemplate when the
fuzzers are enabled (for example when doing a clean
build that removes the systemplate too).

Change-Id: I43fac66563fa5e2255daf0c8878b4ffca99ae0b0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-06-13 12:10:24 -04:00
Andras Timar
9e1bd7ec0c Bump version to 21.06
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib60eabac115766b0501b2c44178b14fedb1c2f20
2021-06-03 10:56:59 +02:00
Tor Lillqvist
37e01c064c Enable building the iOS app completely on macOS
The intent is that it should no longer be necessary to do the
JavaScript part on a Linux machine. For the configury and "make" part,
mostly just some minor portability issues had to be handled:

(But it is still possible to do it the old way, too. This is mostly to
not have to bother with installing Node.js on the CI macOS machine
now.)

The readlink command on macOS has no -f option. But that use of
readlink is not necessary anyway in a tree for building a mobile app,
so bypass.

The find command on macOS always requires at least one directory name.
So when $(CUSTOM_ICONS_DIRECTORY) is empty the "find
$(CUSTOM_ICONS_DIRECTORY) -name '*.*'" command produced an annoying
error message. Handle that in a trivial way.

The echo command in /bin/sh on macOS does not have the -n option. Use
the more portable printf command instead.

To then configure and run the make (before you can do the actual build
in Xcode9, you need have Node.js installed. Personally I just
downloaded the macOS Node.js binary tarball and unpacked into
/opt/node so that /opt/node/bin/node and /opt/node/bin/npm are the
relevant executables.

You will also need to add the lxml and polib Python modules to your
user Python module library with pip3, as in "pip3 install --user lxml"
and "pip3 install --user polib".

Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I263a318181125fa37ac174fa36cb0e44e56a6607
2021-05-24 11:12:39 +03:00
Andras Timar
24aaa0dcd4 3 new build-time configurable settings
Now it is possible:
- to disable Help buttons and jumping to external website of Online Help (--without-help-url)
- set the icon theme of tunneled dialogs and sidebar (--with-core-icon-theme=<theme>)
- set the list of allowed dictionaries (--with-dictionaries=<language list>)

This patch obsoletes the packaging hacks that we had to use for certain customers.

Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I450f66ac133f6fcefae2bda9f29e04405ef3a6b7
2021-05-18 09:14:00 +02:00
Tor Lillqvist
fd1910c727 The Chrome format is called Trace Events, not Event Trace
Change-Id: I2515182d9369c3a25727dce0d3790e79de891bff
Signed-off-by: Tor Lillqvist <tml@collabora.com>
2021-05-04 15:12:14 +03:00
Andras Timar
0ab307c8db New versioning scheme: 21.05.x
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I9f27b549225604ee10bbef8670bd77db73f24ccf
2021-05-04 13:14:15 +02:00
Tor Lillqvist
be476d23b3 Produce a Chrome Event Trace file
It is (for now) produced (by the ProfileZone things in core) whenever
logging level is "trace". The Event Trace file pathname can be given
in the loolesd.xml file or on the loolwsd command line.

Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I6d5829121e71460a4600ee94d2ebf51043c8893f
2021-05-03 16:09:35 +03:00
Andras Timar
7713379d94 we use micro version a lot, let's add it back
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I15e74de7f757b76eb303b11bfd93187aefc61f0b
2021-04-16 16:41:54 +02:00
Michael Meeks
f732e00918 Allow easy configuation of the user-id that is accepted.
So if you're debugging the product build you can use:

 --with-user-id=`whoami`

Change-Id: I3f753b83c0806729d36d45293bc2b6a38d50fdbb
2021-04-16 15:40:28 +01:00
Andras Timar
41c5cddc3d forward port packaging bits to master branch
The next version of Collabora Online will be version 2021.
Development of version 2021 will be carried on master branch
for the time being.
The corresponding core branch is distro/collabora/co-2021

Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I9c97aaac711c9e1f1e48ed25066b169ea7e26e84
2021-03-31 18:29:49 +02:00
Emil Velikov
ed85b0a9d9 android: Add support for split APKs to gradle
Currently a single huge APK is produced. For GooglePlay that doesn't
matter since since they require a complete bundle, while creating
stripped and optimised APKs per device.

For alternative downloads - be that directly or via fdroid-like repo
currently we download/store about four times more information than
needed.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Change-Id: Ic43ef6a3f3e072323ecd57448552379113123e9c
2021-03-16 18:05:45 +03:00
Tamás Zolnai
fde1d4c529 cypress: prefer chromium over chrome.
With chrome tests sometimes fail on starting
the chrome binary.

Signed-off-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Change-Id: Id5c6af71efad8622b3885b8904f2ef3ede82d631
2021-01-18 13:36:26 +01:00
Michael Meeks
136f20b386 Use jsdom to load and execute our CSS, HTML and JS.
Change-Id: Ia7414e1fd19bf7ebfa29274d1acac5cee4837341
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2021-01-16 12:18:47 +00:00
Gleb Popov
d6de33d9e4 configure.ac: Require pkg-config on all platforms except Darwin.
Signed-off-by: Gleb Popov <6yearold@gmail.com>
Change-Id: I33cde2c69fe77b6b226b431eee9ca1853d1d2e6b
2020-12-17 11:52:18 +00:00
Gleb Popov
3cea82d6fd configure.ac: Extend some Linux conditionals to the FreeBSD case.
Signed-off-by: Gleb Popov <6yearold@gmail.com>
Change-Id: Ie4bce494ee81308d9b0236a1d814513761e84226
2020-12-17 11:52:18 +00:00
Henry Castro
a2ba233d22 configure: replace obsolete configuration links
The "AC_LINK_FILES" is replaced by "AC_CONFIG_COMMANDS_PRE"

Change-Id: I4821f56e437faa0a9adc523b31ac4c5905c4276e
Signed-off-by: Henry Castro <hcastro@collabora.com>
2020-11-30 08:56:11 -04:00
Gleb Popov
57eab254ca On FreeBSD, link to libexecinfo and libz from base. Require 3rd-party libiconv.
Change-Id: Id8ca0524d3a557e284897665d0e48de933d131d3
Signed-off-by: Gleb Popov <6yearold@gmail.com>
2020-11-16 14:02:23 +00:00
Andras Timar
858df3ddc4 set the INFO_URL for the community project
Change-Id: Ib16b7e387397d27e4debf026c8448990f9a0b97a
2020-10-05 10:45:06 +02:00
Andras Timar
34bc966d68 change product name
Change-Id: Ic34d324c952364442d3f4f9f0758676ab57c8a9a
2020-10-02 14:18:28 +02:00
Andras Timar
2dda7bf815 Update bug report URL and home page in AC_INIT
Change-Id: I749554fa899c24ed8d95b230f75f9a03ea5e1b85
2020-10-02 11:29:01 +02:00
Tor Lillqvist
883ba58a15 Use Automake flavour "foreign" so that it doesn't require a README
(We only have a README.md now.)

Change-Id: I4e693781340aa8d22f83b8565b6617f4ce4d7fb7
2020-10-01 18:23:18 +01:00
Andras Timar
e9e6d981e3 nodejs >= 10.0.0 is required to build loleaflet
Change-Id: I4541044e090e85514004b941b6e57986479095cd
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/103095
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
2020-09-21 16:27:31 +02:00
Tor Lillqvist
3e26dd17b6 AC_SUBST is enough for ENABLE_BROWSERSYNC
Change-Id: I326b92817ecddcfe94f850b8c36e8644aa0bee60
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99289
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-07-23 16:43:16 +02:00
Tor Lillqvist
25cda6de57 AM_CONDITIONAL is enough for ENABLE_CYPRESS
The only use of ENABLE_CYPRESS is the 'if ENABLE_CYPRESS' line in
cypress_test/Makefile.am.

Change-Id: I5790b99f5fb437dd8ee5d0574189fd224eb3e4fe
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99288
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-07-23 16:43:02 +02:00
Tor Lillqvist
f0350a6fa1 We don't check ENABLE_SETCAP in any source so no need to AC_DEFINE it
AC_DEFINE causes it to be in config.h, but there is no code that would
use its definition from there.

It is enough to have AM_CONDITIONAL for it (to enable having 'if
ENABLE_SETCAP' in Makefile.am files) and AC_SUBST it (to enable having
'@ENABLE_SETCAP@' in Makefile.am and *.in files).

Change-Id: Ia00b624114c8139d81bb173c92800ae0a62fec35
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99287
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-07-23 16:42:36 +02:00
Jan-Marek Glogowski
c45d8197a6 Report better SSL state for mobile apps
I tried to enable SSL, because I didn't want to be insecure, as
stated by the message "insecure: ssl disabled". But for mobile
apps the whole communication is actually local and SSL no any
support option, so this is hopefully a better message.

Change-Id: I35c50772ed49910997b80e6f449483da21775120
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98552
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-07-11 11:59:14 +02:00
Andras Timar
bab4380e6d default product name: LibreOffice Online Personal
Can be changed:
* configure --with-app-name
* brandProductName in loleaflet/dist/branding.js

When there is no brandProductName defined, this message will
appear in About box:

"The Personal edition is supported by volunteers and
intended for individual use."

Change-Id: Iec5aa2df7e734bdbc1dd8037656334f0016a7a82
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97837
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
2020-07-05 13:29:38 +02:00
Jan Holesovsky
8da992df35 android: Default to building just the simple case: armeabi-v7a...
... unless more builddirs are provided in --with-lo-builddir, separated
by colons.

Change-Id: I49946cd932ec22804ecb51aba86f3dae2aba05f5
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97672
Tested-by: Jenkins
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2020-07-02 12:04:44 +02:00
Jan Holesovsky
37b3acbdf1 android: Add support for x86 ABI too.
Turns out that the ChromeOS uses the x86 Android runtime, not x86-64.

Change-Id: Ic3b6f7a65d35d2298daa731f46e57068eaf2583d
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97607
Tested-by: Jenkins
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2020-07-01 17:10:28 +02:00
Ashod Nakashian
9a427524d1 wsd: support --cleanup in loolwsd
Leaving behind jails with bind-mount
entries makes build-workspace removal
complicated, and jenkins builds start failing.

The cleanup stage is integrated in Makefiles
and should be transparent.

In the event that manual cleanup is necessary,
'loolwsd --cleanup' can be invoked.

Change-Id: Ia4b99b0c66e56dfa2d50e79b0ba98f714cf32886
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97470
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2020-07-01 06:14:39 +02:00
Ashod Nakashian
5c9988f2e3 wsd: faster jail setup via bind-mount
loolmount now works and supports mounting and
unmounting, plus numerous improvements,
refactoring, logging, etc..  When enabled,
binding improves the jail setup time by anywhere
from 2x to orders of magnitude (in docker, f.e.).

A new config entry mount_jail_tree controls
whether mounting is used or the old method of
linking/copying of jail contents. It is set to
true by default and falls back to linking/copying.
A test mount is done when the setting is enabled,
and if mounting fails, it's disabled to avoid noise.

Temporarily disabled for unit-tests until we can
cleanup lingering mounts after Jenkins aborts our
build job. In a future patch we will have mount/jail
cleanup as part of make.

The network/system files in /etc that need frequent
refreshing are now updated in systemplate to make
their most recent version available in the jails.
These files can change during the course of loolwsd
lifetime, and are unlikely to be updated in
systemplate after installation at all. We link to
them in the systemplate/etc directory, and if that
fails, we copy them before forking each kit
instance to have the latest.

This reworks the approach used to bind-mount the
jails and the templates such that the total is
now down to only three mounts: systemplate, lo, tmp.

As now systemplate and lotemplate are shared, they
must be mounted as readonly, this means that user/
must now be moved into tmp/user/ which is writable.

The mount-points must be recursive, because we mount
lo/ within the mount-point of systemplate (which is
the root of the jail). But because we (re)bind
recursively, and because both systemplate and
lotemplate are mounted for each jails, we need to
make them unbindable, so they wouldn't multiply the
mount-points for each jails (an explosive growth!)
Contrarywise, we don't want the mount-points to
be shared, because we don't expect to add/remove
mounts after a jail is created.

The random temp directory is now created and set
correctly, plus many logging and other improvements.

Change-Id: Iae3fda5e876cf47d2cae6669a87b5b826a8748df
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92829
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2020-07-01 05:42:43 +02:00
Szymon Kłos
3141bf7775 notebookbar: Introduce switch in loolwsd.xml
Change-Id: I94546a899fde1cecc2c35dc527e41e8a36061750
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/93050
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2020-06-30 08:16:25 +02:00
Jan Holesovsky
661bb47d07 android: Add x86-64 build too.
This will make it possible to create AAB's that contain 3 ABIs:
armeabi-v7a, arm64-v8a and x86_64.

If you want to build for just one ABI, use --with-android-abi=... where
the value is one of those three above.

Change-Id: I553b8ca941db67eddc1d712a96b818f9cfedd0fa
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97227
Tested-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2020-06-29 14:24:36 +02:00
Henry Castro
2eec63af29 android: add "x86_64" ABI build variant
Change-Id: I19281af5432ae5a02f26f33464ced722759a4c67
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/95609
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
2020-06-11 20:11:44 +02:00
Henry Castro
8e1cf47112 loleaflet: remove install node_module in configure phase
Fair enough, let's not get in conflict with IOS platform,
It is restored and get another solution

Change-Id: I1cde236595479bdf41e29d8a30bb9d71aa196e54
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/95036
Tested-by: Henry Castro <hcastro@collabora.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
2020-05-28 14:30:22 +02:00
Tor Lillqvist
48a5397ff4 Run the 'npm install' at configure time only on Linux
I don't want to make it necessary to have npm on macOS (in the case of
building the iOS app, otherwise Online is Linux-only). I still want to
use the method where the JS bits are built on a Linux machine and
loleaflet/dist is copied over to the Mac where you build the iOS app.

Remove the apparently never seriously used instructions for the other
way from ios/README. If somebody actually *uses* that way for real,
for a longer time, then please reinstate them, and modify
configure.ac, etc.

Change-Id: I22a8ca4746907bb11aad11d7c995b0de2fdbc157
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/94815
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-05-26 09:02:14 +02:00
Henry Castro
40dffc408c loleaflet: install node modules in configure phase
It is not necessary to clean these files since
they do not change frequently

Change-Id: I092013c02effffe6c45bccbf81369e583cffe806
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/93111
Tested-by: Jenkins
Reviewed-by: Henry Castro <hcastro@collabora.com>
2020-05-25 20:13:24 +02:00
Henry Castro
16028271bb cypress: fix running single unit test
When builddir != srcdir

Stills error:

"The support file is missing or invalid.

Your `supportFile` is set to `cypress_test/support/index.js`, but either
the file is missing or it's invalid. The `supportFile` must be a `.js`
or `.coffee` file or, if you're using a preprocessor plugin, it must be
supported by that plugin.

Correct your `cypress.json`, create the appropriate file, or set
`supportFile` to `false` if a support file is not necessary for your
project."

Change-Id: If1aeb55a3821735022dfa57af217130f18cd9dbf
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/94424
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2020-05-22 21:08:59 +02:00
Henry Castro
e6f5917812 cypress: fix error running single unit test
builddir != srcdir

Change-Id: I2521c3e11f05f0c91bf0e8f5667a5466493acac0
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/94080
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
2020-05-13 16:51:29 +02:00
Andras Timar
33000dfded typo fixes in comments and code
Change-Id: I6f31e050aab701e31064e1abc9429dce0a50c279
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92953
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
2020-04-26 23:19:52 +02:00
Henry Castro
a2410c599c android: convert remaining rules to gradle tasks
It will give an Independence (at least) to the
gradle build system to package the product

Change-Id: I127c2f921b506ec280a244d609707f3480e0f92e
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92719
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
2020-04-23 09:09:11 +02:00
Henry Castro
53a27a1ec4 android: set specific DEST:SOURCE config files
The *.in files in android should be generated
explicitly in source dir. With this setting it is
enabled to configure builddir != srcdir

Change-Id: I529f8021d4407b2f87ae265b93fb3d764bb1a1bf
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/92595
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Henry Castro <hcastro@collabora.com>
2020-04-21 16:28:13 +02:00