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