[buildout] # Local development develop = ${:parts-directory}/slapos.cookbook-repository ${:parts-directory}/cloudooo-repository extensions = slapos.zcbworkarounds mr.developer find-links = http://www.nexedi.org/static/packages/source/slapos.buildout/ http://www.nexedi.org/static/packages/source/hexagonit.recipe.download/ http://dist.repoze.org http://www.nexedi.org/static/packages/source/ http://www.owlfish.com/software/wsgiutils/download.html allow-hosts += pybrary.net extends = # Exact version of Zope https://raw.github.com/zopefoundation/Zope/2.13.21/versions.cfg ../../stack/slapos.cfg ../../component/logrotate/buildout.cfg ../../component/dcron/buildout.cfg ../../component/file/buildout.cfg ../../component/fonts/buildout.cfg ../../component/ghostscript/buildout.cfg ../../component/git/buildout.cfg ../../component/graphviz/buildout.cfg ../../component/gzip/buildout.cfg ../../component/haproxy/buildout.cfg ../../component/hookbox/buildout.cfg ../../component/librsvg/buildout.cfg ../../component/imagemagick/buildout.cfg ../../component/kumo/buildout.cfg ../../component/libdmtx/buildout.cfg ../../component/libpng/buildout.cfg ../../component/libreoffice-bin/buildout.cfg ../../component/lxml-python/buildout.cfg ../../component/percona-toolkit/buildout.cfg ../../component/mariadb/buildout.cfg ../../component/mysql-python/buildout.cfg ../../component/pil-python/buildout.cfg ../../component/pycrypto-python/buildout.cfg ../../component/pysvn-python/buildout.cfg ../../component/python-2.7/buildout.cfg ../../component/python-ldap-python/buildout.cfg ../../component/rdiff-backup/buildout.cfg ../../component/stunnel/buildout.cfg ../../component/subversion/buildout.cfg ../../component/tesseract/buildout.cfg ../../component/varnish/buildout.cfg ../../component/w3-validator/buildout.cfg ../../component/w3m/buildout.cfg ../../component/xorg/buildout.cfg ../../component/poppler/buildout.cfg ../../component/xtrabackup/buildout.cfg ../../component/zabbix/buildout.cfg ../../component/sed/buildout.cfg ../../component/coreutils/buildout.cfg ../../component/grep/buildout.cfg ../../component/dash/buildout.cfg ../../component/wget/buildout.cfg ../../component/aspell/buildout.cfg ../../component/cloudooo/buildout.cfg ../../component/jsl/buildout.cfg parts = rdiff-backup aspell aspell-en-dictionary apache apache-antiloris file graphviz haproxy jsl stunnel varnish-3.0 w3m poppler libpng ghostscript mariadb mroonga-mariadb imagemagick libdmtx dmtx-utils kumo libreoffice-bin w3-validator tesseract hookbox perl-DBD-mariadb perl-DBI percona-toolkit zabbix-agent dcron dash wget # Buildoutish eggs testrunner test_suite_runner # basic Xorg libXdmcp libXext libXau libSM libXrender # fonts liberation-fonts ipaex-fonts ocrb-fonts # Cloudooo specific part cloudooo # get git repositories erp5 genbt5list # fix products path (Zeo needs ERP5 Products to be available for # conflict resolution) fix-products-paths # some additional utils slapos-toolbox zodbanalyze # Local development slapos.cookbook-repository check-recipe # Create instance template template # Local development [slapos.cookbook-repository] recipe = slapos.recipe.build:gitclone repository = http://git.erp5.org/repos/slapos.git branch = master git-executable = ${git:location}/bin/git [check-recipe] recipe = plone.recipe.command stop-on-error = true update-command = ${:command} command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link [template-jinja2-base] recipe = slapos.recipe.template:jinja2 template = ${:_profile_base_location_}/${:filename}.in rendered = ${buildout:directory}/${:filename} # XXX: extra-context is needed because we cannot append to a key of an extended # section. extra-context = context = key bin_directory buildout:bin-directory key develop_eggs_directory buildout:develop-eggs-directory key eggs_directory buildout:eggs-directory ${:extra-context} [template-mariadb] < = template-jinja2-base filename = instance-mariadb.cfg md5sum = 49ae6f1bf97d3755978fe08b8e29fb5a extra-context = key coreutils_location coreutils:location key dcron_location dcron:location key gettext_location gettext:location key grep_location grep:location key gzip_location gzip:location key logrotate_location logrotate:location key mariadb_location mariadb:location key perl_location perl:location key perl_siteprefix perl:siteprefix key sed_location sed:location key xtrabackup_location xtrabackup:location [template-zope] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/instance-zope.cfg.in md5sum = 69556ddc9773fb95896b7762e998bb9b mode = 640 [template-kumofs] < = template-jinja2-base filename = instance-kumofs.cfg md5sum = 40817014a41497bceb696e512436e670 extra-context = key dash_location dash:location key dcron_location dcron:location key gzip_location gzip:location key kumo_location kumo:location key logrotate_location logrotate:location [template-tidstorage] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/instance-tidstorage.cfg.in md5sum = 2bc13fc6cd52c7b8e2b4ddb99a69974b mode = 640 [template-cloudooo] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/instance-cloudoo.cfg.in md5sum = 53492e520be57f4c6a9eacd107c8d446 mode = 640 [template-zope-conf] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/zope.conf.in md5sum = bc2154161a1d5baddc4ed4dfaaf94fbe mode = 640 [template] < = template-jinja2-base # XXX: "template.cfg" is hardcoded in instanciation recipe filename = template.cfg template = ${:_profile_base_location_}/instance.cfg.in md5sum = a1a5a9983207e4a8128bab331cbd3cd5 extra-context = key apache_location apache:location key aspell_location aspell:location key buildout_bin_directory buildout:bin-directory key coreutils_location coreutils:location key curl_location curl:location key dash_location dash:location key dcron_location dcron:location key dmtx_utils_location dmtx-utils:location key erp5_location erp5:location key file_location file:location key fontconfig_location fontconfig:location key fonts_location fonts:location key freetype_location freetype:location key git_location git:location key graphviz_location graphviz:location key grep_location grep:location key gzip_location gzip:location key haproxy_location haproxy:location key imagemagick_location imagemagick:location key jsl_location jsl:location key libICE_location libICE:location key libSM_location libSM:location key libX11_location libX11:location key libXau_location libXau:location key libXdmcp_location libXdmcp:location key libXext_location libXext:location key libXrender_location libXrender:location key libpng12_location libpng12:location key libreoffice_bin_location libreoffice-bin:location key librsvg_location librsvg:location key libxcb_location libxcb:location key local_bt5_repository local-bt5-repository:list key logrotate_location logrotate:location key mariadb_location mariadb:location key openssl_location openssl:location key poppler_location poppler:location key sed_location sed:location key stunnel_location stunnel:location key template_cloudooo template-cloudooo:target key template_erp5_single template-erp5-single:target key template_erp5_cluster template-erp5-cluster:target key template_kumofs template-kumofs:rendered key template_mariadb template-mariadb:rendered key template_memcached template-memcached:rendered key template_tidstorage template-tidstorage:target key template_varnish template-varnish:target key template_zope template-zope:target key template_zope_conf template-zope-conf:target key tesseract_location tesseract:location key varnish_location varnish-3.0:location key w3m_location w3m:location key wget_location wget:location key zlib_location zlib:location [template-memcached] < = template-jinja2-base filename = instance-memcached.cfg md5sum = 346c864c1f119360eddb5e163f16d4f3 extra-context = key dash_location dash:location key dcron_location dcron:location key gzip_location gzip:location key kumo_location kumo:location key logrotate_location logrotate:location [template-erp5-single] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/instance-erp5-single.cfg.in md5sum = 2a4312202a3160f874c4fa3ee9155a1d mode = 640 [template-erp5-cluster] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/instance-erp5-cluster.cfg.in md5sum = eecde68b9a266d8883042540ac077839 mode = 640 [template-varnish] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/instance-varnish.cfg.in md5sum = ae0465591c22c0cb316c1706965c6b18 mode = 640 [bt5-repository] # Format: # <url or path> [...] # # Use absolute paths for local repositories, and URLs for non-local otherwise. # list = ${local-bt5-repository:list} [local-bt5-repository] # Same as bt5-repository, but only local repository. # Used to generate bt5lists. list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap [genbt5list] recipe = plone.recipe.command stop-on-error = true genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list command = ${buildout:executable} ${:genbt5list} ${local-bt5-repository:list} update-command = ${:command} [erp5_repository_list] repository_id_list = erp5 [erp5] recipe = slapos.recipe.build:gitclone repository = http://git.erp5.org/repos/erp5.git branch = master git-executable = ${git:location}/bin/git [fix-products-paths] recipe = plone.recipe.command stop-on-error = true dir = ${erp5:location} command = rm -f "${:dir}/Products" && ln -s product "${:dir}/Products" && touch "${:dir}/product/__init__.py" update-command = ${:command} [testrunner] # XXX: Workaround for fact ERP5Type is not an distribution and does not # expose entry point for test runner recipe = zc.recipe.egg python = python2.7 eggs = ${eggs:eggs} extra-paths = ${eggs:extra-paths} entry-points = runUnitTest=runUnitTest:main scripts = runUnitTest initialization = import glob, imp, os, sys import App # prevent Testing from importing Zope2.App instead of App import Products Products.__path__[:0] = filter(None, os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep)) os.environ['SOFTWARE_HOME'] = os.path.abspath(imp.find_module('Zope2')[1]) os.environ['ZOPE_SCRIPTS'] = '' parts_directory = '''${buildout:parts-directory}''' repository_id_list = \ '''${erp5_repository_list:repository_id_list}'''.split()[::-1] os.environ['erp5_tests_bt5_path'] = ','.join(sum(( [bt5_path, os.path.join(bt5_path, '*')] for bt5_path in (os.path.join(parts_directory, x, 'bt5') for x in repository_id_list)), [])) extra_path_list = '''${:extra-paths}'''.split() sys.path[:0] = sum(( glob.glob(os.path.join(x, 'tests')) for x in extra_path_list), []) sys.path[:0] = sum(( glob.glob(os.path.join(x, 'Products', '*', 'tests')) for x in extra_path_list), []) sys.path[:0] = sum(( glob.glob(os.path.join(x, 'Products', '*', 'tests')) for x in os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep)), []) os.environ['PATH'] = '${jsl:location}/bin:%s' % os.environ['PATH'] os.environ['CGI_PATH'] = '${w3-validator:location}/httpd/cgi-bin' [test_suite_runner] # XXX: Workaround for fact ERP5Type is not an distribution and does not # expose entry point for test runner recipe = zc.recipe.egg python = python2.7 eggs = ${eggs:eggs} extra-paths = ${eggs:extra-paths} entry-points = runTestSuite=Products.ERP5Type.tests.runTestSuite:main scripts = runTestSuite initialization = import os import sys import Products [Products.__path__.insert(0, p) for p in reversed(os.environ.get('INSERT_PRODUCTS_PATH', '').split(':')) if p] import Zope2 os.environ['SOFTWARE_HOME'] = os.path.abspath(os.path.dirname(os.path.dirname(Zope2.__file__))) os.environ['ZOPE_SCRIPTS'] = '' repository_id_list = list(reversed('''${erp5_repository_list:repository_id_list}'''.split())) sys.path[0:0] = ['/'.join(['''${buildout:parts-directory}''', x]) for x in repository_id_list] [eggs] recipe = zc.recipe.egg python = python2.7 eggs = ${mysql-python:egg} ${lxml-python:egg} ${pil-python:egg} ${python-ldap-python:egg} ${pysvn-python:egg} ${pycrypto-python:egg} lock_file PyXML Pympler SOAPpy cElementTree chardet coverage elementtree erp5diff inotifyx ipdb Jinja2 mechanize numpy ordereddict paramiko ply pyflakes pypdf2 python-magic python-memcached pytz requests threadframe timerserver urlnorm uuid xml_marshaller xupdate_processor feedparser argparse validictory erp5.util huBarcode qrcode spyne httplib2 suds # Needed for checking ZODB Components source code pylint # Zope ZODB3 Zope2 # Zope acquisition patch Acquisition # Other Zope 2 packages Products.PluggableAuthService Products.PluginRegistry # CMF 2.2 Products.CMFActionIcons Products.CMFCalendar Products.CMFCore Products.CMFDefault Products.CMFTopic Products.CMFUid Products.DCWorkflow Products.GenericSetup five.localsitemanager # Other products Products.DCWorkflowGraph Products.MimetypesRegistry Products.ExternalEditor Products.TIDStorage Products.LongRequestLogger # BBB: Temporarily keep zope.app.testing awaiting we use newer version of CMF # (for tests like testCookieCrumbler). zope.app.testing # Currently forked in our repository # Products.PortalTransforms # Dependency for our fork of PortalTransforms StructuredText # Needed for parsing .po files from our Localizer subset polib # parameterizing the version of the generated python interpreter name by the # python section version causes dependency between this egg section and the # installation of python, which we don't want on an instance interpreter = python2.7 scripts = repozo runzope runzeo tidstoraged tidstorage_repozo web_checker_utility = erp5.util.webchecker:web_checker_utility extra-paths = ${erp5:location} [zodbanalyze] recipe = zc.recipe.egg python = python2.7 eggs = ZODB3 erp5.util entry-points = zodbanalyze=erp5.util.zodbanalyze:main scripts = zodbanalyze [cloudooo-repository] branch = master revision = 5c67568c403239bd8e25993602d03c553236fcec [mysql-python] python = python2.7 [lxml-python] python = python2.7 [pil-python] python = python2.7 [python-ldap-python] python = python2.7 [pysvn-python] python = python2.7 [slapos-toolbox] recipe = zc.recipe.egg python = ${eggs:python} eggs = ${lxml-python:egg} slapos.toolbox slapos.toolbox[zodbpack] scripts = killpidfromfile onetimedownload zodbpack [versions] # pin Acquisition and Products.DCWorkflow to Nexedi flavour of eggs Acquisition = 2.13.8nxd001 Products.DCWorkflow = 2.2.4nxd001 # specify dev version to be sure that an old released version is not used cloudooo = 1.2.5-dev # use newer version than specified in ZTK lxml = 2.3.6 # Known version with works numpy = 1.6.2 # test_UserManagerInterfaces in testERP5Security fails with 1.10.0. Products.PluggableAuthService = 1.9.0 # official pysvn egg does not supports --include-dirs and # --library-dirs, so we use our modified version pysvn = 1.7.4nxd006 # modified version to support ipv6 python-memcached = 1.47-ipv6-1 # use newest version of pytz pytz = # Patched version which support python 2.6 PyXML = 0.8.4nxd001 # we are still using this old stable version. rdiff-backup = 1.0.5 # use dev version setuptools = 0.6c12dev-r88846 # use newest version of slapos.cookbook slapos.cookbook = # modified version that works fine for buildout installation SOAPpy = 0.12.0nxd001 # CMF 2.3 requries Zope 2.13. Products.CMFCalendar = 2.2.2 Products.CMFCore = 2.2.6 Products.CMFDefault = 2.2.2 Products.CMFTopic = 2.2.1 Products.CMFUid = 2.2.1 # newer version requires zope.traversing>=4.0.0a2. zope.app.appsetup = 3.16.0 # newer version requires zope.i18n>=4.0.0a3 zope.app.publication = 3.14.0 # BBB: Temporarily keep zope.app.testing awaiting we use newer version of CMF # (for tests like testCookieCrumbler). zope.app.testing = 3.8.1 # Pinned versions Flask = 0.9 GitPython = 0.3.2.RC1 Jinja2 = 2.6 MySQL-python = 1.2.4 PIL = 1.1.7 PasteDeploy = 1.5.0 Products.CMFActionIcons = 2.1.3 Products.DCWorkflowGraph = 0.4.1 Products.ExternalEditor = 1.1.0 Products.GenericSetup = 1.7.3 Products.LongRequestLogger = 1.1.0 Products.MimetypesRegistry = 2.0.4 Products.PluginRegistry = 1.3 Products.TIDStorage = 5.4.8 Products.ZSQLMethods = 2.13.4 Pygments = 1.6 StructuredText = 2.11.1 WSGIUtils = 0.7 Werkzeug = 0.8.3 apache-libcloud = 0.12.4 argparse = 1.2.1 async = 0.6.1 atomize = 0.1.1 cElementTree = 1.0.5-20051216 chardet = 2.1.1 coverage = 3.6 csp-eventlet = 0.7.0 elementtree = 1.2.7-20070827-preview erp5.recipe.cmmiforcei686 = 0.1.3 erp5.util = 0.4.34 erp5diff = 0.8.1.5 eventlet = 0.12.1 feedparser = 5.1.3 five.formlib = 1.0.4 five.localsitemanager = 2.0.5 fpconst = 0.7.2 gitdb = 0.5.4 greenlet = 0.4.0 hexagonit.recipe.cmmi = 1.6 http-parser = 0.8.1 huBarcode = 0.63 inotifyx = 0.2.0 ipdb = 0.7 ipython = 0.13.2 meld3 = 0.6.10 mr.developer = 1.26 netaddr = 0.7.10 netifaces = 0.8_1 ordereddict = 1.1 paramiko = 1.10.1 plone.recipe.command = 1.1 ply = 3.4 polib = 1.0.3 psutil = 0.7.1 pyPdf = 1.13 pyflakes = 0.7.2 python-ldap = 2.4.10 python-magic = 0.4.3 qrcode = 2.7 requests = 1.2.3 restkit = 4.2.1 rtjp-eventlet = 0.3.2 slapos.core = 0.35.1 slapos.recipe.build = 0.11.6 slapos.recipe.template = 2.4.2 slapos.toolbox = 0.33.1 smmap = 0.8.2 socketpool = 0.5.2 spyne = 2.10.7 supervisor = 3.0b2 threadframe = 0.2 timerserver = 2.0.2 urlnorm = 1.1.2 uuid = 1.30 validictory = 0.9.1 xml-marshaller = 0.9.7 xupdate-processor = 0.4 zope.app.debug = 3.4.1 zope.app.dependable = 3.5.1 zope.app.form = 4.0.2 pylint = 1.0.0