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