scrapinghub / splash

Lightweight, scriptable browser as a service with an HTTP API
BSD 3-Clause "New" or "Revised" License
4.04k stars 508 forks source link

Docker build fails due to funcparserlib==0.3.6 dependency broken by recent setuptools upgrade #1136

Open nirvana-msu opened 2 years ago

nirvana-msu commented 2 years ago

Docker build fails with the following error:

Collecting funcparserlib==0.3.6
  Downloading funcparserlib-0.3.6.tar.gz (30 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-l8cxiek5/funcparserlib_3f9ec2eebf134974b1e6178a8541b96a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-l8cxiek5/funcparserlib_3f9ec2eebf134974b1e6178a8541b96a/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-w1h7pvkw
         cwd: /tmp/pip-install-l8cxiek5/funcparserlib_3f9ec2eebf134974b1e6178a8541b96a/
    Complete output (1 lines):
    error in funcparserlib setup command: use_2to3 is invalid.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/cb/f7/b4a59c3ccf67c0082546eaeb454da1a6610e924d2e7a2a21f337ecae7b40/funcparserlib-0.3.6.tar.gz#sha256=b7992eac1a3eb97b3d91faa342bfda0729e990bd8a43774c1592c091e563c91d (from https://pypi.org/simple/funcparserlib/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement funcparserlib==0.3.6 (from versions: 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 1.0.0a0)
ERROR: No matching distribution found for funcparserlib==0.3.6
The command '/bin/sh -c /tmp/install-python-splash-deps.sh' returned a non-zero code: 1

This has been raised in https://github.com/vlasovskikh/funcparserlib/issues/70, and the fix is to install funcparserlib==1.0.0a0.

Outdated dependency is hardcoded here: https://github.com/scrapinghub/splash/blob/d1d06f4/dockerfiles/splash/install-python-splash-deps.sh#L13

As a side note, you need to pin specific (working) version of setuptools, pip etc to guarantee that the builds won't break like this. Simply using latest version will lead to more issues like this.