Open Bug 1914638 Opened 9 months ago Updated 9 months ago

aioquic fails to install on aarch64 windows

Categories

(Firefox Build System :: General, task, P5)

task

Tracking

(Not tracked)

People

(Reporter: saschanaz, Unassigned)

References

(Blocks 1 open bug)

Details

Building wheels for collected packages: aioquic, pylsqpack, cryptography
  Building wheel for aioquic (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for aioquic (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [89 lines of output]
      No `packages` or `py_modules` configuration, performing automatic discovery.
      `src-layout` detected -- analysing .\src
      discovered packages -- ['aioquic', 'aioquic.asyncio', 'aioquic.h0', 'aioquic.h3', 'aioquic.quic']
      discovered py_modules -- []
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-arm64-cpython-312
      creating build\lib.win-arm64-cpython-312\aioquic
      copying src\aioquic\buffer.py -> build\lib.win-arm64-cpython-312\aioquic
      copying src\aioquic\tls.py -> build\lib.win-arm64-cpython-312\aioquic
      copying src\aioquic\__init__.py -> build\lib.win-arm64-cpython-312\aioquic
      creating build\lib.win-arm64-cpython-312\aioquic\asyncio
      copying src\aioquic\asyncio\client.py -> build\lib.win-arm64-cpython-312\aioquic\asyncio
      copying src\aioquic\asyncio\protocol.py -> build\lib.win-arm64-cpython-312\aioquic\asyncio
      copying src\aioquic\asyncio\server.py -> build\lib.win-arm64-cpython-312\aioquic\asyncio
      copying src\aioquic\asyncio\__init__.py -> build\lib.win-arm64-cpython-312\aioquic\asyncio
      creating build\lib.win-arm64-cpython-312\aioquic\h0
      copying src\aioquic\h0\connection.py -> build\lib.win-arm64-cpython-312\aioquic\h0
      copying src\aioquic\h0\__init__.py -> build\lib.win-arm64-cpython-312\aioquic\h0
      creating build\lib.win-arm64-cpython-312\aioquic\h3
      copying src\aioquic\h3\connection.py -> build\lib.win-arm64-cpython-312\aioquic\h3
      copying src\aioquic\h3\events.py -> build\lib.win-arm64-cpython-312\aioquic\h3
      copying src\aioquic\h3\exceptions.py -> build\lib.win-arm64-cpython-312\aioquic\h3
      copying src\aioquic\h3\__init__.py -> build\lib.win-arm64-cpython-312\aioquic\h3
      creating build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\configuration.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\connection.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\crypto.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\events.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\logger.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\packet.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\packet_builder.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\rangeset.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\recovery.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\retry.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\stream.py -> build\lib.win-arm64-cpython-312\aioquic\quic
      copying src\aioquic\quic\__init__.py -> build\lib.win-arm64-cpython-312\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.win-arm64-cpython-312\aioquic
      copying src\aioquic\_crypto.c -> build\lib.win-arm64-cpython-312\aioquic
      running build_ext
      building 'aioquic._buffer' extension
      creating build\temp.win-arm64-cpython-312
      creating build\temp.win-arm64-cpython-312\Release
      creating build\temp.win-arm64-cpython-312\Release\src
      creating build\temp.win-arm64-cpython-312\Release\src\aioquic
      "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\ARM64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DPy_LIMITED_API=0x03070000 -IC:\Users\sasch\.mozbuild\srcdirs\gecko-23ebcb979905\_virtualenvs\wpt\include -IC:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\include -IC:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" /Tcsrc/aioquic/_buffer.c /Fobuild\temp.win-arm64-cpython-312\Release\src/aioquic/_buffer.obj
      _buffer.c
      src/aioquic/_buffer.c(232): warning C4244: '=': conversion from 'uint16_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(260): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(261): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(262): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(263): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(264): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(265): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(266): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(279): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(283): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(284): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(288): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(289): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(290): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(291): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(296): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(297): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(298): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(299): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(300): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(301): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      src/aioquic/_buffer.c(302): warning C4244: '=': conversion from 'uint64_t' to 'uint8_t', possible loss of data
      "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\ARM64\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\sasch\.mozbuild\srcdirs\gecko-23ebcb979905\_virtualenvs\wpt\libs /LIBPATH:C:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\libs /LIBPATH:C:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64 /LIBPATH:C:\Users\sasch\.mozbuild\srcdirs\gecko-23ebcb979905\_virtualenvs\wpt\PCbuild\arm64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\ATLMFC\lib\ARM64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\lib\ARM64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\arm64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\arm64" /EXPORT:PyInit__buffer build\temp.win-arm64-cpython-312\Release\src/aioquic/_buffer.obj /OUT:build\lib.win-arm64-cpython-312\aioquic\_buffer.pyd /IMPLIB:build\temp.win-arm64-cpython-312\Release\src/aioquic\_buffer.lib
         Creating library build\temp.win-arm64-cpython-312\Release\src/aioquic\_buffer.lib and object build\temp.win-arm64-cpython-312\Release\src/aioquic\_buffer.exp
      Generating code
      Finished generating code
      building 'aioquic._crypto' extension
      "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\ARM64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DPy_LIMITED_API=0x03070000 -IC:\Users\sasch\.mozbuild\srcdirs\gecko-23ebcb979905\_virtualenvs\wpt\include -IC:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\include -IC:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" /Tcsrc/aioquic/_crypto.c /Fobuild\temp.win-arm64-cpython-312\Release\src/aioquic/_crypto.obj
      _crypto.c
      src/aioquic/_crypto.c(4): fatal error C1083: Cannot open include file: 'openssl/err.h': No such file or directory
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.41.34120\\bin\\HostX86\\ARM64\\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for aioquic
  Building wheel for pylsqpack (pyproject.toml) ... done
  Created wheel for pylsqpack: filename=pylsqpack-0.3.18-cp38-abi3-win_arm64.whl size=150268 sha256=2b158b41539bb08863ef769c3c4b81bec7160bcc49363ab30c2641c14e2cd447
  Stored in directory: c:\users\sasch\appdata\local\pip\cache\wheels\34\7f\c7\6f268c02cd88994a7cecbcb6bc0d8fc5eeb5d8565313666b29
  Building wheel for cryptography (pyproject.toml) ... done
  Created wheel for cryptography: filename=cryptography-43.0.0-cp37-abi3-win_arm64.whl size=3179037 sha256=6ab6f722d873f44ea69d81d352dec3d7369db6ba7f77c4c2d8b5113a4c4db621
  Stored in directory: c:\users\sasch\appdata\local\pip\cache\wheels\9a\2c\40\10591a658708953dbe6f684c3608064b29e7865e827736523d
Successfully built pylsqpack cryptography
Failed to build aioquic
ERROR: Could not build wheels for aioquic, which is required to install pyproject.toml-based projects
Traceback (most recent call last):
  File "D:\gecko\mach", line 155, in main
    mach = check_and_get_mach(os.path.dirname(os.path.realpath(__file__)), args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\gecko\mach", line 39, in check_and_get_mach
    return load_mach(dir_path, mach_path, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\gecko\mach", line 25, in load_mach
    return mach_initialize.initialize(dir_path, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\gecko\build/mach_initialize.py", line 344, in initialize
    command_site_manager.activate()
  File "D:\gecko\python\mach\mach\site.py", line 602, in activate
    self.ensure()
  File "D:\gecko\python\mach\mach\site.py", line 574, in ensure
    _create_venv_with_pthfile(
  File "D:\gecko\python\mach\mach\site.py", line 1309, in _create_venv_with_pthfile
    target_venv.pip_install([str(requirement.requirement)])
  File "D:\gecko\python\mach\mach\site.py", line 911, in pip_install
    return subprocess.run(
           ^^^^^^^^^^^^^^^
  File "C:\Users\sasch\AppData\Local\Programs\Python\Python312-arm64\Lib\subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['C:\\Users\\sasch\\.mozbuild\\srcdirs\\gecko-23ebcb979905\\_virtualenvs\\wpt\\Scripts\\python.exe', '-m', 'pip', 'install', 'aioquic==0.9.21']' returned non-zero exit status 1.

Not sure how this one can be worked around.

Edit:

Following aioquic readme fixes the local build: https://github.com/aiortc/aioquic?tab=readme-ov-file#windows
vcpkg can also be used with vcpkg install openssl and include and lib paths being (vcpkgroot)\installed\arm64-windows\lib and (vcpkgroot)\installed\arm64-windows\include where vcpkgroot is your vcpkg git clone directory.

Severity: -- → S4
Priority: -- → P5
Type: defect → task
You need to log in before you can comment on or make changes to this bug.