Commit 178c7484 authored by Boris Kocherov's avatar Boris Kocherov

onlyoffice-core, icu, qt: use custom gcc

parent 16113ff0
[buildout]
extends =
../gcc/buildout.cfg
parts = icu4c
[icu4c]
# need for couchdb
recipe = slapos.recipe.cmmi
location = ${buildout:parts-directory}/${:_buildout_section_name_}
url = http://download.icu-project.org/files/icu4c/58.2/icu4c-58_2-src.tgz
......@@ -13,6 +15,14 @@ configure-options =
--disable-static
--enable-rpath
[icu4c-slaposgcc]
# need for onlyoffice-core
<= icu4c
environment =
PATH=${gcc:location}/bin:%(PATH)s
LD_LIBRARY_PATH=${gcc:location}/lib
LDFLAGS=-Wl,-rpath=${gcc:location}/lib
  • Can we have only one [icc] that uses slapos GCC ?

  • if you meant icu (instead of [icc]), then for that we have to use slapos gcc for couchdb too.

    Edited by Boris Kocherov
  • Oops, typo indeed. If couchdb can be built with slapos gcc, please do so (if not... let us think). System gcc can be too old, can be too new, that does not bring problems for C components (normally) but can bring problems for C++ components.

  • @kazuhiko i had the task to automatically build x2t in slapos. As i see the tests passed and this task is finished. The issue that for x2t i had to duplicate [icu4c] is connected to the fact that in slapos there are 2 gcc - system gcc and slapos gcc. Anyway i'm sure that duplicating of [icu4c] have no influence on workability of other slapos components.

    i think you are agree that the correct way is to build everything in slapos by single gcc, but now for some packages system gcc is used, for others - slapos gcc.

    To have single gcc there are some options:

    • build of custom gcc can be included into slapos bootstrap. in case when slapos gcc changed to new version of gcc it's possible to not rebuilding of all software by using smth like fix_libtool_files.sh from gentoo.
    • modify slapos.recipe.cmmi so for all components slapos/gcc are used. And automatically rebuild triggered if new version of gcc is available.
    • other decisions.

    If you insist that i have to change gcc used for building of couchdb, then I'm not sure that maintenance of slapos components which are not related to x2t is my task, but i can ask JP.

    /cc @romain

    Edited by Boris Kocherov
  • The goal for now is not to migrate all slapos components to use slapos gcc. If x2t compilation already uses slapos gcc, that's a good first step to ensure the compatibility with various distributions.

  • @bk Indeed, 'ALL icu compilation uses slapos gcc' is out of task, at least out of this commit.

    It sems that icu component is used only in couchdb and fluentd, the cost to merge [icu4c] and [icu4c-slaposgcc] is quite small and I can handle.

Please register or sign in to reply
[icu]
<= icu4c
......
[buildout]
extends =
../gcc/buildout.cfg
../libxml2/buildout.cfg
../zlib/buildout.cfg
../icu/buildout.cfg
......@@ -19,9 +20,9 @@ md5sum = b2713373d687dd1c7121c286fa156626
configure-command = true
make-targets = lib bin
environment =
PATH=${qt5-qmake:location}/bin:%(PATH)s
CXXFLAGS=-I${libxml2:location}/include -I${zlib:location}/include -I${icu4c:location}/include -I${onlyoffice-boost:location}/include -Wno-comment -Wno-deprecated-declarations -Wno-endif-labels -Wno-parentheses -Wno-reorder -Wno-sign-compare -Wno-switch -Wno-unknown-pragmas -Wno-unused
LDFLAGS=-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${icu4c:location}/lib -Wl,-rpath=${icu4c:location}/lib -L${onlyoffice-boost:location}/lib -Wl,-rpath=${onlyoffice-boost:location}/lib -Wl,-rpath=${:location}/lib
PATH=${gcc:location}/bin:${qt5-qmake:location}/bin:%(PATH)s
CXXFLAGS=-I${libxml2:location}/include -I${zlib:location}/include -I${icu4c-slaposgcc:location}/include -I${boost-lib:location}/include -Wno-comment -Wno-deprecated-declarations -Wno-endif-labels -Wno-parentheses -Wno-reorder -Wno-sign-compare -Wno-switch -Wno-unknown-pragmas -Wno-unused
LDFLAGS=-L${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib -L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${icu4c-slaposgcc:location}/lib -Wl,-rpath=${icu4c-slaposgcc:location}/lib -L${boost-lib:location}/lib -Wl,-rpath=${boost-lib:location}/lib -Wl,-rpath=${:location}/lib
  • @bk icu4c-slaposgcc is introduced only for this file, so the same resule can be achieved by adding the following snnipet in this file and you can leave component/icu/buildout.cfg untouched :

    [icu4c]
    environment =
      PATH=${gcc:location}/bin:%(PATH)s
      LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64
      LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64
    Edited by Kazuhiko Shiozaki
  • Or you can move whole [icu-slaposgcc] definition from component/icu/buildout.cfg into this file.

  • @kazuhiko What is the goal to move? /cc @romain

  • @bk My intention of the proposal above is 'not to introduce onlyoffice-specific-temporary-transitional change in component/icu'.

Please register or sign in to reply
post-install =
set -e -x
mkdir -p ${:location}/bin ${:location}/lib
......@@ -29,18 +30,3 @@ post-install =
mv -t ${:location}/bin build/bin/*/*
# the binary linux_64 in build/bin/AllFontsGen is renamed AllFontsGen here.
# mv build/bin/AllFontsGen/* ${:location}/bin/AllFontsGen
[onlyoffice-boost]
recipe = slapos.recipe.cmmi
url = http://downloads.sourceforge.net/sourceforge/boost/boost_1_58_0.tar.bz2
md5sum = b8839650e61e9c1c0a89f371dd475546
location = ${buildout:parts-directory}/${:_buildout_section_name_}
configure-command = ./bootstrap.sh --prefix=${:location} --with-python=${python2.7:location}/bin/python2.7 --with-libraries=regex --with-icu=${icu4c:location}
make-binary =
make-options =
make-targets = ./b2 link=shared dll-path=${:location}/lib:${bzip2:location}/lib:${zlib:location}/lib:${icu4c:location}/lib install
environment =
BZIP2_INCLUDE=${bzip2:location}/include
BZIP2_LIBPATH=${bzip2:location}/lib
ZLIB_INCLUDE=${zlib:location}/include
ZLIB_LIBPATH=${zlib:location}/lib
[buildout]
extends =
../xorg/buildout.cfg
../gcc/buildout.cfg
parts =
qt4-qmake
......@@ -22,8 +23,9 @@ configure-options =
-no-opengl
-nomake examples
environment =
PATH=${gcc:location}/bin:%(PATH)s
CPPFLAGS=-I${libX11:location}/include -I${xproto:location}/include -I${libXext:location}/include
LDFLAGS=-L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${xproto:location}/lib -Wl,-rpath=${xproto:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib
LDFLAGS=-L${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${xproto:location}/lib -Wl,-rpath=${xproto:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib
make-binary = true
post-install =
mkdir -p ${:location}/bin
......
  • GCC library path is ${gcc:location}/lib in 32-bit architecture environment and ${gcc:location}/lib64 in 64-bit architecture environment. So please always set BOTH ${gcc:location}/lib and ${gcc:location}/lib64. You can find such usage in other existing components, like component/gtkmm/buildout.cfg.

  • Thank you @kazuhiko , i corrected in 904dec49 . I will stash before merging.

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 to comment