Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
slapos slapos
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Labels
    • Labels
  • Merge requests 122
    • Merge requests 122
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Environments
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • nexedi
  • slaposslapos
  • Merge requests
  • !139

Open
Created Mar 03, 2017 by Tristan Cavelier@tcContributor
  • Report abuse
Report abuse

WIP: add [onlyoffice-core] component (compiled from source)

  • Overview 0
  • Commits 15
  • Changes 18

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 and gclient - 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 :

    • https://github.com/ONLYOFFICE/DocumentServer
    • https://github.com/ONLYOFFICE/core
    • https://developers.google.com/v8/
  • 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]
  • 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
  • make [v8] to be fully standalone & use it in [onlyoffice-core]
    • integrate v8 third parties in slapos too ?
Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: onlyoffice-core
GitLab Nexedi Edition | About GitLab | About Nexedi | 沪ICP备2021021310号-2 | 沪ICP备2021021310号-7