buildout.cfg 19.3 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
  ../../stack/caucase/buildout.cfg
57
  ../../software/jupyter/software.cfg
58 59
  ../../software/neoppod/software-common.cfg
# keep neoppod extends last
60

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

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

# get git repositories
77 78
  genbt5list

79
# some additional utils
80
  zodbanalyze
81
  zodbpack
82

83 84 85
# Create instance template
  template

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

89

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

154

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

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

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

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

269 270

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

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

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

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

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

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

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

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

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

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

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

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

Vincent Pelletier's avatar
Vincent Pelletier committed
452
# Zope
453
  Zope2
Vincent Pelletier's avatar
Vincent Pelletier committed
454
# Zope acquisition patch
455
  Acquisition
456 457
# for runzeo
  ZEO
458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478

# 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
479
  Products.LongRequestLogger
480

481 482 483 484
# BBB: Temporarily keep zope.app.testing awaiting we use newer version of CMF
#      (for tests like testCookieCrumbler).
  zope.app.testing

485 486 487 488 489
# Currently forked in our repository
#    Products.PortalTransforms
# Dependency for our fork of PortalTransforms
  StructuredText

490 491
# Needed for parsing .po files from our Localizer subset
  polib
Rafael Monnerat's avatar
Rafael Monnerat committed
492

493 494
# Needed for Google OAuth
  google-api-python-client
495

Rafael Monnerat's avatar
Rafael Monnerat committed
496 497 498
# Need for Facebook OAuth
  facebook-sdk

499 500 501
# Used by ERP5 Jupyter backend
  ipykernel

502 503 504 505 506 507
# Used by DiffTool
  xmltodict
  deepdiff
  unidiff
  jsonpickle

508 509 510 511
# WSGI server
  zope.globalrequest
  waitress

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

extra-paths =
529
  ${erp5:location}
530

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

542 543 544 545 546 547
[eggs-all-scripts]
recipe = zc.recipe.egg
eggs =
  munnel
patch-binary = ${eggs:patch-binary}

548 549
[zodbanalyze]
recipe = zc.recipe.egg
550
eggs = erp5.util
551 552 553 554
entry-points =
  zodbanalyze=erp5.util.zodbanalyze:main
scripts = zodbanalyze

555 556 557 558 559
# develop erp5.util from parts/erp5/
[erp5-util-develop]
recipe = zc.recipe.egg:develop
setup = ${erp5:location}

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

569
[versions]
570
# See ../../software/neoppod/software-common.cfg for versions common with NEO:
571
#  neoppod, mysqlclient, slapos.recipe.template
572

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

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

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

592
# we are still using this old stable version.
593
rdiff-backup = 1.0.5+SlapOSPatched001
594

595 596
# modified version that works fine for buildout installation
SOAPpy = 0.12.0nxd001
597

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

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

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

684 685 686
# 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
687
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
688
# Products.CMFCore==2.2.10
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
689
Products.ZSQLMethods = 2.13.5
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
690

691
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
692
# SOAPpy===0.12.0nxd001
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
693 694
fpconst = 0.7.2

695
# Required by:
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
696 697
# objgraph==3.1.0
graphviz = 0.5.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
698

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
699
# Required by:
700
# Pillow==6.2.2
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
701
olefile = 0.44
702

703 704 705 706
# Required by:
# munnel==0.3
python-libmilter = 1.0.3

Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
707 708
# Required by:
# zope.app.testing==3.8.1
709
zope.app.debug = 3.4.1
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
710 711 712

# Required by:
# zope.app.testing==3.8.1
713
zope.app.dependable = 3.5.1
Kazuhiko Shiozaki's avatar
Kazuhiko Shiozaki committed
714 715 716 717

# Required by:
# Products.CMFCalendar==2.2.3
# five.formlib==1.0.4
718
zope.app.form = 4.0.2
719 720 721 722 723 724 725 726 727 728

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
729 730 731 732 733 734 735 736

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
737

Jérome Perrin's avatar
Jérome Perrin committed
738 739 740 741 742
responses = 0.10.6

# Required by:
# responses = 0.10.6
cookies = 2.2.1
Jérome Perrin's avatar
Jérome Perrin committed
743 744 745

jedi = 0.15.1
parso = 0.5.1
Jérome Perrin's avatar
Jérome Perrin committed
746 747

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

749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
# 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