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