Allow overriding the number of test databases.
[slapos.git] / stack / erp5 / buildout.cfg
1 [buildout]
2 # Local development
3 develop =
4   ${:parts-directory}/slapos.cookbook-repository
5   ${:parts-directory}/cloudooo-repository
6
7 extensions =
8   slapos.zcbworkarounds
9   mr.developer
10
11 find-links =
12     http://www.nexedi.org/static/packages/source/slapos.buildout/
13     http://www.nexedi.org/static/packages/source/hexagonit.recipe.download/
14     http://dist.repoze.org
15     http://www.nexedi.org/static/packages/source/
16     http://www.owlfish.com/software/wsgiutils/download.html
17
18 extends =
19 # Exact version of Zope
20   http://svn.zope.org/repos/main/Zope/tags/2.12.25/versions.cfg
21   ../../stack/slapos.cfg
22   ../../component/logrotate/buildout.cfg
23   ../../component/dcron/buildout.cfg
24   ../../component/file/buildout.cfg
25   ../../component/fonts/buildout.cfg
26   ../../component/ghostscript/buildout.cfg
27   ../../component/git/buildout.cfg
28   ../../component/graphviz/buildout.cfg
29   ../../component/gzip/buildout.cfg
30   ../../component/haproxy/buildout.cfg
31   ../../component/hookbox/buildout.cfg
32   ../../component/librsvg/buildout.cfg
33   ../../component/imagemagick/buildout.cfg
34   ../../component/kumo/buildout.cfg
35   ../../component/libdmtx/buildout.cfg
36   ../../component/libpng/buildout.cfg
37   ../../component/libreoffice-bin/buildout.cfg
38   ../../component/lxml-python/buildout.cfg
39   ../../component/percona-toolkit/buildout.cfg
40   ../../component/mariadb/buildout.cfg
41   ../../component/memcached/buildout.cfg
42   ../../component/mysql-python/buildout.cfg
43   ../../component/pdftk/buildout.cfg
44   ../../component/pil-python/buildout.cfg
45   ../../component/pycrypto-python/buildout.cfg
46   ../../component/pysvn-python/buildout.cfg
47   ../../component/python-2.6/buildout.cfg
48   ../../component/python-2.7/buildout.cfg
49   ../../component/python-ldap-python/buildout.cfg
50   ../../component/rdiff-backup/buildout.cfg
51   ../../component/sphinx/buildout.cfg
52   ../../component/stunnel/buildout.cfg
53   ../../component/subversion/buildout.cfg
54   ../../component/tesseract/buildout.cfg
55   ../../component/varnish/buildout.cfg
56   ../../component/w3-validator/buildout.cfg
57   ../../component/w3m/buildout.cfg
58   ../../component/xorg/buildout.cfg
59   ../../component/poppler/buildout.cfg
60   ../../component/xtrabackup/buildout.cfg
61   ../../component/zabbix/buildout.cfg
62   ../../component/sed/buildout.cfg
63   ../../component/coreutils/buildout.cfg
64   ../../component/grep/buildout.cfg
65   ../../component/dash/buildout.cfg
66   ../../component/wget/buildout.cfg
67   ../../component/aspell/buildout.cfg
68   ../../component/cloudooo/buildout.cfg
69
70 parts =
71   rdiff-backup
72   aspell
73   aspell-en-dictionary
74   apache
75   apache-antiloris
76   file
77   graphviz
78   memcached
79   haproxy
80   varnish-3.0
81   stunnel
82   w3m
83   poppler
84   libpng
85   ghostscript
86   mariadb
87   mroonga-mariadb
88   sphinx
89   imagemagick
90   libdmtx
91   dmtx-utils
92   kumo
93   libreoffice-bin
94   w3-validator
95   tesseract
96   hookbox
97   bootstrap2.6
98   perl-DBD-mariadb
99   perl-DBI
100   percona-toolkit
101   zabbix-agent
102   pdftk
103   dcron
104   dash
105   wget
106
107 # Buildoutish
108   eggs
109   testrunner
110   test_suite_runner
111
112 # basic Xorg
113   libXdmcp
114   libXext
115   libXau
116   libSM
117   libXrender
118
119 # fonts
120   liberation-fonts
121   ipaex-fonts
122
123 # Cloudooo specific part
124   cloudooo
125
126 # get git repositories
127   erp5
128   genbt5list
129
130 # fix products path (Zeo needs ERP5 Products to be available for
131 # conflict resolution)
132   fix-products-paths
133 # some additional utils
134   slapos-toolbox
135
136 # Local development
137   slapos.cookbook-repository
138   check-recipe
139   slapos.cookbook-python2.6
140   slapos.recipe.template-python2.6
141 # Create instance template
142   template
143
144 # Local development
145 [slapos.cookbook-repository]
146 recipe = plone.recipe.command
147 stop-on-error = true
148 branch = erp5-component
149 revision =
150 location = ${buildout:parts-directory}/${:_buildout_section_name_}
151 command = "${git:location}/bin/git" clone --branch "${:branch}" --quiet http://git.erp5.org/repos/slapos.git "${:location}" && if [ -n "${:revision}" ]; then cd "${:location}" && "${git:location}/bin/git" reset --quiet --hard "${:revision}" ; fi
152 update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet && if [ -n "${:revision}" ]; then "${git:location}/bin/git" reset --hard "${:revision}"; else "${git:location}/bin/git" reset --quiet --hard @{upstream} ; fi
153
154 [check-recipe]
155 recipe = plone.recipe.command
156 stop-on-error = true
157 update-command = ${:command}
158 command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
159
160 [slapos.cookbook-python2.6]
161 recipe = zc.recipe.egg
162 eggs = slapos.cookbook
163 scripts =
164 python = python2.6
165 ugly-depend-on = ${slapos.cookbook-repository:command} ${slapos.cookbook-repository:update-command}
166
167 [slapos.recipe.template-python2.6]
168 recipe = zc.recipe.egg
169 eggs = slapos.recipe.template
170 scripts =
171 python = python2.6
172
173 [template-jinja2-base]
174 recipe = slapos.recipe.template:jinja2
175 template = ${:_profile_base_location_}/${:filename}.in
176 rendered = ${buildout:directory}/${:filename}
177 # XXX: extra-context is needed because we cannot append to a key of an extended
178 # section.
179 extra-context =
180 context =
181     key bin_directory buildout:bin-directory
182     key develop_eggs_directory buildout:develop-eggs-directory
183     key eggs_directory buildout:eggs-directory
184     ${:extra-context}
185
186 [template-mariadb]
187 < = template-jinja2-base
188 filename = instance-mariadb.cfg
189 md5sum = 867bd8e3c4f56db2aab2fcad59f2efd8
190 extra-context =
191     key coreutils_location coreutils:location
192     key dcron_location dcron:location
193     key gettext_location gettext:location
194     key grep_location grep:location
195     key gzip_location gzip:location
196     key logrotate_location logrotate:location
197     key mariadb_location mariadb:location
198     key perl_location perl:location
199     key perl_siteprefix perl:siteprefix
200     key sed_location sed:location
201     key xtrabackup_location xtrabackup:location
202
203 [template-sphinx]
204 < = template-jinja2-base
205 filename = instance-sphinx.cfg
206 md5sum = e3975afd5220f251d6b6e7024a2ca08b
207 extra-context =
208     key sphinx_location sphinx:location
209
210 [template-zope]
211 recipe = slapos.recipe.build:download
212 url = ${:_profile_base_location_}/instance-zope.cfg.in
213 md5sum = de2918c8ca604f452a69108f6e31e78d
214 mode = 640
215
216 [template-kumofs]
217 < = template-jinja2-base
218 filename = instance-kumofs.cfg
219 md5sum = 7e13d689de7163dcab64e8df4711cdd7
220 extra-context =
221     key dash_location dash:location
222     key dcron_location dcron:location
223     key gzip_location gzip:location
224     key kumo_location kumo:location
225     key logrotate_location logrotate:location
226
227 [template-tidstorage]
228 recipe = slapos.recipe.build:download
229 url = ${:_profile_base_location_}/instance-tidstorage.cfg.in
230 md5sum = 520e39f2612a045b42c0ad914bfdc5a9
231 mode = 640
232
233 [template-cloudooo]
234 recipe = slapos.recipe.build:download
235 url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
236 md5sum = 53492e520be57f4c6a9eacd107c8d446
237 mode = 640
238
239 [template-zope-conf]
240 recipe = slapos.recipe.build:download
241 url = ${:_profile_base_location_}/zope.conf.in
242 md5sum = 599e004c18fd3461aa846ae75bd112f2
243 mode = 640
244
245 [template]
246 < = template-jinja2-base
247 # XXX: "template.cfg" is hardcoded in instanciation recipe
248 filename = template.cfg
249 template = ${:_profile_base_location_}/instance.cfg.in
250 md5sum = 26d26c357053af48602b5110120bd085
251 extra-context =
252     key apache_location apache:location
253     key aspell_location aspell:location
254     key buildout_bin_directory buildout:bin-directory
255     key coreutils_location coreutils:location
256     key curl_location curl:location
257     key dash_location dash:location
258     key dcron_location dcron:location
259     key dmtx_utils_location dmtx-utils:location
260     key erp5_location erp5:location
261     key file_location file:location
262     key fontconfig_location fontconfig:location
263     key fonts_location fonts:location
264     key freetype_location freetype:location
265     key git_location git:location
266     key graphviz_location graphviz:location
267     key grep_location grep:location
268     key gzip_location gzip:location
269     key haproxy_location haproxy:location
270     key imagemagick_location imagemagick:location
271     key libICE_location libICE:location
272     key libSM_location libSM:location
273     key libX11_location libX11:location
274     key libXau_location libXau:location
275     key libXdmcp_location libXdmcp:location
276     key libXext_location libXext:location
277     key libXrender_location libXrender:location
278     key libpng12_location libpng12:location
279     key libreoffice_bin_location libreoffice-bin:location
280     key librsvg_location librsvg:location
281     key libxcb_location libxcb:location
282     key local_bt5_repository local-bt5-repository:list
283     key logrotate_location logrotate:location
284     key mariadb_location mariadb:location
285     key openssl_location openssl:location
286     key pdftk_location pdftk:location
287     key poppler_location poppler:location
288     key sed_location sed:location
289     key template_cloudooo template-cloudooo:target
290     key template_erp5_single template-erp5-single:target
291     key template_erp5_cluster template-erp5-cluster:rendered
292     key template_kumofs template-kumofs:rendered
293     key template_mariadb template-mariadb:rendered
294     key template_memcached template-memcached:rendered
295     key template_sphinx template-sphinx:rendered
296     key template_tidstorage template-tidstorage:target
297     key template_varnish template-varnish:target
298     key template_zope template-zope:target
299     key template_zope_conf template-zope-conf:target
300     key tesseract_location tesseract:location
301     key varnish_location varnish-3.0:location
302     key w3m_location w3m:location
303     key wget_location wget:location
304     key zlib_location zlib:location
305
306 [template-memcached]
307 < = template-jinja2-base
308 filename = instance-memcached.cfg
309 md5sum = 44c507e9eec1003beb99f9063b5e09be
310 extra-context =
311     key dash_location dash:location
312     key memcached_location memcached:location
313
314 [template-erp5-single]
315 recipe = slapos.recipe.build:download
316 url = ${:_profile_base_location_}/instance-erp5-single.cfg.in
317 md5sum = 2a4312202a3160f874c4fa3ee9155a1d
318 mode = 640
319
320 [template-erp5-cluster]
321 < = template-jinja2-base
322 filename = instance-erp5-cluster.cfg
323 md5sum = 3051f3fea39d7409c417dcac26027b56
324 extra-context =
325     key local_bt5_repository local-bt5-repository:list
326
327 [template-varnish]
328 recipe = slapos.recipe.build:download
329 url = ${:_profile_base_location_}/instance-varnish.cfg.in
330 md5sum = 17aee2df57b121343b1fd65f4b51ce80
331 mode = 640
332
333 [bt5-repository]
334 # Format:
335 #   <url or path> [...]
336 #
337 # Use absolute paths for local repositories, and URLs for non-local otherwise.
338 #
339 list = ${local-bt5-repository:list}
340
341 [local-bt5-repository]
342 # Same as bt5-repository, but only local repository.
343 # Used to generate bt5lists.
344 list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap
345
346 [genbt5list]
347 recipe = plone.recipe.command
348 stop-on-error = true
349 genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list
350 command =
351   ${buildout:executable} ${:genbt5list} ${local-bt5-repository:list}
352 update-command = ${:command}
353
354 [bootstrap2.6]
355 python = python2.6
356
357 [erp5_repository_list]
358 repository_id_list = erp5
359
360 [erp5]
361 # Recipe zerokspot.recipe.git is disabled, as is not possible to change its
362 # environment to use localy delivered git.
363 # plone.recipe.command can do same job, but it is controllable which binary
364 # will be used
365 recipe = plone.recipe.command
366 location = ${buildout:parts-directory}/${:_buildout_section_name_}
367 stop-on-error = true
368 repository = http://git.erp5.org/repos/erp5.git
369 branch = master
370 revision =
371 command = "${git:location}/bin/git" clone --quiet --branch "${:branch}" "${:repository}" "${:location}" && if [ -n "${:revision}" ]; then cd "${:location}" && "${git:location}/bin/git" reset --quiet --hard "${:revision}" ; fi
372 update-command = cd "${:location}" && "${git:location}/bin/git" fetch && if [ -n "${:revision}" ]; then "${git:location}/bin/git" reset --hard "${:revision}"; else "${git:location}/bin/git" reset --hard @{upstream} ; fi
373
374 [fix-products-paths]
375 recipe = plone.recipe.command
376 stop-on-error = true
377 command =
378   for DIR in "${erp5:location}"; do cd "$DIR"; rm -f Products ; ln -s product Products; touch product/__init__.py; done
379 update-command = ${:command}
380
381 [testrunner]
382 # XXX: Workaround for fact ERP5Type is not an distribution and does not
383 #      expose entry point for test runner
384 recipe = zc.recipe.egg
385 python = python2.6
386 eggs = ${eggs:eggs}
387 extra-paths = ${eggs:extra-paths}
388 entry-points =
389   runUnitTest=runUnitTest:main
390 scripts = runUnitTest
391 initialization =
392   import glob, imp, os, sys
393   import App # prevent Testing from importing Zope2.App instead of App
394   import Products
395   Products.__path__[:0] = filter(None,
396     os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep))
397   os.environ['SOFTWARE_HOME'] = os.path.abspath(imp.find_module('Zope2')[1])
398   os.environ['ZOPE_SCRIPTS'] = ''
399   parts_directory = '''${buildout:parts-directory}'''
400   repository_id_list = \
401     '''${erp5_repository_list:repository_id_list}'''.split()[::-1]
402   os.environ['erp5_tests_bt5_path'] = ','.join(sum((
403     [bt5_path, os.path.join(bt5_path, '*')]
404     for bt5_path in (os.path.join(parts_directory, x, 'bt5')
405                      for x in repository_id_list)), []))
406   extra_path_list = '''${:extra-paths}'''.split()
407   sys.path[:0] = sum((
408     glob.glob(os.path.join(x, 'tests'))
409     for x in extra_path_list), [])
410   sys.path[:0] = sum((
411     glob.glob(os.path.join(x, 'Products', '*', 'tests'))
412     for x in extra_path_list), [])
413
414 [test_suite_runner]
415 # XXX: Workaround for fact ERP5Type is not an distribution and does not
416 #      expose entry point for test runner
417 recipe = zc.recipe.egg
418 python = python2.6
419 eggs = ${eggs:eggs}
420 extra-paths = ${eggs:extra-paths}
421 entry-points =
422   runTestSuite=Products.ERP5Type.tests.runTestSuite:main
423 scripts = runTestSuite
424 initialization =
425   import os
426   import sys
427   import Products
428   [Products.__path__.insert(0, p) for p in reversed(os.environ.get('INSERT_PRODUCTS_PATH', '').split(':')) if p]
429   import Zope2
430   os.environ['SOFTWARE_HOME'] = os.path.abspath(os.path.dirname(os.path.dirname(Zope2.__file__)))
431   os.environ['ZOPE_SCRIPTS'] = ''
432   repository_id_list = list(reversed('''${erp5_repository_list:repository_id_list}'''.split()))
433   sys.path[0:0] = ['/'.join(['''${buildout:parts-directory}''', x]) for x in repository_id_list]
434
435 [eggs]
436 recipe = zc.recipe.egg
437 python = python2.6
438 eggs =
439   ${mysql-python:egg}
440   ${lxml-python:egg}
441   ${pil-python:egg}
442   ${python-ldap-python:egg}
443   ${pysvn-python:egg}
444   ${pycrypto-python:egg}
445   PyXML
446   SOAPpy
447   cElementTree
448   chardet
449   coverage
450   elementtree
451   erp5diff
452   inotifyx
453   ipdb
454   mechanize
455   numpy
456   ordereddict
457   paramiko
458   ply
459   python-magic
460   python-memcached
461   pytz
462   requests
463   threadframe
464   timerserver
465   urlnorm
466   uuid
467   xml_marshaller
468   xupdate_processor
469   feedparser
470   argparse
471   validictory
472   erp5.util
473   huBarcode
474   qrcode
475
476 # Zope
477   ZODB3
478   Zope2
479 # Zope acquisition patch
480   Acquisition
481
482 # Other Zope 2 packages
483   Products.PluggableAuthService
484   Products.PluginRegistry
485
486 # CMF 2.2
487   Products.CMFActionIcons
488   Products.CMFCalendar
489   Products.CMFCore
490   Products.CMFDefault
491   Products.CMFTopic
492   Products.CMFUid
493   Products.DCWorkflow
494   Products.GenericSetup
495   five.localsitemanager
496
497 # Other products
498   Products.DCWorkflowGraph
499   Products.MimetypesRegistry
500   Products.ExternalEditor
501   Products.TIDStorage
502
503 # Currently forked in our repository
504 #    Products.PortalTransforms
505 # Dependency for our fork of PortalTransforms
506   StructuredText
507
508 # Needed for parsing .po files from our Localizer subset
509   polib
510
511 # parameterizing the version of the generated python interpreter name by the
512 # python section version causes dependency between this egg section and the
513 # installation of python, which we don't want on an instance
514 interpreter = python2.6
515 scripts =
516   repozo
517   runzope
518   runzeo
519   tidstoraged
520   tidstorage_repozo
521   web_checker_utility = erp5.util.webchecker:web_checker_utility
522
523 extra-paths =
524   ${erp5:location}
525
526 [cloudooo-repository]
527 branch = master
528 revision = 4cdfffb3f81a0fdbb7b372d92de664e716f12d4b
529
530 [mysql-python]
531 python = python2.6
532
533 [lxml-python]
534 python = python2.6
535
536 [pil-python]
537 python = python2.6
538
539 [python-ldap-python]
540 python = python2.6
541
542 [pysvn-python]
543 python = python2.6
544
545 [slapos-toolbox]
546 recipe = zc.recipe.egg
547 python = ${eggs:python}
548 eggs =
549   ${lxml-python:egg}
550   slapos.toolbox
551   slapos.toolbox[zodbpack]
552
553 scripts =
554   killpidfromfile
555   onetimedownload
556   zodbpack
557
558 [versions]
559 # pin Acquisition and Products.DCWorkflow to Nexedi flavour of eggs
560 Acquisition = 2.13.7nxd001
561 Products.DCWorkflow = 2.2.3nxd002
562
563 # Known version with works
564 numpy = 1.6.2
565 # Patched version which support python 2.6
566 PyXML = 0.8.4nxd001
567 # modified version that works fine for buildout installation
568 SOAPpy = 0.12.0nxd001
569 # we are still using this old stable version.
570 rdiff-backup = 1.0.5
571
572 # official pysvn egg does not supports --include-dirs and
573 # --library-dirs, so we use our modified version
574 pysvn = 1.7.4nxd006
575
576 # CMF 2.3 requries Zope 2.13.
577 Products.CMFCalendar = 2.2.2
578 Products.CMFCore = 2.2.6
579 Products.CMFDefault = 2.2.2
580 Products.CMFTopic = 2.2.1
581 Products.CMFUid = 2.2.1
582
583 # Unpined locally developed egg
584 slapos.cookbook =
585
586 # Pinned versions
587 Flask = 0.9
588 GitPython = 0.3.2.RC1
589 MySQL-python = 1.2.3
590 PIL = 1.1.7
591 Paste = 1.7.5.1
592 PasteDeploy = 1.5.0
593 PasteScript = 1.7.5
594 Products.CMFActionIcons = 2.1.3
595 Products.DCWorkflowGraph = 0.4.1
596 Products.ExternalEditor = 1.1.0
597 Products.GenericSetup = 1.7.2
598 Products.MimetypesRegistry = 2.0.3
599 Products.PluggableAuthService = 1.8.0
600 Products.PluginRegistry = 1.3
601 Products.TIDStorage = 5.4.8
602 Products.Zelenium = 1.0.3
603 StructuredText = 2.11.1
604 WSGIUtils = 0.7
605 Werkzeug = 0.8.3
606 apache-libcloud = 0.11.1
607 argparse = 1.2.1
608 async = 0.6.1
609 atomize = 0.1.1
610 buildout-versions = 1.7
611 cElementTree = 1.0.5-20051216
612 chardet = 1.1
613 coverage = 3.5.2
614 csp-eventlet = 0.7.0
615 elementtree = 1.2.7-20070827-preview
616 erp5.recipe.cmmiforcei686 = 0.1.3
617 erp5.util = 0.4.6
618 erp5diff = 0.8.1.5
619 eventlet = 0.9.17
620 feedparser = 5.1.2
621 five.localsitemanager = 2.0.5
622 fpconst = 0.7.2
623 gitdb = 0.5.4
624 greenlet = 0.4.0
625 hexagonit.recipe.cmmi = 1.6
626 http-parser = 0.7.8
627 huBarcode = 0.63
628 inotifyx = 0.2.0
629 ipdb = 0.7
630 ipython = 0.13
631 meld3 = 0.6.8
632 netaddr = 0.7.9
633 netifaces = 0.8
634 ordereddict = 1.1
635 paramiko = 1.7.7.2
636 plone.recipe.command = 1.1
637 ply = 3.4
638 polib = 1.0.0
639 psutil = 0.6.1
640 python-ldap = 2.4.10
641 python-magic = 0.4.3
642 python-memcached = 1.47
643 restkit = 4.2.0
644 rtjp-eventlet = 0.3.2
645 setuptools = 0.6c12dev-r88846
646 slapos.core = 0.28
647 slapos.recipe.build = 0.10
648 slapos.recipe.template = 2.4.2
649 slapos.toolbox = 0.29
650 smmap = 0.8.2
651 socketpool = 0.5.2
652 supervisor = 3.0a12
653 threadframe = 0.2
654 timerserver = 2.0.2
655 urlnorm = 1.1.2
656 uuid = 1.30
657 validictory = 0.8.3
658 xml-marshaller = 0.9.7
659 xupdate-processor = 0.4
660 mr.developer = 1.21
661 qrcode = 2.4.1
662 requests = 0.13.2