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