# Note on LXML/END LXML: they delimit areas where lxml magic is needed. lxml is
# a slapos.cookbook dependency, so it should be fetched automatically. But when
# automatically fetched, it gets built against system headers/libs, which is
# forbidden in slapos. So we need to fetch lxml explicitly so it is properly
# built.

[buildout]
extends =
    ../../stack/slapos.cfg
    ../../component/dcron/buildout.cfg
    ../../component/gzip/buildout.cfg
    ../../component/logrotate/buildout.cfg
#LXML
    ../../component/lxml-python/buildout.cfg
#END LXML
    ../../component/python-2.7/buildout.cfg
    ../../component/mariadb/buildout.cfg
    ../../component/mysql-python/buildout.cfg

parts =
    slapos-deps-eggs
    slapos-cookbook-develop
    slapos-cookbook
# NEO & dependencies
    python2.7
    mariadb
    mysql-python
    neoppod

[slapos-deps-eggs]
recipe = zc.recipe.egg
eggs =
  ${lxml-python:egg}
  ${python-PyYAML:egg}
  ${pycrypto-python:egg}
  ${python-cliff:egg}
  slapos.toolbox
scripts =
  slapos-kill

[template-logrotate-base]
recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:filename}.in
rendered = ${buildout:directory}/${:filename}
filename = instance-logrotate-base.cfg
md5sum = af19ff0c7817df85987c69738fb083f2
context =
    key dcron_location dcron:location
    key gzip_location gzip:location
    key logrotate_location logrotate:location

[download-base-neo]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:_buildout_section_name_}.cfg.in
# XXX: following mode should be the default
mode = 644

# XXX: must be rendered, not just dled
[instance-common]
recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:_buildout_section_name_}.cfg.in
rendered = ${buildout:directory}/${:_buildout_section_name_}.cfg
md5sum = e8f5a83580e9791a32c66f5935cb6840
context =
    key bin_directory buildout:bin-directory
    key develop_eggs_directory buildout:develop-eggs-directory
    key eggs_directory buildout:eggs-directory
    key mariadb_location mariadb:location
    key neo_admin instance-neo-admin:target
    key neo_master instance-neo-master:target
    key neo_storage_mysql instance-neo-storage-mysql:target
    key template_logrotate_base template-logrotate-base:rendered
    key template_neo_my_cnf template-neo-my-cnf:target

[root-common]
<= download-base-neo
md5sum = f3259726bd5d824c569dc7db6b7d26a0

[instance-neo-admin]
<= download-base-neo
md5sum = f030a25d320f2edf0186b69bfa521228

[instance-neo-master]
<= download-base-neo
md5sum = 82f3f76f54ee9db355966a7ada61f56e

[instance-neo-storage-mysql]
<= download-base-neo
md5sum = 84b1150ce30ec827485f9c17debd6b44

[template-neo-my-cnf]
<= download-base-neo
url = ${:_profile_base_location_}/my.cnf.in
md5sum = febd3ed58043ce1367b86cf6e4e69700

[neoppod]
recipe = zc.recipe.egg
eggs = neoppod[admin, ctl, master, storage-importer, storage-mysqldb]
  ZODB3
ZODB3-patches = ${:_profile_base_location_}/../../component/egg-patch/ZODB3-3.10.5.patch
ZODB3-patch-options = -p1

[versions]
neoppod = 1.5
# patched egg
ZODB3 = 3.10.5+SlapOSPatched001