# This file is used to install SlapOS Node itself.

[buildout]
extends =
  ../../stack/shacache-client.cfg
  ../bison/buildout.cfg
  ../bzip2/buildout.cfg
  ../gdbm/buildout.cfg
  ../gettext/buildout.cfg
  ../glib/buildout.cfg
  ../libxml2/buildout.cfg
  ../libxslt/buildout.cfg
  ../lxml-python/buildout.cfg
  ../m4/buildout.cfg
  ../ncurses/buildout.cfg
  ../openssl/buildout.cfg
  ../pkgconfig/buildout.cfg
  ../popt/buildout.cfg
  ../python-2.7/buildout.cfg
  ../python-cffi/buildout.cfg
  ../python-cryptography/buildout.cfg
  ../readline/buildout.cfg
  ../sqlite3/buildout.cfg
  ../swig/buildout.cfg
  ../zlib/buildout.cfg
  ../patch/buildout.cfg

parts =
  slapos
  cfg-environment
  sh-environment
  py

find-links =
  http://www.nexedi.org/static/packages/source/slapos.buildout/
  http://www.nexedi.org/static/packages/source/hexagonit.recipe.download/

versions = versions

allow-hosts =
  *.googlecode.com
  *.nexedi.org
  *.python.org
  alastairs-place.net
  code.google.com
  github.com
  peak.telecommunity.com

unzip = true

# separate from system python
include-site-packages = false
exec-sitecustomize = false
allowed-eggs-from-site-packages =

[environment]
# Note: For now original PATH is appended to the end, as not all tools are
#       provided by SlapOS
PATH=${bison:location}/bin:${bzip2:location}/bin:${gettext:location}/bin:${glib:location}/bin:${libxml2:location}/bin:${libxslt:location}/bin:${m4:location}/bin:${ncurses:location}/bin:${openssl:location}/bin:${pkgconfig:location}/bin:${python2.7:location}/bin:${readline:location}/bin:${sqlite3:location}/bin:${swig:location}/bin:${buildout:bin-directory}:${patch:location}/bin:$PATH
CFLAGS=-I${bzip2:location}/include -I${gdbm:location}/include -I${gettext:location}/include -I${glib:location}/include -I${libxml2:location}/include -I${libxslt:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${popt:location}/include -I${readline:location}/include -I${sqlite3:location}/include -I${zlib:location}/include
CPPFLAGS=${:CFLAGS}
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${gdbm:location}/lib -Wl,-rpath=${gdbm:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${libxslt:location}/lib -Wl,-rpath=${libxslt:location}/lib -L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${popt:location}/lib -Wl,-rpath=${popt:location}/lib -L${readline:location}/lib -Wl,-rpath=${readline:location}/lib -L${sqlite3:location}/lib -Wl,-rpath=${sqlite3:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${libxml2:location}/lib/pkgconfig:${libxslt:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${popt:location}/lib/pkgconfig:${python2.7:location}/lib/pkgconfig:${sqlite3:location}/lib/pkgconfig
LD_LIBRARY_PATH=${bzip2:location}/lib:${gdbm:location}/lib:${gettext:location}/lib:${glib:location}/lib:${libxml2:location}/lib:${libxslt:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${popt:location}/lib:${readline:location}/lib:${sqlite3:location}/lib:${zlib:location}/lib

[cfg-environment]
# Section exposes SlapOS default environment as configuration file.
recipe = collective.recipe.template
input = inline:
  [environment]
  PATH=${environment:PATH}
  CFLAGS=${environment:CFLAGS}
  CPPFLAGS=${environment:CPPFLAGS}
  LDFLAGS=${environment:LDFLAGS}
  PKG_CONFIG_PATH=${environment:PKG_CONFIG_PATH}
  LD_LIBRARY_PATH=${environment:LD_LIBRARY_PATH}
output = ${buildout:directory}/environment.cfg

[sh-environment]
# Section exposes SlapOS default environment as sh file.
recipe = collective.recipe.template
input = inline:
  export PATH="${environment:PATH}"
  export CFLAGS="${environment:CFLAGS}"
  export CPPFLAGS="${environment:CPPFLAGS}"
  export LDFLAGS="${environment:LDFLAGS}"
  export PKG_CONFIG_PATH="${environment:PKG_CONFIG_PATH}"
  export LD_LIBRARY_PATH="${environment:LD_LIBRARY_PATH}"
  export PS1="[SlapOS env Active] $PS1"
output = ${buildout:directory}/environment.sh

[slapos]
recipe = z3c.recipe.scripts
python = ${buildout:python}
eggs =
  ${python-cffi:egg}
  ${python-cryptography:egg}
  pyOpenSSL
  slapos.libnetworkcache
  zc.buildout
  ${lxml-python:egg}
  slapos.core

initialization =
  import os
  os.environ['PATH'] = os.path.expandvars('${environment:PATH}')

# control scripts generation in order to avoid reinstalling bin/buildout
scripts =
  bang = slapos.bang:main
  generate-signature-key = slapos.signature:run
  slapconsole = slapos.console:run
  slapos-request = slapos.console:request
  slapformat = slapos.format:main
  slapgrid = slapos.grid.slapgrid:run
  slapgrid-cp = slapos.grid.slapgrid:runComputerPartition
  slapgrid-sr = slapos.grid.slapgrid:runSoftwareRelease
  slapgrid-ur = slapos.grid.slapgrid:runUsageReport
  slapgrid-supervisorctl = slapos.grid.svcbackend:supervisorctl
  slapgrid-supervisord = slapos.grid.svcbackend:supervisord
  slapproxy = slapos.proxy:main
  slapproxy-query = slapos.proxy.query:main
  slapos = slapos.entry:main
  slapos-watchdog = slapos.grid.watchdog:main

[py]
recipe = zc.recipe.egg
python = ${buildout:python}
eggs = 
    ${slapos:eggs}
interpreter = py
scripts = py

[versions]
# Use our own buildout version
zc.buildout = 1.6.0-dev-SlapOS-012

# Force to use zc.recipe.egg 1.x
zc.recipe.egg = 1.3.2

# Use own version of h.r.download to be able to open archives not supported by python2.x: .xz
hexagonit.recipe.download = 1.7nxd002

slapos.core = 1.0.3
Jinja2 = 2.7.1
MarkupSafe = 0.18
Pygments = 1.6
Werkzeug = 0.9.4
buildout-versions = 1.7
cffi = 0.8.1
cmd2 = 0.6.7
collective.recipe.template = 1.10
cryptography = 0.2.1
itsdangerous = 0.23
lxml = 3.2.3
meld3 = 0.6.10
netaddr = 0.7.10
prettytable = 0.7.2
pyOpenSSL = 0.14
pyparsing = 2.0.1
setuptools = 1.1.6
slapos.libnetworkcache = 0.13.4
slapos.recipe.cmmi = 0.1.1
xml-marshaller = 0.9.7
z3c.recipe.scripts = 1.0.1

# Required by:
# slapos.core==1.0.3
Flask = 0.10.1

# Required by:
# slapos.core==1.0.3
bpython = 0.12

# Required by:
# slapos.core==1.0.3
cliff = 1.4.5

# Required by:
# slapos.core==1.0.3
ipython = 1.1.0

# Required by:
# slapos.core==1.0.3
netifaces = 0.8

# Required by:
# slapos.core==1.0.3
requests = 2.1.0

# Required by:
# slapos.core==1.0.3
supervisor = 3.0

# Required by:
# slapos.core==1.0.3
zope.interface = 4.0.5