buildout.cfg 19.4 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 10 11
  ../../component/fonts/buildout.cfg
  ../../component/git/buildout.cfg
  ../../component/graphviz/buildout.cfg
  ../../component/gzip/buildout.cfg
12
  ../../component/xz-utils/buildout.cfg
13
  ../../component/haproxy/buildout.cfg
14
  ../../component/findutils/buildout.cfg
15 16
  ../../component/librsvg/buildout.cfg
  ../../component/imagemagick/buildout.cfg
17
  ../../component/jpegoptim/buildout.cfg
18 19
  ../../component/kumo/buildout.cfg
  ../../component/libdmtx/buildout.cfg
20
  ../../component/matplotlib/buildout.cfg
21
  ../../component/numpy/buildout.cfg
22 23
  ../../component/statsmodels/buildout.cfg
  ../../component/h5py/buildout.cfg
24
  ../../component/ocropy/buildout.cfg
25
  ../../component/optipng/buildout.cfg
26
  ../../component/pandas/buildout.cfg
27
  ../../component/percona-toolkit/buildout.cfg
28
  ../../component/patch/buildout.cfg
29
  ../../component/pillow/buildout.cfg
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
30
  ../../component/pycrypto-python/buildout.cfg
31 32 33
  ../../component/pysvn-python/buildout.cfg
  ../../component/python-ldap-python/buildout.cfg
  ../../component/rdiff-backup/buildout.cfg
34
  ../../component/scikit-learn/buildout.cfg
35 36
  ../../component/scikit-image/buildout.cfg
  ../../component/PyWavelets/buildout.cfg
37 38 39 40 41 42 43 44 45
  ../../component/subversion/buildout.cfg
  ../../component/tesseract/buildout.cfg
  ../../component/w3m/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
46
  ../../component/bash/buildout.cfg
47 48
  ../../component/wget/buildout.cfg
  ../../component/aspell/buildout.cfg
49
  ../../component/jsl/buildout.cfg
50
  ../../component/6tunnel/buildout.cfg
51
  ../../component/userhosts/buildout.cfg
52
  ../../component/postfix/buildout.cfg
Yusei Tahara's avatar
Yusei Tahara committed
53
  ../../component/zbarlight/buildout.cfg
54
  ../../component/pylint/buildout.cfg
55
  ../../component/perl-Image-ExifTool/buildout.cfg
56
  ../../component/wendelin.core/buildout.cfg
57
  ../../stack/caucase/buildout.cfg
58
  ../../software/jupyter/software.cfg
59 60
  ../../software/neoppod/software-common.cfg
# keep neoppod extends last
61

62
parts +=
63
  erp5-util-develop
64
  slapos-cookbook
65
  rdiff-backup
66
  mroonga-mariadb
67
  tesseract
68 69
  tesseract-eng-traineddata
  tesseract-osd-traineddata
70 71 72
  zabbix-agent

# Buildoutish
73
  eggs-all-scripts
74 75 76 77
  testrunner
  test_suite_runner

# get git repositories
78 79
  genbt5list

80
# some additional utils
81
  zodbanalyze
82
  zodbpack
83

84 85 86
# Create instance template
  template

87
# jupyter
88
  jupyter-notebook-initialized-scripts
89

90

91 92
# override instance-jupyter-notebook not to render into default template.cfg
[instance-jupyter-notebook]
93 94
rendered = ${buildout:directory}/template-jupyter.cfg

95
[download-base]
96
<= download-base-neo
97 98
url = ${:_profile_base_location_}/${:filename}

99 100 101 102
[mariadb-start-clone-from-backup]
<= download-base
mode = 755

103
[mariadb-resiliency-after-import-script]
104
<= download-base
105 106
mode = 755

107 108 109 110
[mariadb-slow-query-report-script]
<= download-base
mode = 755

111
[template-mariadb]
112
<= download-base
113 114 115 116 117 118 119
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
120
  ${gettext:location}/lib/gettext/hostname
121 122
  ${grep:location}/bin/grep
  ${sed:location}/bin/sed
123
  ${mariadb:location}/bin/mysqlbinlog
124 125

[template-kumofs]
126
<= download-base
127 128

[template-zope-conf]
129
<= download-base
130

131
[site-zcml]
132
<= download-base
133

134
[template-my-cnf]
135
<= download-base
136 137

[template-mariadb-initial-setup]
138
<= download-base
139

140 141 142 143 144 145 146 147
[template-postfix]
< = download-base

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

[template-postfix-main-cf]
< = download-base
148 149 150

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

152 153
[template-run-zelenium]
< = download-base
154

155

156
[template]
157
recipe = slapos.recipe.template:jinja2
158
# XXX: "template.cfg" is hardcoded in instanciation recipe
159
rendered = ${buildout:directory}/template.cfg
160
template = ${:_profile_base_location_}/${:filename}
161 162
mode = 640
context =
163
    key mariadb_link_binary template-mariadb:link-binary
164
    key zope_link_binary template-zope:link-binary
165 166
    key zope_fonts template-zope:fonts
    key zope_fontconfig_includes template-zope:fontconfig-includes
167
    key apache_location apache:location
168
    key bin_directory buildout:bin-directory
169
    key buildout_bin_directory buildout:bin-directory
170
    key caucase_jinja2_library caucase-jinja2-library:target
171
    key coreutils_location coreutils:location
172
    key curl_location curl:location
173
    key cyrus_sasl_location cyrus-sasl:location
174
    key dash_location dash:location
175
    key bash_location bash:location
176
    key dcron_location dcron:location
177
    key default_cloudooo_url erp5-defaults:cloudooo-connection-url
178
    key erp5_location erp5:location
179
    key findutils_location findutils:location
180
    key gzip_location gzip:location
181
    key xz_utils_location xz-utils:location
182
    key haproxy_location haproxy:location
183
    key instance_common_cfg instance-common:rendered
184
    key jsl_location jsl:location
185
    key jupyter_enable_default erp5-defaults:jupyter-enable-default
186
    key kumo_location kumo:location
187
    key local_bt5_repository local-bt5-repository:list
188 189
    key logrotate_location logrotate:location
    key mariadb_location mariadb:location
190
    key mariadb_resiliency_after_import_script mariadb-resiliency-after-import-script:target
191
    key mariadb_slow_query_report_script mariadb-slow-query-report-script:target
192
    key mariadb_start_clone_from_backup mariadb-start-clone-from-backup:target
193
    key mroonga_mariadb_install_sql mroonga-mariadb:install-sql
194 195 196
    key mroonga_mariadb_plugin_dir mroonga-mariadb:plugin-dir
    key groonga_plugin_dir groonga:groonga-plugin-dir
    key groonga_mysql_normalizer_plugin_dir groonga-normalizer-mysql:groonga-plugin-dir
197
    key matplotlibrc_location matplotlibrc:location
198
    key parts_directory buildout:parts-directory
199
    key openssl_location openssl:location
200
    key percona_toolkit_location percona-toolkit:location
201
    key perl_dbd_mariadb_path perl-DBD-mariadb:perl-PATH
202
    key postfix_location postfix:location
203
    key root_common root-common:target
204
    key site_zcml site-zcml:target
205
    key sixtunnel_location 6tunnel:location
206 207
    key template_run_zelenium template-run-zelenium:target
    key egg_interpreter eggs:interpreter
208
    key template_apache_conf template-apache-backend-conf:target
209
    key template_balancer template-balancer:target
210
    key template_erp5 template-erp5:target
211
    key template_haproxy_cfg template-haproxy-cfg:target
212
    key template_jupyter_cfg instance-jupyter-notebook:rendered
213
    key template_kumofs template-kumofs:target
214
    key template_mariadb template-mariadb:target
215 216
    key template_mariadb_initial_setup template-mariadb-initial-setup:target
    key template_my_cnf template-my-cnf:target
217
    key template_mysqld_wrapper template-mysqld-wrapper:rendered
218
    key template_postfix template-postfix:target
219
    key template_postfix_aliases template-postfix-aliases:target
220 221
    key template_postfix_main_cf template-postfix-main-cf:target
    key template_postfix_master_cf template-postfix-master-cf:target
222
    key template_zeo template-zeo:target
223 224
    key template_zope template-zope:target
    key template_zope_conf template-zope-conf:target
225
    key template_fonts_conf template-fonts-conf:output
226
    key userhosts_location userhosts:location
227
    key unixodbc_location unixodbc:location
228
    key wget_location wget:location
229
    key extra_path_list eggs:extra-paths
230

231
[template-erp5]
232
<= download-base
233

234
[template-zeo]
235
<= download-base
236

237
[template-zope]
238
<= download-base
239
link-binary =
240
  ${aspell-en-dictionary:bin-aspell}
241 242 243 244 245 246
  ${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
247
  ${jpegoptim:location}/bin/jpegoptim
248 249
  ${jsl:location}/bin/jsl
  ${librsvg:location}/bin/rsvg-convert
250 251
  ${mariadb:location}/bin/mysql
  ${mariadb:location}/bin/mysqldump
252
  ${openssl:location}/bin/openssl
253
  ${optipng:location}/bin/optipng
254
  ${perl-Image-ExifTool:location}/bin/exiftool
255 256 257 258 259 260
  ${poppler:location}/bin/pdfinfo
  ${poppler:location}/bin/pdftohtml
  ${poppler:location}/bin/pdftotext
  ${sed:location}/bin/sed
  ${tesseract:location}/bin/tesseract
  ${w3m:location}/bin/w3m
261 262 263 264 265 266 267 268 269
fonts =
  ${liberation-fonts:location}
  ${ipaex-fonts:location}
  ${ipa-fonts:location}
  ${ocrb-fonts:location}
  ${android-fonts:location}
fontconfig-includes =
  ${fontconfig:location}/etc/fonts/conf.d

270 271

[template-balancer]
272
<= download-base
273

274
[template-haproxy-cfg]
275
<= download-base
276

277 278 279 280 281
[erp5-bin]
<= erp5
repository = https://lab.nexedi.com/nexedi/erp5-bin.git
branch = master

282 283 284 285 286
[erp5-doc]
<= erp5
repository = https://lab.nexedi.com/nexedi/erp5-doc.git
branch = master

287 288 289 290 291 292 293 294 295 296 297
[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.
298
list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap ${erp5-bin:location}/bt5 ${erp5-doc:location}/bt5
299 300 301 302 303 304

[genbt5list]
recipe = plone.recipe.command
stop-on-error = true
genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list
command =
305
  echo '${local-bt5-repository:list}' |xargs ${buildout:executable} ${:genbt5list}
306
update-command = ${:command}
307 308

[erp5_repository_list]
309
repository_id_list = erp5 erp5-bin erp5-doc
310

311 312
# ERP5 defaults, which can be overridden in inheriting recipes (e.g. wendelin)
[erp5-defaults]
313
cloudooo-connection-url = https://cloudooo.erp5.net/
314 315 316
# Jupyter is by default disabled in ERP5
jupyter-enable-default = false

317
[erp5]
318
recipe = slapos.recipe.build:gitclone
319
repository = https://lab.nexedi.com/nexedi/erp5.git
320
branch = master
321
git-executable = ${git:location}/bin/git
322 323 324 325 326 327 328 329

[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 =
330
  runUnitTest=runUnitTest:main
331 332
scripts = runUnitTest
initialization =
333
  import glob, os, sys
334
  import Products
335 336
  Products.__path__[:0] = filter(None,
    os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep))
337
  os.environ['ZOPE_SCRIPTS'] = ''
Vincent Pelletier's avatar
Vincent Pelletier committed
338
  parts_directory = '''${buildout:parts-directory}'''
339 340
  repository_id_list = \
    '''${erp5_repository_list:repository_id_list}'''.split()[::-1]
341 342
  os.environ['erp5_tests_bt5_path'] = ','.join(
    os.path.join(parts_directory, x, 'bt5') for x in repository_id_list)
343
  extra_path_list = '''${:extra-paths}'''.split()
344
  sys.path[:0] = sum((
345 346
    glob.glob(os.path.join(x, 'tests'))
    for x in extra_path_list), [])
347
  sys.path[:0] = sum((
348 349
    glob.glob(os.path.join(x, 'Products', '*', 'tests'))
    for x in extra_path_list), [])
350 351 352
  sys.path[:0] = sum((
    glob.glob(os.path.join(x, 'Products', '*', 'tests'))
    for x in os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep)), [])
353
  os.environ['PATH'] = '${jsl:location}/bin:%s' % os.environ['PATH']
354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369

[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]
  os.environ['ZOPE_SCRIPTS'] = ''
370
  repository_id_list = list(reversed('''${erp5_repository_list:repository_id_list}'''.split()))
371
  sys.path[0:0] = ['/'.join(['''${buildout:parts-directory}''', x]) for x in repository_id_list]
372 373

[eggs]
374
<= neoppod
375
eggs = ${neoppod:eggs}
376
  ${caucase-eggs:eggs}
377
  ${wendelin.core:egg}
378
  ${numpy:egg}
379
  ${matplotlib:egg}
380
  ${lxml-python:egg}
381
  ${ocropy:egg}
382
  ${pandas:egg}
383
  ${pillow-python:egg}
384 385
  ${python-ldap-python:egg}
  ${pysvn-python:egg}
386
  ${pycrypto-python:egg}
387
  ${scipy:egg}
388
  ${scikit-learn:egg}
389
  ${scikit-image:egg}
390
  sympy
391
  more-itertools
392 393 394
  ${h5py:egg}
  openpyxl
  ${statsmodels:egg}
Yusei Tahara's avatar
Yusei Tahara committed
395
  ${zbarlight:egg}
396
  lock_file
397
  astor
398
  APacheDEX
399
  PyStemmer
400
  PyXML
401
  Pympler
402 403
  SOAPpy
  chardet
404
  collective.recipe.template
Aurel's avatar
Aurel committed
405
  coverage
406
  erp5diff
407
  interval
408
  ipdb
409
  Jinja2
410
  jsonschema
411
  mechanize
Jérome Perrin's avatar
Jérome Perrin committed
412
  mock
413
  oauthlib
414
  objgraph
415 416
  paramiko
  ply
Jérome Perrin's avatar
Jérome Perrin committed
417
  pyflakes
Gabriel Monnerat's avatar
Gabriel Monnerat committed
418
  PyPDF2
419 420 421
  python-magic
  python-memcached
  pytz
422
  requests
Jérome Perrin's avatar
Jérome Perrin committed
423
  responses
424 425 426 427 428 429 430
  threadframe
  timerserver
  urlnorm
  uuid
  xml_marshaller
  xupdate_processor
  feedparser
431
  validictory
432
  erp5.util
433
  z3c.etestbrowser
434
  huBarcode
435
  qrcode
436
  spyne
437 438
  httplib2
  suds
439
  pprofile
440
  pycountry
Jérome Perrin's avatar
Jérome Perrin committed
441
  xfw
442
  jsonschema
Vincent Bechu's avatar
Vincent Bechu committed
443
  selenium
444 445 446
  pytesseract
  decorator
  networkx
447
# Needed for checking ZODB Components source code
448
  ${pylint:egg}
Jérome Perrin's avatar
Jérome Perrin committed
449
  jedi
Jérome Perrin's avatar
Jérome Perrin committed
450
  yapf
Jérome Perrin's avatar
Jérome Perrin committed
451
  typing
452
  pytracemalloc
453
  xlrd
454

Vincent Pelletier's avatar
Vincent Pelletier committed
455
# Zope
456
  Zope2
Vincent Pelletier's avatar
Vincent Pelletier committed
457
# Zope acquisition patch
458
  Acquisition
459
# for runzeo
460
  ${ZEO:egg}
461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481

# 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
482
  Products.LongRequestLogger
483

484 485 486 487
# BBB: Temporarily keep zope.app.testing awaiting we use newer version of CMF
#      (for tests like testCookieCrumbler).
  zope.app.testing

488 489 490 491 492
# Currently forked in our repository
#    Products.PortalTransforms
# Dependency for our fork of PortalTransforms
  StructuredText

493 494
# Needed for parsing .po files from our Localizer subset
  polib
Rafael Monnerat's avatar
Rafael Monnerat committed
495

496 497
# Needed for Google OAuth
  google-api-python-client
498

Rafael Monnerat's avatar
Rafael Monnerat committed
499 500 501
# Need for Facebook OAuth
  facebook-sdk

502 503 504
# Used by ERP5 Jupyter backend
  ipykernel

505 506 507 508 509 510
# Used by DiffTool
  xmltodict
  deepdiff
  unidiff
  jsonpickle

511 512 513 514
# WSGI server
  zope.globalrequest
  waitress

515 516 517
# 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
518
interpreter = ${buildout:python}
519 520
entry-points =
  runwsgi=Products.ERP5.bin.zopewsgi:runwsgi
521
scripts =
522
  apachedex
523
  performance_tester_erp5
524
  runwsgi
525 526 527 528
  runzope
  runzeo
  tidstoraged
  tidstorage_repozo
529
  web_checker_utility
530 531

extra-paths =
532
  ${erp5:location}
533

534 535
# patches for eggs
patch-binary = ${patch:location}/bin/patch
Gabriel Monnerat's avatar
Gabriel Monnerat committed
536 537
PyPDF2-patches = ${:_profile_base_location_}/../../component/egg-patch/PyPDF2/0001-Custom-implementation-of-warnings.formatwarning-remo.patch#d25bb0f5dde7f3337a0a50c2f986f5c8
PyPDF2-patch-options = -p1
538
Acquisition-patches = ${:_profile_base_location_}/../../component/egg-patch/Acquisition/aq_dynamic.patch#1d9a56e9af4371f5b6951ebf217a15d7
539
Acquisition-patch-options = -p1
540
Products.DCWorkflow-patches = ${:_profile_base_location_}/../../component/egg-patch/Products.DCWorkflow/workflow_method.patch#975b49e96bae33ac8563454fe5fa9899
541
Products.DCWorkflow-patch-options = -p1
542
python-magic-patches = ${:_profile_base_location_}/../../component/egg-patch/python_magic/magic.patch#de0839bffac17801e39b60873a6c2068
543
python-magic-patch-options = -p1
544

545 546 547 548 549 550
[eggs-all-scripts]
recipe = zc.recipe.egg
eggs =
  munnel
patch-binary = ${eggs:patch-binary}

551 552
[zodbanalyze]
recipe = zc.recipe.egg
553
eggs = erp5.util
554 555 556 557
entry-points =
  zodbanalyze=erp5.util.zodbanalyze:main
scripts = zodbanalyze

558 559 560 561 562
# develop erp5.util from parts/erp5/
[erp5-util-develop]
recipe = zc.recipe.egg:develop
setup = ${erp5:location}

563
[zodbpack]
564
recipe = zc.recipe.egg
565
eggs =
Łukasz Nowak's avatar
Łukasz Nowak committed
566
  slapos.toolbox[zodbpack]
567
scripts =
Łukasz Nowak's avatar
Łukasz Nowak committed
568
  zodbpack
569 570
depends =
  ${slapos-toolbox-dependencies:eggs}
571

572
[versions]
573
# See ../../software/neoppod/software-common.cfg for versions common with NEO:
574
#  neoppod, mysqlclient, slapos.recipe.template
575

576
# patched eggs
577
Acquisition = 2.13.12+SlapOSPatched001
578
Products.DCWorkflow = 2.2.4+SlapOSPatched001
579
ocropy = 1.0+SlapOSPatched001
580
pysvn = 1.7.10+SlapOSPatched002
581
python-ldap = 2.4.32+SlapOSPatched001
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
582
python-magic = 0.4.12+SlapOSPatched001
Gabriel Monnerat's avatar
Gabriel Monnerat committed
583
PyPDF2 = 1.26.0+SlapOSPatched001
584 585
## https://lab.nexedi.com/nexedi/slapos/merge_requests/648
pylint = 1.4.4
586

587
# use newer version than specified in ZTK
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
588
PasteDeploy = 1.5.2
589
argparse = 1.4.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
590
zope.dottedname = 4.1.0
591 592 593 594

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

595
# we are still using this old stable version.
596
rdiff-backup = 1.0.5+SlapOSPatched001
597

598 599
# modified version that works fine for buildout installation
SOAPpy = 0.12.0nxd001
600

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
601
# CMF 2.3 is not yet supported.
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
602
Products.CMFCalendar = 2.2.3
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
603
Products.CMFCore = 2.2.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
604
Products.CMFDefault = 2.2.4
605 606
Products.CMFTopic = 2.2.1
Products.CMFUid = 2.2.1
607

608 609 610 611 612 613
# 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
614
# newer version requires zope.testbrowser>=4
615 616
zope.app.testing = 3.8.1

617
# Pinned versions
618
APacheDEX = 1.6.2
619
Pillow = 6.2.2
620 621
Products.CMFActionIcons = 2.1.3
Products.DCWorkflowGraph = 0.4.1
622 623
# 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
624
Products.GenericSetup = 1.8.6
625
Products.LongRequestLogger = 2.1.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
626
# Products.MimetypesRegistry 2.1 requires AccessControl>=3.0.0Acquisition.
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
627
Products.MimetypesRegistry = 2.0.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
628
Products.PluginRegistry = 1.4
629
Products.TIDStorage = 5.5.0
630
pyPdf = 1.13
631
PyStemmer = 1.3.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
632
PyXML = 0.8.5
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
633
Pympler = 0.4.3
634 635
StructuredText = 2.11.1
WSGIUtils = 0.7
636
ZODB3 = 3.11.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
637
# astroid 1.4.1 breaks testDynamicClassGeneration
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
638
astroid = 1.3.8
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
639
erp5diff = 0.8.1.7
640
five.formlib = 1.0.4
641
five.localsitemanager = 2.0.5
642
google-api-python-client = 1.6.1
643
httplib2 = 0.10.3
644
huBarcode = 1.0.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
645
interval = 1.0.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
646
ipdb = 0.10.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
647
logilab-common = 1.3.0
648
munnel = 0.3
649
nt-svcutils = 2.13.0
650
oauth2client = 4.0.0
651
oauthlib = 3.1.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
652
objgraph = 3.1.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
653
ply = 3.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
654
polib = 1.0.8
655
pprofile = 2.0.4
656
pyasn1-modules = 0.0.8
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
657
pycountry = 17.1.8
658
pycrypto = 2.6.1
659
pycurl = 7.43.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
660
pyflakes = 1.5.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
661
python-memcached = 1.58
662
pytracemalloc = 1.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
663
qrcode = 5.3
664
rsa = 3.4.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
665
spyne = 2.12.14
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
666
suds = 0.4
Rafael Monnerat's avatar
Rafael Monnerat committed
667
facebook-sdk = 2.0.0
668
threadframe = 0.2
669
timerserver = 2.0.4
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
670
urlnorm = 1.1.4
671
uuid = 1.30
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
672
validictory = 1.1.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
673
xfw = 0.10
674
xupdate-processor = 0.4
675
selenium = 3.8.0
676 677 678
scikit-image = 0.14.0
PyWavelets = 0.5.2
networkx = 2.1
679
pytesseract = 0.2.2
680
zbarlight = 2.3
681 682 683
cloudpickle = 0.5.3
dask = 0.18.1
toolz = 0.9.0
684 685
zope.globalrequest = 1.5
waitress = 1.3.0
686
xlrd = 1.1.0
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
687

688 689 690
# Re-add for as it is required to be there for uninstallation
erp5.recipe.w3validator = 1.0.2

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
691
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
692
# Products.CMFCore==2.2.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
693
Products.ZSQLMethods = 2.13.5
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
694

695
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
696
# SOAPpy===0.12.0nxd001
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
697 698
fpconst = 0.7.2

699
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
700 701
# objgraph==3.1.0
graphviz = 0.5.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
702

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
703
# Required by:
704
# Pillow==6.2.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
705
olefile = 0.44
706

707 708 709 710
# Required by:
# munnel==0.3
python-libmilter = 1.0.3

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
711 712
# Required by:
# zope.app.testing==3.8.1
713
zope.app.debug = 3.4.1
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
714 715 716

# Required by:
# zope.app.testing==3.8.1
717
zope.app.dependable = 3.5.1
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
718 719 720 721

# Required by:
# Products.CMFCalendar==2.2.3
# five.formlib==1.0.4
722
zope.app.form = 4.0.2
723 724 725 726 727 728 729 730 731 732

et-xmlfile = 1.0.1
h5py = 2.7.1
mpmath = 0.19
openpyxl = 2.4.8
sympy = 1.1.1

# Required by:
# openpyxl==2.4.8
jdcal = 1.3
733 734 735 736 737 738 739 740

xmltodict = 0.11.0
deepdiff = 3.3.0
unidiff = 0.5.5

# Required by:
# deepdiff = 3.3.0
jsonpickle = 0.9.6
Jérome Perrin's avatar
Jérome Perrin committed
741

Jérome Perrin's avatar
Jérome Perrin committed
742 743 744 745 746
responses = 0.10.6

# Required by:
# responses = 0.10.6
cookies = 2.2.1
Jérome Perrin's avatar
Jérome Perrin committed
747 748 749

jedi = 0.15.1
parso = 0.5.1
Jérome Perrin's avatar
Jérome Perrin committed
750 751

yapf = 0.28.0
Jérome Perrin's avatar
Jérome Perrin committed
752

753 754 755 756 757 758 759 760 761 762 763 764 765 766 767
# Required by:
# erp5.util==0.4.65
z3c.etestbrowser = 3.0.1
zope.testbrowser = 5.5.1

# Required by:
# zope.testbrowser==5.5.1
WSGIProxy2 = 0.4.6
WebTest = 2.0.33
beautifulsoup4 = 4.8.2

# Required by:
# WSGIProxy2==0.4.6
WebOb = 1.8.5
soupsieve = 1.9.5