WIP: add [onlyoffice-core] component (compiled from source)
NOTE:
-
onlyoffice-core has 7 third parties :
- boost
- cef (useless in onlyoffice-core)
- cryptopp (embedded in onlyoffice-core source)
- curl (embedded in onlyoffice-core source)
- icu
- pole (embedded in onlyoffice-core source)
- v8
-
v8 has 6 third parties which are automatically downloaded by
fetch
andgclient
- google commands provided by [depot_tools]. I did not check what are the requirements for them. Here's the list of third parties :- binutils
- icu
- instrumented_libraries
- jinja2
- llvm-build
- markupsafe
-
Requirements :
-
v8__compile__
(in the current state) needs 3GB to compile -
qt5-qmake__compile__
needs 4GB to compile -
qt4-qmake__compile__
needs 1.5GB to compile -
onlyoffice-core__compile__
(including v8 and boost) needs 5GB to compile
-
-
Source :
- for qt4 : https://github.com/NixOS/nixpkgs/blob/3e387c3e005c87566b5403d24c86f71f4945a79b/pkgs/development/libraries/qt-4.x/4.8/default.nix#L101
- for v8 : https://github.com/v8/v8/wiki/Building%20with%20Gyp (deprecated way)
- for onlyoffice-core : http://helpcenter.onlyoffice.com/server/linux/document/compile-source-code.aspx
-
Other links :
-
How to install onlyoffice-core on Debian ? (tested on Debian 8. See tutorial.) Here are commands to run on a fresh Debian distribution :
# These dependencies are requirement for entire DocumentServer # nodejs and npm are not necessary for core sudo apt-get install --force-yes -yq \ wget build-essential \ libcurl4-gnutls-dev libglib2.0-dev libgdk-pixbuf2.0-dev \ libgtkglext1-dev libatk1.0-dev libcairo2-dev libxml2-dev \ libxss-dev libgconf2-dev \ default-jre \ qt5-qmake qt5-default \ p7zip-full git subversion # Download DocumentServer and sub modules (including core) git clone --recursive https://github.com/ONLYOFFICE/DocumentServer.git # Build third parties cd DocumentServer/core/Common/3dParty && ./make.sh # Build core cd ../.. && make # Binaries are generated here : ls -l build/lib/*/ ls -l build/bin/*/ ls -l build/AllFontsGen/
DONE:
- add & use [qt5-qmake] - used to build onlyoffice
- add [qt4-qmake] - alternative used because qt5-qmake is not compilable everywhere
- add & use [icu4c-55.1] - version 55.1 used by onlyoffice third party
- add & use [cryptopp] instead of embedded source - version 5.6.3 used by onlyoffice third party
- almost use [boost-lib] - version 1.58.0 used by onlyoffice third party
- use [curl] instead of embedded source
- add [pole]
- add [depot_tools]
- add [v8] - version 4.10.253 used by onlyoffice third party
- add & use [onlyoffice-core] - revision 0bd10c2 used by latest OnlyOffice Document Server release
- add & use [onlyoffice-boost-lib-1.58.0] - a modified version of [boost-lib] section - compile with [gcc] and use [icu4c-55.1]
- remove [onlyoffice-x2t]
TODO:
- make [qt5-qmake] to compile on all systems
- it compiles on my first runner thanks to up to date system libraries
- it does NOT compile on my second runner (VM based on debian8) - matching system libraries do not exist - matching slapos libraries do not exist either
- I know it misses
<xcb/xcb_iccm.h>
, it's not provided by [libxcb]
- I know it misses
- make [onlyoffice-core] to compile on all systems
- it compiles on my first runner with [qt5-qmake] (as originaly required by onlyoffice documentation)
- it does NOT compile on my second runner with [qt4-qmake] due to an "internal compiler error - please report bug to gnu.org"
- make generic [boost-lib] to use the
--with-icu=${icu:location}
option ?- currently using [onlyoffice-boost-lib-1.58.0] with
--with-icu=${icu4c-55.1:location}
to make-lboost_regex
to work
- currently using [onlyoffice-boost-lib-1.58.0] with
- make [v8] to be fully standalone & use it in [onlyoffice-core]
- integrate v8 third parties in slapos too ?