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