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