Commit 5bdd3486 by Tristan Cavelier Committed by Romain Courteaud

component/onlyoffice-core: add [onlyoffice-core]

parent 8c26632d
extends =
# for 3dparty dependencies
# git is used by v8
# bash is used to run
# for onlyoffice boost
# for qmake
# for binary wrapper
parts +=
# XXX please, put the v8 third party components in slapos !
recipe = slapos.recipe.cmmi
location = ${buildout:parts-directory}/${:_buildout_section_name_}
# This url contains the hash provided by the DocumentServer core submodule hash.
url =
md5sum = f7e77ff35f12e9ab485b60b7889e5d53
pre-configure-QMAKE_CXXFLAGS =
pre-configure-QMAKE_LFLAGS =
-L${curl:location}/lib -Wl,-rpath=${curl:location}/lib
-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib
-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
pre-configure =
set -e -x
# put QMAKE_{CXXFLAGS,LFLAGS} into shell vars
qmake_cxxflags=$(echo " ${:pre-configure-QMAKE_CXXFLAGS}" | sed ':a;N;$!ba;s/\n/ /g')
qmake_lflags=$(echo " ${:pre-configure-QMAKE_LFLAGS}" | sed ':a;N;$!ba;s/\n/ /g')
# prepare spec for cryptopp third party (XXX use slapos cryptopp)
sed 's:^CRYPTOPP_QMAKE_SPEC=SED_IT$:CRYPTOPP_QMAKE_SPEC="${qt5-qmake:location}/qtbase/mkspecs/linux-g++":' -i Common/3dParty/cryptopp/
# fix some typos
sed 's,\(include($$PWD/OfficeUtils.pri)\)),\1,g' -i OfficeUtils/
sed 's,\$\$SOURCES_UTILS,'"$PWD/OfficeUtils/src,g" -i OfficeUtils/OfficeUtils.pri
# patch Makefile
sed 's@qmake -r@qmake -r -spec ${qt5-qmake:location}/qtbase/mkspecs/linux-g++ '"'QMAKE_CXXFLAGS +=$qmake_cxxflags' 'QMAKE_LFLAGS +=$qmake_lflags'@g" -i Makefile
# link boost on 3dParty folders
mkdir -p Common/3dParty/boost/boost_1_58_0
# XXX use symlinks !
# XXX use shared libraries as most as possible !
cp -at Common/3dParty/boost/boost_1_58_0 ${onlyoffice-boost-lib-1.58.0:location}/*
# link icu on 3dParty folders
mkdir -p Common/3dParty/icu/slapos/usr/local
ln -sfT ${icu4c-55.1:location}/lib Common/3dParty/icu/slapos/build
ln -sfT ${icu4c-55.1:location}/include Common/3dParty/icu/slapos/usr/local/include
for os in linux mac win ; do for arch in 64 32 ; do ln -sf slapos Common/3dParty/icu/$${os}_$${arch} ; done ; done
( cd Common/3dParty/v8 && "$bash" )
( cd Common/3dParty/v8 && "$bash" )
# Note: curl, cryptopp and pole third parties are already embedded.
# Note: cef third party seems to be useless in core.
configure-command = true
make-targets = lib bin
environment =
post-install =
# XXX check if `make install` is possible to use instead
set -e -x
mkdir -p ${:location}/bin ${:location}/lib
mv -t ${:location}/lib build/lib/*/*
# the binary linux_64 in build/bin/AllFontsGen is renamed AllFontsGen here.
mv build/bin/AllFontsGen/* ${:location}/bin/AllFontsGen
mv -t ${:location}/bin build/bin/*/*
# create wrapper for x2t binary
mv ${:location}/bin/x2t ${:location}/bin/x2t.bin
echo '#!/bin/sh
exec ${dash:location}/bin/dash -c '\''
export LD_LIBRARY_PATH="${onlyoffice-core:location}/lib:${icu4c-55.1:location}/lib:${curl:location}/lib$${LD_LIBRARY_PATH:-:$LD_LIBRARY_PATH}"
# (XXX add boost/lib if we use it as shared library)
exec ${:location}/bin/x2t.bin "$@"'\'' "$0" "$@"' > ${:location}/bin/x2t
chmod +x ${:location}/bin/x2t
# create wrapper for AllFontsGen binary
mv ${:location}/bin/AllFontsGen ${:location}/bin/AllFontsGen.bin
echo '#!/bin/sh
exec ${dash:location}/bin/dash -c '\''
export LD_LIBRARY_PATH="${gcc:location}/lib64:${gcc:location}/lib$${LD_LIBRARY_PATH:-:$LD_LIBRARY_PATH}"
exec ${:location}/bin/AllFontsGen.bin "$@"'\'' "$0" "$@"' > ${:location}/bin/AllFontsGen
chmod +x ${:location}/bin/AllFontsGen
# The goal of this section is to compile boost-lib with the same compiler as [onlyoffice-core]
<= boost-lib
url =
md5sum = 5a5d5614d9a07672e1ab2a250b5defc5
configure-command = ./ --with-libraries=filesystem,system,date_time,regex --with-icu=${icu4c-55.1:location}
make-targets = true
post-install =
set -e -x
# XXX should not be available only for linux_64 !
# please do the same magic as in [onlyoffice-core] :
# create dir `slapos` and add symlinks `{linux,mac,win}_{32,64}`
mkdir -p build/linux_64/static && ./b2 --clean && ./bjam link=static && cp stage/lib/* build/linux_64/static
mkdir -p build/linux_64/static_fpic && ./b2 --clean && ./bjam link=static cxxflags=-fPIC && cp stage/lib/* build/linux_64/static_fpic
mkdir -p build/linux_64/shared && ./b2 --clean && ./bjam link=shared && cp stage/lib/* build/linux_64/shared
# XXX clean useless files !
mv -t ${:location} *
environment =
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment