Commit 0c7a6c94 authored by Yusei Tahara's avatar Yusei Tahara

software/neoppod: Add a software release for myrocks. If you want to test rocksdb in neo, use this.

parent db8e7c7e
[buildout]
extends =
../../component/bison/buildout.cfg
../../component/mariadb/mariarocks.cfg
software.cfg
[mariadb10.1-client]
recipe = slapos.recipe.cmmi
version = 10.1.21
url = http://ftp.osuosl.org/pub/mariadb/mariadb-10.1.21/source/mariadb-10.1.21.tar.gz
md5sum = ff8b96edeeb22425117309a249055310
location = ${buildout:parts-directory}/${:_buildout_section_name_}
configure-command = ${cmake:location}/bin/cmake
configure-options =
-DWITHOUT_SERVER=ON
-DCMAKE_INSTALL_PREFIX=${:location}
-DBUILD_CONFIG=mysql_release
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_unicode_ci
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_READLINE=0
-DWITH_PIC=1
-DWITH_PCRE=system
-DENABLE_DTRACE=0
-DWITH_EXTRA_CHARSETS=complex
-DWITH_EMBEDDED_SERVER=0
-DWITH_JEMALLOC=yes
-DWITH_INNODB_BZIP2=OFF
-DWITH_INNODB_LZ4=OFF
-DWITH_INNODB_LZMA=ON
-DWITH_INNODB_LZO=OFF
-DWITH_INNODB_SNAPPY=OFF
-DWITH_SAFEMALLOC=OFF
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_MROONGA_STORAGE_ENGINE=1
-DWITHOUT_DAEMON_EXAMPLE=1
-DCMAKE_C_FLAGS="-I${jemalloc:location}/include -I${libaio:location}/include -I${libxml2:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${pcre:location}/include -I${readline5:location}/include -I${xz-utils:location}/include -I${zlib:location}/include"
-DCMAKE_CXX_FLAGS="-I${jemalloc:location}/include -I${libaio:location}/include -I${libxml2:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${pcre:location}/include -I${readline5:location}/include -I${xz-utils:location}/include -I${zlib:location}/include"
-DCMAKE_INSTALL_RPATH=${jemalloc:location}/lib:${libaio:location}/lib:${libxml2:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${pcre:location}/lib:${readline5:location}/lib:${xz-utils:location}/lib:${zlib:location}/lib
environment =
CMAKE_PROGRAM_PATH=${cmake:location}/bin
CMAKE_INCLUDE_PATH=${libaio:location}/include:${libaio:location}/include:${libxml2:location}/include:${ncurses:location}/include:${openssl:location}/include:${pcre:location}/include:${readline5:location}/include:${xz-utils:location}/include:${zlib:location}/include
CMAKE_LIBRARY_PATH=${libaio:location}/lib:{libaio:location}/lib:${libxml2:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${pcre:location}/lib:${readline5:location}/lib:${xz-utils:location}/lib:${zlib:location}/lib
LDFLAGS=-L${jemalloc:location}/lib -Wl,-rpath=${jemalloc:location}/lib -L${libaio:location}/lib -Wl,-rpath=${libaio:location}/lib -L${pcre:location}/lib -L${xz-utils:location}/lib -L${zlib:location}/lib
PATH=${patch:location}/bin:%(PATH)s
post-install =
mkdir -p ${:location}/include/wsrep &&
cp -p wsrep/wsrep_api.h ${:location}/include/wsrep
[python-mysqlclient-env]
PATH =${mariadb10.1-client:location}/bin:%(PATH)s
[python-mysqlclient]
recipe = zc.recipe.egg:custom
egg = mysqlclient
environment = python-mysqlclient-env
library-dirs =
${zlib:location}/lib/
${openssl:location}/lib/
rpath =
${mariadb10.1-client:location}/lib/
${zlib:location}/lib/
${openssl:location}/lib/
[mariadb]
url =
md5sum =
patches =
path = ${mariarocks-source:location}
pre-configure =
${git:location}/bin/git submodule update --init
post-install =
make clean
configure-options =
-DCMAKE_INSTALL_PREFIX=${:location}
-DBUILD_CONFIG=mysql_release
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_unicode_ci
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_READLINE=0
-DWITH_PIC=1
-DWITH_PCRE=system
-DENABLE_DTRACE=0
-DWITH_EXTRA_CHARSETS=complex
-DWITH_EMBEDDED_SERVER=0
-DWITH_JEMALLOC=yes
-DWITH_INNODB_BZIP2=OFF
-DWITH_INNODB_LZ4=OFF
-DWITH_INNODB_LZMA=ON
-DWITH_INNODB_LZO=OFF
-DWITH_INNODB_SNAPPY=OFF
-DWITH_SAFEMALLOC=OFF
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_MROONGA_STORAGE_ENGINE=1
-DWITHOUT_DAEMON_EXAMPLE=1
-DCMAKE_C_FLAGS="-I${jemalloc:location}/include -I${libaio:location}/include -I${libxml2:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${pcre:location}/include -I${readline5:location}/include -I${xz-utils:location}/include -I${zlib:location}/include"
-DCMAKE_CXX_FLAGS="-I${jemalloc:location}/include -I${libaio:location}/include -I${libxml2:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${pcre:location}/include -I${readline5:location}/include -I${xz-utils:location}/include -I${zlib:location}/include"
-DCMAKE_INSTALL_RPATH=${jemalloc:location}/lib:${libaio:location}/lib:${libxml2:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${pcre:location}/lib:${readline5:location}/lib:${xz-utils:location}/lib:${zlib:location}/lib
-DCMAKE_PREFIX_PATH=${bison:location}/bin
  • Not nice to push this to master without explaining so much complexity. That's also a lot of code duplication, that looks unnecessary even if 2 versions of MariaDB are needed.

  • My purpose is to share my result to someone who wants to build myrocks for neo and this file achieved it. So I think it is ok. My purpose is not to provide a clean easy-to-read configuration file which is good for long-term maintenance, but it was commited to save someone's time and avoid duplication work. I will remove this file once myrocks was officially released with mariadb(10.2?).

  • 10.2 won't be released early enough, and it's worth doing something a little cleaner in the meantime. I'd like to commit the support of RocksDB in the master branch of NEO, and the easiest way to avoid test failures (because some test would be run with this new engine) is that they run with MariaDB 10.2

    Can you explain this issues that led you to this ?

  • I found two problems.

    1. /opt/slapos/parts/bison/bin/bison does not generate sql_yacc.cc and sql_yacc.h from sql_yacc.yy. They are pregenerated in official release files. So I added ../../component/bison/buildout.cfg and use this bison binary.
    2. 10.2-mariarocks branch does not contain libmysql and [python-mysqlclient] fails. So I added [mariadb10.1-client] to build libmysqlclient.
  • 10.2-mariarocks branch does not contain libmysql and [python-mysqlclient] fails. So I added [mariadb10.1-client] to build libmysqlclient.

    See https://jira.mariadb.org/browse/MDEV-9055 (changed in 10.2.2)

    So we'll want to take this change into account even for stable releases.

  • Oh I see. I hope "-DWITHOUT_SERVER=ON" this option works as I expected, then only client library should be built.

  • I added MariaDB Connector/C and build python-mysql with it on erp5-component branch.

    Anyway I strongly recommend using erp5-component branch (or even a dedicated branch for you) for such experimental work, that can be still suitable to share your work with others.

  • FYI :

    • b53866bb component/mariadb: add MariaDB Connector/C 2.3.2.
    • 0ddd3ec0 component/python-mysqlclient: build with MariaDB Connector/C.
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