dslab-epfl / klint

Repository for the "Automated Verification of Network Function Binaries" paper (NSDI'22).
MIT License
8 stars 5 forks source link

Can't create the venv any more #14

Closed SolalPirelli closed 1 year ago

SolalPirelli commented 1 year ago
solal@blue:~/klint$ make verify-nop
python3 -m venv /home/solal/klint/tool/venv
touch /home/solal/klint/tool/venv/.venv-created
. /home/solal/klint/tool/venv/bin/activate && \
        pip install /home/solal/klint/tool
Processing ./tool
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /home/solal/klint/tool/venv/bin/python3 /tmp/tmp1z20lyvd get_requires_for_build_wheel /tmp/tmpjba7y6pd
       cwd: /tmp/pip-req-build-opds1t5h
  Complete output (35 lines):
  Traceback (most recent call last):
    File "/tmp/tmp1z20lyvd", line 280, in <module>
      main()
    File "/tmp/tmp1z20lyvd", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/tmp/tmp1z20lyvd", line 114, in get_requires_for_build_wheel
      return hook(config_settings)
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 338, in get_requires_for_build_wheel
      return self._get_build_requires(config_settings, requirements=['wheel'])
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 320, in _get_build_requires
      self.run_setup()
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools/build_meta.py", line 335, in run_setup
      exec(code, locals())
    File "<string>", line 1, in <module>
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools/__init__.py", line 108, in setup
      return distutils.core.setup(**attrs)
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 147, in setup
      _setup_distribution = dist = klass(attrs)
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 475, in __init__
      _Distribution.__init__(
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 283, in __init__
      self.finalize_options()
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 904, in finalize_options
      ep(self)
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools_scm/integration.py", line 127, in infer_version
      _assign_version(dist, config)
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools_scm/integration.py", line 63, in _assign_version
      _version_missing(config)
    File "/tmp/pip-build-env-wi944sv2/overlay/lib/python3.8/site-packages/setuptools_scm/__init__.py", line 108, in _version_missing
      raise LookupError(
  LookupError: setuptools-scm was unable to detect version for /tmp.

  Make sure you're either building from a fully intact git repository or PyPI tarballs. Most other sources (such as GitHub's tarballs, a git checkout without the .git folder) don't contain the necessary metadata and will not work.

  For example, if you're using pip, instead of https://github.com/user/proj/archive/master.zip use git+https://github.com/user/proj.git#egg=proj
  ----------------------------------------
ERROR: Command errored out with exit status 1: /home/solal/klint/tool/venv/bin/python3 /tmp/tmp1z20lyvd get_requires_for_build_wheel /tmp/tmpjba7y6pd Check the logs for full command output.
make: *** [Makefile:30: /home/solal/klint/tool/venv/.env-done] Error 1

@tharvik does your fancy venv creation have some requirements beyond just having Python installed? It first asked me to get python3.8-venv on apt, which I did, and now it outputs this. And /tmp is completely empty so no logs or files I can inspect.

tharvik commented 1 year ago

Hum, it seems that setuptools_scm does have an issue with old versions of pip. It is to simplify releases of the tool by automatically generating the version based on the latest git-tag. But old pip builds outside of the git-dir so it's unable to find the actual version.

I've bumped the minimum supported version of python to 3.10 (available since 22.04 on Ubuntu), which brings a newer pip fixing this.

SolalPirelli commented 1 year ago

Indeed, with 3.10 it works. I've updated the readme to point that out (and my own Ubuntu install...). Thanks.