Merge remote-tracking branch 'origin/erp5-luke' into erp5
[slapos.git] / stack / erp5.cfg
1 [buildout]
2 extensions =
3   slapos.rebootstrap
4   slapos.zcbworkarounds
5   buildout-versions
6
7 find-links =
8     http://www.nexedi.org/static/packages/source/slapos.buildout/
9     http://dist.repoze.org
10     http://www.nexedi.org/static/packages/source/
11     http://www.owlfish.com/software/wsgiutils/download.html
12
13 # Separate from site eggs
14 allowed-eggs-from-site-packages =
15 include-site-packages = false
16 exec-sitecustomize = false
17
18 # Use only quite well working sites.
19 allow-hosts =
20   *.nexedi.org
21   *.python.org
22   *.sourceforge.net
23   alastairs-place.net
24   dist.repoze.org
25   effbot.org
26   github.com
27   peak.telecommunity.com
28   psutil.googlecode.com
29   www.dabeaz.com
30   www.owlfish.com
31   launchpad.net
32
33 extends =
34 # Exact version of Zope
35   http://svn.zope.org/repos/main/Zope/tags/2.12.22/versions.cfg
36   ../component/logrotate/buildout.cfg
37   ../component/dcron/buildout.cfg
38   ../component/file/buildout.cfg
39   ../component/fonts/buildout.cfg
40   ../component/ghostscript/buildout.cfg
41   ../component/git/buildout.cfg
42   ../component/glib/buildout.cfg
43   ../component/graphviz/buildout.cfg
44   ../component/gzip/buildout.cfg
45   ../component/haproxy/buildout.cfg
46   ../component/hookbox/buildout.cfg
47   ../component/imagemagick/buildout.cfg
48   ../component/kumo/buildout.cfg
49   ../component/libpng/buildout.cfg
50   ../component/libreoffice-bin/buildout.cfg
51   ../component/lxml-python/buildout.cfg
52   ../component/percona-toolkit/buildout.cfg
53   ../component/mariadb/buildout.cfg
54   ../component/memcached/buildout.cfg
55   ../component/mysql-python/buildout.cfg
56   ../component/pdftk/buildout.cfg
57   ../component/pil-python/buildout.cfg
58   ../component/pycrypto-python/buildout.cfg
59   ../component/pysvn-python/buildout.cfg
60   ../component/python-2.6/buildout.cfg
61   ../component/python-2.7/buildout.cfg
62   ../component/python-ldap-python/buildout.cfg
63   ../component/rdiff-backup/buildout.cfg
64   ../component/sphinx/buildout.cfg
65   ../component/stunnel/buildout.cfg
66   ../component/subversion/buildout.cfg
67   ../component/tesseract/buildout.cfg
68   ../component/varnish/buildout.cfg
69   ../component/w3-validator/buildout.cfg
70   ../component/w3m/buildout.cfg
71   ../component/xorg/buildout.cfg
72   ../component/poppler/buildout.cfg
73   ../component/xtrabackup/buildout.cfg
74   ../component/zabbix/buildout.cfg
75   ../component/sed/buildout.cfg
76   ../component/coreutils/buildout.cfg
77   ../component/grep/buildout.cfg
78   ../component/dash/buildout.cfg
79   ../component/wget/buildout.cfg
80   ../component/aspell/buildout.cfg
81
82 versions = versions
83
84 parts =
85   itools-build
86   rdiff-backup
87   aspell
88   apache
89   apache-antiloris
90   file
91   graphviz
92   memcached
93   haproxy
94   varnish-2.1
95   stunnel
96   w3m
97   poppler
98   libpng12
99   libpng
100   ghostscript
101   mariadb
102   mroonga-mariadb
103   sphinx
104   imagemagick
105   kumo
106   libreoffice-bin
107   w3-validator
108   tesseract-eng-traineddata-unzip
109   tesseract
110   hookbox
111   bootstrap2.6
112   perl-DBD-mariadb
113   perl-DBI
114   percona-toolkit
115   zabbix-agent
116   pdftk
117   dcron
118   dash
119   wget
120
121 # Buildoutish
122   eggs
123   testrunner
124   test_suite_runner
125
126 # basic Xorg
127   libXdmcp
128   libXext
129   libXau
130   libSM
131   libXrender
132
133 # fonts
134   liberation-fonts
135   ipaex-fonts
136
137 # Zope products
138   products-deps
139
140 # Cloudooo specific part
141   cloudooo
142
143 # get git repositories
144   erp5
145   genbt5list
146
147 # fix products path (Zeo needs ERP5 Products to be available for
148 # conflict resolution)
149   fix-products-paths
150 # some additional utils
151   slapos-toolbox
152
153 [bt5-repository]
154 # Format:
155 #   <url or path> [...]
156 #
157 # Use absolute paths for local repositories, and URLs for non-local otherwise.
158 #
159 list = ${local-bt5-repository:list}
160
161 [local-bt5-repository]
162 # Same as bt5-repository, but only local repository.
163 # Used to generate bt5lists.
164 list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap
165
166 [genbt5list]
167 recipe = plone.recipe.command
168 stop-on-error = true
169 genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list
170 command =
171   ${buildout:executable} ${:genbt5list} ${local-bt5-repository:list}
172 update-command = ${:command}
173
174 [bootstrap2.6]
175 python = python2.6
176
177 [rebootstrap]
178 version = 3
179 section = python2.7
180 eggs = slapos.libnetworkcache
181
182 [itools]
183 pkgname = itools-0.50.8
184 location = ${buildout:parts-directory}/${:_buildout_section_name_}
185 lib = ${:location}/lib
186 source = ${:location}/src
187
188 # ugly itools building sections until itools and setuptools learn to get
189 # along:
190
191 [itools-download]
192 recipe = hexagonit.recipe.download
193 strip-top-level-dir = true
194 url = http://download.hforge.org/itools/0.50/${itools:pkgname}.tar.gz
195 md5sum = 12704cc354e2201e0921a832bf6b1556
196 destination = ${itools:source}
197
198 [itools-build]
199 recipe = plone.recipe.command
200 # reference itools-download:destination instead of itools:source to trigger its
201 # execution
202 # here, we unset PYTHONPATH to invoke different python than buildout one.
203 command =
204     cd ${itools-download:destination} &&
205     PYTHONPATH= ${python2.6:executable} setup.py build_ext -L ${glib:location}/lib -I ${glib:location}/include/glib-2.0:${glib:location}/lib/glib-2.0/include -R ${glib:location}/lib &&
206     PYTHONPATH= ${python2.6:executable} setup.py install_lib -d ${itools:lib}
207
208 update-command = ${:command}
209 location = ${itools:location}
210 stop-on-error = true
211
212 [products-deps]
213 # Recipe minitage.recipe.fetch is disabled, as it uses PATH variable, but it
214 # is not possible to change its environment to use localy delivered subversion
215 # nor git. plone.recipe.command can do same job, but it is controllable which
216 # binary will be used
217 recipe = plone.recipe.command
218 svn_param =--trust-server-cert --non-interactive --quiet
219 location = ${buildout:parts-directory}/${:_buildout_section_name_}
220 stop-on-error = true
221 command =
222   ${subversion:location}/bin/svn checkout -r 98997 ${:svn_param} https://svn.plone.org/svn/collective/ExtFile/trunk ${:location}/ExtFile &&
223   ${git:location}/bin/git clone --quiet git://git.hforge.org/Localizer.git ${:location}/Localizer && cd ${:location}/Localizer && ${git:location}/bin/git reset --quiet --hard dacb6ba0ae559cd9bdb8822812d24a12a21e9e37
224
225 [erp5_repository_list]
226 repository_id_list = erp5
227
228 [erp5]
229 # Recipe zerokspot.recipe.git is disabled, as is not possible to change its
230 # environment to use localy delivered git.
231 # plone.recipe.command can do same job, but it is controllable which binary
232 # will be used
233 recipe = plone.recipe.command
234 location = ${buildout:parts-directory}/${:_buildout_section_name_}
235 stop-on-error = true
236 repository = http://git.erp5.org/repos/erp5.git
237 branch = master
238 revision =
239 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
240 update-command = cd ${:location} && GIT_COMMITTER_EMAIL=nobody@example.com GIT_AUTHOR_NAME=Nobody GIT_AUTHOR_EMAIL=nobody@example.com ${git:location}/bin/git pull && if [ -n "${:revision}" ]; then echo "Resetting." ; cd ${:location} && ${git:location}/bin/git reset --hard ${:revision} ; fi
241
242 [products]
243 # XXX: ERP5 related products are not defined as python distributions, so it is
244 #      required to configure them in declarative manner
245 list =
246
247 [fix-products-paths]
248 recipe = plone.recipe.command
249 stop-on-error = true
250 command =
251   for DIR in "${products-deps:location}"; do cd "$DIR"; rm -f Products ; ln -s . Products; touch __init__.py; done
252   for DIR in "${erp5:location}"; do cd "$DIR"; rm -f Products ; ln -s product Products; touch product/__init__.py; done
253 update-command = ${:command}
254
255 [testrunner]
256 # XXX: Workaround for fact ERP5Type is not an distribution and does not
257 #      expose entry point for test runner
258 recipe = zc.recipe.egg
259 python = python2.6
260 eggs = ${eggs:eggs}
261 extra-paths = ${eggs:extra-paths}
262 entry-points =
263   runUnitTest=runUnitTest:main
264 scripts = runUnitTest
265 initialization =
266   import glob, imp, os, sys
267   import App # prevent Testing from importing Zope2.App instead of App
268   import Products
269   Products.__path__[:0] = filter(None,
270     os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep))
271   Products.__path__.extend(reversed('''${products:list}'''.split()))
272   os.environ['SOFTWARE_HOME'] = os.path.abspath(imp.find_module('Zope2')[1])
273   os.environ['ZOPE_SCRIPTS'] = ''
274   parts_directory = '''${buildout:parts-directory}'''
275   repository_id_list = \
276     '''${erp5_repository_list:repository_id_list}'''.split()[::-1]
277   os.environ['erp5_tests_bt5_path'] = ','.join(sum((
278     [bt5_path, os.path.join(bt5_path, '*')]
279     for bt5_path in (os.path.join(parts_directory, x, 'bt5')
280                      for x in repository_id_list)), []))
281   sys.path[:0] = sum((
282     glob.glob(os.path.join(parts_directory, x, 'tests'))
283     for x in repository_id_list), [])
284   sys.path[:0] = sum((
285     glob.glob(os.path.join(parts_directory, x, 'product', '*', 'tests'))
286     for x in repository_id_list), [])
287   sys.path[:0] = sum((
288     glob.glob(os.path.join(x, '*', 'tests'))
289     for x in reversed('''${products:list}'''.split())), [])
290
291 [test_suite_runner]
292 # XXX: Workaround for fact ERP5Type is not an distribution and does not
293 #      expose entry point for test runner
294 recipe = zc.recipe.egg
295 python = python2.6
296 eggs = ${eggs:eggs}
297 extra-paths = ${eggs:extra-paths}
298 entry-points =
299   runTestSuite=Products.ERP5Type.tests.runTestSuite:main
300 scripts = runTestSuite
301 initialization =
302   import os
303   import sys
304   import Products
305   [Products.__path__.insert(0, p) for p in reversed(os.environ.get('INSERT_PRODUCTS_PATH', '').split(':')) if p]
306   Products.__path__.extend(reversed('''${products:list}'''.split()))
307   import Zope2
308   os.environ['SOFTWARE_HOME'] = os.path.abspath(os.path.dirname(os.path.dirname(Zope2.__file__)))
309   os.environ['ZOPE_SCRIPTS'] = ''
310   repository_id_list = list(reversed('''${erp5_repository_list:repository_id_list}'''.split()))
311   sys.path[0:0] = ['/'.join(['''${buildout:parts-directory}''', x]) for x in repository_id_list]
312
313 [eggs]
314 recipe = zc.recipe.egg
315 python = python2.6
316 eggs =
317   ${mysql-python:egg}
318   ${lxml-python:egg}
319   ${pil-python:egg}
320   ${python-ldap-python:egg}
321   ${pysvn-python:egg}
322   ${pycrypto-python:egg}
323   PyXML
324   SOAPpy
325   cElementTree
326   chardet
327   coverage
328   elementtree
329   erp5diff
330   inotifyx
331   ipdb
332   mechanize
333   numpy
334   ordereddict
335   paramiko
336   ply
337   python-magic
338   python-memcached
339   pytz
340   threadframe
341   timerserver
342   urlnorm
343   uuid
344   xml_marshaller
345   xupdate_processor
346   feedparser
347   argparse
348   validictory
349   erp5.util
350   huBarcode
351
352 # Zope 2.12 with patched acquisition
353   ZODB3
354   Zope2
355   Acquisition
356
357 # Other Zope 2 packages
358   Products.PluggableAuthService
359   Products.PluginRegistry
360
361 # CMF 2.2
362   Products.CMFActionIcons
363   Products.CMFCalendar
364   Products.CMFCore
365   Products.CMFDefault
366   Products.CMFTopic
367   Products.CMFUid
368   Products.DCWorkflow
369   Products.GenericSetup
370   five.localsitemanager
371
372 # Other products
373   Products.DCWorkflowGraph
374   Products.MimetypesRegistry
375   Products.ExternalEditor
376   Products.TIDStorage
377
378 # Currently forked in our repository
379 #    Products.PortalTransforms
380 # Dependency for our fork of PortalTransforms
381   StructuredText
382
383 # parameterizing the version of the generated python interpreter name by the
384 # python section version causes dependency between this egg section and the
385 # installation of python, which we don't want on an instance
386 interpreter = python2.6
387 scripts =
388   repozo
389   runzope
390   runzeo
391   tidstoraged
392   tidstorage_repozo
393   web_checker_utility = erp5.util.webchecker:web_checker_utility
394
395 extra-paths =
396   ${itools:location}/lib
397   ${products-deps:location}
398   ${erp5:location}
399
400 [mysql-python]
401 python = python2.6
402
403 [lxml-python]
404 python = python2.6
405
406 [pil-python]
407 python = python2.6
408
409 [python-ldap-python]
410 python = python2.6
411
412 [pysvn-python]
413 python = python2.6
414
415 [slapos-toolbox]
416 recipe = zc.recipe.egg
417 python = ${eggs:python}
418 eggs =
419   ${lxml-python:egg}
420   slapos.toolbox
421   slapos.toolbox[zodbpack]
422
423 scripts =
424   killpidfromfile
425   onetimedownload
426   zodbpack
427
428 [cloudooo]
429 recipe = zc.recipe.egg
430 python = python2.6
431 eggs =
432   ${lxml-python:egg}
433   cloudooo.handler.ffmpeg
434   cloudooo.handler.imagemagick
435   cloudooo.handler.ooo
436   cloudooo.handler.pdf
437   cloudooo
438   PasteScript
439 scripts =
440   paster=cloudooo_paster
441
442 [versions]
443 # Use SlapOS patched zc.buildout
444 zc.buildout = 1.6.0-dev-SlapOS-004
445
446 # pin Acquisition and Products.DCWorkflow to Nexedi flavour of eggs
447 Acquisition = 2.13.7nxd001
448 Products.DCWorkflow = 2.2.3nxd002
449
450 # Known version with works
451 numpy = 1.3.0
452 # Patched version which support python 2.6
453 PyXML = 0.8.4nxd001
454 # modified version that works fine for buildout installation
455 SOAPpy = 0.12.0nxd001
456 # we are still using this old stable version.
457 rdiff-backup = 1.0.5
458
459 # official pysvn egg does not supports --include-dirs and
460 # --library-dirs, so we use our modified version
461 pysvn = 1.7.4nxd006
462
463 # CMF 2.3 requries Zope 2.13.
464 Products.CMFCalendar = 2.2.2
465 Products.CMFCore = 2.2.5
466 Products.CMFDefault = 2.2.2
467 Products.CMFTopic = 2.2.1
468 Products.CMFUid = 2.2.1
469
470 # Unpined locally developed egg
471 slapos.cookbook =
472
473 # Pinned versions
474 Flask = 0.8
475 GitPython = 0.3.2.RC1
476 MySQL-python = 1.2.3
477 PIL = 1.1.7
478 Paste = 1.7.5.1
479 PasteDeploy = 1.5.0
480 PasteScript = 1.7.5
481 Products.CMFActionIcons = 2.1.3
482 Products.CMFCalendar = 2.2.2
483 Products.CMFCore = 2.2.5
484 Products.CMFDefault = 2.2.2
485 Products.CMFTopic = 2.2.1
486 Products.CMFUid = 2.2.1
487 Products.DCWorkflowGraph = 0.4.1
488 Products.ExternalEditor = 1.1.0
489 Products.GenericSetup = 1.7.1
490 Products.MimetypesRegistry = 2.0.3
491 Products.PluggableAuthService = 1.7.7
492 Products.PluginRegistry = 1.3b1
493 Products.TIDStorage = 5.4.7.dev-r45842
494 Products.Zelenium = 1.0.3
495 StructuredText = 2.11.1
496 WSGIUtils = 0.7
497 Werkzeug = 0.8.3
498 apache-libcloud = 0.9.1
499 argparse = 1.1
500 async = 0.6.1
501 atomize = 0.1.1
502 buildout-versions = 1.7
503 cElementTree = 1.0.5-20051216
504 chardet = 1.0.1
505 cloudooo = 1.2.3
506 cloudooo.handler.ffmpeg = 0.1
507 cloudooo.handler.imagemagick = 0.1
508 cloudooo.handler.ooo = 0.2
509 cloudooo.handler.pdf = 0.1
510 coverage = 3.5.1
511 csp-eventlet = 0.7.0
512 elementtree = 1.2.7-20070827-preview
513 erp5.recipe.cmmiforcei686 = 0.1.3
514 erp5.util = 0.4.1
515 erp5diff = 0.8.1.5
516 eventlet = 0.9.16
517 feedparser = 5.1.1
518 five.localsitemanager = 2.0.5
519 fpconst = 0.7.2
520 gitdb = 0.5.4
521 greenlet = 0.3.4
522 hexagonit.recipe.cmmi = 1.5.0
523 hexagonit.recipe.download = 1.5.0
524 http-parser = 0.7.5
525 huBarcode = 0.63
526 inotifyx = 0.2.0
527 ipdb = 0.6.1
528 ipython = 0.12
529 meld3 = 0.6.8
530 netaddr = 0.7.6
531 netifaces = 0.8
532 ordereddict = 1.1
533 paramiko = 1.7.7.1
534 plone.recipe.command = 1.1
535 ply = 3.4
536 psutil = 0.4.1
537 python-ldap = 2.4.9
538 python-magic = 0.4.2
539 python-memcached = 1.47
540 restkit = 4.1.2
541 rtjp-eventlet = 0.3.2
542 setuptools = 0.6c12dev-r88846
543 slapos.core = 0.24
544 slapos.recipe.build = 0.7
545 slapos.recipe.template = 2.3
546 slapos.toolbox = 0.23
547 smmap = 0.8.2
548 socketpool = 0.3.0
549 supervisor = 3.0a12
550 threadframe = 0.2
551 timerserver = 2.0.2
552 urlnorm = 1.1.2
553 uuid = 1.30
554 validictory = 0.8.3
555 xml-marshaller = 0.9.7
556 xupdate-processor = 0.4