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