many parameters will be defined at master level
[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/pycrypto-python/buildout.cfg
58   ../component/pysvn-python/buildout.cfg
59   ../component/python-2.6/buildout.cfg
60   ../component/python-2.7/buildout.cfg
61   ../component/python-ldap-python/buildout.cfg
62   ../component/rdiff-backup/buildout.cfg
63   ../component/sphinx/buildout.cfg
64   ../component/stunnel/buildout.cfg
65   ../component/subversion/buildout.cfg
66   ../component/tesseract/buildout.cfg
67   ../component/varnish/buildout.cfg
68   ../component/w3-validator/buildout.cfg
69   ../component/w3m/buildout.cfg
70   ../component/xorg/buildout.cfg
71   ../component/poppler/buildout.cfg
72   ../component/xtrabackup/buildout.cfg
73   ../component/zabbix/buildout.cfg
74   ../component/sed/buildout.cfg
75   ../component/coreutils/buildout.cfg
76   ../component/grep/buildout.cfg
77   ../component/dash/buildout.cfg
78   ../component/wget/buildout.cfg
79   ../component/aspell/buildout.cfg
80
81 versions = versions
82
83 parts =
84   itools-build
85   rdiff-backup
86   aspell
87   apache
88   apache-antiloris
89   file
90   graphviz
91   memcached
92   haproxy
93   varnish-2.1
94   stunnel
95   w3m
96   poppler
97   libpng12
98   libpng
99   ghostscript
100   mariadb
101   mroonga-mariadb
102   sphinx
103   imagemagick
104   kumo
105   libreoffice-bin
106   w3-validator
107   tesseract-eng-traineddata-unzip
108   tesseract
109   hookbox
110   bootstrap2.6
111   perl-DBD-mariadb
112   perl-DBI
113   percona-toolkit
114   zabbix-agent
115   pdftk
116   dcron
117   dash
118   wget
119
120 # Buildoutish
121   eggs
122   testrunner
123   test_suite_runner
124
125 # basic Xorg
126   libXdmcp
127   libXext
128   libXau
129   libSM
130   libXrender
131
132 # fonts
133   liberation-fonts
134   ipaex-fonts
135
136 # Zope products
137   products-deps
138
139 # Cloudooo specific part
140   cloudooo
141
142 # get git repositories
143   erp5
144   genbt5list
145
146 # fix products path (Zeo needs ERP5 Products to be available for
147 # conflict resolution)
148   fix-products-paths
149 # some additional utils
150   slapos-toolbox
151
152 [bt5-repository]
153 # Format:
154 #   <url or path> [...]
155 #
156 # Use absolute paths for local repositories, and URLs for non-local otherwise.
157 #
158 list = ${local-bt5-repository:list}
159
160 [local-bt5-repository]
161 # Same as bt5-repository, but only local repository.
162 # Used to generate bt5lists.
163 list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap
164
165 [genbt5list]
166 recipe = plone.recipe.command
167 stop-on-error = true
168 genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list
169 command =
170   ${buildout:executable} ${:genbt5list} ${local-bt5-repository:list}
171 update-command = ${:command}
172
173 [bootstrap2.6]
174 python = python2.6
175
176 [rebootstrap]
177 version = 3
178 section = python2.7
179 eggs = slapos.libnetworkcache
180
181 [itools]
182 pkgname = itools-0.50.8
183 location = ${buildout:parts-directory}/${:_buildout_section_name_}
184 lib = ${:location}/lib
185 source = ${:location}/src
186
187 # ugly itools building sections until itools and setuptools learn to get
188 # along:
189
190 [itools-download]
191 recipe = hexagonit.recipe.download
192 strip-top-level-dir = true
193 url = http://download.hforge.org/itools/0.50/${itools:pkgname}.tar.gz
194 md5sum = 12704cc354e2201e0921a832bf6b1556
195 destination = ${itools:source}
196
197 [itools-build]
198 recipe = plone.recipe.command
199 # reference itools-download:destination instead of itools:source to trigger its
200 # execution
201 # here, we unset PYTHONPATH to invoke different python than buildout one.
202 command =
203     cd ${itools-download:destination} &&
204     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 &&
205     PYTHONPATH= ${python2.6:executable} setup.py install_lib -d ${itools:lib}
206
207 update-command = ${:command}
208 location = ${itools:location}
209 stop-on-error = true
210
211 [products-deps]
212 # Recipe minitage.recipe.fetch is disabled, as it uses PATH variable, but it
213 # is not possible to change its environment to use localy delivered subversion
214 # nor git. plone.recipe.command can do same job, but it is controllable which
215 # binary will be used
216 recipe = plone.recipe.command
217 svn_param =--trust-server-cert --non-interactive --quiet
218 location = ${buildout:parts-directory}/${:_buildout_section_name_}
219 stop-on-error = true
220 command =
221   ${subversion:location}/bin/svn checkout -r 98997 ${:svn_param} https://svn.plone.org/svn/collective/ExtFile/trunk ${:location}/ExtFile &&
222   ${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
223
224 [erp5_repository_list]
225 repository_id_list = erp5
226
227 [erp5]
228 # Recipe zerokspot.recipe.git is disabled, as is not possible to change its
229 # environment to use localy delivered git.
230 # plone.recipe.command can do same job, but it is controllable which binary
231 # will be used
232 recipe = plone.recipe.command
233 location = ${buildout:parts-directory}/${:_buildout_section_name_}
234 stop-on-error = true
235 repository = http://git.erp5.org/repos/erp5.git
236 branch = master
237 revision =
238 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
239 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
240
241 [products]
242 # XXX: ERP5 related products are not defined as python distributions, so it is
243 #      required to configure them in declarative manner
244 list =
245
246 [fix-products-paths]
247 recipe = plone.recipe.command
248 stop-on-error = true
249 command =
250   for DIR in "${products-deps:location}"; do cd "$DIR"; rm -f Products ; ln -s . Products; touch __init__.py; done
251   for DIR in "${erp5:location}"; do cd "$DIR"; rm -f Products ; ln -s product Products; touch product/__init__.py; done
252 update-command = ${:command}
253
254 [testrunner]
255 # XXX: Workaround for fact ERP5Type is not an distribution and does not
256 #      expose entry point for test runner
257 recipe = zc.recipe.egg
258 python = python2.6
259 eggs = ${eggs:eggs}
260 extra-paths = ${eggs:extra-paths}
261 entry-points =
262   runUnitTest=runUnitTest:main
263 scripts = runUnitTest
264 initialization =
265   import glob, imp, os, sys
266   import App # prevent Testing from importing Zope2.App instead of App
267   import Products
268   Products.__path__[:0] = filter(None,
269     os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep))
270   Products.__path__.extend(reversed('''${products:list}'''.split()))
271   os.environ['SOFTWARE_HOME'] = os.path.abspath(imp.find_module('Zope2')[1])
272   os.environ['ZOPE_SCRIPTS'] = ''
273   parts_directory = '''${buildout:parts-directory}'''
274   repository_id_list = \
275     '''${erp5_repository_list:repository_id_list}'''.split()[::-1]
276   os.environ['erp5_tests_bt5_path'] = ','.join(sum((
277     [bt5_path, os.path.join(bt5_path, '*')]
278     for bt5_path in (os.path.join(parts_directory, x, 'bt5')
279                      for x in repository_id_list)), []))
280   sys.path[:0] = sum((
281     glob.glob(os.path.join(parts_directory, x, 'tests'))
282     for x in repository_id_list), [])
283   sys.path[:0] = sum((
284     glob.glob(os.path.join(parts_directory, x, 'product', '*', 'tests'))
285     for x in repository_id_list), [])
286   sys.path[:0] = sum((
287     glob.glob(os.path.join(x, '*', 'tests'))
288     for x in reversed('''${products:list}'''.split())), [])
289
290 [test_suite_runner]
291 # XXX: Workaround for fact ERP5Type is not an distribution and does not
292 #      expose entry point for test runner
293 recipe = zc.recipe.egg
294 python = python2.6
295 eggs = ${eggs:eggs}
296 extra-paths = ${eggs:extra-paths}
297 entry-points =
298   runTestSuite=Products.ERP5Type.tests.runTestSuite:main
299 scripts = runTestSuite
300 initialization =
301   import os
302   import sys
303   import Products
304   [Products.__path__.insert(0, p) for p in reversed(os.environ.get('INSERT_PRODUCTS_PATH', '').split(':')) if p]
305   Products.__path__.extend(reversed('''${products:list}'''.split()))
306   import Zope2
307   os.environ['SOFTWARE_HOME'] = os.path.abspath(os.path.dirname(os.path.dirname(Zope2.__file__)))
308   os.environ['ZOPE_SCRIPTS'] = ''
309   repository_id_list = list(reversed('''${erp5_repository_list:repository_id_list}'''.split()))
310   sys.path[0:0] = ['/'.join(['''${buildout:parts-directory}''', x]) for x in repository_id_list]
311
312 [eggs]
313 recipe = zc.recipe.egg
314 python = python2.6
315 eggs =
316   ${mysql-python:egg}
317   ${lxml-python:egg}
318   ${python-ldap-python:egg}
319   ${pysvn-python:egg}
320   ${pycrypto-python:egg}
321   PyXML
322   SOAPpy
323   cElementTree
324   chardet
325   coverage
326   elementtree
327   erp5diff
328   inotifyx
329   ipdb
330   mechanize
331   numpy
332   ordereddict
333   paramiko
334   ply
335   python-magic
336   python-memcached
337   pytz
338   threadframe
339   timerserver
340   urlnorm
341   uuid
342   xml_marshaller
343   xupdate_processor
344   feedparser
345   argparse
346   validictory
347   erp5.util
348
349 # Zope 2.12 with patched acquisition
350   ZODB3
351   Zope2
352   Acquisition
353
354 # Other Zope 2 packages
355   Products.PluggableAuthService
356   Products.PluginRegistry
357
358 # CMF 2.2
359   Products.CMFActionIcons
360   Products.CMFCalendar
361   Products.CMFCore
362   Products.CMFDefault
363   Products.CMFTopic
364   Products.CMFUid
365   Products.DCWorkflow
366   Products.GenericSetup
367   five.localsitemanager
368
369 # Other products
370   Products.DCWorkflowGraph
371   Products.MimetypesRegistry
372   Products.ExternalEditor
373   Products.TIDStorage
374
375 # Currently forked in our repository
376 #    Products.PortalTransforms
377 # Dependency for our fork of PortalTransforms
378   StructuredText
379
380 # parameterizing the version of the generated python interpreter name by the
381 # python section version causes dependency between this egg section and the
382 # installation of python, which we don't want on an instance
383 interpreter = python2.6
384 scripts =
385   repozo
386   runzope
387   runzeo
388   tidstoraged
389   tidstorage_repozo
390   web_checker_utility = erp5.util.webchecker:web_checker_utility
391
392 extra-paths =
393   ${itools:location}/lib
394   ${products-deps:location}
395   ${erp5:location}
396
397 [mysql-python]
398 python = python2.6
399
400 [lxml-python]
401 python = python2.6
402
403 [python-ldap-python]
404 python = python2.6
405
406 [pysvn-python]
407 python = python2.6
408
409 [slapos-toolbox]
410 recipe = zc.recipe.egg
411 python = ${eggs:python}
412 eggs =
413   ${lxml-python:egg}
414   slapos.toolbox
415
416 scripts =
417   killpidfromfile = slapos.systool:killpidfromfile
418   onetimedownload = slapos.toolbox:onetimedownload
419
420 [cloudooo]
421 recipe = zc.recipe.egg
422 python = python2.6
423 eggs =
424   ${lxml-python:egg}
425   cloudooo.handler.ffmpeg
426   cloudooo.handler.imagemagick
427   cloudooo.handler.ooo
428   cloudooo.handler.pdf
429   cloudooo
430   PasteScript
431 scripts =
432   paster=cloudooo_paster
433
434 [versions]
435 # Use SlapOS patched zc.buildout
436 zc.buildout = 1.6.0-dev-SlapOS-004
437
438 # pin Acquisition and Products.DCWorkflow to Nexedi flavour of eggs
439 Acquisition = 2.13.7nxd001
440 Products.DCWorkflow = 2.2.3nxd002
441
442 # Known version with works
443 numpy = 1.3.0
444 # Patched version which support python 2.6
445 PyXML = 0.8.4nxd001
446 # modified version that works fine for buildout installation
447 SOAPpy = 0.12.0nxd001
448 # we are still using this old stable version.
449 rdiff-backup = 1.0.5
450
451 # Zope Known Good Set is incompatible with buildout 1.5.0 in case of
452 # distribute and zc.buildout, and as ERP5 Appliance trunk wants to use
453 # the newest versions of buildout infrastructure clear the pin
454 distribute =
455 setuptools =
456
457 # official pysvn egg does not supports --include-dirs and
458 # --library-dirs, so we use our modified version
459 pysvn = 1.7.4nxd006
460
461 # CMF 2.3 requries Zope 2.13.
462 Products.CMFCalendar = 2.2.2
463 Products.CMFCore = 2.2.5
464 Products.CMFDefault = 2.2.2
465 Products.CMFTopic = 2.2.1
466 Products.CMFUid = 2.2.1