buildout.cfg 20 KB
Newer Older
1
[buildout]
2

3 4
extends =
# Exact version of Zope
5 6
  ztk-versions.cfg
  zope-versions.cfg
7
  buildout.hash.cfg
8 9
  ../../component/cups/buildout.cfg
  ../../component/dbus/buildout.cfg
10 11
  ../../component/file/buildout.cfg
  ../../component/fonts/buildout.cfg
12
  ../../component/gcc/buildout.cfg
13 14 15 16 17 18
  ../../component/ghostscript/buildout.cfg
  ../../component/git/buildout.cfg
  ../../component/graphviz/buildout.cfg
  ../../component/gzip/buildout.cfg
  ../../component/haproxy/buildout.cfg
  ../../component/hookbox/buildout.cfg
19
  ../../component/findutils/buildout.cfg
20 21
  ../../component/librsvg/buildout.cfg
  ../../component/imagemagick/buildout.cfg
22
  ../../component/inkscape/buildout.cfg
23 24
  ../../component/kumo/buildout.cfg
  ../../component/libdmtx/buildout.cfg
25
  ../../component/libffi/buildout.cfg
26 27
  ../../component/libpng/buildout.cfg
  ../../component/libreoffice-bin/buildout.cfg
28
  ../../component/matplotlib/buildout.cfg
29
  ../../component/mesa/buildout.cfg
30
  ../../component/numpy/buildout.cfg
31
  ../../component/ocropy/buildout.cfg
32
  ../../component/onlyoffice-x2t/buildout.cfg
33
  ../../component/pandas/buildout.cfg
34
  ../../component/percona-toolkit/buildout.cfg
35
  ../../component/patch/buildout.cfg
36
  ../../component/pillow/buildout.cfg
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
37
  ../../component/pycrypto-python/buildout.cfg
38 39 40
  ../../component/pysvn-python/buildout.cfg
  ../../component/python-ldap-python/buildout.cfg
  ../../component/rdiff-backup/buildout.cfg
41
  ../../component/scikit-learn/buildout.cfg
42
  ../../component/stunnel/buildout.cfg
43 44 45 46
  ../../component/subversion/buildout.cfg
  ../../component/tesseract/buildout.cfg
  ../../component/w3-validator/buildout.cfg
  ../../component/w3m/buildout.cfg
47
  ../../component/wkhtmltopdf/buildout.cfg
48 49 50 51 52 53 54 55 56 57
  ../../component/xorg/buildout.cfg
  ../../component/poppler/buildout.cfg
  ../../component/zabbix/buildout.cfg
  ../../component/sed/buildout.cfg
  ../../component/coreutils/buildout.cfg
  ../../component/grep/buildout.cfg
  ../../component/dash/buildout.cfg
  ../../component/wget/buildout.cfg
  ../../component/aspell/buildout.cfg
  ../../component/cloudooo/buildout.cfg
58
  ../../component/jsl/buildout.cfg
59 60
  ../../component/6tunnel/buildout.cfg
  ../../component/findutils/buildout.cfg
61
  ../../component/userhosts/buildout.cfg
62
  ../../component/postfix/buildout.cfg
63
  ../monitor/buildout.cfg
64
  ../../software/ipython_notebook/software.cfg
65 66
  ../../software/neoppod/software-common.cfg
# keep neoppod extends last
67

68
parts +=
69
  erp5-util-develop
70
  slapos-cookbook-develop
71
  slapos-cookbook
72
  rdiff-backup
73
  aspell
74
  aspell-en-dictionary
75 76 77
  apache
  apache-antiloris
  file
78
  findutils
79 80
  graphviz
  haproxy
81
  jsl
82
  stunnel
83
  w3m
Rafael Monnerat's avatar
Rafael Monnerat committed
84
  poppler
85
  libpng
86
  ghostscript
87
  mroonga-mariadb
88
  imagemagick
89
  inkscape
90 91
  libdmtx
  dmtx-utils
92 93 94 95
  kumo
  libreoffice-bin
  w3-validator
  tesseract
96 97
  scipy
  ocropy
98
  hookbox
99
  percona-toolkit
100
  zabbix-agent
Romain Courteaud's avatar
Romain Courteaud committed
101
  dash
102
  wget
103
  userhosts
104
  postfix
105 106 107

# Buildoutish
  eggs
108
  eggs-all-scripts
109 110 111 112 113 114 115
  testrunner
  test_suite_runner

# basic Xorg
  libXdmcp
  libXext
  libXau
116
  libSM
117
  libXrender
118 119 120 121

# fonts
  liberation-fonts
  ipaex-fonts
122
  ipa-fonts
123
  ocrb-fonts
124
  android-fonts
125 126

# Cloudooo specific part
127
  cloudooo-develop
128 129 130 131
  cloudooo

# get git repositories
  erp5
132 133
  genbt5list

134
# some additional utils
135
  zodbanalyze
136

137 138 139
# Create instance template
  template

140 141 142 143
# jupyter
  ipython-notebook
  instance-jupyter

144 145 146 147
# override python2.7 to add SlapOS libstdc++ in RPATH.
[python2.7]
extra-ldflags = -Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64

148 149 150 151
# override instance-jupyter not to render into default template.cfg
[instance-jupyter]
rendered = ${buildout:directory}/template-jupyter.cfg

152
[download-base]
153
<= download-base-neo
154 155
url = ${:_profile_base_location_}/${:filename}

156 157 158 159 160 161
[check-recipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link

162
[mariadb-resiliency-after-import-script]
163
<= download-base
164 165
mode = 755

166 167 168 169
[mariadb-slow-query-report-script]
<= download-base
mode = 755

170
[template-mariadb]
171
<= download-base
172 173 174 175 176 177 178
link-binary =
  ${coreutils:location}/bin/basename
  ${coreutils:location}/bin/cat
  ${coreutils:location}/bin/cp
  ${coreutils:location}/bin/ls
  ${coreutils:location}/bin/tr
  ${coreutils:location}/bin/uname
179
  ${gettext:location}/lib/gettext/hostname
180 181
  ${grep:location}/bin/grep
  ${sed:location}/bin/sed
182
  ${mariadb:location}/bin/mysqlbinlog
183 184

[template-kumofs]
185
<= download-base
186 187

[template-cloudooo]
188
<= download-base
189 190

[template-zope-conf]
191
<= download-base
192

193
[site-zcml]
194
<= download-base
195

196
[template-my-cnf]
197
<= download-base
198 199

[template-mariadb-initial-setup]
200
<= download-base
201

202
[template-create-erp5-site]
203
<= download-base
204 205

[template-create-erp5-site-real]
206
<= download-base
207

208 209 210 211 212 213 214 215
[template-postfix]
< = download-base

[template-postfix-master-cf]
< = download-base

[template-postfix-main-cf]
< = download-base
216 217 218

[template-postfix-aliases]
< = download-base
219

220
[template]
221
recipe = slapos.recipe.template:jinja2
222
# XXX: "template.cfg" is hardcoded in instanciation recipe
223
rendered = ${buildout:directory}/template.cfg
224
template = ${:_profile_base_location_}/${:filename}
225 226
mode = 640
context =
227
    key mariadb_link_binary template-mariadb:link-binary
228
    key zope_link_binary template-zope:link-binary
229 230
    key apache_location apache:location
    key aspell_location aspell:location
231
    key bin_directory buildout:bin-directory
232
    key buildout_bin_directory buildout:bin-directory
233
    key cairo_location cairo:location
234
    key coreutils_location coreutils:location
235
    key cups_location cups:location
236
    key curl_location curl:location
237
    key cyrus_sasl_location cyrus-sasl:location
238
    key dash_location dash:location
239
    key dbus_glib_location dbus-glib:location
240
    key dbus_location dbus:location
241 242 243
    key dcron_location dcron:location
    key erp5_location erp5:location
    key file_location file:location
244
    key findutils_location findutils:location
245 246 247
    key fontconfig_location fontconfig:location
    key fonts_location fonts:location
    key freetype_location freetype:location
248 249
    key glib_location glib:location
    key glu_location glu:location
250 251
    key gzip_location gzip:location
    key haproxy_location haproxy:location
252
    key imagemagick_location imagemagick:location
253
    key instance_common_cfg instance-common:rendered
254
    key jsl_location jsl:location
255
    key jupyter_enable_default erp5-defaults:jupyter-enable-default
256
    key kumo_location kumo:location
257 258 259 260 261 262 263
    key libICE_location libICE:location
    key libSM_location libSM:location
    key libX11_location libX11:location
    key libXau_location libXau:location
    key libXdmcp_location libXdmcp:location
    key libXext_location libXext:location
    key libXrender_location libXrender:location
264
    key libexpat_location libexpat:location
265
    key libffi_location libffi:location
266 267 268 269
    key libpng12_location libpng12:location
    key libreoffice_bin_location libreoffice-bin:location
    key librsvg_location librsvg:location
    key libxcb_location libxcb:location
270
    key local_bt5_repository local-bt5-repository:list
271 272
    key logrotate_location logrotate:location
    key mariadb_location mariadb:location
273
    key mariadb_resiliency_after_import_script mariadb-resiliency-after-import-script:target
274
    key mariadb_slow_query_report_script mariadb-slow-query-report-script:target
275
    key matplotlibrc_location matplotlibrc:location
276
    key mesa_location mesa:location
277
    key onlyoffice_x2t_location onlyoffice-x2t:location
278
    key parts_directory buildout:parts-directory
279
    key openssl_location openssl:location
280
    key percona_toolkit_location percona-toolkit:location
281
    key pixman_location pixman:location
282
    key poppler_location poppler:location
283
    key postfix_location postfix:location
284
    key root_common root-common:target
285
    key site_zcml site-zcml:target
286
    key sixtunnel_location 6tunnel:location
287
    key stunnel_location stunnel:location
288
    key template_apache_conf template-apache-backend-conf:target
289
    key template_balancer template-balancer:target
290
    key template_cloudooo template-cloudooo:target
291 292
    key template_create_erp5_site template-create-erp5-site:target
    key template_create_erp5_site_real template-create-erp5-site-real:target
293
    key template_erp5 template-erp5:target
294
    key template_haproxy_cfg template-haproxy-cfg:target
295
    key template_jupyter_cfg instance-jupyter:rendered
296
    key template_kumofs template-kumofs:target
297
    key template_mariadb template-mariadb:target
298
    key template_mariadb_initial_setup template-mariadb-initial-setup:target
299
    key template_monitor monitor-template:rendered
300
    key template_my_cnf template-my-cnf:target
301
    key template_postfix template-postfix:target
302
    key template_postfix_aliases template-postfix-aliases:target
303 304
    key template_postfix_main_cf template-postfix-main-cf:target
    key template_postfix_master_cf template-postfix-master-cf:target
305
    key template_zeo template-zeo:target
306 307
    key template_zope template-zope:target
    key template_zope_conf template-zope-conf:target
308
    key userhosts_location userhosts:location
309
    key wget_location wget:location
310
    key wkhtmltopdf_location wkhtmltopdf:location
311 312
    key xdamage_location xdamage:location
    key xfixes_location xfixes:location
313
    key xserver_location xserver:location
314
    key zlib_location zlib:location
315
    key extra_path_list eggs:extra-paths
316

317 318 319 320 321 322 323
[monitor-template-dummy]
<= download-base
# This is a placeholder, to be overriden by extending monitor SR

[monitor-template]
rendered = ${monitor-template-dummy:target}

324
[template-erp5]
325
<= download-base
326

327
[template-zeo]
328
<= download-base
329

330
[template-zope]
331
<= download-base
332
link-binary =
333
  ${aspell:location}/bin/aspell
334 335 336 337 338 339
  ${dmtx-utils:location}/bin/dmtxwrite
  ${git:location}/bin/git
  ${graphviz:location}/bin/dot
  ${grep:location}/bin/grep
  ${imagemagick:location}/bin/convert
  ${imagemagick:location}/bin/identify
340 341
  ${jsl:location}/bin/jsl
  ${librsvg:location}/bin/rsvg-convert
342 343
  ${mariadb:location}/bin/mysql
  ${mariadb:location}/bin/mysqldump
344 345 346 347 348 349 350
  ${openssl:location}/bin/openssl
  ${poppler:location}/bin/pdfinfo
  ${poppler:location}/bin/pdftohtml
  ${poppler:location}/bin/pdftotext
  ${sed:location}/bin/sed
  ${tesseract:location}/bin/tesseract
  ${w3m:location}/bin/w3m
351 352

[template-balancer]
353
<= download-base
354

355
[template-haproxy-cfg]
356
<= download-base
357

358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375
[bt5-repository]
# Format:
#   <url or path> [...]
#
# Use absolute paths for local repositories, and URLs for non-local otherwise.
#
list = ${local-bt5-repository:list}

[local-bt5-repository]
# Same as bt5-repository, but only local repository.
# Used to generate bt5lists.
list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap

[genbt5list]
recipe = plone.recipe.command
stop-on-error = true
genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list
command =
Łukasz Nowak's avatar
Łukasz Nowak committed
376
  ${buildout:executable} ${:genbt5list} ${local-bt5-repository:list}
377
update-command = ${:command}
378 379 380 381

[erp5_repository_list]
repository_id_list = erp5

382 383 384 385 386
# ERP5 defaults, which can be overridden in inheriting recipes (e.g. wendelin)
[erp5-defaults]
# Jupyter is by default disabled in ERP5
jupyter-enable-default = false

387
[erp5]
388
recipe = slapos.recipe.build:gitclone
389
repository = https://lab.nexedi.com/nexedi/erp5.git
390
branch = master
391
git-executable = ${git:location}/bin/git
392 393 394 395 396 397 398 399

[testrunner]
# XXX: Workaround for fact ERP5Type is not an distribution and does not
#      expose entry point for test runner
recipe = zc.recipe.egg
eggs = ${eggs:eggs}
extra-paths = ${eggs:extra-paths}
entry-points =
400
  runUnitTest=runUnitTest:main
401 402
scripts = runUnitTest
initialization =
403
  import glob, imp, os, sys
404
  import App # prevent Testing from importing Zope2.App instead of App
405
  import Products
406 407 408
  Products.__path__[:0] = filter(None,
    os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep))
  os.environ['SOFTWARE_HOME'] = os.path.abspath(imp.find_module('Zope2')[1])
409
  os.environ['ZOPE_SCRIPTS'] = ''
Vincent Pelletier's avatar
Vincent Pelletier committed
410
  parts_directory = '''${buildout:parts-directory}'''
411 412 413 414 415 416
  repository_id_list = \
    '''${erp5_repository_list:repository_id_list}'''.split()[::-1]
  os.environ['erp5_tests_bt5_path'] = ','.join(sum((
    [bt5_path, os.path.join(bt5_path, '*')]
    for bt5_path in (os.path.join(parts_directory, x, 'bt5')
                     for x in repository_id_list)), []))
417
  extra_path_list = '''${:extra-paths}'''.split()
418
  sys.path[:0] = sum((
419 420
    glob.glob(os.path.join(x, 'tests'))
    for x in extra_path_list), [])
421
  sys.path[:0] = sum((
422 423
    glob.glob(os.path.join(x, 'Products', '*', 'tests'))
    for x in extra_path_list), [])
424 425 426
  sys.path[:0] = sum((
    glob.glob(os.path.join(x, 'Products', '*', 'tests'))
    for x in os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep)), [])
427
  os.environ['PATH'] = '${jsl:location}/bin:%s' % os.environ['PATH']
428
  os.environ['CGI_PATH'] = '${w3-validator:location}/httpd/cgi-bin'
429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446

[test_suite_runner]
# XXX: Workaround for fact ERP5Type is not an distribution and does not
#      expose entry point for test runner
recipe = zc.recipe.egg
eggs = ${eggs:eggs}
extra-paths = ${eggs:extra-paths}
entry-points =
  runTestSuite=Products.ERP5Type.tests.runTestSuite:main
scripts = runTestSuite
initialization =
  import os
  import sys
  import Products
  [Products.__path__.insert(0, p) for p in reversed(os.environ.get('INSERT_PRODUCTS_PATH', '').split(':')) if p]
  import Zope2
  os.environ['SOFTWARE_HOME'] = os.path.abspath(os.path.dirname(os.path.dirname(Zope2.__file__)))
  os.environ['ZOPE_SCRIPTS'] = ''
447
  repository_id_list = list(reversed('''${erp5_repository_list:repository_id_list}'''.split()))
448
  sys.path[0:0] = ['/'.join(['''${buildout:parts-directory}''', x]) for x in repository_id_list]
449 450

[eggs]
451
<= neoppod
452
eggs = ${neoppod:eggs}
453
  ${numpy:egg}
454
  ${matplotlib:egg}
455
  ${lxml-python:egg}
456
  ${ocropy:egg}
457
  ${pandas:egg}
458
  ${pillow-python:egg}
459 460
  ${python-ldap-python:egg}
  ${pysvn-python:egg}
461
  ${pycrypto-python:egg}
462
  ${scipy:egg}
463
  ${scikit-learn:egg}
464
  lock_file
465
  astor
466
  APacheDEX
467
  PyStemmer
468
  PyXML
469
  Pympler
470 471
  SOAPpy
  chardet
472
  collective.recipe.template
Aurel's avatar
Aurel committed
473
  coverage
474
  erp5diff
475
  inotifyx
476
  interval
477
  ipdb
478
  Jinja2
479
  jsonschema
480
  mechanize
481
  objgraph
482 483
  paramiko
  ply
Jérome Perrin's avatar
Jérome Perrin committed
484
  pyflakes
Aurel's avatar
Aurel committed
485
  pypdf2
486 487 488
  python-magic
  python-memcached
  pytz
489
  requests
490 491 492 493 494 495 496
  threadframe
  timerserver
  urlnorm
  uuid
  xml_marshaller
  xupdate_processor
  feedparser
497
  validictory
498
  erp5.util
499
  huBarcode
500
  qrcode
501
  spyne
502 503
  httplib2
  suds
504
  pprofile
505
  pycountry
Jérome Perrin's avatar
Jérome Perrin committed
506
  xfw
507
  jsonschema
Vincent Bechu's avatar
Vincent Bechu committed
508
  selenium
509 510
# Needed for checking ZODB Components source code
  pylint
511
  pytracemalloc
512

Vincent Pelletier's avatar
Vincent Pelletier committed
513
# Zope
514
  Zope2
Vincent Pelletier's avatar
Vincent Pelletier committed
515
# Zope acquisition patch
516
  Acquisition
517 518
# for runzeo
  ZEO
519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539

# Other Zope 2 packages
  Products.PluggableAuthService
  Products.PluginRegistry

# CMF 2.2
  Products.CMFActionIcons
  Products.CMFCalendar
  Products.CMFCore
  Products.CMFDefault
  Products.CMFTopic
  Products.CMFUid
  Products.DCWorkflow
  Products.GenericSetup
  five.localsitemanager

# Other products
  Products.DCWorkflowGraph
  Products.MimetypesRegistry
  Products.ExternalEditor
  Products.TIDStorage
540
  Products.LongRequestLogger
541

542 543 544 545
# BBB: Temporarily keep zope.app.testing awaiting we use newer version of CMF
#      (for tests like testCookieCrumbler).
  zope.app.testing

546 547 548 549 550
# Currently forked in our repository
#    Products.PortalTransforms
# Dependency for our fork of PortalTransforms
  StructuredText

551 552
# Needed for parsing .po files from our Localizer subset
  polib
553 554
# Needed for Google OAuth
  google-api-python-client
555

556 557 558
# Used by ERP5 Jupyter backend
  ipykernel

559 560 561
# parameterizing the version of the generated python interpreter name by the
# python section version causes dependency between this egg section and the
# installation of python, which we don't want on an instance
562
interpreter = ${buildout:python}
563
scripts =
564
  apachedex
565 566 567 568 569
  repozo
  runzope
  runzeo
  tidstoraged
  tidstorage_repozo
570
  web_checker_utility = erp5.util.webchecker:web_checker_utility
571 572

extra-paths =
573
  ${erp5:location}
574

575 576
# patches for eggs
patch-binary = ${patch:location}/bin/patch
577
Acquisition-patches = ${:_profile_base_location_}/../../component/egg-patch/Acquisition/aq_dynamic.patch#e8029103350dad364d25747514a20327
578
Acquisition-patch-options = -p1
579
Products.DCWorkflow-patches = ${:_profile_base_location_}/../../component/egg-patch/Products.DCWorkflow/workflow_method.patch#975b49e96bae33ac8563454fe5fa9899
580
Products.DCWorkflow-patch-options = -p1
581
python-magic-patches = ${:_profile_base_location_}/../../component/egg-patch/python_magic/magic.patch#de0839bffac17801e39b60873a6c2068
582
python-magic-patch-options = -p1
583

584 585 586 587 588 589
[eggs-all-scripts]
recipe = zc.recipe.egg
eggs =
  munnel
patch-binary = ${eggs:patch-binary}

590 591
[zodbanalyze]
recipe = zc.recipe.egg
592
eggs = erp5.util
593 594 595 596
entry-points =
  zodbanalyze=erp5.util.zodbanalyze:main
scripts = zodbanalyze

597 598 599 600 601
# develop erp5.util from parts/erp5/
[erp5-util-develop]
recipe = zc.recipe.egg:develop
setup = ${erp5:location}

602
[cloudooo-repository]
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
603
branch =
604
revision = 00604a3a5a69082f7c607665cc6badd5104a32b9
605

606
[slapos-deps-eggs]
607
recipe = zc.recipe.egg
608
eggs +=
Łukasz Nowak's avatar
Łukasz Nowak committed
609
  slapos.toolbox[zodbpack]
610
scripts +=
611
  is-local-tcp-port-opened
612
  is-process-older-than-dependency-set
613
  runApacheDex
Łukasz Nowak's avatar
Łukasz Nowak committed
614
  zodbpack
615

616
[versions]
617
# See ../../software/neoppod/software-common.cfg for versions common with NEO:
618
#  neoppod, mysqlclient, slapos.recipe.template & [slapos-deps-eggs]
619

620
# patched eggs
621
Acquisition = 2.13.9+SlapOSPatched001
622
Products.DCWorkflow = 2.2.4+SlapOSPatched001
623
ocropy = 1.0+SlapOSPatched001
624
pysvn = 1.7.10+SlapOSPatched002
625
python-ldap = 2.4.32+SlapOSPatched001
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
626
python-magic = 0.4.12+SlapOSPatched001
627

628 629 630 631
# specify dev version to be sure that an old released version is not used
cloudooo = 1.2.5-dev

# use newer version than specified in ZTK
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
632
PasteDeploy = 1.5.2
633
argparse = 1.4.0
634
coverage = 4.3.4
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
635
zope.dottedname = 4.1.0
636 637 638 639

# test_UserManagerInterfaces in testERP5Security fails with 1.10.0.
Products.PluggableAuthService = 1.9.0

640
# we are still using this old stable version.
641
rdiff-backup = 1.0.5+SlapOSPatched001
642

643 644
# use newest version of slapos.cookbook
slapos.cookbook =
645 646 647

# modified version that works fine for buildout installation
SOAPpy = 0.12.0nxd001
648

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
649
# CMF 2.3 is not yet supported.
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
650
Products.CMFCalendar = 2.2.3
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
651
Products.CMFCore = 2.2.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
652
Products.CMFDefault = 2.2.4
653 654
Products.CMFTopic = 2.2.1
Products.CMFUid = 2.2.1
655

656 657 658 659 660 661
# newer version requires zope.traversing>=4.0.0a2.
zope.app.appsetup = 3.16.0

# newer version requires zope.i18n>=4.0.0a3
zope.app.publication = 3.14.0

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
662
# newer version requires zope.testbrowser>=4
663 664
zope.app.testing = 3.8.1

665
# Pinned versions
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
666
Pillow = 4.0.0
667 668
Products.CMFActionIcons = 2.1.3
Products.DCWorkflowGraph = 0.4.1
669 670
# Products.ExternalEditor 2.0.0's dtml is not based on Zope2 OFS's one.
Products.ExternalEditor = 1.1.1
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
671
Products.GenericSetup = 1.8.6
672
Products.LongRequestLogger = 2.0.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
673
# Products.MimetypesRegistry 2.1 requires AccessControl>=3.0.0Acquisition.
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
674
Products.MimetypesRegistry = 2.0.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
675
Products.PluginRegistry = 1.4
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
676
Products.TIDStorage = 5.4.9
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
677
PyPDF2 = 1.26.0
678
PyStemmer = 1.3.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
679
PyXML = 0.8.5
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
680
Pympler = 0.4.3
681 682
StructuredText = 2.11.1
WSGIUtils = 0.7
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
683 684
# ZEO 5 requires transaction >= 2
ZEO = 4.3.1
685
ZODB3 = 3.11.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
686
# astroid 1.4.1 breaks testDynamicClassGeneration
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
687
astroid = 1.3.8
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
688
chardet = 2.3.0
689
csp-eventlet = 0.7.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
690
erp5diff = 0.8.1.7
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
691
eventlet = 0.20.1
692
five.formlib = 1.0.4
693
five.localsitemanager = 2.0.5
694
google-api-python-client = 1.6.1
695
greenlet = 0.4.12
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
696
http-parser = 0.8.3
697
httplib2 = 0.10.3
698
huBarcode = 1.0.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
699
interval = 1.0.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
700
ipdb = 0.10.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
701
logilab-common = 1.3.0
702
munnel = 0.3
703
nt-svcutils = 2.13.0
704
oauth2client = 4.0.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
705
objgraph = 3.1.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
706
ply = 3.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
707
polib = 1.0.8
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
708
pprofile = 1.10.0
709 710
pyasn1 = 0.2.3
pyasn1-modules = 0.0.8
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
711
pycountry = 17.1.8
712
pycrypto = 2.6.1
713
pycurl = 7.43.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
714
pyflakes = 1.5.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
715
# pylint 1.5.1 breaks testDynamicClassGeneration
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
716
pylint = 1.4.4
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
717
python-memcached = 1.58
718
pytracemalloc = 1.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
719
qrcode = 5.3
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
720
restkit = 4.2.2
721
rsa = 3.4.2
722
rtjp-eventlet = 0.3.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
723
socketpool = 0.5.3
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
724
spyne = 2.12.14
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
725
suds = 0.4
726 727
threadframe = 0.2
timerserver = 2.0.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
728
urlnorm = 1.1.4
729
uuid = 1.30
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
730
validictory = 1.1.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
731
xfw = 0.10
732
xupdate-processor = 0.4
733
selenium = 2.53.1
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
734 735

# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
736
# Products.CMFCore==2.2.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
737
Products.ZSQLMethods = 2.13.5
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
738

739
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
740 741
# eventlet==0.20.1
enum-compat = 0.0.2
742

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
743
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
744
# SOAPpy===0.12.0nxd001
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
745 746
fpconst = 0.7.2

747
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
748 749
# objgraph==3.1.0
graphviz = 0.5.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
750

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
751 752 753
# Required by:
# Pillow==4.0.0
olefile = 0.44
754

755 756 757 758
# Required by:
# munnel==0.3
python-libmilter = 1.0.3

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
759 760
# Required by:
# zope.app.testing==3.8.1
761
zope.app.debug = 3.4.1
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
762 763 764

# Required by:
# zope.app.testing==3.8.1
765
zope.app.dependable = 3.5.1
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
766 767 768 769

# Required by:
# Products.CMFCalendar==2.2.3
# five.formlib==1.0.4
770
zope.app.form = 4.0.2