Open manuel-koch opened 2 weeks ago
Looks like this is the problem:
CMake Error at bindings/CMakeLists.txt:16 (add_subdirectory):
#6 29.89 add_subdirectory given source "c" which is not an existing directory.
Probably need to set our flag to disable building the C bindings. Ideally that should be more automatic.
Probably need to set our flag to disable building the C bindings.
@elalish Is there anything with respect to these flags that I can control when trying to install via pip
?
I'm not sure - I'm not the Python packaging expert here. It does seem like something we need to fix, though it may already have been and we simply need a new release. At least for now you can pull our repo and build and install from there.
@elalish I can confirm that I managed to run the manifold3d
example in my build docker image after installing more prerequisites and using the master branch of manifold
repo.
Though getting this with plain pip3 install manifold3d
in the first place would be nice.
The adapted Dockerfile.test
:
FROM python:3.10-slim-bookworm
RUN apt-get update -qq \
&& apt-get install -qq --no-install-recommends \
bzip2 git openssh-client tar pkgconf \
ca-certificates zstd \
build-essential g++ gcc cmake \
libgl1-mesa-glx libgl1-mesa-dri mesa-utils xvfb xauth freeglut3-dev \
libthrust-dev libtbb-dev libglm-dev
WORKDIR /opt/build
RUN git clone https://github.com/AngusJohnson/Clipper2 \
&& cd Clipper2/CPP \
&& ls -la \
&& cmake . \
&& cmake --build . \
&& cmake --install .
RUN git clone https://github.com/kmammou/v-hacd \
&& cd v-hacd/app \
&& cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
&& cmake --build build \
&& cmake --install build \
&& cp ../include/VHACD.h /usr/include/
RUN git clone https://github.com/elalish/manifold
RUN pip3 install --verbose --no-cache-dir \
numpy==1.26 /opt/build/manifold
RUN pip3 install --verbose --no-cache-dir \
pytest trimesh[easy]
docker build -t manifold-test --progress=plain -f Dockerfile.test .
results in the following build logs
#0 building with "desktop-linux" instance using docker driver
#1 [internal] load build definition from Dockerfile.test
#1 transferring dockerfile: 1.05kB done
#1 DONE 0.0s
#2 [internal] load metadata for docker.io/library/python:3.10-slim-bookworm
#2 DONE 0.5s
#3 [internal] load .dockerignore
#3 transferring context: 205B done
#3 DONE 0.0s
#4 [1/8] FROM docker.io/library/python:3.10-slim-bookworm@sha256:80619a5316afae7045a3c13371b0ee670f39bac46ea1ed35081d2bf91d6c3dbd
#4 DONE 0.0s
#5 [3/8] WORKDIR /opt/build
#5 CACHED
#6 [2/8] RUN apt-get update -qq && apt-get install -qq --no-install-recommends bzip2 git openssh-client tar pkgconf ca-certificates zstd build-essential g++ gcc cmake libgl1-mesa-glx libgl1-mesa-dri mesa-utils xvfb xauth freeglut3-dev libthrust-dev libtbb-dev libglm-dev
#6 CACHED
#7 [4/8] RUN git clone https://github.com/AngusJohnson/Clipper2 && cd Clipper2/CPP && ls -la && cmake . && cmake --build . && cmake --install .
#7 CACHED
#8 [5/8] RUN git clone https://github.com/kmammou/v-hacd && cd v-hacd/app && cmake -S . -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build && cmake --install build && cp ../include/VHACD.h /usr/include/
#8 0.115 Cloning into 'v-hacd'...
#8 10.28 -- The C compiler identification is GNU 12.2.0
#8 10.33 -- The CXX compiler identification is GNU 12.2.0
#8 10.33 -- Detecting C compiler ABI info
#8 10.38 -- Detecting C compiler ABI info - done
#8 10.39 -- Check for working C compiler: /usr/bin/cc - skipped
#8 10.39 -- Detecting C compile features
#8 10.39 -- Detecting C compile features - done
#8 10.39 -- Detecting CXX compiler ABI info
#8 10.44 -- Detecting CXX compiler ABI info - done
#8 10.45 -- Check for working CXX compiler: /usr/bin/c++ - skipped
#8 10.45 -- Detecting CXX compile features
#8 10.45 -- Detecting CXX compile features - done
#8 10.45 -- Configuring done
#8 10.46 -- Generating done
#8 10.46 -- Build files have been written to: /opt/build/v-hacd/app/build
#8 10.49 [ 16%] Building CXX object CMakeFiles/TestVHACD.dir/TestVHACD.cpp.o
#8 14.61 [ 33%] Building CXX object CMakeFiles/TestVHACD.dir/FloatMath.cpp.o
#8 16.33 [ 50%] Building CXX object CMakeFiles/TestVHACD.dir/InParser.cpp.o
#8 16.40 [ 66%] Building CXX object CMakeFiles/TestVHACD.dir/wavefront.cpp.o
#8 16.57 [ 83%] Building CXX object CMakeFiles/TestVHACD.dir/SaveUSDA.cpp.o
#8 16.73 [100%] Linking CXX executable TestVHACD
#8 16.78 [100%] Built target TestVHACD
#8 16.79 -- Install configuration: "Release"
#8 DONE 16.9s
#9 [6/8] RUN git clone https://github.com/elalish/manifold
#9 0.121 Cloning into 'manifold'...
#9 DONE 4.5s
#10 [7/8] RUN pip3 install --verbose --no-cache-dir numpy==1.26 /opt/build/manifold
#10 0.926 Using pip 23.0.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
#10 0.979 Processing ./manifold
#10 0.981 Installing build dependencies: started
#10 0.981 Running command pip subprocess to install build dependencies
#10 1.268 Collecting nanobind>=1.8.0
#10 1.439 Downloading nanobind-2.1.0-py3-none-any.whl (220 kB)
#10 1.534 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 220.7/220.7 kB 2.3 MB/s eta 0:00:00
#10 1.587 Collecting scikit-build-core
#10 1.626 Downloading scikit_build_core-0.10.7-py3-none-any.whl (165 kB)
#10 1.642 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 165.5/165.5 kB 11.0 MB/s eta 0:00:00
#10 1.704 Collecting tomli>=1.2.2
#10 1.742 Downloading tomli-2.0.1-py3-none-any.whl (12 kB)
#10 1.787 Collecting packaging>=21.3
#10 1.824 Downloading packaging-24.1-py3-none-any.whl (53 kB)
#10 1.833 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.0/54.0 kB 6.4 MB/s eta 0:00:00
#10 1.869 Collecting pathspec>=0.10.1
#10 1.906 Downloading pathspec-0.12.1-py3-none-any.whl (31 kB)
#10 1.942 Collecting exceptiongroup>=1.0
#10 1.980 Downloading exceptiongroup-1.2.2-py3-none-any.whl (16 kB)
#10 2.036 Installing collected packages: nanobind, tomli, pathspec, packaging, exceptiongroup, scikit-build-core
#10 2.144 Successfully installed exceptiongroup-1.2.2 nanobind-2.1.0 packaging-24.1 pathspec-0.12.1 scikit-build-core-0.10.7 tomli-2.0.1
#10 2.144 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#10 2.264
#10 2.264 [notice] A new release of pip is available: 23.0.1 -> 24.2
#10 2.264 [notice] To update, run: pip install --upgrade pip
#10 2.306 Installing build dependencies: finished with status 'done'
#10 2.306 Getting requirements to build wheel: started
#10 2.306 Running command Getting requirements to build wheel
#10 2.363 WARNING: Use cmake.version instead of cmake.minimum-version with scikit-build-core >= 0.8
#10 2.378 Getting requirements to build wheel: finished with status 'done'
#10 2.379 Installing backend dependencies: started
#10 2.379 Running command pip subprocess to install backend dependencies
#10 2.676 Collecting ninja>=1.5
#10 2.797 Downloading ninja-1.11.1.1-py2.py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (155 kB)
#10 2.870 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 155.6/155.6 kB 2.1 MB/s eta 0:00:00
#10 2.907 Installing collected packages: ninja
#10 2.918 Successfully installed ninja-1.11.1.1
#10 2.918 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#10 2.923
#10 2.923 [notice] A new release of pip is available: 23.0.1 -> 24.2
#10 2.923 [notice] To update, run: pip install --upgrade pip
#10 2.960 Installing backend dependencies: finished with status 'done'
#10 2.961 Preparing metadata (pyproject.toml): started
#10 2.961 Running command Preparing metadata (pyproject.toml)
#10 3.048 WARNING: Use cmake.version instead of cmake.minimum-version with scikit-build-core >= 0.8
#10 3.054 *** scikit-build-core 0.10.7 using CMake 3.25.1 (metadata_wheel)
#10 3.068 Preparing metadata (pyproject.toml): finished with status 'done'
#10 3.362 Collecting numpy==1.26
#10 3.490 Downloading numpy-1.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.2 MB)
#10 4.697 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.2/14.2 MB 12.6 MB/s eta 0:00:00
#10 4.716 Building wheels for collected packages: manifold3d
#10 4.716 Running command Building wheel for manifold3d (pyproject.toml)
#10 4.716 Building wheel for manifold3d (pyproject.toml): started
#10 4.789 WARNING: Use cmake.version instead of cmake.minimum-version with scikit-build-core >= 0.8
#10 4.795 *** scikit-build-core 0.10.7 using CMake 3.25.1 (wheel)
#10 4.798 *** Configuring CMake...
#10 4.811 loading initial cache file /tmp/tmpi8tw5s89/build/CMakeInit.txt
#10 4.853 -- The CXX compiler identification is GNU 12.2.0
#10 4.860 -- Detecting CXX compiler ABI info
#10 4.899 -- Detecting CXX compiler ABI info - done
#10 4.905 -- Check for working CXX compiler: /usr/bin/g++ - skipped
#10 4.905 -- Detecting CXX compile features
#10 4.906 -- Detecting CXX compile features - done
#10 4.923 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
#10 4.968 -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
#10 4.969 -- Found Threads: TRUE
#10 5.047 -- Found Python: /usr/local/bin/python3.10 (found version "3.10.15") found components: Interpreter Development.Module
#10 5.076 -- The C compiler identification is GNU 12.2.0
#10 5.081 -- Detecting C compiler ABI info
#10 5.112 -- Detecting C compiler ABI info - done
#10 5.118 -- Check for working C compiler: /usr/bin/gcc - skipped
#10 5.118 -- Detecting C compile features
#10 5.119 -- Detecting C compile features - done
#10 5.119 Parallel Backend: TBB
#10 5.153 Found nanobind, version 2.1.0
#10 5.170 Python_EXECUTABLE=/usr/local/bin/python3.10
#10 5.171 -- ====================================
#10 5.171 -- Manifold Build Configuration Summary
#10 5.171 -- ====================================
#10 5.171 --
#10 5.171 -- Environment: Linux
#10 5.171 --
#10 5.171 -- CMAKE_VERSION: 3.25.1
#10 5.172 -- CMAKE_TOOLCHAIN_FILE:
#10 5.172 -- CMAKE_GENERATOR: Ninja
#10 5.172 -- CPACK_CMAKE_GENERATOR:
#10 5.172 -- CMAKE_BUILD_TYPE: Release
#10 5.172 -- CMAKE_PREFIX_PATH: /usr/local/lib/python3.10/site-packages;/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages
#10 5.172 -- CMAKE_CXX_COMPILER_ID: GNU
#10 5.172 -- CMAKE_CXX_COMPILER_VERSION: 12.2.0
#10 5.172 -- BUILD_SHARED_LIBS: OFF
#10 5.172 --
#10 5.172 -- MANIFOLD_PAR: TBB
#10 5.172 -- MANIFOLD_FLAGS: -Wall;-Wno-unused;-Wno-array-bounds;-Wno-stringop-overflow;-Wno-alloc-size-larger-than;-Werror
#10 5.172 -- MANIFOLD_EXPORT: OFF
#10 5.172 -- MANIFOLD_TEST: OFF
#10 5.172 -- MANIFOLD_FUZZ: OFF
#10 5.173 -- MANIFOLD_DEBUG: OFF
#10 5.173 -- MANIFOLD_PYBIND: ON
#10 5.173 -- MANIFOLD_CBIND: OFF
#10 5.173 -- MANIFOLD_JSBIND: OFF
#10 5.173 -- MANIFOLD_EXCEPTIONS: ON
#10 5.173 --
#10 5.173 -- Configuring done
#10 5.180 -- Generating done
#10 5.182 -- Build files have been written to: /tmp/tmpi8tw5s89/build
#10 5.186 *** Building project with Ninja...
#10 5.194 [0/2] Re-checking globbed directories...
#10 8.005 [1/33] Building CXX object src/cross_section/CMakeFiles/cross_section.dir/src/cross_section.cpp.o
#10 8.043 [2/33] Linking CXX static library src/cross_section/libcross_section.a
#10 8.924 [3/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/edge_op.cpp.o
#10 10.10 [4/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/constructors.cpp.o
#10 10.28 [5/33] Building CXX object src/polygon/CMakeFiles/polygon.dir/src/polygon.cpp.o
#10 10.30 [6/33] Linking CXX static library src/polygon/libpolygon.a
#10 10.70 [7/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/boolean3.cpp.o
#10 11.04 [8/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/face_op.cpp.o
#10 11.46 [9/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/manifold.cpp.o
#10 11.70 [10/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/csg_tree.cpp.o
#10 12.14 [11/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/nb_internals.cpp.o
#10 12.72 [12/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/sdf.cpp.o
#10 12.98 [13/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/nb_func.cpp.o
#10 13.73 [14/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/nb_type.cpp.o
#10 13.76 [15/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/nb_enum.cpp.o
#10 13.81 [16/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/nb_ndarray.cpp.o
#10 13.96 [17/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/properties.cpp.o
#10 13.96 /opt/build/manifold/src/manifold/src/properties.cpp: In member function ‘std::pair<double, double> {anonymous}::FaceAreaVolume::operator()(int)’:
#10 13.97 /opt/build/manifold/src/manifold/src/properties.cpp:29:50: note: parameter passing for argument of type ‘std::pair<double, double>’ when C++17 is enabled changed to match C++14 in GCC 10.1
#10 13.97 29 | std::pair<double, double> operator()(int face) {
#10 13.97 | ^
#10 14.18 [18/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/quickhull.cpp.o
#10 14.27 [19/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/nb_static_property.cpp.o
#10 14.47 [20/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/common.cpp.o
#10 14.50 [21/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/trampoline.cpp.o
#10 14.54 [22/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/error.cpp.o
#10 14.72 [23/33] Building CXX object bindings/python/CMakeFiles/nanobind-static.dir/tmp/pip-build-env-y016dipq/overlay/lib/python3.10/site-packages/nanobind/src/implicit.cpp.o
#10 14.73 [24/33] Linking CXX static library bindings/python/libnanobind-static.a
#10 14.84 [25/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/impl.cpp.o
#10 15.13 [26/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/smoothing.cpp.o
#10 15.14 [27/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/boolean_result.cpp.o
#10 15.69 [28/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/subdivision.cpp.o
#10 17.32 [29/33] Building CXX object src/manifold/CMakeFiles/manifold.dir/src/sort.cpp.o
#10 17.32 /opt/build/manifold/src/manifold/src/sort.cpp: In instantiation of ‘bool {anonymous}::MergeMeshGLP(manifold::MeshGLP<Precision, I>&) [with Precision = float; I = unsigned int]’:
#10 17.32 /opt/build/manifold/src/manifold/src/sort.cpp:510:22: required from here
#10 17.32 /opt/build/manifold/src/manifold/src/sort.cpp:142:50: note: parameter passing for argument of type ‘std::pair<double, double>’ when C++17 is enabled changed to match C++14 in GCC 10.1
#10 17.32 142 | [](double f) { return std::make_pair(f, f); });
#10 17.32 | ^
#10 17.36 [30/33] Linking CXX static library src/manifold/libmanifold.a
#10 17.38 [31/33] Generating autogen_docstrings.inl
#10 19.06 [32/33] Building CXX object bindings/python/CMakeFiles/manifold3d.dir/manifold3d.cpp.o
#10 20.14 [33/33] Linking CXX shared module bindings/python/manifold3d.cpython-310-aarch64-linux-gnu.so
#10 20.14 *** Installing project into wheel...
#10 20.14 -- Install configuration: "Release"
#10 20.14 -- Installing: /tmp/tmpi8tw5s89/wheel/platlib/manifold3d.cpython-310-aarch64-linux-gnu.so
#10 20.15 -- Set runtime path of "/tmp/tmpi8tw5s89/wheel/platlib/manifold3d.cpython-310-aarch64-linux-gnu.so" to "/tmp/tmpi8tw5s89/wheel/platlib/lib"
#10 20.15 *** Making wheel...
#10 20.26 *** Created manifold3d-2.5.1-cp310-cp310-linux_aarch64.whl
#10 20.27 Building wheel for manifold3d (pyproject.toml): finished with status 'done'
#10 20.27 Created wheel for manifold3d: filename=manifold3d-2.5.1-cp310-cp310-linux_aarch64.whl size=956158 sha256=250d568dff44c9a248bca982c1c05ea3f6038c7c8ac1a4225f4c80391083d3b0
#10 20.27 Stored in directory: /tmp/pip-ephem-wheel-cache-_2sexa_r/wheels/3d/d1/c6/1a5a24855886d9d429545ec9376e21993865b2797181f7affb
#10 20.27 Successfully built manifold3d
#10 20.29 Installing collected packages: numpy, manifold3d
#10 21.40 changing mode of /usr/local/bin/f2py to 755
#10 21.44 Successfully installed manifold3d-2.5.1 numpy-1.26.0
#10 21.44 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#10 21.56
#10 21.56 [notice] A new release of pip is available: 23.0.1 -> 24.2
#10 21.56 [notice] To update, run: pip install --upgrade pip
#10 DONE 21.7s
#11 [8/8] RUN pip3 install --verbose --no-cache-dir pytest trimesh[easy]
#11 0.281 Using pip 23.0.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
#11 0.435 Collecting pytest
#11 0.555 Downloading pytest-8.3.3-py3-none-any.whl (342 kB)
#11 0.657 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 342.3/342.3 kB 3.4 MB/s eta 0:00:00
#11 0.776 Collecting trimesh[easy]
#11 0.817 Downloading trimesh-4.4.9-py3-none-any.whl (700 kB)
#11 0.874 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 700.1/700.1 kB 12.6 MB/s eta 0:00:00
#11 0.910 Collecting pluggy<2,>=1.5
#11 0.944 Downloading pluggy-1.5.0-py3-none-any.whl (20 kB)
#11 0.980 Collecting packaging
#11 1.014 Downloading packaging-24.1-py3-none-any.whl (53 kB)
#11 1.018 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.0/54.0 kB 17.4 MB/s eta 0:00:00
#11 1.049 Collecting exceptiongroup>=1.0.0rc8
#11 1.083 Downloading exceptiongroup-1.2.2-py3-none-any.whl (16 kB)
#11 1.112 Collecting tomli>=1
#11 1.146 Downloading tomli-2.0.1-py3-none-any.whl (12 kB)
#11 1.170 Collecting iniconfig
#11 1.204 Downloading iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
#11 1.226 Requirement already satisfied: numpy>=1.20 in /usr/local/lib/python3.10/site-packages (from trimesh[easy]) (1.26.0)
#11 1.252 Collecting svg.path
#11 1.285 Downloading svg.path-6.3-py2.py3-none-any.whl (16 kB)
#11 1.381 Link requires a different Python (3.10.15 not in: '>=3.7,<3.10'): https://files.pythonhosted.org/packages/99/f1/c00d6be56e1a718a3068079e3ec8ce044d7179345280f6a3f5066068af0d/scipy-1.6.2.tar.gz (from https://pypi.org/simple/scipy/) (requires-python:>=3.7,<3.10)
#11 1.382 Link requires a different Python (3.10.15 not in: '>=3.7,<3.10'): https://files.pythonhosted.org/packages/fe/fd/8704c7b7b34cdac850485e638346025ca57c5a859934b9aa1be5399b33b7/scipy-1.6.3.tar.gz (from https://pypi.org/simple/scipy/) (requires-python:>=3.7,<3.10)
#11 1.383 Link requires a different Python (3.10.15 not in: '>=3.7,<3.10'): https://files.pythonhosted.org/packages/bb/bb/944f559d554df6c9adf037aa9fc982a9706ee0e96c0d5beac701cb158900/scipy-1.7.0.tar.gz (from https://pypi.org/simple/scipy/) (requires-python:>=3.7,<3.10)
#11 1.384 Link requires a different Python (3.10.15 not in: '>=3.7,<3.10'): https://files.pythonhosted.org/packages/47/33/a24aec22b7be7fdb10ec117a95e1e4099890d8bbc6646902f443fc7719d1/scipy-1.7.1.tar.gz (from https://pypi.org/simple/scipy/) (requires-python:>=3.7,<3.10)
#11 1.421 Collecting scipy
#11 1.457 Downloading scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (35.6 MB)
#11 4.265 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.6/35.6 MB 12.7 MB/s eta 0:00:00
#11 4.404 Collecting xxhash
#11 4.445 Downloading xxhash-3.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (220 kB)
#11 4.463 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 220.9/220.9 kB 13.2 MB/s eta 0:00:00
#11 4.501 Collecting rtree
#11 4.536 Downloading Rtree-1.3.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (500 kB)
#11 4.575 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 500.4/500.4 kB 13.0 MB/s eta 0:00:00
#11 4.632 Collecting jsonschema
#11 4.666 Downloading jsonschema-4.23.0-py3-none-any.whl (88 kB)
#11 4.673 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 88.5/88.5 kB 14.0 MB/s eta 0:00:00
#11 4.675 Requirement already satisfied: manifold3d>=2.3.0 in /usr/local/lib/python3.10/site-packages (from trimesh[easy]) (2.5.1)
#11 4.710 Collecting colorlog
#11 4.744 Downloading colorlog-6.8.2-py3-none-any.whl (11 kB)
#11 4.781 Collecting networkx
#11 4.815 Downloading networkx-3.3-py3-none-any.whl (1.7 MB)
#11 4.948 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 12.9 MB/s eta 0:00:00
#11 4.991 Collecting mapbox-earcut>=1.0.2
#11 5.026 Downloading mapbox_earcut-1.0.2.tar.gz (12 kB)
#11 5.031 Installing build dependencies: started
#11 5.031 Running command pip subprocess to install build dependencies
#11 5.450 Collecting setuptools>=42
#11 5.580 Downloading setuptools-75.1.0-py3-none-any.whl (1.2 MB)
#11 5.775 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 6.5 MB/s eta 0:00:00
#11 5.821 Collecting wheel
#11 5.858 Downloading wheel-0.44.0-py3-none-any.whl (67 kB)
#11 5.866 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.1/67.1 kB 9.5 MB/s eta 0:00:00
#11 5.907 Collecting pybind11>=2.12
#11 5.945 Downloading pybind11-2.13.6-py3-none-any.whl (243 kB)
#11 5.966 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 243.3/243.3 kB 11.7 MB/s eta 0:00:00
#11 6.043 Installing collected packages: wheel, setuptools, pybind11
#11 6.477 Successfully installed pybind11-2.13.6 setuptools-75.1.0 wheel-0.44.0
#11 6.477 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#11 6.479
#11 6.479 [notice] A new release of pip is available: 23.0.1 -> 24.2
#11 6.479 [notice] To update, run: pip install --upgrade pip
#11 6.530 Installing build dependencies: finished with status 'done'
#11 6.531 Getting requirements to build wheel: started
#11 6.531 Running command Getting requirements to build wheel
#11 6.602 running egg_info
#11 6.602 writing mapbox_earcut.egg-info/PKG-INFO
#11 6.603 writing dependency_links to mapbox_earcut.egg-info/dependency_links.txt
#11 6.603 writing requirements to mapbox_earcut.egg-info/requires.txt
#11 6.603 writing top-level names to mapbox_earcut.egg-info/top_level.txt
#11 6.605 reading manifest file 'mapbox_earcut.egg-info/SOURCES.txt'
#11 6.605 reading manifest template 'MANIFEST.in'
#11 6.605 warning: no files found matching '*' under directory 'pybind11'
#11 6.605 adding license file 'LICENSE.md'
#11 6.606 writing manifest file 'mapbox_earcut.egg-info/SOURCES.txt'
#11 6.618 Getting requirements to build wheel: finished with status 'done'
#11 6.618 Preparing metadata (pyproject.toml): started
#11 6.619 Running command Preparing metadata (pyproject.toml)
#11 6.688 running dist_info
#11 6.689 creating /tmp/pip-modern-metadata-rzintoi9/mapbox_earcut.egg-info
#11 6.689 writing /tmp/pip-modern-metadata-rzintoi9/mapbox_earcut.egg-info/PKG-INFO
#11 6.690 writing dependency_links to /tmp/pip-modern-metadata-rzintoi9/mapbox_earcut.egg-info/dependency_links.txt
#11 6.690 writing requirements to /tmp/pip-modern-metadata-rzintoi9/mapbox_earcut.egg-info/requires.txt
#11 6.690 writing top-level names to /tmp/pip-modern-metadata-rzintoi9/mapbox_earcut.egg-info/top_level.txt
#11 6.690 writing manifest file '/tmp/pip-modern-metadata-rzintoi9/mapbox_earcut.egg-info/SOURCES.txt'
#11 6.692 reading manifest file '/tmp/pip-modern-metadata-rzintoi9/mapbox_earcut.egg-info/SOURCES.txt'
#11 6.692 reading manifest template 'MANIFEST.in'
#11 6.692 warning: no files found matching '*' under directory 'pybind11'
#11 6.692 adding license file 'LICENSE.md'
#11 6.693 writing manifest file '/tmp/pip-modern-metadata-rzintoi9/mapbox_earcut.egg-info/SOURCES.txt'
#11 6.693 creating '/tmp/pip-modern-metadata-rzintoi9/mapbox_earcut-1.0.2.dist-info'
#11 6.712 Preparing metadata (pyproject.toml): finished with status 'done'
#11 6.769 Collecting vhacdx
#11 6.803 Downloading vhacdx-0.0.8.post1.tar.gz (6.2 kB)
#11 6.808 Installing build dependencies: started
#11 6.808 Running command pip subprocess to install build dependencies
#11 7.171 Collecting setuptools>=42
#11 7.175 Using cached setuptools-75.1.0-py3-none-any.whl (1.2 MB)
#11 7.218 Collecting wheel
#11 7.219 Using cached wheel-0.44.0-py3-none-any.whl (67 kB)
#11 7.258 Collecting pybind11>=2.13.1
#11 7.259 Using cached pybind11-2.13.6-py3-none-any.whl (243 kB)
#11 7.335 Installing collected packages: wheel, setuptools, pybind11
#11 7.766 Successfully installed pybind11-2.13.6 setuptools-75.1.0 wheel-0.44.0
#11 7.766 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#11 7.768
#11 7.768 [notice] A new release of pip is available: 23.0.1 -> 24.2
#11 7.768 [notice] To update, run: pip install --upgrade pip
#11 7.816 Installing build dependencies: finished with status 'done'
#11 7.817 Getting requirements to build wheel: started
#11 7.817 Running command Getting requirements to build wheel
#11 7.912 running egg_info
#11 7.913 writing src/vhacdx.egg-info/PKG-INFO
#11 7.913 writing dependency_links to src/vhacdx.egg-info/dependency_links.txt
#11 7.914 writing requirements to src/vhacdx.egg-info/requires.txt
#11 7.914 writing top-level names to src/vhacdx.egg-info/top_level.txt
#11 7.916 reading manifest file 'src/vhacdx.egg-info/SOURCES.txt'
#11 7.916 adding license file 'LICENSE'
#11 7.917 writing manifest file 'src/vhacdx.egg-info/SOURCES.txt'
#11 7.933 Getting requirements to build wheel: finished with status 'done'
#11 7.934 Preparing metadata (pyproject.toml): started
#11 7.934 Running command Preparing metadata (pyproject.toml)
#11 8.029 running dist_info
#11 8.030 creating /tmp/pip-modern-metadata-in4qyci2/vhacdx.egg-info
#11 8.031 writing /tmp/pip-modern-metadata-in4qyci2/vhacdx.egg-info/PKG-INFO
#11 8.032 writing dependency_links to /tmp/pip-modern-metadata-in4qyci2/vhacdx.egg-info/dependency_links.txt
#11 8.032 writing requirements to /tmp/pip-modern-metadata-in4qyci2/vhacdx.egg-info/requires.txt
#11 8.032 writing top-level names to /tmp/pip-modern-metadata-in4qyci2/vhacdx.egg-info/top_level.txt
#11 8.032 writing manifest file '/tmp/pip-modern-metadata-in4qyci2/vhacdx.egg-info/SOURCES.txt'
#11 8.034 reading manifest file '/tmp/pip-modern-metadata-in4qyci2/vhacdx.egg-info/SOURCES.txt'
#11 8.034 adding license file 'LICENSE'
#11 8.035 writing manifest file '/tmp/pip-modern-metadata-in4qyci2/vhacdx.egg-info/SOURCES.txt'
#11 8.035 creating '/tmp/pip-modern-metadata-in4qyci2/vhacdx-0.0.8.post1.dist-info'
#11 8.054 Preparing metadata (pyproject.toml): finished with status 'done'
#11 8.100 Collecting xatlas
#11 8.135 Downloading xatlas-0.0.9.tar.gz (290 kB)
#11 8.157 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 290.2/290.2 kB 13.1 MB/s eta 0:00:00
#11 8.180 Installing build dependencies: started
#11 8.180 Running command pip subprocess to install build dependencies
#11 8.564 Collecting setuptools>=42
#11 8.567 Using cached setuptools-75.1.0-py3-none-any.whl (1.2 MB)
#11 8.613 Collecting wheel
#11 8.614 Using cached wheel-0.44.0-py3-none-any.whl (67 kB)
#11 8.671 Collecting ninja
#11 8.673 Using cached ninja-1.11.1.1-py2.py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (155 kB)
#11 8.847 Collecting cmake>=3.12
#11 8.979 Downloading cmake-3.30.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (26.3 MB)
#11 11.18 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 26.3/26.3 MB 12.1 MB/s eta 0:00:00
#11 11.32 Installing collected packages: ninja, wheel, setuptools, cmake
#11 12.26 Successfully installed cmake-3.30.3 ninja-1.11.1.1 setuptools-75.1.0 wheel-0.44.0
#11 12.26 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#11 12.26
#11 12.26 [notice] A new release of pip is available: 23.0.1 -> 24.2
#11 12.26 [notice] To update, run: pip install --upgrade pip
#11 12.32 Installing build dependencies: finished with status 'done'
#11 12.32 Getting requirements to build wheel: started
#11 12.33 Running command Getting requirements to build wheel
#11 12.42 running egg_info
#11 12.42 writing src/xatlas.egg-info/PKG-INFO
#11 12.42 writing dependency_links to src/xatlas.egg-info/dependency_links.txt
#11 12.42 writing requirements to src/xatlas.egg-info/requires.txt
#11 12.42 writing top-level names to src/xatlas.egg-info/top_level.txt
#11 12.43 reading manifest file 'src/xatlas.egg-info/SOURCES.txt'
#11 12.43 reading manifest template 'MANIFEST.in'
#11 12.43 adding license file 'LICENSE'
#11 12.43 writing manifest file 'src/xatlas.egg-info/SOURCES.txt'
#11 12.45 Getting requirements to build wheel: finished with status 'done'
#11 12.45 Preparing metadata (pyproject.toml): started
#11 12.45 Running command Preparing metadata (pyproject.toml)
#11 12.55 running dist_info
#11 12.55 creating /tmp/pip-modern-metadata-lq3fa96g/xatlas.egg-info
#11 12.55 writing /tmp/pip-modern-metadata-lq3fa96g/xatlas.egg-info/PKG-INFO
#11 12.55 writing dependency_links to /tmp/pip-modern-metadata-lq3fa96g/xatlas.egg-info/dependency_links.txt
#11 12.55 writing requirements to /tmp/pip-modern-metadata-lq3fa96g/xatlas.egg-info/requires.txt
#11 12.55 writing top-level names to /tmp/pip-modern-metadata-lq3fa96g/xatlas.egg-info/top_level.txt
#11 12.55 writing manifest file '/tmp/pip-modern-metadata-lq3fa96g/xatlas.egg-info/SOURCES.txt'
#11 12.55 reading manifest file '/tmp/pip-modern-metadata-lq3fa96g/xatlas.egg-info/SOURCES.txt'
#11 12.55 reading manifest template 'MANIFEST.in'
#11 12.55 adding license file 'LICENSE'
#11 12.55 writing manifest file '/tmp/pip-modern-metadata-lq3fa96g/xatlas.egg-info/SOURCES.txt'
#11 12.55 creating '/tmp/pip-modern-metadata-lq3fa96g/xatlas-0.0.9.dist-info'
#11 12.57 Preparing metadata (pyproject.toml): finished with status 'done'
#11 12.61 Collecting pycollada
#11 12.65 Downloading pycollada-0.8.tar.gz (108 kB)
#11 12.66 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.1/108.1 kB 13.5 MB/s eta 0:00:00
#11 12.67 Preparing metadata (setup.py): started
#11 12.67 Running command python setup.py egg_info
#11 12.91 running egg_info
#11 12.91 creating /tmp/pip-pip-egg-info-yfrtwo8i/pycollada.egg-info
#11 12.91 writing /tmp/pip-pip-egg-info-yfrtwo8i/pycollada.egg-info/PKG-INFO
#11 12.91 writing dependency_links to /tmp/pip-pip-egg-info-yfrtwo8i/pycollada.egg-info/dependency_links.txt
#11 12.92 writing requirements to /tmp/pip-pip-egg-info-yfrtwo8i/pycollada.egg-info/requires.txt
#11 12.92 writing top-level names to /tmp/pip-pip-egg-info-yfrtwo8i/pycollada.egg-info/top_level.txt
#11 12.92 writing manifest file '/tmp/pip-pip-egg-info-yfrtwo8i/pycollada.egg-info/SOURCES.txt'
#11 12.92 reading manifest file '/tmp/pip-pip-egg-info-yfrtwo8i/pycollada.egg-info/SOURCES.txt'
#11 12.92 adding license file 'COPYING'
#11 12.92 adding license file 'AUTHORS.md'
#11 12.92 writing manifest file '/tmp/pip-pip-egg-info-yfrtwo8i/pycollada.egg-info/SOURCES.txt'
#11 12.94 Preparing metadata (setup.py): finished with status 'done'
#11 12.98 Collecting httpx
#11 13.01 Downloading httpx-0.27.2-py3-none-any.whl (76 kB)
#11 13.02 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.4/76.4 kB 13.8 MB/s eta 0:00:00
#11 13.04 Collecting chardet
#11 13.08 Downloading chardet-5.2.0-py3-none-any.whl (199 kB)
#11 13.09 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 199.4/199.4 kB 13.2 MB/s eta 0:00:00
#11 13.31 Collecting lxml
#11 13.34 Downloading lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl (4.8 MB)
#11 13.72 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 12.8 MB/s eta 0:00:00
#11 13.73 Requirement already satisfied: setuptools in /usr/local/lib/python3.10/site-packages (from trimesh[easy]) (65.5.1)
#11 13.83 Collecting shapely
#11 13.87 Downloading shapely-2.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB)
#11 14.05 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 MB 12.8 MB/s eta 0:00:00
#11 14.27 Collecting pillow
#11 14.30 Downloading pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl (4.4 MB)
#11 14.64 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 12.7 MB/s eta 0:00:00
#11 14.72 Collecting anyio
#11 14.75 Downloading anyio-4.6.0-py3-none-any.whl (89 kB)
#11 14.76 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.6/89.6 kB 14.4 MB/s eta 0:00:00
#11 14.79 Collecting certifi
#11 14.83 Downloading certifi-2024.8.30-py3-none-any.whl (167 kB)
#11 14.84 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 167.3/167.3 kB 13.7 MB/s eta 0:00:00
#11 14.87 Collecting idna
#11 14.90 Downloading idna-3.10-py3-none-any.whl (70 kB)
#11 14.91 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.4/70.4 kB 17.5 MB/s eta 0:00:00
#11 14.94 Collecting httpcore==1.*
#11 14.98 Downloading httpcore-1.0.5-py3-none-any.whl (77 kB)
#11 14.98 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.9/77.9 kB 15.2 MB/s eta 0:00:00
#11 15.01 Collecting sniffio
#11 15.04 Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)
#11 15.07 Collecting h11<0.15,>=0.13
#11 15.10 Downloading h11-0.14.0-py3-none-any.whl (58 kB)
#11 15.11 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.3/58.3 kB 15.3 MB/s eta 0:00:00
#11 15.15 Collecting attrs>=22.2.0
#11 15.18 Downloading attrs-24.2.0-py3-none-any.whl (63 kB)
#11 15.19 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.0/63.0 kB 15.2 MB/s eta 0:00:00
#11 15.23 Collecting referencing>=0.28.4
#11 15.27 Downloading referencing-0.35.1-py3-none-any.whl (26 kB)
#11 15.30 Collecting jsonschema-specifications>=2023.03.6
#11 15.33 Downloading jsonschema_specifications-2023.12.1-py3-none-any.whl (18 kB)
#11 15.59 Collecting rpds-py>=0.7.1
#11 15.62 Downloading rpds_py-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (366 kB)
#11 15.65 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 366.7/366.7 kB 13.3 MB/s eta 0:00:00
#11 15.70 Collecting python-dateutil>=2.2
#11 15.74 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
#11 15.76 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 13.4 MB/s eta 0:00:00
#11 15.85 Collecting six>=1.5
#11 15.88 Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
#11 15.96 Collecting typing-extensions>=4.1
#11 15.99 Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
#11 16.03 Building wheels for collected packages: mapbox-earcut, pycollada, vhacdx, xatlas
#11 16.03 Building wheel for mapbox-earcut (pyproject.toml): started
#11 16.03 Running command Building wheel for mapbox-earcut (pyproject.toml)
#11 16.10 running bdist_wheel
#11 16.11 running build
#11 16.11 running build_ext
#11 16.11 g++ -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.10 -c flagcheck.cpp -o flagcheck.o -std=c++17
#11 16.12 building 'mapbox_earcut' extension
#11 16.12 creating build/temp.linux-aarch64-cpython-310/src
#11 16.12 g++ -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DVERSION_INFO=1.0.2 -Iinclude -I/tmp/pip-build-env-srai_fxi/overlay/lib/python3.10/site-packages/pybind11/include -I/usr/local/include/python3.10 -c src/main.cpp -o build/temp.linux-aarch64-cpython-310/src/main.o -std=c++17 -fvisibility=hidden -g0
#11 20.13 creating build/lib.linux-aarch64-cpython-310
#11 20.13 g++ -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -shared build/temp.linux-aarch64-cpython-310/src/main.o -L/usr/local/lib -o build/lib.linux-aarch64-cpython-310/mapbox_earcut.cpython-310-aarch64-linux-gnu.so
#11 20.17 installing to build/bdist.linux-aarch64/wheel
#11 20.17 running install
#11 20.17 running install_lib
#11 20.17 creating build/bdist.linux-aarch64/wheel
#11 20.17 copying build/lib.linux-aarch64-cpython-310/mapbox_earcut.cpython-310-aarch64-linux-gnu.so -> build/bdist.linux-aarch64/wheel/.
#11 20.17 running install_egg_info
#11 20.17 running egg_info
#11 20.17 writing mapbox_earcut.egg-info/PKG-INFO
#11 20.17 writing dependency_links to mapbox_earcut.egg-info/dependency_links.txt
#11 20.17 writing requirements to mapbox_earcut.egg-info/requires.txt
#11 20.18 writing top-level names to mapbox_earcut.egg-info/top_level.txt
#11 20.18 reading manifest file 'mapbox_earcut.egg-info/SOURCES.txt'
#11 20.18 reading manifest template 'MANIFEST.in'
#11 20.18 warning: no files found matching '*' under directory 'pybind11'
#11 20.18 adding license file 'LICENSE.md'
#11 20.18 writing manifest file 'mapbox_earcut.egg-info/SOURCES.txt'
#11 20.18 Copying mapbox_earcut.egg-info to build/bdist.linux-aarch64/wheel/./mapbox_earcut-1.0.2-py3.10.egg-info
#11 20.18 running install_scripts
#11 20.18 creating build/bdist.linux-aarch64/wheel/mapbox_earcut-1.0.2.dist-info/WHEEL
#11 20.18 creating '/tmp/pip-wheel-dxgcmznf/.tmp-dstzzpsn/mapbox_earcut-1.0.2-cp310-cp310-linux_aarch64.whl' and adding 'build/bdist.linux-aarch64/wheel' to it
#11 20.19 adding 'mapbox_earcut.cpython-310-aarch64-linux-gnu.so'
#11 20.19 adding 'mapbox_earcut-1.0.2.dist-info/LICENSE.md'
#11 20.19 adding 'mapbox_earcut-1.0.2.dist-info/METADATA'
#11 20.19 adding 'mapbox_earcut-1.0.2.dist-info/WHEEL'
#11 20.19 adding 'mapbox_earcut-1.0.2.dist-info/top_level.txt'
#11 20.19 adding 'mapbox_earcut-1.0.2.dist-info/RECORD'
#11 20.19 removing build/bdist.linux-aarch64/wheel
#11 20.21 Building wheel for mapbox-earcut (pyproject.toml): finished with status 'done'
#11 20.21 Created wheel for mapbox-earcut: filename=mapbox_earcut-1.0.2-cp310-cp310-linux_aarch64.whl size=84221 sha256=bb40ff780fa80b1a3e3db52b9fed19e30cc150b74196f6189d0f5b7fa8a7630f
#11 20.21 Stored in directory: /tmp/pip-ephem-wheel-cache-cccmpfu4/wheels/06/ad/d8/4c05603a5cb364dc540737115a7d344a6d5b1aaca0505e1fca
#11 20.21 Building wheel for pycollada (setup.py): started
#11 20.21 Running command python setup.py bdist_wheel
#11 20.33 running bdist_wheel
#11 20.34 running build
#11 20.34 running build_py
#11 20.34 creating build
#11 20.34 creating build/lib
#11 20.34 creating build/lib/collada
#11 20.34 copying collada/camera.py -> build/lib/collada
#11 20.34 copying collada/__init__.py -> build/lib/collada
#11 20.34 copying collada/scene.py -> build/lib/collada
#11 20.34 copying collada/common.py -> build/lib/collada
#11 20.34 copying collada/__main__.py -> build/lib/collada
#11 20.34 copying collada/animation.py -> build/lib/collada
#11 20.35 copying collada/primitive.py -> build/lib/collada
#11 20.35 copying collada/schema.py -> build/lib/collada
#11 20.35 copying collada/util.py -> build/lib/collada
#11 20.35 copying collada/geometry.py -> build/lib/collada
#11 20.35 copying collada/light.py -> build/lib/collada
#11 20.35 copying collada/controller.py -> build/lib/collada
#11 20.35 copying collada/xmlutil.py -> build/lib/collada
#11 20.35 copying collada/source.py -> build/lib/collada
#11 20.35 copying collada/polylist.py -> build/lib/collada
#11 20.35 copying collada/lineset.py -> build/lib/collada
#11 20.35 copying collada/material.py -> build/lib/collada
#11 20.35 copying collada/asset.py -> build/lib/collada
#11 20.35 copying collada/polygons.py -> build/lib/collada
#11 20.35 copying collada/triangleset.py -> build/lib/collada
#11 20.35 creating build/lib/collada/tests
#11 20.35 copying collada/tests/test_camera.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/__init__.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_asset.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_scene.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_ignore.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_lineset.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_material.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_light.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_geometry.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_iteration.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_source.py -> build/lib/collada/tests
#11 20.35 copying collada/tests/test_collada.py -> build/lib/collada/tests
#11 20.35 creating build/lib/collada/resources
#11 20.35 copying collada/resources/schema-1.4.1.xml -> build/lib/collada/resources
#11 20.35 copying collada/resources/xsd.xml -> build/lib/collada/resources
#11 20.35 /usr/local/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
#11 20.35 warnings.warn(
#11 20.35 installing to build/bdist.linux-aarch64/wheel
#11 20.35 running install
#11 20.35 running install_lib
#11 20.36 creating build/bdist.linux-aarch64
#11 20.36 creating build/bdist.linux-aarch64/wheel
#11 20.36 creating build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/camera.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/__init__.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 creating build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_camera.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/__init__.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_asset.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_scene.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_ignore.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_lineset.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_material.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_light.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_geometry.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_iteration.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_source.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 copying build/lib/collada/tests/test_collada.py -> build/bdist.linux-aarch64/wheel/collada/tests
#11 20.36 creating build/bdist.linux-aarch64/wheel/collada/resources
#11 20.36 copying build/lib/collada/resources/schema-1.4.1.xml -> build/bdist.linux-aarch64/wheel/collada/resources
#11 20.36 copying build/lib/collada/resources/xsd.xml -> build/bdist.linux-aarch64/wheel/collada/resources
#11 20.36 copying build/lib/collada/scene.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/common.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/__main__.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/animation.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/primitive.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/schema.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/util.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/geometry.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/light.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/controller.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/xmlutil.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/source.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/polylist.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/lineset.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/material.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/asset.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/polygons.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 copying build/lib/collada/triangleset.py -> build/bdist.linux-aarch64/wheel/collada
#11 20.36 running install_egg_info
#11 20.36 running egg_info
#11 20.36 writing pycollada.egg-info/PKG-INFO
#11 20.36 writing dependency_links to pycollada.egg-info/dependency_links.txt
#11 20.36 writing requirements to pycollada.egg-info/requires.txt
#11 20.36 writing top-level names to pycollada.egg-info/top_level.txt
#11 20.36 reading manifest file 'pycollada.egg-info/SOURCES.txt'
#11 20.36 adding license file 'COPYING'
#11 20.36 adding license file 'AUTHORS.md'
#11 20.36 writing manifest file 'pycollada.egg-info/SOURCES.txt'
#11 20.36 Copying pycollada.egg-info to build/bdist.linux-aarch64/wheel/pycollada-0.8-py3.10.egg-info
#11 20.36 running install_scripts
#11 20.39 creating build/bdist.linux-aarch64/wheel/pycollada-0.8.dist-info/WHEEL
#11 20.39 creating '/tmp/pip-wheel-o3pr13l6/pycollada-0.8-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/wheel' to it
#11 20.39 adding 'collada/__init__.py'
#11 20.39 adding 'collada/__main__.py'
#11 20.39 adding 'collada/animation.py'
#11 20.39 adding 'collada/asset.py'
#11 20.39 adding 'collada/camera.py'
#11 20.39 adding 'collada/common.py'
#11 20.39 adding 'collada/controller.py'
#11 20.39 adding 'collada/geometry.py'
#11 20.39 adding 'collada/light.py'
#11 20.39 adding 'collada/lineset.py'
#11 20.39 adding 'collada/material.py'
#11 20.39 adding 'collada/polygons.py'
#11 20.39 adding 'collada/polylist.py'
#11 20.39 adding 'collada/primitive.py'
#11 20.39 adding 'collada/scene.py'
#11 20.39 adding 'collada/schema.py'
#11 20.39 adding 'collada/source.py'
#11 20.39 adding 'collada/triangleset.py'
#11 20.39 adding 'collada/util.py'
#11 20.39 adding 'collada/xmlutil.py'
#11 20.40 adding 'collada/resources/schema-1.4.1.xml'
#11 20.40 adding 'collada/resources/xsd.xml'
#11 20.40 adding 'collada/tests/__init__.py'
#11 20.40 adding 'collada/tests/test_asset.py'
#11 20.40 adding 'collada/tests/test_camera.py'
#11 20.40 adding 'collada/tests/test_collada.py'
#11 20.40 adding 'collada/tests/test_geometry.py'
#11 20.40 adding 'collada/tests/test_ignore.py'
#11 20.40 adding 'collada/tests/test_iteration.py'
#11 20.40 adding 'collada/tests/test_light.py'
#11 20.40 adding 'collada/tests/test_lineset.py'
#11 20.40 adding 'collada/tests/test_material.py'
#11 20.40 adding 'collada/tests/test_scene.py'
#11 20.40 adding 'collada/tests/test_source.py'
#11 20.40 adding 'pycollada-0.8.dist-info/AUTHORS.md'
#11 20.40 adding 'pycollada-0.8.dist-info/COPYING'
#11 20.40 adding 'pycollada-0.8.dist-info/METADATA'
#11 20.40 adding 'pycollada-0.8.dist-info/WHEEL'
#11 20.40 adding 'pycollada-0.8.dist-info/top_level.txt'
#11 20.40 adding 'pycollada-0.8.dist-info/RECORD'
#11 20.40 removing build/bdist.linux-aarch64/wheel
#11 20.43 Building wheel for pycollada (setup.py): finished with status 'done'
#11 20.43 Created wheel for pycollada: filename=pycollada-0.8-py3-none-any.whl size=127513 sha256=da92bf21d918f513cb8031895fecc4805231368d4ab34a41c60402a1f63b1ecd
#11 20.43 Stored in directory: /tmp/pip-ephem-wheel-cache-cccmpfu4/wheels/11/92/79/6e8add42e1e207a97d435169cdc705e0a5dd6fb182f4368f3d
#11 20.43 Building wheel for vhacdx (pyproject.toml): started
#11 20.43 Running command Building wheel for vhacdx (pyproject.toml)
#11 20.52 running bdist_wheel
#11 20.52 running build
#11 20.52 running build_py
#11 20.52 running egg_info
#11 20.52 writing src/vhacdx.egg-info/PKG-INFO
#11 20.52 writing dependency_links to src/vhacdx.egg-info/dependency_links.txt
#11 20.52 writing requirements to src/vhacdx.egg-info/requires.txt
#11 20.52 writing top-level names to src/vhacdx.egg-info/top_level.txt
#11 20.53 reading manifest file 'src/vhacdx.egg-info/SOURCES.txt'
#11 20.53 adding license file 'LICENSE'
#11 20.53 writing manifest file 'src/vhacdx.egg-info/SOURCES.txt'
#11 20.53 creating build/lib.linux-aarch64-cpython-310/vhacdx
#11 20.53 copying src/vhacdx/main.cpp -> build/lib.linux-aarch64-cpython-310/vhacdx
#11 20.53 running build_ext
#11 20.53 g++ -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.10 -c flagcheck.cpp -o flagcheck.o -std=c++17
#11 20.54 building 'vhacdx' extension
#11 20.54 creating build/temp.linux-aarch64-cpython-310/src/vhacdx
#11 20.54 g++ -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DVERSION_INFO=0.0.8.post1 -I/tmp/pip-build-env-qlk_8696/overlay/lib/python3.10/site-packages/pybind11/include -I/usr/local/include/python3.10 -c src/vhacdx/main.cpp -o build/temp.linux-aarch64-cpython-310/src/vhacdx/main.o -std=c++17 -fvisibility=hidden -g0
#11 21.34 src/vhacdx/main.cpp: In function ‘std::vector<std::pair<pybind11::array_t<double>, pybind11::array_t<unsigned int> > > compute_vhacd(pybind11::array_t<double>, pybind11::array_t<unsigned int>, uint32_t, uint32_t, double, uint32_t, bool, std::string, uint32_t, bool, uint32_t, bool)’:
#11 21.34 src/vhacdx/main.cpp:114:22: warning: unused variable ‘num_v’ [-Wunused-variable]
#11 21.34 114 | const uint32_t num_v = 3;
#11 21.34 | ^~~~~
#11 27.58 g++ -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -shared build/temp.linux-aarch64-cpython-310/src/vhacdx/main.o -L/usr/local/lib -o build/lib.linux-aarch64-cpython-310/vhacdx.cpython-310-aarch64-linux-gnu.so
#11 27.62 installing to build/bdist.linux-aarch64/wheel
#11 27.62 running install
#11 27.62 running install_lib
#11 27.62 creating build/bdist.linux-aarch64/wheel
#11 27.62 creating build/bdist.linux-aarch64/wheel/vhacdx
#11 27.62 copying build/lib.linux-aarch64-cpython-310/vhacdx/main.cpp -> build/bdist.linux-aarch64/wheel/./vhacdx
#11 27.62 copying build/lib.linux-aarch64-cpython-310/vhacdx.cpython-310-aarch64-linux-gnu.so -> build/bdist.linux-aarch64/wheel/.
#11 27.62 running install_egg_info
#11 27.62 Copying src/vhacdx.egg-info to build/bdist.linux-aarch64/wheel/./vhacdx-0.0.8.post1-py3.10.egg-info
#11 27.62 running install_scripts
#11 27.63 creating build/bdist.linux-aarch64/wheel/vhacdx-0.0.8.post1.dist-info/WHEEL
#11 27.63 creating '/tmp/pip-wheel-wyzegvbp/.tmp-rmwuidvh/vhacdx-0.0.8.post1-cp310-cp310-linux_aarch64.whl' and adding 'build/bdist.linux-aarch64/wheel' to it
#11 27.64 adding 'vhacdx.cpython-310-aarch64-linux-gnu.so'
#11 27.64 adding 'vhacdx/main.cpp'
#11 27.64 adding 'vhacdx-0.0.8.post1.dist-info/LICENSE'
#11 27.64 adding 'vhacdx-0.0.8.post1.dist-info/METADATA'
#11 27.64 adding 'vhacdx-0.0.8.post1.dist-info/WHEEL'
#11 27.64 adding 'vhacdx-0.0.8.post1.dist-info/top_level.txt'
#11 27.65 adding 'vhacdx-0.0.8.post1.dist-info/RECORD'
#11 27.65 removing build/bdist.linux-aarch64/wheel
#11 27.66 Building wheel for vhacdx (pyproject.toml): finished with status 'done'
#11 27.66 Created wheel for vhacdx: filename=vhacdx-0.0.8.post1-cp310-cp310-linux_aarch64.whl size=173788 sha256=2577be9fd5b545c9e12c6726d395d32dba6751902f1147dc039f545b8be13a79
#11 27.66 Stored in directory: /tmp/pip-ephem-wheel-cache-cccmpfu4/wheels/97/6e/31/f4ef74a3b23a32669d1d5d6cc3023a0ad56ecc1a3200981784
#11 27.66 Building wheel for xatlas (pyproject.toml): started
#11 27.66 Running command Building wheel for xatlas (pyproject.toml)
#11 27.75 running bdist_wheel
#11 27.76 running build
#11 27.76 running build_ext
#11 27.85 -- The CXX compiler identification is GNU 12.2.0
#11 27.88 -- Detecting CXX compiler ABI info
#11 28.00 -- Detecting CXX compiler ABI info - done
#11 28.01 -- Check for working CXX compiler: /usr/bin/c++ - skipped
#11 28.01 -- Detecting CXX compile features
#11 28.01 -- Detecting CXX compile features - done
#11 28.01 CMake Deprecation Warning at extern/pybind11/CMakeLists.txt:8 (cmake_minimum_required):
#11 28.01 Compatibility with CMake < 3.5 will be removed from a future version of
#11 28.01 CMake.
#11 28.01
#11 28.01 Update the VERSION argument <min> value or use a ...<max> suffix to tell
#11 28.01 CMake that the project does not need compatibility with older versions.
#11 28.01
#11 28.01
#11 28.02 -- pybind11 v2.10.1
#11 28.02 CMake Warning (dev) at extern/pybind11/tools/FindPythonLibsNew.cmake:98 (find_package):
#11 28.02 Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
#11 28.02 are removed. Run "cmake --help-policy CMP0148" for policy details. Use
#11 28.02 the cmake_policy command to set the policy and suppress this warning.
#11 28.02
#11 28.02 Call Stack (most recent call first):
#11 28.02 extern/pybind11/tools/pybind11Tools.cmake:50 (find_package)
#11 28.02 extern/pybind11/tools/pybind11Common.cmake:180 (include)
#11 28.02 extern/pybind11/CMakeLists.txt:206 (include)
#11 28.02 This warning is for project developers. Use -Wno-dev to suppress it.
#11 28.02
#11 28.03 -- Found PythonInterp: /usr/local/bin/python3.10 (found suitable version "3.10.15", minimum required is "3.6")
#11 28.03 -- Found PythonLibs: /usr/local/lib/libpython3.10.so
#11 28.04 -- Performing Test HAS_FLTO
#11 28.17 -- Performing Test HAS_FLTO - Success
#11 28.17 -- Configuring done (0.4s)
#11 28.21 -- Generating done (0.0s)
#11 28.21 -- Build files have been written to: /tmp/pip-install-j553duqp/xatlas_13ecb53708324a44af5a22044863601b/build/temp.linux-aarch64-cpython-310
#11 29.59 [1/7] Building CXX object src/CMakeFiles/xatlas.dir/utils.cpp.o
#11 29.94 [2/7] Building CXX object src/CMakeFiles/xatlas.dir/options.cpp.o
#11 30.02 [3/7] Building CXX object src/CMakeFiles/xatlas.dir/module.cpp.o
#11 30.39 [4/7] Building CXX object src/CMakeFiles/xatlas.dir/atlas.cpp.o
#11 32.19 [5/7] Building CXX object extern/CMakeFiles/xatlas-cpp.dir/xatlas/source/xatlas/xatlas.cpp.o
#11 32.20 [6/7] Linking CXX static library extern/libxatlas-cpp.a
#11 35.31 [7/7] Linking CXX shared module /tmp/pip-install-j553duqp/xatlas_13ecb53708324a44af5a22044863601b/build/lib.linux-aarch64-cpython-310/xatlas.cpython-310-aarch64-linux-gnu.so
#11 35.31 lto-wrapper: warning: using serial compilation of 4 LTRANS jobs
#11 35.31 lto-wrapper: note: see the ‘-flto’ option documentation for more information
#11 35.32 installing to build/bdist.linux-aarch64/wheel
#11 35.32 running install
#11 35.32 running install_lib
#11 35.32 creating build/bdist.linux-aarch64/wheel
#11 35.32 copying build/lib.linux-aarch64-cpython-310/xatlas.cpython-310-aarch64-linux-gnu.so -> build/bdist.linux-aarch64/wheel/.
#11 35.32 running install_egg_info
#11 35.32 running egg_info
#11 35.32 writing src/xatlas.egg-info/PKG-INFO
#11 35.32 writing dependency_links to src/xatlas.egg-info/dependency_links.txt
#11 35.32 writing requirements to src/xatlas.egg-info/requires.txt
#11 35.32 writing top-level names to src/xatlas.egg-info/top_level.txt
#11 35.33 reading manifest file 'src/xatlas.egg-info/SOURCES.txt'
#11 35.33 reading manifest template 'MANIFEST.in'
#11 35.33 adding license file 'LICENSE'
#11 35.33 writing manifest file 'src/xatlas.egg-info/SOURCES.txt'
#11 35.33 Copying src/xatlas.egg-info to build/bdist.linux-aarch64/wheel/./xatlas-0.0.9-py3.10.egg-info
#11 35.33 running install_scripts
#11 35.33 creating build/bdist.linux-aarch64/wheel/xatlas-0.0.9.dist-info/WHEEL
#11 35.34 creating '/tmp/pip-wheel-4btvjdju/.tmp-vl5mg4uh/xatlas-0.0.9-cp310-cp310-linux_aarch64.whl' and adding 'build/bdist.linux-aarch64/wheel' to it
#11 35.35 adding 'xatlas.cpython-310-aarch64-linux-gnu.so'
#11 35.35 adding 'xatlas-0.0.9.dist-info/LICENSE'
#11 35.35 adding 'xatlas-0.0.9.dist-info/METADATA'
#11 35.35 adding 'xatlas-0.0.9.dist-info/WHEEL'
#11 35.35 adding 'xatlas-0.0.9.dist-info/top_level.txt'
#11 35.35 adding 'xatlas-0.0.9.dist-info/RECORD'
#11 35.35 removing build/bdist.linux-aarch64/wheel
#11 35.37 Building wheel for xatlas (pyproject.toml): finished with status 'done'
#11 35.37 Created wheel for xatlas: filename=xatlas-0.0.9-cp310-cp310-linux_aarch64.whl size=195922 sha256=d4fd93641efa6cce8decdfb18bf34e88e9ed259d73c41d345109a4b4db290834
#11 35.37 Stored in directory: /tmp/pip-ephem-wheel-cache-cccmpfu4/wheels/dc/40/61/7f0d45f308462727a8feff08084f060952d36ca2365238be1d
#11 35.37 Successfully built mapbox-earcut pycollada vhacdx xatlas
#11 35.50 Installing collected packages: xxhash, xatlas, vhacdx, typing-extensions, trimesh, tomli, svg.path, sniffio, six, shapely, scipy, rtree, rpds-py, pluggy, pillow, packaging, networkx, mapbox-earcut, lxml, iniconfig, idna, h11, exceptiongroup, colorlog, chardet, certifi, attrs, referencing, python-dateutil, pytest, httpcore, anyio, pycollada, jsonschema-specifications, httpx, jsonschema
#11 38.94 changing mode of /usr/local/bin/chardetect to 755
#11 39.13 changing mode of /usr/local/bin/py.test to 755
#11 39.13 changing mode of /usr/local/bin/pytest to 755
#11 39.28 changing mode of /usr/local/bin/httpx to 755
#11 39.32 changing mode of /usr/local/bin/jsonschema to 755
#11 39.33 Successfully installed anyio-4.6.0 attrs-24.2.0 certifi-2024.8.30 chardet-5.2.0 colorlog-6.8.2 exceptiongroup-1.2.2 h11-0.14.0 httpcore-1.0.5 httpx-0.27.2 idna-3.10 iniconfig-2.0.0 jsonschema-4.23.0 jsonschema-specifications-2023.12.1 lxml-5.3.0 mapbox-earcut-1.0.2 networkx-3.3 packaging-24.1 pillow-10.4.0 pluggy-1.5.0 pycollada-0.8 pytest-8.3.3 python-dateutil-2.9.0.post0 referencing-0.35.1 rpds-py-0.20.0 rtree-1.3.0 scipy-1.14.1 shapely-2.0.6 six-1.16.0 sniffio-1.3.1 svg.path-6.3 tomli-2.0.1 trimesh-4.4.9 typing-extensions-4.12.2 vhacdx-0.0.8.post1 xatlas-0.0.9 xxhash-3.5.0
#11 39.33 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#11 39.45
#11 39.45 [notice] A new release of pip is available: 23.0.1 -> 24.2
#11 39.45 [notice] To update, run: pip install --upgrade pip
#11 DONE 39.8s
#12 exporting to image
#12 exporting layers
#12 exporting layers 0.5s done
#12 writing image sha256:fc8e8df1949f5c95809701d8c7c0c853dd8f2fae564548b43d895042d291f250
#12 writing image sha256:fc8e8df1949f5c95809701d8c7c0c853dd8f2fae564548b43d895042d291f250 done
#12 naming to docker.io/library/manifold-test done
#12 DONE 0.6s
Running the examples in the docker image
$ docker run --rm -it manifold-test bash -i
# inside the docker container
$ cd /opt/build/manifold/bindings/python/examples
$ export PYTHONPATH="$PYTHONPATH:/opt/build/manifold/bindings/python"
$ python3 run_all.py -e
Exported model to scallop.glb
Took 1064.2ms for scallop
Exported model to bricks.glb
Took 20.7ms for bricks
Exported model to gyroid_module.glb
Took 290.0ms for gyroid_module
Exported model to cube_with_dents.glb
Took 42.9ms for cube_with_dents
Exported model to extrude.glb
Took 0.6ms for extrude
Exported model to maze.glb
Took 1246.3ms for maze
Exported model to union_failure.glb
Took 1.1ms for union_failure
Exported model to test_torus_knot.glb
Took 17.4ms for test_torus_knot
Exported model to split_cube.glb
Took 0.9ms for split_cube
Exported model to all_apis.glb
Took 63.4ms for all_apis
Exported model to sponge.glb
Took 2.2ms for sponge
We will be verifying bindings when we release v3.0, I think we can close this for now. The error here is quite weird because we should have verified the sdist to be working...
Another remark: I don't see those errors when installing trimesh
/manifold3d
in native python environment on Apple M1 Pro just using pip3 install
, it only seems to happen when installing it in my docker image ( for arm architecture ).
The same image can be build for amd64 architecture without problems.
I guess on M1 there is already a bdist for it, it only compiles from sdist when you are on linux aarch64.
Thinking about it, I think the issue is probably due to how pypi is cloning our library without submodules, packaging the sdist with no one testing it. Now we don't have any submodules, so it should not matter.
The problem reappeared, somehow the "master" reference is a moving target. It once built ( unfortunately I did not save the master commit at that point in time ), but now it fails like this:
Any idea what particular commit between release 2.5.1 and HEAD is actually working and builds ok ?
....
#10 85.56 /opt/build/manifold/bindings/python/manifold3d.cpp: In static member function ‘static nanobind::handle nanobind::detail::type_caster<glm::mat<C, R, T, Q> >::from_cpp(glm_type, nanobind::rv_policy, nanobind::detail::cleanup_list*)’:
#10 85.56 /opt/build/manifold/bindings/python/manifold3d.cpp:117:43: error: ‘ndarray_framework’ was not declared in this scope
#10 85.56 117 | return ndarray_wrap(arr.handle(), int(ndarray_framework::numpy), policy,
#10 85.56 | ^~~~~~~~~~~~~~~~~
#10 85.56 /opt/build/manifold/bindings/python/manifold3d.cpp: In static member function ‘static nanobind::handle nanobind::detail::type_caster<std::vector<glm::vec<N, T, Q> > >::from_cpp(Value, nanobind::rv_policy, nanobind::detail::cleanup_list*)’:
#10 85.56 /opt/build/manifold/bindings/python/manifold3d.cpp:163:39: error: ‘ndarray_framework’ has not been declared
#10 85.56 163 | return ndarray_wrap(arr.handle(), ndarray_framework::numpy, policy,
#10 85.56 | ^~~~~~~~~~~~~~~~~
#10 85.56 /opt/build/manifold/bindings/python/manifold3d.cpp: In static member function ‘static nanobind::handle nanobind::detail::type_caster<manifold::VecView<glm::vec<N, T, Q> > >::from_cpp(Value, nanobind::rv_policy, nanobind::detail::cleanup_list*)’:
#10 85.56 /opt/build/manifold/bindings/python/manifold3d.cpp:196:39: error: ‘ndarray_framework’ has not been declared
#10 85.56 196 | return ndarray_wrap(arr.handle(), ndarray_framework::numpy, policy,
#10 85.56 | ^~~~~~~~~~~~~~~~~
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp: In instantiation of ‘static nanobind::handle nanobind::detail::type_caster<std::vector<glm::vec<N, T, Q> > >::from_cpp(Value, nanobind::rv_policy, nanobind::detail::cleanup_list*) [with T = int; int N = 3; glm::qualifier Q = glm::packed_highp; Value = std::vector<glm::vec<3, int, glm::packed_highp> >]’:
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:272:40: required from ‘PyObject* nanobind::detail::func_create(Func&&, Return (*)(Args ...), std::index_sequence<Is2 ...>, const Extra& ...) [with bool ReturnRef = false; bool CheckGuard = true; Func = std::vector<glm::vec<3, int, glm::packed_highp> > (*&)(const std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > >&, double); Return = std::vector<glm::vec<3, int, glm::packed_highp> >; Args = {const std::vector<std::vector<glm::vec<2, double, glm::packed_highp>, std::allocator<glm::vec<2, double, glm::packed_highp> > >, std::allocator<std::vector<glm::vec<2, double, glm::packed_highp>, std::allocator<glm::vec<2, double, glm::packed_highp> > > > >&, double}; long unsigned int ...Is = {0, 1}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg_v, const char*}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:328:37: required from ‘void nanobind::cpp_function_def(Return (*)(Args ...), const Extra& ...) [with <template-parameter-1-1> = void; Return = std::vector<glm::vec<3, int, glm::packed_highp> >; Args = {const std::vector<std::vector<glm::vec<2, double, glm::packed_highp>, std::allocator<glm::vec<2, double, glm::packed_highp> > >, std::allocator<std::vector<glm::vec<2, double, glm::packed_highp>, std::allocator<glm::vec<2, double, glm::packed_highp> > > > >&, double}; Extra = {scope, name, arg, arg_v, const char*}]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:405:21: required from ‘nanobind::module_& nanobind::module_::def(const char*, Func&&, const Extra& ...) [with Func = std::vector<glm::vec<3, int, glm::packed_highp> > (*)(const std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > >&, double); Extra = {nanobind::arg, nanobind::arg_v, const char*}]’
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp:230:8: required from here
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp:163:24: error: ‘ndarray_wrap’ was not declared in this scope
#10 85.57 163 | return ndarray_wrap(arr.handle(), ndarray_framework::numpy, policy,
#10 85.57 | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#10 85.57 164 | cleanup);
#10 85.57 | ~~~~~~~~
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp: In instantiation of ‘static nanobind::handle nanobind::detail::type_caster<std::vector<glm::vec<N, T, Q> > >::from_cpp(Value, nanobind::rv_policy, nanobind::detail::cleanup_list*) [with T = double; int N = 2; glm::qualifier Q = glm::packed_highp; Value = std::vector<glm::vec<2, double, glm::packed_highp> >]’:
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/stl/detail/nb_list.h:67:44: required from ‘static nanobind::handle nanobind::detail::list_caster<List, Entry>::from_cpp(T&&, nanobind::rv_policy, nanobind::detail::cleanup_list*) [with T = std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > >; List = std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > >; Entry = std::vector<glm::vec<2, double, glm::packed_highp> >]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:272:40: required from ‘PyObject* nanobind::detail::func_create(Func&&, Return (*)(Args ...), std::index_sequence<Is2 ...>, const Extra& ...) [with bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::cpp_function_def<manifold::CrossSection, std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > >, manifold::CrossSection, scope, name, is_method, const char*>(std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > > (manifold::CrossSection::*)() const, const scope&, const name&, const is_method&, const char* const&)::<lambda(const T*)>; Return = std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > >; Args = {const manifold::CrossSection*}; long unsigned int ...Is = {0}; Extra = {nanobind::scope, nanobind::name, nanobind::is_method, const char*}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0>]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:395:37: required from ‘void nanobind::cpp_function_def(Return (Class::*)(Args ...) const, const Extra& ...) [with Target = manifold::CrossSection; Return = std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > >; Class = manifold::CrossSection; Args = {}; Extra = {scope, name, is_method, const char*}]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_class.h:567:28: required from ‘nanobind::class_<T, Ts>& nanobind::class_<T, Ts>::def(const char*, Func&&, const Extra& ...) [with Func = std::vector<std::vector<glm::vec<2, double, glm::packed_highp> > > (manifold::CrossSection::*)() const; Extra = {const char*}; T = manifold::CrossSection; Ts = {}]’
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp:695:11: required from here
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp:163:24: error: ‘ndarray_wrap’ was not declared in this scope
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp: In instantiation of ‘static nanobind::handle nanobind::detail::type_caster<manifold::VecView<glm::vec<N, T, Q> > >::from_cpp(Value, nanobind::rv_policy, nanobind::detail::cleanup_list*) [with T = double; int N = 3; glm::qualifier Q = glm::packed_highp; Value = manifold::VecView<glm::vec<3, double, glm::packed_highp> >]’:
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_call.h:136:50: required from ‘nanobind::object nanobind::detail::api<Derived>::operator()(Args&& ...) const [with nanobind::rv_policy policy = nanobind::rv_policy::automatic_reference; Args = {manifold::VecView<glm::vec<3, double, glm::packed_highp> >}; Derived = nanobind::handle]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/stl/function.h:62:42: required from ‘Return nanobind::detail::type_caster<std::function<_Res(_ArgTypes ...)> >::pyfunc_wrapper_t::operator()(Args ...) const [with Return = void; Args = {manifold::VecView<glm::vec<3, double, glm::packed_highp> >}]’
#10 85.57 /usr/include/c++/12/bits/invoke.h:61:36: required from ‘constexpr _Res std::__invoke_impl(__invoke_other, _Fn&&, _Args&& ...) [with _Res = void; _Fn = nanobind::detail::type_caster<function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t&; _Args = {manifold::VecView<glm::vec<3, double, glm::packed_highp> >}]’
#10 85.57 /usr/include/c++/12/bits/invoke.h:111:28: required from ‘constexpr std::enable_if_t<is_invocable_r_v<_Res, _Callable, _Args ...>, _Res> std::__invoke_r(_Callable&&, _Args&& ...) [with _Res = void; _Callable = nanobind::detail::type_caster<function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t&; _Args = {manifold::VecView<glm::vec<3, double, glm::packed_highp> >}; enable_if_t<is_invocable_r_v<_Res, _Callable, _Args ...>, _Res> = void]’
#10 85.57 /usr/include/c++/12/bits/std_function.h:290:30: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
#10 85.57 /usr/include/c++/12/bits/std_function.h:534:4: required from ‘std::function<_Res(_ArgTypes ...)>::_Requires<std::function<_Res(_ArgTypes ...)>::_Callable<_Functor>, std::function<_Res(_ArgTypes ...)>&> std::function<_Res(_ArgTypes ...)>::operator=(_Functor&&) [with _Functor = nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t; _Res = void; _ArgTypes = {manifold::VecView<glm::vec<3, double, glm::packed_highp> >}; _Requires<_Callable<_Functor>, std::function<_Res(_ArgTypes ...)>&> = std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>&; typename std::enable_if<(! std::is_same<typename std::remove_cv<typename std::remove_reference<_Up>::type>::type, std::function<_Res(_ArgTypes ...)> >::value), std::decay<_Up> >::type::type = std::decay<nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t>::type; typename std::enable_if<(! std::is_same<typename std::remove_cv<typename std::remove_reference<_Up>::type>::type, std::function<_Res(_ArgTypes ...)> >::value), std::decay<_Up> >::type = std::decay<nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t>; typename std::remove_cv<typename std::remove_reference<_Up>::type>::type = nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t; typename std::remove_reference<_Up>::type = nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/stl/function.h:73:15: required from ‘bool nanobind::detail::type_caster<std::function<_Res(_ArgTypes ...)> >::from_python(nanobind::handle, uint8_t, nanobind::detail::cleanup_list*) [with Return = void; Args = {manifold::VecView<glm::vec<3, double, glm::packed_highp> >}; uint8_t = unsigned char]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:252:52: required from ‘PyObject* nanobind::detail::func_create(Func&&, Return (*)(Args ...), std::index_sequence<Is2 ...>, const Extra& ...) [with bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::cpp_function_def<manifold::Manifold, manifold::Manifold, manifold::Manifold, std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>, scope, name, is_method, arg, const char*>(manifold::Manifold (manifold::Manifold::*)(std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>) const, const scope&, const name&, const is_method&, const arg&, const char* const&)::<lambda(const T*, std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>)>; Return = manifold::Manifold; Args = {const manifold::Manifold*, std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>}; long unsigned int ...Is = {0, 1}; Extra = {nanobind::scope, nanobind::name, nanobind::is_method, nanobind::arg, const char*}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:395:37: required from ‘void nanobind::cpp_function_def(Return (Class::*)(Args ...) const, const Extra& ...) [with Target = manifold::Manifold; Return = manifold::Manifold; Class = manifold::Manifold; Args = {std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>}; Extra = {scope, name, is_method, arg, const char*}]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_class.h:567:28: required from ‘nanobind::class_<T, Ts>& nanobind::class_<T, Ts>::def(const char*, Func&&, const Extra& ...) [with Func = manifold::Manifold (manifold::Manifold::*)(std::function<void(manifold::VecView<glm::vec<3, double, glm::packed_highp> >)>) const; Extra = {nanobind::arg, const char*}; T = manifold::Manifold; Ts = {}]’
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp:279:11: required from here
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp:196:24: error: ‘ndarray_wrap’ was not declared in this scope
#10 85.57 196 | return ndarray_wrap(arr.handle(), ndarray_framework::numpy, policy,
#10 85.57 | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#10 85.57 197 | cleanup);
#10 85.57 | ~~~~~~~~
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp: In instantiation of ‘static nanobind::handle nanobind::detail::type_caster<manifold::VecView<glm::vec<N, T, Q> > >::from_cpp(Value, nanobind::rv_policy, nanobind::detail::cleanup_list*) [with T = double; int N = 2; glm::qualifier Q = glm::packed_highp; Value = manifold::VecView<glm::vec<2, double, glm::packed_highp> >]’:
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_call.h:136:50: required from ‘nanobind::object nanobind::detail::api<Derived>::operator()(Args&& ...) const [with nanobind::rv_policy policy = nanobind::rv_policy::automatic_reference; Args = {manifold::VecView<glm::vec<2, double, glm::packed_highp> >}; Derived = nanobind::handle]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/stl/function.h:62:42: required from ‘Return nanobind::detail::type_caster<std::function<_Res(_ArgTypes ...)> >::pyfunc_wrapper_t::operator()(Args ...) const [with Return = void; Args = {manifold::VecView<glm::vec<2, double, glm::packed_highp> >}]’
#10 85.57 /usr/include/c++/12/bits/invoke.h:61:36: required from ‘constexpr _Res std::__invoke_impl(__invoke_other, _Fn&&, _Args&& ...) [with _Res = void; _Fn = nanobind::detail::type_caster<function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t&; _Args = {manifold::VecView<glm::vec<2, double, glm::packed_highp> >}]’
#10 85.57 /usr/include/c++/12/bits/invoke.h:111:28: required from ‘constexpr std::enable_if_t<is_invocable_r_v<_Res, _Callable, _Args ...>, _Res> std::__invoke_r(_Callable&&, _Args&& ...) [with _Res = void; _Callable = nanobind::detail::type_caster<function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t&; _Args = {manifold::VecView<glm::vec<2, double, glm::packed_highp> >}; enable_if_t<is_invocable_r_v<_Res, _Callable, _Args ...>, _Res> = void]’
#10 85.57 /usr/include/c++/12/bits/std_function.h:290:30: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
#10 85.57 /usr/include/c++/12/bits/std_function.h:534:4: required from ‘std::function<_Res(_ArgTypes ...)>::_Requires<std::function<_Res(_ArgTypes ...)>::_Callable<_Functor>, std::function<_Res(_ArgTypes ...)>&> std::function<_Res(_ArgTypes ...)>::operator=(_Functor&&) [with _Functor = nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t; _Res = void; _ArgTypes = {manifold::VecView<glm::vec<2, double, glm::packed_highp> >}; _Requires<_Callable<_Functor>, std::function<_Res(_ArgTypes ...)>&> = std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>&; typename std::enable_if<(! std::is_same<typename std::remove_cv<typename std::remove_reference<_Up>::type>::type, std::function<_Res(_ArgTypes ...)> >::value), std::decay<_Up> >::type::type = std::decay<nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t>::type; typename std::enable_if<(! std::is_same<typename std::remove_cv<typename std::remove_reference<_Up>::type>::type, std::function<_Res(_ArgTypes ...)> >::value), std::decay<_Up> >::type = std::decay<nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t>; typename std::remove_cv<typename std::remove_reference<_Up>::type>::type = nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t; typename std::remove_reference<_Up>::type = nanobind::detail::type_caster<std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>, int>::pyfunc_wrapper_t]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/stl/function.h:73:15: required from ‘bool nanobind::detail::type_caster<std::function<_Res(_ArgTypes ...)> >::from_python(nanobind::handle, uint8_t, nanobind::detail::cleanup_list*) [with Return = void; Args = {manifold::VecView<glm::vec<2, double, glm::packed_highp> >}; uint8_t = unsigned char]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:252:52: required from ‘PyObject* nanobind::detail::func_create(Func&&, Return (*)(Args ...), std::index_sequence<Is2 ...>, const Extra& ...) [with bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::cpp_function_def<manifold::CrossSection, manifold::CrossSection, manifold::CrossSection, std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>, scope, name, is_method, arg, const char*>(manifold::CrossSection (manifold::CrossSection::*)(std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>) const, const scope&, const name&, const is_method&, const arg&, const char* const&)::<lambda(const T*, std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>)>; Return = manifold::CrossSection; Args = {const manifold::CrossSection*, std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>}; long unsigned int ...Is = {0, 1}; Extra = {nanobind::scope, nanobind::name, nanobind::is_method, nanobind::arg, const char*}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_func.h:395:37: required from ‘void nanobind::cpp_function_def(Return (Class::*)(Args ...) const, const Extra& ...) [with Target = manifold::CrossSection; Return = manifold::CrossSection; Class = manifold::CrossSection; Args = {std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>}; Extra = {scope, name, is_method, arg, const char*}]’
#10 85.57 /tmp/pip-build-env-m6ypoqvm/overlay/lib/python3.10/site-packages/nanobind/include/nanobind/nb_class.h:567:28: required from ‘nanobind::class_<T, Ts>& nanobind::class_<T, Ts>::def(const char*, Func&&, const Extra& ...) [with Func = manifold::CrossSection (manifold::CrossSection::*)(std::function<void(manifold::VecView<glm::vec<2, double, glm::packed_highp> >)>) const; Extra = {nanobind::arg, const char*}; T = manifold::CrossSection; Ts = {}]’
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp:666:11: required from here
#10 85.57 /opt/build/manifold/bindings/python/manifold3d.cpp:196:24: error: ‘ndarray_wrap’ was not declared in this scope
#10 85.57 ninja: build stopped: subcommand failed.
#10 85.58
#10 85.58 *** CMake build failed
#10 85.59 error: subprocess-exited-with-error
#10 85.59
#10 85.59 × Building wheel for manifold3d (pyproject.toml) did not run successfully.
#10 85.59 │ exit code: 1
#10 85.59 ╰─> See above for output.
#10 85.59
#10 85.59 note: This error originates from a subprocess, and is likely not a problem with pip.
#10 85.59 full command: /usr/local/bin/python3.10 /usr/local/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /tmp/tmp256_0f4z
#10 85.59 cwd: /opt/build/manifold
#10 85.59 Building wheel for manifold3d (pyproject.toml): finished with status 'error'
#10 85.59 ERROR: Failed building wheel for manifold3d
#10 85.59 Failed to build manifold3d
#10 85.59 ERROR: Could not build wheels for manifold3d, which is required to install pyproject.toml-based projects
#10 85.71
#10 85.71 [notice] A new release of pip is available: 23.0.1 -> 24.2
#10 85.71 [notice] To update, run: pip install --upgrade pip
#10 ERROR: process "/bin/sh -c if [ \"$(uname -m)\" = \"aarch64\" ] ; then ./trimesh-aarch64-fix.sh ; fi" did not complete successfully: exit code: 1
------
> [documents-worker stage-0 6/14] RUN if [ "$(uname -m)" = "aarch64" ] ; then ./trimesh-aarch64-fix.sh ; fi:
85.59 note: This error originates from a subprocess, and is likely not a problem with pip.
85.59 full command: /usr/local/bin/python3.10 /usr/local/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /tmp/tmp256_0f4z
85.59 cwd: /opt/build/manifold
85.59 Building wheel for manifold3d (pyproject.toml): finished with status 'error'
85.59 ERROR: Failed building wheel for manifold3d
85.59 Failed to build manifold3d
What version of nanobind
are you using? Considering the function is defined in nanobind
, I think it is a version issue.
There was a nanobind==2.2.0
release on PyPi 2024-10-03.
# does not work ( fails with the ndarray_wrap error, logs show nanobind==2.2.0 is used )
pip3 install --verbose --no-cache-dir \
numpy==1.26.4 /opt/build/manifold
pip3 install --verbose --no-cache-dir \
nanobind==2.1.0
# does not work either ( looks like newer nanobind version is re-installed by manifold build )
pip3 install --verbose --no-cache-dir \
numpy==1.26.4 /opt/build/manifold
Prints the following logs
....
#10 63.43 Cloning into 'manifold'...
#10 68.53 Using pip 23.0.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
#10 68.66 Collecting nanobind==2.1.0
#10 68.79 Downloading nanobind-2.1.0-py3-none-any.whl (220 kB)
#10 68.83 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 220.7/220.7 kB 5.1 MB/s eta 0:00:00
#10 68.86 Installing collected packages: nanobind
#10 68.87 Successfully installed nanobind-2.1.0
#10 68.88 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
#10 68.99
#10 68.99 [notice] A new release of pip is available: 23.0.1 -> 24.2
#10 68.99 [notice] To update, run: pip install --upgrade pip
#10 69.16 Using pip 23.0.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
#10 69.17 Processing ./manifold
#10 69.17 Installing build dependencies: started
#10 69.17 Running command pip subprocess to install build dependencies
#10 69.41 Collecting nanobind>=1.8.0
#10 69.49 Downloading nanobind-2.2.0-py3-none-any.whl (231 kB)
#10 69.54 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 231.6/231.6 kB 5.2 MB/s eta 0:00:00
Looks like the build steps force a re-install of nanobind>=1.8
( formerly resulting in 2.1.0, now resulting in 2.2.0 ) which is incompatible with manifold
master.
Hmm, probably something with requirements.txt
.
Thinking about it, maybe we were using some internal APIs within nanobind. We should try to only use the public APIs.
I was able to build again after applying this little patch to pyproject.toml
before installing manifold
from the git master
sources:
git clone https://github.com/elalish/manifold
sed -e 's#nanobind>=1.8.0#nanobind>=1.8,<2.2#' -i manifold/pyproject.toml
pip3 install --verbose --no-cache-dir \
numpy==1.26.4 ./manifold
I'm trying to include
manifold3d==2.5.1
in my docker image build, but it fails unexpected. Any help appreciated !Trying to build on MacOS 14.6.1 (23G93) Apple M1 Pro
prints the following