Skip to content

Instructions for getting started don't work on macOS #40188

Open
@foolip

Description

I'm trying to follow these instructions:

https://web-platform-tests.org/running-tests/from-local-system.html
https://web-platform-tests.org/running-tests/safari.html

The command I'm running is ./wpt run --channel=preview safari dom/historical.html fullscreen/api/historical.html.

That fails in pip3 install, the equivalent of invoking ./_venv3/bin/pip3 install --prefer-binary -r tools/webtransport/requirements.txt. Running that directly produces this error:

Collecting aioquic==0.9.20
  Using cached aioquic-0.9.20.tar.gz (153 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: certifi in ./_venv3/lib/python3.11/site-packages (from aioquic==0.9.20->-r tools/webtransport/requirements.txt (line 1)) (2023.5.7)
Requirement already satisfied: cryptography>=3.1 in ./_venv3/lib/python3.11/site-packages (from aioquic==0.9.20->-r tools/webtransport/requirements.txt (line 1)) (40.0.2)
Requirement already satisfied: pylsqpack<0.4.0,>=0.3.3 in ./_venv3/lib/python3.11/site-packages (from aioquic==0.9.20->-r tools/webtransport/requirements.txt (line 1)) (0.3.17)
Requirement already satisfied: pyopenssl>=20 in ./_venv3/lib/python3.11/site-packages (from aioquic==0.9.20->-r tools/webtransport/requirements.txt (line 1)) (23.1.1)
Requirement already satisfied: cffi>=1.12 in ./_venv3/lib/python3.11/site-packages (from cryptography>=3.1->aioquic==0.9.20->-r tools/webtransport/requirements.txt (line 1)) (1.15.1)
Requirement already satisfied: pycparser in ./_venv3/lib/python3.11/site-packages (from cffi>=1.12->cryptography>=3.1->aioquic==0.9.20->-r tools/webtransport/requirements.txt (line 1)) (2.21)
Building wheels for collected packages: aioquic
  Building wheel for aioquic (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [62 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-13-arm64-cpython-311
      creating build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/about.py -> build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/tls.py -> build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/buffer.py -> build/lib.macosx-13-arm64-cpython-311/aioquic
      creating build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      copying src/aioquic/asyncio/server.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      copying src/aioquic/asyncio/protocol.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      copying src/aioquic/asyncio/client.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      copying src/aioquic/asyncio/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      creating build/lib.macosx-13-arm64-cpython-311/aioquic/h0
      copying src/aioquic/h0/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h0
      copying src/aioquic/h0/connection.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h0
      creating build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      copying src/aioquic/h3/events.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      copying src/aioquic/h3/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      copying src/aioquic/h3/connection.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      copying src/aioquic/h3/exceptions.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      creating build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/configuration.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/recovery.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/packet_builder.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/events.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/logger.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/stream.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/retry.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/connection.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/crypto.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/packet.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/rangeset.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      running egg_info
      writing src/aioquic.egg-info/PKG-INFO
      writing dependency_links to src/aioquic.egg-info/dependency_links.txt
      writing requirements to src/aioquic.egg-info/requires.txt
      writing top-level names to src/aioquic.egg-info/top_level.txt
      reading manifest file 'src/aioquic.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      adding license file 'LICENSE'
      writing manifest file 'src/aioquic.egg-info/SOURCES.txt'
      copying src/aioquic/_buffer.c -> build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/_crypto.c -> build/lib.macosx-13-arm64-cpython-311/aioquic
      running build_ext
      building 'aioquic._buffer' extension
      creating build/temp.macosx-13-arm64-cpython-311
      creating build/temp.macosx-13-arm64-cpython-311/src
      creating build/temp.macosx-13-arm64-cpython-311/src/aioquic
      clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/foolip/wpt/wpt/_venv3/include -I/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.11/include/python3.11 -c src/aioquic/_buffer.c -o build/temp.macosx-13-arm64-cpython-311/src/aioquic/_buffer.o -std=c99
      clang -bundle -undefined dynamic_lookup build/temp.macosx-13-arm64-cpython-311/src/aioquic/_buffer.o -o build/lib.macosx-13-arm64-cpython-311/aioquic/_buffer.cpython-311-darwin.so
      ld: warning: -undefined dynamic_lookup may not work with chained fixups
      building 'aioquic._crypto' extension
      clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/foolip/wpt/wpt/_venv3/include -I/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.11/include/python3.11 -c src/aioquic/_crypto.c -o build/temp.macosx-13-arm64-cpython-311/src/aioquic/_crypto.o -std=c99
      src/aioquic/_crypto.c:4:10: fatal error: 'openssl/err.h' file not found
      #include <openssl/err.h>
               ^~~~~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for aioquic
  Running setup.py clean for aioquic
Failed to build aioquic
Installing collected packages: aioquic
  Running setup.py install for aioquic ... error
  error: subprocess-exited-with-error
  
  × Running setup.py install for aioquic did not run successfully.
  │ exit code: 1
  ╰─> [64 lines of output]
      running install
      /Users/foolip/wpt/wpt/_venv3/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.macosx-13-arm64-cpython-311
      creating build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/about.py -> build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/tls.py -> build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/buffer.py -> build/lib.macosx-13-arm64-cpython-311/aioquic
      creating build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      copying src/aioquic/asyncio/server.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      copying src/aioquic/asyncio/protocol.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      copying src/aioquic/asyncio/client.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      copying src/aioquic/asyncio/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/asyncio
      creating build/lib.macosx-13-arm64-cpython-311/aioquic/h0
      copying src/aioquic/h0/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h0
      copying src/aioquic/h0/connection.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h0
      creating build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      copying src/aioquic/h3/events.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      copying src/aioquic/h3/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      copying src/aioquic/h3/connection.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      copying src/aioquic/h3/exceptions.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/h3
      creating build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/configuration.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/recovery.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/packet_builder.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/events.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/__init__.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/logger.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/stream.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/retry.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/connection.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/crypto.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/packet.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      copying src/aioquic/quic/rangeset.py -> build/lib.macosx-13-arm64-cpython-311/aioquic/quic
      running egg_info
      writing src/aioquic.egg-info/PKG-INFO
      writing dependency_links to src/aioquic.egg-info/dependency_links.txt
      writing requirements to src/aioquic.egg-info/requires.txt
      writing top-level names to src/aioquic.egg-info/top_level.txt
      reading manifest file 'src/aioquic.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      adding license file 'LICENSE'
      writing manifest file 'src/aioquic.egg-info/SOURCES.txt'
      copying src/aioquic/_buffer.c -> build/lib.macosx-13-arm64-cpython-311/aioquic
      copying src/aioquic/_crypto.c -> build/lib.macosx-13-arm64-cpython-311/aioquic
      running build_ext
      building 'aioquic._buffer' extension
      creating build/temp.macosx-13-arm64-cpython-311
      creating build/temp.macosx-13-arm64-cpython-311/src
      creating build/temp.macosx-13-arm64-cpython-311/src/aioquic
      clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/foolip/wpt/wpt/_venv3/include -I/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.11/include/python3.11 -c src/aioquic/_buffer.c -o build/temp.macosx-13-arm64-cpython-311/src/aioquic/_buffer.o -std=c99
      clang -bundle -undefined dynamic_lookup build/temp.macosx-13-arm64-cpython-311/src/aioquic/_buffer.o -o build/lib.macosx-13-arm64-cpython-311/aioquic/_buffer.cpython-311-darwin.so
      ld: warning: -undefined dynamic_lookup may not work with chained fixups
      building 'aioquic._crypto' extension
      clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/foolip/wpt/wpt/_venv3/include -I/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.11/include/python3.11 -c src/aioquic/_crypto.c -o build/temp.macosx-13-arm64-cpython-311/src/aioquic/_crypto.o -std=c99
      src/aioquic/_crypto.c:4:10: fatal error: 'openssl/err.h' file not found
      #include <openssl/err.h>
               ^~~~~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> aioquic

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

[notice] A new release of pip is available: 23.0.1 -> 23.1.2
[notice] To update, run: /Users/foolip/wpt/wpt/_venv3/bin/python -m pip install --upgrade pip

I don't know what to install to get openssl/err.h.

cc @past

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions