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