Merge branch 'erp5-component' into erp5
[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   https://raw.github.com/zopefoundation/Zope/2.13.21/versions.cfg
23   ../../stack/slapos.cfg
24   ../../component/logrotate/buildout.cfg
25   ../../component/cups/buildout.cfg
26   ../../component/dbus/buildout.cfg
27   ../../component/dcron/buildout.cfg
28   ../../component/file/buildout.cfg
29   ../../component/fonts/buildout.cfg
30   ../../component/ghostscript/buildout.cfg
31   ../../component/git/buildout.cfg
32   ../../component/graphviz/buildout.cfg
33   ../../component/gzip/buildout.cfg
34   ../../component/haproxy/buildout.cfg
35   ../../component/hookbox/buildout.cfg
36   ../../component/librsvg/buildout.cfg
37   ../../component/imagemagick/buildout.cfg
38   ../../component/inkscape/buildout.cfg
39   ../../component/kumo/buildout.cfg
40   ../../component/libdmtx/buildout.cfg
41   ../../component/libffi/buildout.cfg
42   ../../component/libpng/buildout.cfg
43   ../../component/libreoffice-bin/buildout.cfg
44   ../../component/lxml-python/buildout.cfg
45   ../../component/percona-toolkit/buildout.cfg
46   ../../component/mariadb/buildout.cfg
47   ../../component/mysql-python/buildout.cfg
48   ../../component/patch/buildout.cfg
49   ../../component/pil-python/buildout.cfg
50   ../../component/pycrypto-python/buildout.cfg
51   ../../component/pysvn-python/buildout.cfg
52   ../../component/python-2.7/buildout.cfg
53   ../../component/python-ldap-python/buildout.cfg
54   ../../component/rdiff-backup/buildout.cfg
55   ../../component/stunnel/buildout.cfg
56   ../../component/subversion/buildout.cfg
57   ../../component/tesseract/buildout.cfg
58   ../../component/varnish/buildout.cfg
59   ../../component/w3-validator/buildout.cfg
60   ../../component/w3m/buildout.cfg
61   ../../component/xorg/buildout.cfg
62   ../../component/poppler/buildout.cfg
63   ../../component/xtrabackup/buildout.cfg
64   ../../component/zabbix/buildout.cfg
65   ../../component/sed/buildout.cfg
66   ../../component/coreutils/buildout.cfg
67   ../../component/grep/buildout.cfg
68   ../../component/dash/buildout.cfg
69   ../../component/wget/buildout.cfg
70   ../../component/aspell/buildout.cfg
71   ../../component/cloudooo/buildout.cfg
72   ../../component/jsl/buildout.cfg
73
74 parts =
75   rdiff-backup
76   aspell
77   aspell-en-dictionary
78   apache
79   apache-antiloris
80   file
81   graphviz
82   haproxy
83   jsl
84   stunnel
85   varnish-3.0
86   w3m
87   poppler
88   libpng
89   ghostscript
90   mariadb
91   mroonga-mariadb
92   imagemagick
93   inkscape
94   libdmtx
95   dmtx-utils
96   kumo
97   libreoffice-bin
98   w3-validator
99   tesseract
100   hookbox
101   perl-DBD-mariadb
102   perl-DBI
103   percona-toolkit
104   zabbix-agent
105   dcron
106   dash
107   wget
108
109 # Buildoutish
110   patched-eggs
111   eggs
112   testrunner
113   test_suite_runner
114
115 # basic Xorg
116   libXdmcp
117   libXext
118   libXau
119   libSM
120   libXrender
121
122 # fonts
123   liberation-fonts
124   ipaex-fonts
125   ocrb-fonts
126
127 # Cloudooo specific part
128   cloudooo
129
130 # get git repositories
131   erp5
132   genbt5list
133
134 # fix products path (Zeo needs ERP5 Products to be available for
135 # conflict resolution)
136   fix-products-paths
137 # some additional utils
138   slapos-toolbox
139   zodbanalyze
140
141 # Local development
142   slapos.cookbook-repository
143   check-recipe
144 # Create instance template
145   template
146
147 # Local development
148 [slapos.cookbook-repository]
149 recipe = slapos.recipe.build:gitclone
150 repository = http://git.erp5.org/repos/slapos.git
151 branch = erp5
152 git-executable = ${git:location}/bin/git
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 [template-jinja2-base]
161 recipe = slapos.recipe.template:jinja2
162 template = ${:_profile_base_location_}/${:filename}.in
163 rendered = ${buildout:directory}/${:filename}
164 # XXX: extra-context is needed because we cannot append to a key of an extended
165 # section.
166 extra-context =
167 context =
168     key bin_directory buildout:bin-directory
169     key develop_eggs_directory buildout:develop-eggs-directory
170     key eggs_directory buildout:eggs-directory
171     key slapos_core_version versions:slapos.core
172     ${:extra-context}
173
174 [template-mariadb]
175 < = template-jinja2-base
176 filename = instance-mariadb.cfg
177 md5sum = 49ae6f1bf97d3755978fe08b8e29fb5a
178 extra-context =
179     key coreutils_location coreutils:location
180     key dcron_location dcron:location
181     key gettext_location gettext:location
182     key grep_location grep:location
183     key gzip_location gzip:location
184     key logrotate_location logrotate:location
185     key mariadb_location mariadb:location
186     key perl_location perl:location
187     key perl_siteprefix perl:siteprefix
188     key sed_location sed:location
189     key xtrabackup_location xtrabackup:location
190
191 [template-zope]
192 recipe = slapos.recipe.build:download
193 url = ${:_profile_base_location_}/instance-zope.cfg.in
194 md5sum = 23baedc096a3ee046d2efe2195e19b96
195 mode = 640
196
197 [template-kumofs]
198 < = template-jinja2-base
199 filename = instance-kumofs.cfg
200 md5sum = 40817014a41497bceb696e512436e670
201 extra-context =
202     key dash_location dash:location
203     key dcron_location dcron:location
204     key gzip_location gzip:location
205     key kumo_location kumo:location
206     key logrotate_location logrotate:location
207
208 [template-tidstorage]
209 recipe = slapos.recipe.build:download
210 url = ${:_profile_base_location_}/instance-tidstorage.cfg.in
211 md5sum = 2bc13fc6cd52c7b8e2b4ddb99a69974b
212 mode = 640
213
214 [template-cloudooo]
215 recipe = slapos.recipe.build:download
216 url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
217 md5sum = 45f8a58568fb7e6eb832802551f3ff03
218 mode = 640
219
220 [template-zope-conf]
221 recipe = slapos.recipe.build:download
222 url = ${:_profile_base_location_}/zope.conf.in
223 md5sum = bc2154161a1d5baddc4ed4dfaaf94fbe
224 mode = 640
225
226 [template]
227 < = template-jinja2-base
228 # XXX: "template.cfg" is hardcoded in instanciation recipe
229 filename = template.cfg
230 template = ${:_profile_base_location_}/instance.cfg.in
231 md5sum = 66a1be44c72437d87a7b609eb58c3526
232 extra-context =
233     key apache_location apache:location
234     key aspell_location aspell:location
235     key buildout_bin_directory buildout:bin-directory
236     key coreutils_location coreutils:location
237     key cups_location cups:location
238     key curl_location curl:location
239     key dash_location dash:location
240     key dbus_location dbus:location
241     key dbus_glib_location dbus-glib:location
242     key dcron_location dcron:location
243     key dmtx_utils_location dmtx-utils:location
244     key erp5_location erp5:location
245     key file_location file:location
246     key fontconfig_location fontconfig:location
247     key fonts_location fonts:location
248     key freetype_location freetype:location
249     key git_location git:location
250     key graphviz_location graphviz:location
251     key grep_location grep:location
252     key glib_location glib:location
253     key gzip_location gzip:location
254     key haproxy_location haproxy:location
255     key imagemagick_location imagemagick:location
256     key jsl_location jsl: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 libffi_location libffi:location
265     key libpng12_location libpng12:location
266     key libreoffice_bin_location libreoffice-bin:location
267     key librsvg_location librsvg:location
268     key libxcb_location libxcb:location
269     key local_bt5_repository local-bt5-repository:list
270     key logrotate_location logrotate:location
271     key mariadb_location mariadb:location
272     key openssl_location openssl:location
273     key poppler_location poppler:location
274     key sed_location sed:location
275     key stunnel_location stunnel:location
276     key template_cloudooo template-cloudooo:target
277     key template_erp5_single template-erp5-single:target
278     key template_erp5_cluster template-erp5-cluster:target
279     key template_kumofs template-kumofs:rendered
280     key template_mariadb template-mariadb:rendered
281     key template_memcached template-memcached:rendered
282     key template_tidstorage template-tidstorage:target
283     key template_varnish template-varnish:target
284     key template_zope template-zope:target
285     key template_zope_conf template-zope-conf:target
286     key tesseract_location tesseract:location
287     key varnish_location varnish-3.0:location
288     key w3m_location w3m:location
289     key wget_location wget:location
290     key zlib_location zlib:location
291
292 [template-memcached]
293 < = template-jinja2-base
294 filename = instance-memcached.cfg
295 md5sum = 346c864c1f119360eddb5e163f16d4f3
296 extra-context =
297     key dash_location dash:location
298     key dcron_location dcron:location
299     key gzip_location gzip:location
300     key kumo_location kumo:location
301     key logrotate_location logrotate:location
302
303 [template-erp5-single]
304 recipe = slapos.recipe.build:download
305 url = ${:_profile_base_location_}/instance-erp5-single.cfg.in
306 md5sum = becf4faf3df849bb90ddf5f587f02d5e
307 mode = 640
308
309 [template-erp5-cluster]
310 recipe = slapos.recipe.build:download
311 url = ${:_profile_base_location_}/instance-erp5-cluster.cfg.in
312 md5sum = f4c9cdbbac82232b84db080461bd0007
313 mode = 640
314
315 [template-varnish]
316 recipe = slapos.recipe.build:download
317 url = ${:_profile_base_location_}/instance-varnish.cfg.in
318 md5sum = ae0465591c22c0cb316c1706965c6b18
319 mode = 640
320
321 [bt5-repository]
322 # Format:
323 #   <url or path> [...]
324 #
325 # Use absolute paths for local repositories, and URLs for non-local otherwise.
326 #
327 list = ${local-bt5-repository:list}
328
329 [local-bt5-repository]
330 # Same as bt5-repository, but only local repository.
331 # Used to generate bt5lists.
332 list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap
333
334 [genbt5list]
335 recipe = plone.recipe.command
336 stop-on-error = true
337 genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list
338 command =
339   ${buildout:executable} ${:genbt5list} ${local-bt5-repository:list}
340 update-command = ${:command}
341
342 [erp5_repository_list]
343 repository_id_list = erp5
344
345 [erp5]
346 recipe = slapos.recipe.build:gitclone
347 repository = http://git.erp5.org/repos/erp5.git
348 branch = master
349 git-executable = ${git:location}/bin/git
350
351 [fix-products-paths]
352 recipe = plone.recipe.command
353 stop-on-error = true
354 dir = ${erp5:location}
355 command =
356   rm -f "${:dir}/Products" && ln -s product "${:dir}/Products" && touch "${:dir}/product/__init__.py"
357 update-command = ${:command}
358
359 [testrunner]
360 # XXX: Workaround for fact ERP5Type is not an distribution and does not
361 #      expose entry point for test runner
362 recipe = zc.recipe.egg
363 eggs = ${eggs:eggs}
364 extra-paths = ${eggs:extra-paths}
365 entry-points =
366   runUnitTest=runUnitTest:main
367 scripts = runUnitTest
368 initialization =
369   import glob, imp, os, sys
370   import App # prevent Testing from importing Zope2.App instead of App
371   import Products
372   Products.__path__[:0] = filter(None,
373     os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep))
374   os.environ['SOFTWARE_HOME'] = os.path.abspath(imp.find_module('Zope2')[1])
375   os.environ['ZOPE_SCRIPTS'] = ''
376   parts_directory = '''${buildout:parts-directory}'''
377   repository_id_list = \
378     '''${erp5_repository_list:repository_id_list}'''.split()[::-1]
379   os.environ['erp5_tests_bt5_path'] = ','.join(sum((
380     [bt5_path, os.path.join(bt5_path, '*')]
381     for bt5_path in (os.path.join(parts_directory, x, 'bt5')
382                      for x in repository_id_list)), []))
383   extra_path_list = '''${:extra-paths}'''.split()
384   sys.path[:0] = sum((
385     glob.glob(os.path.join(x, 'tests'))
386     for x in extra_path_list), [])
387   sys.path[:0] = sum((
388     glob.glob(os.path.join(x, 'Products', '*', 'tests'))
389     for x in extra_path_list), [])
390   sys.path[:0] = sum((
391     glob.glob(os.path.join(x, 'Products', '*', 'tests'))
392     for x in os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep)), [])
393   os.environ['PATH'] = '${jsl:location}/bin:%s' % os.environ['PATH']
394   os.environ['CGI_PATH'] = '${w3-validator:location}/httpd/cgi-bin'
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 eggs = ${eggs:eggs}
401 extra-paths = ${eggs:extra-paths}
402 entry-points =
403   runTestSuite=Products.ERP5Type.tests.runTestSuite:main
404 scripts = runTestSuite
405 initialization =
406   import os
407   import sys
408   import Products
409   [Products.__path__.insert(0, p) for p in reversed(os.environ.get('INSERT_PRODUCTS_PATH', '').split(':')) if p]
410   import Zope2
411   os.environ['SOFTWARE_HOME'] = os.path.abspath(os.path.dirname(os.path.dirname(Zope2.__file__)))
412   os.environ['ZOPE_SCRIPTS'] = ''
413   repository_id_list = list(reversed('''${erp5_repository_list:repository_id_list}'''.split()))
414   sys.path[0:0] = ['/'.join(['''${buildout:parts-directory}''', x]) for x in repository_id_list]
415
416 [patched-eggs]
417 recipe = minitage.recipe.egg
418 eggs =
419   Acquisition
420   Products.DCWorkflow
421   ZODB3
422 Acquisition-patches = ${:_profile_base_location_}/../../component/egg-patch/Acquisition/aq_dynamic.patch
423 Acquisition-patch-options = -p1
424 Acquisition-patch-binary = ${patch:location}/bin/patch
425 Products.DCWorkflow-patches = ${:_profile_base_location_}/../../component/egg-patch/Products.DCWorkflow/workflow_method.patch
426 Products.DCWorkflow-patch-options = -p1
427 Products.DCWorkflow-patch-binary = ${patch:location}/bin/patch
428 ZODB3-patches = ${:_profile_base_location_}/../../component/egg-patch/ZODB3-3.10.5.patch
429 ZODB3-patch-options = -p1
430 ZODB3-patch-binary = ${patch:location}/bin/patch
431
432 [eggs]
433 recipe = zc.recipe.egg
434 eggs =
435   ${mysql-python:egg}
436   ${lxml-python:egg}
437   ${pil-python:egg}
438   ${python-ldap-python:egg}
439   ${pysvn-python:egg}
440   ${pycrypto-python:egg}
441   lock_file
442   PyXML
443   Pympler
444   SOAPpy
445   chardet
446   coverage
447   elementtree
448   erp5diff
449   inotifyx
450   ipdb
451   Jinja2
452   mechanize
453   numpy
454   paramiko
455   ply
456   pyflakes
457   pypdf2
458   python-magic
459   python-memcached
460   pytz
461   requests
462   threadframe
463   timerserver
464   urlnorm
465   uuid
466   xml_marshaller
467   xupdate_processor
468   feedparser
469   argparse
470   validictory
471   erp5.util
472   huBarcode
473   qrcode
474   spyne
475   httplib2
476   suds
477   pprofile
478 # Needed for checking ZODB Components source code
479   pylint
480
481 # Zope
482   ZODB3
483   Zope2
484 # Zope acquisition patch
485   Acquisition
486
487 # Other Zope 2 packages
488   Products.PluggableAuthService
489   Products.PluginRegistry
490
491 # CMF 2.2
492   Products.CMFActionIcons
493   Products.CMFCalendar
494   Products.CMFCore
495   Products.CMFDefault
496   Products.CMFTopic
497   Products.CMFUid
498   Products.DCWorkflow
499   Products.GenericSetup
500   five.localsitemanager
501
502 # Other products
503   Products.DCWorkflowGraph
504   Products.MimetypesRegistry
505   Products.ExternalEditor
506   Products.TIDStorage
507   Products.LongRequestLogger
508
509 # BBB: Temporarily keep zope.app.testing awaiting we use newer version of CMF
510 #      (for tests like testCookieCrumbler).
511   zope.app.testing
512
513 # Currently forked in our repository
514 #    Products.PortalTransforms
515 # Dependency for our fork of PortalTransforms
516   StructuredText
517
518 # Needed for parsing .po files from our Localizer subset
519   polib
520
521 # parameterizing the version of the generated python interpreter name by the
522 # python section version causes dependency between this egg section and the
523 # installation of python, which we don't want on an instance
524 interpreter = ${buildout:python}
525 scripts =
526   repozo
527   runzope
528   runzeo
529   tidstoraged
530   tidstorage_repozo
531   web_checker_utility = erp5.util.webchecker:web_checker_utility
532
533 extra-paths =
534   ${erp5:location}
535
536 [zodbanalyze]
537 recipe = zc.recipe.egg
538 eggs =
539   ZODB3
540   erp5.util
541 entry-points =
542   zodbanalyze=erp5.util.zodbanalyze:main
543 scripts = zodbanalyze
544
545 [cloudooo-repository]
546 branch =
547 revision = b91e43a3922160fe5f080eca45e0c51fe5345bcd
548
549 [slapos-toolbox]
550 recipe = zc.recipe.egg
551 eggs =
552   ${lxml-python:egg}
553   slapos.toolbox
554   slapos.toolbox[zodbpack]
555
556 scripts =
557   killpidfromfile
558   onetimedownload
559   zodbpack
560
561 [versions]
562 # patched eggs
563 Acquisition = 2.13.8-ZMinitagePatched-AqDynamic
564 Products.DCWorkflow = 2.2.4-ZMinitagePatched-WorkflowMethod
565 ZODB3 = 3.10.5-ZMinitagePatched-ZODB33105
566
567 # specify dev version to be sure that an old released version is not used
568 cloudooo = 1.2.5-dev
569
570 # use newer version than specified in ZTK
571 Jinja2 = 2.7.2
572 PasteDeploy = 1.5.2
573 Pygments = 1.6
574 argparse = 1.2.1
575 coverage = 3.7.1
576 lxml = 3.3.3
577 mr.developer = 1.28
578 setuptools = 2.2
579
580 # huBarcode 1.0.0 has an issue with importing PIL.
581 huBarcode = 0.63
582
583 # Known version with works
584 numpy = 1.6.2
585
586 # test_UserManagerInterfaces in testERP5Security fails with 1.10.0.
587 Products.PluggableAuthService = 1.9.0
588
589 # official pysvn egg does not supports --include-dirs and
590 # --library-dirs, so we use our modified version
591 pysvn = 1.7.4nxd006
592
593 # use newest version of pytz
594 pytz =
595
596 # we are still using this old stable version.
597 rdiff-backup = 1.0.5
598
599 # use newest version of slapos.cookbook
600 slapos.cookbook =
601
602 # we need to define an explicit version of slapos.core that is propagated to instances
603 slapos.core = 1.0.3
604
605 # modified version that works fine for buildout installation
606 SOAPpy = 0.12.0nxd001
607
608 # CMF 2.3 is not yet supported.
609 Products.CMFCalendar = 2.2.2
610 Products.CMFCore = 2.2.8
611 Products.CMFDefault = 2.2.3
612 Products.CMFTopic = 2.2.1
613 Products.CMFUid = 2.2.1
614
615 # newer version requires zope.traversing>=4.0.0a2.
616 zope.app.appsetup = 3.16.0
617
618 # newer version requires zope.i18n>=4.0.0a3
619 zope.app.publication = 3.14.0
620
621 # newer version requires zope.testbrowser>=4
622 zope.app.testing = 3.8.1
623
624 # Pinned versions
625 Flask = 0.10.1
626 GitPython = 0.3.2.RC1
627 MySQL-python = 1.2.5
628 PIL = 1.1.7
629 PyXML = 0.8.5
630 Products.CMFActionIcons = 2.1.3
631 Products.DCWorkflowGraph = 0.4.1
632 Products.ExternalEditor = 1.1.0
633 Products.GenericSetup = 1.7.4
634 Products.LongRequestLogger = 1.1.0
635 Products.MimetypesRegistry = 2.0.5
636 Products.PluginRegistry = 1.3
637 Products.TIDStorage = 5.4.9
638 Products.ZSQLMethods = 2.13.4
639 PyPDF2 = 1.20
640 StructuredText = 2.11.1
641 WSGIUtils = 0.7
642 Werkzeug = 0.9.4
643 apache-libcloud = 0.14.1
644 async = 0.6.1
645 atomize = 0.2.0
646 chardet = 2.2.1
647 cliff = 1.5.2
648 csp-eventlet = 0.7.0
649 ecdsa = 0.10
650 elementtree = 1.2.7-20070827-preview
651 erp5.recipe.cmmiforcei686 = 0.1.3
652 erp5.util = 0.4.36
653 erp5diff = 0.8.1.5
654 eventlet = 0.14.0
655 feedparser = 5.1.3
656 five.formlib = 1.0.4
657 five.localsitemanager = 2.0.5
658 fpconst = 0.7.2
659 gitdb = 0.5.4
660 greenlet = 0.4.2
661 hexagonit.recipe.cmmi = 2.0
662 http-parser = 0.8.3
663 iniparse = 0.4
664 inotifyx = 0.2.0-1
665 ipdb = 0.8
666 ipython = 1.2.1
667 itsdangerous = 0.23
668 logilab_common = 0.61.0
669 meld3 = 0.6.10
670 minitage.core = 2.0.57
671 minitage.recipe.common = 1.90
672 minitage.recipe.egg = 1.107
673 netaddr = 0.7.10
674 netifaces = 0.8-1
675 paramiko = 1.12.2
676 plone.recipe.command = 1.1
677 ply = 3.4
678 polib = 1.0.4
679 psutil = 1.2.1
680 pyflakes = 0.7.3
681 python-ldap = 2.4.14
682 python-magic = 0.4.6
683 python-memcached = 1.53
684 qrcode = 4.0.4
685 requests = 2.2.1
686 restkit = 4.2.2
687 rtjp-eventlet = 0.3.2
688 six = 1.5.2
689 slapos.recipe.build = 0.12
690 slapos.recipe.template = 2.5
691 slapos.toolbox = 0.39
692 smmap = 0.8.2
693 socketpool = 0.5.3
694 spyne = 2.10.10
695 stevedore = 0.14.1
696 supervisor = 3.0
697 threadframe = 0.2
698 timerserver = 2.0.2
699 urlnorm = 1.1.2
700 uuid = 1.30
701 validictory = 0.9.3
702 xml-marshaller = 0.9.7
703 xupdate-processor = 0.4
704 zope.app.debug = 3.4.1
705 zope.app.dependable = 3.5.1
706 zope.app.form = 4.0.2
707 pylint = 1.1.0