# This file is used to install SlapOS Node itself.
[buildout]
extends =
  ../../stack/slapos.cfg
  ../../stack/shacache-client.cfg
  ../gdbm/buildout.cfg
  ../gettext/buildout.cfg
  ../m4/buildout.cfg
  ../python-2.7/buildout.cfg
  ../sqlite3/buildout.cfg
  ../swig/buildout.cfg
  ../patch/buildout.cfg

parts =
  slapos
  cfg-environment
  sh-environment
  py



# 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

##############################################
# Included locally in order to permit we build
# packages offline. 
###############################################
[python-openssl]
recipe = zc.recipe.egg:custom
egg = pyOpenSSL
include-dirs =
  ${openssl:location}/include/
library-dirs =
  ${openssl:location}/lib/
rpath =
  ${openssl:location}/lib/

#############################################

[slapos]
recipe = z3c.recipe.scripts
eggs =
  ${python-openssl:egg}
  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
eggs = 
    ${slapos:eggs}
interpreter = py
scripts = py

[versions]
# Use setuptools-1.x for python 2.4/2.5 support
setuptools = 1.4.2

# pyOpenSSL 0.14 uses cryptograpic which is
# incompatible with slapos package generation. 
pyOpenSSL = 0.13.1

Jinja2 = 2.7.2
MarkupSafe = 0.19
Werkzeug = 0.9.4
cmd2 = 0.6.7
collective.recipe.template = 1.11
itsdangerous = 0.23
lxml = 3.3.3
meld3 = 0.6.10
netaddr = 0.7.10
prettytable = 0.7.2
pyparsing = 2.0.1
six = 1.5.2
slapos.core = 1.0.3
slapos.libnetworkcache = 0.13.4
slapos.recipe.cmmi = 0.2
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
cliff = 1.5.2

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

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

# Required by:
# cliff==1.5.2
stevedore = 0.14.1

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

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