elalish / manifold

Geometry library for topological robustness
Apache License 2.0
864 stars 94 forks source link

Can not install manfold3d in docker image build on aarch64 using base image python:3.10-slim-bookworm #947

Open manuel-koch opened 2 weeks ago

manuel-koch commented 2 weeks ago

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

FROM python:3.10-slim-bookworm

RUN apt-get update -qq \
    && apt-get install -qq --no-install-recommends \
               bzip2 git openssh-client tar \
               ca-certificates zstd \
               build-essential g++ gcc cmake \
               libgl1-mesa-glx libgl1-mesa-dri mesa-utils xvfb xauth freeglut3-dev

RUN pip3 install numpy==1.26 manifold3d

prints the following

$ docker build -t manifold-test --progress=plain -f docker/Dockerfile.test .
#0 building with "desktop-linux" instance using docker driver

#1 [internal] load build definition from Dockerfile.test
#1 transferring dockerfile: 408B 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/3] FROM docker.io/library/python:3.10-slim-bookworm@sha256:80619a5316afae7045a3c13371b0ee670f39bac46ea1ed35081d2bf91d6c3dbd
#4 CACHED

#5 [2/3] RUN apt-get update -qq     && apt-get install -qq --no-install-recommends                     bzip2 git openssh-client tar                    ca-certificates zstd                    build-essential g++ gcc cmake               libgl1-mesa-glx libgl1-mesa-dri mesa-utils xvfb xauth freeglut3-dev
#5 16.55 debconf: delaying package configuration, since apt-utils is not installed
#5 16.60 Selecting previously unselected package perl-modules-5.36.
(Reading database ... 6689 files and directories currently installed.)
#5 16.61 Preparing to unpack .../000-perl-modules-5.36_5.36.0-7+deb12u1_all.deb ...
#5 16.61 Unpacking perl-modules-5.36 (5.36.0-7+deb12u1) ...
#5 16.84 Selecting previously unselected package libgdbm-compat4:arm64.
#5 16.84 Preparing to unpack .../001-libgdbm-compat4_1.23-3_arm64.deb ...
#5 16.84 Unpacking libgdbm-compat4:arm64 (1.23-3) ...
#5 16.86 Selecting previously unselected package libperl5.36:arm64.
#5 16.86 Preparing to unpack .../002-libperl5.36_5.36.0-7+deb12u1_arm64.deb ...
#5 16.86 Unpacking libperl5.36:arm64 (5.36.0-7+deb12u1) ...
#5 17.14 Selecting previously unselected package perl.
#5 17.14 Preparing to unpack .../003-perl_5.36.0-7+deb12u1_arm64.deb ...
#5 17.14 Unpacking perl (5.36.0-7+deb12u1) ...
#5 17.18 Selecting previously unselected package libproc2-0:arm64.
#5 17.18 Preparing to unpack .../004-libproc2-0_2%3a4.0.2-3_arm64.deb ...
#5 17.18 Unpacking libproc2-0:arm64 (2:4.0.2-3) ...
#5 17.20 Selecting previously unselected package procps.
#5 17.20 Preparing to unpack .../005-procps_2%3a4.0.2-3_arm64.deb ...
#5 17.21 Unpacking procps (2:4.0.2-3) ...
#5 17.26 Selecting previously unselected package bzip2.
#5 17.26 Preparing to unpack .../006-bzip2_1.0.8-5+b1_arm64.deb ...
#5 17.26 Unpacking bzip2 (1.0.8-5+b1) ...
#5 17.28 Selecting previously unselected package libbsd0:arm64.
#5 17.28 Preparing to unpack .../007-libbsd0_0.11.7-2_arm64.deb ...
#5 17.28 Unpacking libbsd0:arm64 (0.11.7-2) ...
#5 17.30 Selecting previously unselected package libedit2:arm64.
#5 17.31 Preparing to unpack .../008-libedit2_3.1-20221030-2_arm64.deb ...
#5 17.31 Unpacking libedit2:arm64 (3.1-20221030-2) ...
#5 17.33 Selecting previously unselected package libcbor0.8:arm64.
#5 17.33 Preparing to unpack .../009-libcbor0.8_0.8.0-2+b1_arm64.deb ...
#5 17.33 Unpacking libcbor0.8:arm64 (0.8.0-2+b1) ...
#5 17.34 Selecting previously unselected package libfido2-1:arm64.
#5 17.34 Preparing to unpack .../010-libfido2-1_1.12.0-2+b1_arm64.deb ...
#5 17.34 Unpacking libfido2-1:arm64 (1.12.0-2+b1) ...
#5 17.38 Selecting previously unselected package openssh-client.
#5 17.38 Preparing to unpack .../011-openssh-client_1%3a9.2p1-2+deb12u3_arm64.deb ...
#5 17.38 Unpacking openssh-client (1:9.2p1-2+deb12u3) ...
#5 17.47 Selecting previously unselected package xz-utils.
#5 17.47 Preparing to unpack .../012-xz-utils_5.4.1-0.2_arm64.deb ...
#5 17.47 Unpacking xz-utils (5.4.1-0.2) ...
#5 17.52 Selecting previously unselected package binutils-common:arm64.
#5 17.53 Preparing to unpack .../013-binutils-common_2.40-2_arm64.deb ...
#5 17.53 Unpacking binutils-common:arm64 (2.40-2) ...
#5 17.70 Selecting previously unselected package libbinutils:arm64.
#5 17.70 Preparing to unpack .../014-libbinutils_2.40-2_arm64.deb ...
#5 17.71 Unpacking libbinutils:arm64 (2.40-2) ...
#5 17.75 Selecting previously unselected package libctf-nobfd0:arm64.
#5 17.76 Preparing to unpack .../015-libctf-nobfd0_2.40-2_arm64.deb ...
#5 17.76 Unpacking libctf-nobfd0:arm64 (2.40-2) ...
#5 17.78 Selecting previously unselected package libctf0:arm64.
#5 17.78 Preparing to unpack .../016-libctf0_2.40-2_arm64.deb ...
#5 17.78 Unpacking libctf0:arm64 (2.40-2) ...
#5 17.80 Selecting previously unselected package libgprofng0:arm64.
#5 17.80 Preparing to unpack .../017-libgprofng0_2.40-2_arm64.deb ...
#5 17.80 Unpacking libgprofng0:arm64 (2.40-2) ...
#5 17.85 Selecting previously unselected package libjansson4:arm64.
#5 17.85 Preparing to unpack .../018-libjansson4_2.14-2_arm64.deb ...
#5 17.85 Unpacking libjansson4:arm64 (2.14-2) ...
#5 17.86 Selecting previously unselected package binutils-aarch64-linux-gnu.
#5 17.86 Preparing to unpack .../019-binutils-aarch64-linux-gnu_2.40-2_arm64.deb ...
#5 17.86 Unpacking binutils-aarch64-linux-gnu (2.40-2) ...
#5 18.05 Selecting previously unselected package binutils.
#5 18.05 Preparing to unpack .../020-binutils_2.40-2_arm64.deb ...
#5 18.05 Unpacking binutils (2.40-2) ...
#5 18.07 Selecting previously unselected package libc-dev-bin.
#5 18.07 Preparing to unpack .../021-libc-dev-bin_2.36-9+deb12u8_arm64.deb ...
#5 18.07 Unpacking libc-dev-bin (2.36-9+deb12u8) ...
#5 18.08 Selecting previously unselected package linux-libc-dev:arm64.
#5 18.09 Preparing to unpack .../022-linux-libc-dev_6.1.106-3_arm64.deb ...
#5 18.09 Unpacking linux-libc-dev:arm64 (6.1.106-3) ...
#5 18.17 Selecting previously unselected package libcrypt-dev:arm64.
#5 18.17 Preparing to unpack .../023-libcrypt-dev_1%3a4.4.33-2_arm64.deb ...
#5 18.18 Unpacking libcrypt-dev:arm64 (1:4.4.33-2) ...
#5 18.19 Selecting previously unselected package libtirpc-dev:arm64.
#5 18.19 Preparing to unpack .../024-libtirpc-dev_1.3.3+ds-1_arm64.deb ...
#5 18.20 Unpacking libtirpc-dev:arm64 (1.3.3+ds-1) ...
#5 18.23 Selecting previously unselected package libnsl-dev:arm64.
#5 18.23 Preparing to unpack .../025-libnsl-dev_1.3.0-2_arm64.deb ...
#5 18.23 Unpacking libnsl-dev:arm64 (1.3.0-2) ...
#5 18.24 Selecting previously unselected package rpcsvc-proto.
#5 18.24 Preparing to unpack .../026-rpcsvc-proto_1.4.3-1_arm64.deb ...
#5 18.24 Unpacking rpcsvc-proto (1.4.3-1) ...
#5 18.26 Selecting previously unselected package libc6-dev:arm64.
#5 18.26 Preparing to unpack .../027-libc6-dev_2.36-9+deb12u8_arm64.deb ...
#5 18.26 Unpacking libc6-dev:arm64 (2.36-9+deb12u8) ...
#5 18.36 Selecting previously unselected package libisl23:arm64.
#5 18.36 Preparing to unpack .../028-libisl23_0.25-1.1_arm64.deb ...
#5 18.36 Unpacking libisl23:arm64 (0.25-1.1) ...
#5 18.41 Selecting previously unselected package libmpfr6:arm64.
#5 18.41 Preparing to unpack .../029-libmpfr6_4.2.0-1_arm64.deb ...
#5 18.41 Unpacking libmpfr6:arm64 (4.2.0-1) ...
#5 18.44 Selecting previously unselected package libmpc3:arm64.
#5 18.44 Preparing to unpack .../030-libmpc3_1.3.1-1_arm64.deb ...
#5 18.44 Unpacking libmpc3:arm64 (1.3.1-1) ...
#5 18.45 Selecting previously unselected package cpp-12.
#5 18.45 Preparing to unpack .../031-cpp-12_12.2.0-14_arm64.deb ...
#5 18.46 Unpacking cpp-12 (12.2.0-14) ...
#5 18.87 Selecting previously unselected package cpp.
#5 18.87 Preparing to unpack .../032-cpp_4%3a12.2.0-3_arm64.deb ...
#5 18.87 Unpacking cpp (4:12.2.0-3) ...
#5 18.88 Selecting previously unselected package libcc1-0:arm64.
#5 18.88 Preparing to unpack .../033-libcc1-0_12.2.0-14_arm64.deb ...
#5 18.88 Unpacking libcc1-0:arm64 (12.2.0-14) ...
#5 18.90 Selecting previously unselected package libgomp1:arm64.
#5 18.90 Preparing to unpack .../034-libgomp1_12.2.0-14_arm64.deb ...
#5 18.90 Unpacking libgomp1:arm64 (12.2.0-14) ...
#5 18.92 Selecting previously unselected package libitm1:arm64.
#5 18.92 Preparing to unpack .../035-libitm1_12.2.0-14_arm64.deb ...
#5 18.92 Unpacking libitm1:arm64 (12.2.0-14) ...
#5 18.93 Selecting previously unselected package libatomic1:arm64.
#5 18.93 Preparing to unpack .../036-libatomic1_12.2.0-14_arm64.deb ...
#5 18.93 Unpacking libatomic1:arm64 (12.2.0-14) ...
#5 18.94 Selecting previously unselected package libasan8:arm64.
#5 18.94 Preparing to unpack .../037-libasan8_12.2.0-14_arm64.deb ...
#5 18.95 Unpacking libasan8:arm64 (12.2.0-14) ...
#5 19.09 Selecting previously unselected package liblsan0:arm64.
#5 19.09 Preparing to unpack .../038-liblsan0_12.2.0-14_arm64.deb ...
#5 19.09 Unpacking liblsan0:arm64 (12.2.0-14) ...
#5 19.15 Selecting previously unselected package libtsan2:arm64.
#5 19.15 Preparing to unpack .../039-libtsan2_12.2.0-14_arm64.deb ...
#5 19.15 Unpacking libtsan2:arm64 (12.2.0-14) ...
#5 19.28 Selecting previously unselected package libubsan1:arm64.
#5 19.28 Preparing to unpack .../040-libubsan1_12.2.0-14_arm64.deb ...
#5 19.29 Unpacking libubsan1:arm64 (12.2.0-14) ...
#5 19.34 Selecting previously unselected package libhwasan0:arm64.
#5 19.34 Preparing to unpack .../041-libhwasan0_12.2.0-14_arm64.deb ...
#5 19.34 Unpacking libhwasan0:arm64 (12.2.0-14) ...
#5 19.41 Selecting previously unselected package libgcc-12-dev:arm64.
#5 19.41 Preparing to unpack .../042-libgcc-12-dev_12.2.0-14_arm64.deb ...
#5 19.41 Unpacking libgcc-12-dev:arm64 (12.2.0-14) ...
#5 19.49 Selecting previously unselected package gcc-12.
#5 19.49 Preparing to unpack .../043-gcc-12_12.2.0-14_arm64.deb ...
#5 19.49 Unpacking gcc-12 (12.2.0-14) ...
#5 19.98 Selecting previously unselected package gcc.
#5 19.98 Preparing to unpack .../044-gcc_4%3a12.2.0-3_arm64.deb ...
#5 19.99 Unpacking gcc (4:12.2.0-3) ...
#5 20.00 Selecting previously unselected package libstdc++-12-dev:arm64.
#5 20.00 Preparing to unpack .../045-libstdc++-12-dev_12.2.0-14_arm64.deb ...
#5 20.00 Unpacking libstdc++-12-dev:arm64 (12.2.0-14) ...
#5 20.16 Selecting previously unselected package g++-12.
#5 20.17 Preparing to unpack .../046-g++-12_12.2.0-14_arm64.deb ...
#5 20.17 Unpacking g++-12 (12.2.0-14) ...
#5 20.61 Selecting previously unselected package g++.
#5 20.61 Preparing to unpack .../047-g++_4%3a12.2.0-3_arm64.deb ...
#5 20.61 Unpacking g++ (4:12.2.0-3) ...
#5 20.62 Selecting previously unselected package make.
#5 20.62 Preparing to unpack .../048-make_4.3-4.1_arm64.deb ...
#5 20.62 Unpacking make (4.3-4.1) ...
#5 20.65 Selecting previously unselected package libdpkg-perl.
#5 20.65 Preparing to unpack .../049-libdpkg-perl_1.21.22_all.deb ...
#5 20.65 Unpacking libdpkg-perl (1.21.22) ...
#5 20.69 Selecting previously unselected package patch.
#5 20.69 Preparing to unpack .../050-patch_2.7.6-7_arm64.deb ...
#5 20.69 Unpacking patch (2.7.6-7) ...
#5 20.71 Selecting previously unselected package dpkg-dev.
#5 20.71 Preparing to unpack .../051-dpkg-dev_1.21.22_all.deb ...
#5 20.71 Unpacking dpkg-dev (1.21.22) ...
#5 20.78 Selecting previously unselected package build-essential.
#5 20.78 Preparing to unpack .../052-build-essential_12.9_arm64.deb ...
#5 20.79 Unpacking build-essential (12.9) ...
#5 20.80 Selecting previously unselected package libicu72:arm64.
#5 20.80 Preparing to unpack .../053-libicu72_72.1-3_arm64.deb ...
#5 20.80 Unpacking libicu72:arm64 (72.1-3) ...
#5 21.21 Selecting previously unselected package libxml2:arm64.
#5 21.21 Preparing to unpack .../054-libxml2_2.9.14+dfsg-1.3~deb12u1_arm64.deb ...
#5 21.21 Unpacking libxml2:arm64 (2.9.14+dfsg-1.3~deb12u1) ...
#5 21.25 Selecting previously unselected package libarchive13:arm64.
#5 21.26 Preparing to unpack .../055-libarchive13_3.6.2-1+deb12u1_arm64.deb ...
#5 21.26 Unpacking libarchive13:arm64 (3.6.2-1+deb12u1) ...
#5 21.29 Selecting previously unselected package libbrotli1:arm64.
#5 21.29 Preparing to unpack .../056-libbrotli1_1.0.9-2+b6_arm64.deb ...
#5 21.29 Unpacking libbrotli1:arm64 (1.0.9-2+b6) ...
#5 21.31 Selecting previously unselected package libsasl2-modules-db:arm64.
#5 21.31 Preparing to unpack .../057-libsasl2-modules-db_2.1.28+dfsg-10_arm64.deb ...
#5 21.32 Unpacking libsasl2-modules-db:arm64 (2.1.28+dfsg-10) ...
#5 21.33 Selecting previously unselected package libsasl2-2:arm64.
#5 21.33 Preparing to unpack .../058-libsasl2-2_2.1.28+dfsg-10_arm64.deb ...
#5 21.33 Unpacking libsasl2-2:arm64 (2.1.28+dfsg-10) ...
#5 21.35 Selecting previously unselected package libldap-2.5-0:arm64.
#5 21.35 Preparing to unpack .../059-libldap-2.5-0_2.5.13+dfsg-5_arm64.deb ...
#5 21.35 Unpacking libldap-2.5-0:arm64 (2.5.13+dfsg-5) ...
#5 21.37 Selecting previously unselected package libnghttp2-14:arm64.
#5 21.37 Preparing to unpack .../060-libnghttp2-14_1.52.0-1+deb12u1_arm64.deb ...
#5 21.37 Unpacking libnghttp2-14:arm64 (1.52.0-1+deb12u1) ...
#5 21.39 Selecting previously unselected package libpsl5:arm64.
#5 21.39 Preparing to unpack .../061-libpsl5_0.21.2-1_arm64.deb ...
#5 21.39 Unpacking libpsl5:arm64 (0.21.2-1) ...
#5 21.41 Selecting previously unselected package librtmp1:arm64.
#5 21.41 Preparing to unpack .../062-librtmp1_2.4+20151223.gitfa8646d.1-2+b2_arm64.deb ...
#5 21.41 Unpacking librtmp1:arm64 (2.4+20151223.gitfa8646d.1-2+b2) ...
#5 21.42 Selecting previously unselected package libssh2-1:arm64.
#5 21.42 Preparing to unpack .../063-libssh2-1_1.10.0-3+b1_arm64.deb ...
#5 21.42 Unpacking libssh2-1:arm64 (1.10.0-3+b1) ...
#5 21.44 Selecting previously unselected package libcurl4:arm64.
#5 21.45 Preparing to unpack .../064-libcurl4_7.88.1-10+deb12u7_arm64.deb ...
#5 21.45 Unpacking libcurl4:arm64 (7.88.1-10+deb12u7) ...
#5 21.48 Selecting previously unselected package libjsoncpp25:arm64.
#5 21.48 Preparing to unpack .../065-libjsoncpp25_1.9.5-4_arm64.deb ...
#5 21.48 Unpacking libjsoncpp25:arm64 (1.9.5-4) ...
#5 21.50 Selecting previously unselected package librhash0:arm64.
#5 21.50 Preparing to unpack .../066-librhash0_1.4.3-3_arm64.deb ...
#5 21.50 Unpacking librhash0:arm64 (1.4.3-3) ...
#5 21.52 Selecting previously unselected package libuv1:arm64.
#5 21.52 Preparing to unpack .../067-libuv1_1.44.2-1+deb12u1_arm64.deb ...
#5 21.52 Unpacking libuv1:arm64 (1.44.2-1+deb12u1) ...
#5 21.54 Selecting previously unselected package cmake-data.
#5 21.54 Preparing to unpack .../068-cmake-data_3.25.1-1_all.deb ...
#5 21.55 Unpacking cmake-data (3.25.1-1) ...
#5 21.74 Selecting previously unselected package cmake.
#5 21.75 Preparing to unpack .../069-cmake_3.25.1-1_arm64.deb ...
#5 21.75 Unpacking cmake (3.25.1-1) ...
#5 22.11 Selecting previously unselected package libglvnd0:arm64.
#5 22.12 Preparing to unpack .../070-libglvnd0_1.6.0-1_arm64.deb ...
#5 22.12 Unpacking libglvnd0:arm64 (1.6.0-1) ...
#5 22.14 Selecting previously unselected package libxau6:arm64.
#5 22.14 Preparing to unpack .../071-libxau6_1%3a1.0.9-1_arm64.deb ...
#5 22.14 Unpacking libxau6:arm64 (1:1.0.9-1) ...
#5 22.15 Selecting previously unselected package libxdmcp6:arm64.
#5 22.15 Preparing to unpack .../072-libxdmcp6_1%3a1.1.2-3_arm64.deb ...
#5 22.15 Unpacking libxdmcp6:arm64 (1:1.1.2-3) ...
#5 22.17 Selecting previously unselected package libxcb1:arm64.
#5 22.17 Preparing to unpack .../073-libxcb1_1.15-1_arm64.deb ...
#5 22.17 Unpacking libxcb1:arm64 (1.15-1) ...
#5 22.18 Selecting previously unselected package libx11-data.
#5 22.19 Preparing to unpack .../074-libx11-data_2%3a1.8.4-2+deb12u2_all.deb ...
#5 22.19 Unpacking libx11-data (2:1.8.4-2+deb12u2) ...
#5 22.22 Selecting previously unselected package libx11-6:arm64.
#5 22.22 Preparing to unpack .../075-libx11-6_2%3a1.8.4-2+deb12u2_arm64.deb ...
#5 22.22 Unpacking libx11-6:arm64 (2:1.8.4-2+deb12u2) ...
#5 22.26 Selecting previously unselected package libdrm-common.
#5 22.26 Preparing to unpack .../076-libdrm-common_2.4.114-1_all.deb ...
#5 22.26 Unpacking libdrm-common (2.4.114-1) ...
#5 22.28 Selecting previously unselected package libdrm2:arm64.
#5 22.28 Preparing to unpack .../077-libdrm2_2.4.114-1+b1_arm64.deb ...
#5 22.28 Unpacking libdrm2:arm64 (2.4.114-1+b1) ...
#5 22.29 Selecting previously unselected package libglapi-mesa:arm64.
#5 22.29 Preparing to unpack .../078-libglapi-mesa_22.3.6-1+deb12u1_arm64.deb ...
#5 22.29 Unpacking libglapi-mesa:arm64 (22.3.6-1+deb12u1) ...
#5 22.31 Selecting previously unselected package libx11-xcb1:arm64.
#5 22.31 Preparing to unpack .../079-libx11-xcb1_2%3a1.8.4-2+deb12u2_arm64.deb ...
#5 22.31 Unpacking libx11-xcb1:arm64 (2:1.8.4-2+deb12u2) ...
#5 22.32 Selecting previously unselected package libxcb-dri2-0:arm64.
#5 22.32 Preparing to unpack .../080-libxcb-dri2-0_1.15-1_arm64.deb ...
#5 22.33 Unpacking libxcb-dri2-0:arm64 (1.15-1) ...
#5 22.34 Selecting previously unselected package libxcb-dri3-0:arm64.
#5 22.34 Preparing to unpack .../081-libxcb-dri3-0_1.15-1_arm64.deb ...
#5 22.35 Unpacking libxcb-dri3-0:arm64 (1.15-1) ...
#5 22.36 Selecting previously unselected package libxcb-glx0:arm64.
#5 22.36 Preparing to unpack .../082-libxcb-glx0_1.15-1_arm64.deb ...
#5 22.36 Unpacking libxcb-glx0:arm64 (1.15-1) ...
#5 22.38 Selecting previously unselected package libxcb-present0:arm64.
#5 22.38 Preparing to unpack .../083-libxcb-present0_1.15-1_arm64.deb ...
#5 22.39 Unpacking libxcb-present0:arm64 (1.15-1) ...
#5 22.41 Selecting previously unselected package libxcb-randr0:arm64.
#5 22.41 Preparing to unpack .../084-libxcb-randr0_1.15-1_arm64.deb ...
#5 22.41 Unpacking libxcb-randr0:arm64 (1.15-1) ...
#5 22.43 Selecting previously unselected package libxcb-shm0:arm64.
#5 22.43 Preparing to unpack .../085-libxcb-shm0_1.15-1_arm64.deb ...
#5 22.43 Unpacking libxcb-shm0:arm64 (1.15-1) ...
#5 22.45 Selecting previously unselected package libxcb-sync1:arm64.
#5 22.45 Preparing to unpack .../086-libxcb-sync1_1.15-1_arm64.deb ...
#5 22.45 Unpacking libxcb-sync1:arm64 (1.15-1) ...
#5 22.47 Selecting previously unselected package libxcb-xfixes0:arm64.
#5 22.47 Preparing to unpack .../087-libxcb-xfixes0_1.15-1_arm64.deb ...
#5 22.47 Unpacking libxcb-xfixes0:arm64 (1.15-1) ...
#5 22.49 Selecting previously unselected package libxext6:arm64.
#5 22.49 Preparing to unpack .../088-libxext6_2%3a1.3.4-1+b1_arm64.deb ...
#5 22.49 Unpacking libxext6:arm64 (2:1.3.4-1+b1) ...
#5 22.50 Selecting previously unselected package libxfixes3:arm64.
#5 22.50 Preparing to unpack .../089-libxfixes3_1%3a6.0.0-2_arm64.deb ...
#5 22.50 Unpacking libxfixes3:arm64 (1:6.0.0-2) ...
#5 22.52 Selecting previously unselected package libxshmfence1:arm64.
#5 22.52 Preparing to unpack .../090-libxshmfence1_1.3-1_arm64.deb ...
#5 22.52 Unpacking libxshmfence1:arm64 (1.3-1) ...
#5 22.53 Selecting previously unselected package libxxf86vm1:arm64.
#5 22.54 Preparing to unpack .../091-libxxf86vm1_1%3a1.1.4-1+b2_arm64.deb ...
#5 22.54 Unpacking libxxf86vm1:arm64 (1:1.1.4-1+b2) ...
#5 22.55 Selecting previously unselected package libdrm-amdgpu1:arm64.
#5 22.55 Preparing to unpack .../092-libdrm-amdgpu1_2.4.114-1+b1_arm64.deb ...
#5 22.55 Unpacking libdrm-amdgpu1:arm64 (2.4.114-1+b1) ...
#5 22.57 Selecting previously unselected package libdrm-nouveau2:arm64.
#5 22.57 Preparing to unpack .../093-libdrm-nouveau2_2.4.114-1+b1_arm64.deb ...
#5 22.57 Unpacking libdrm-nouveau2:arm64 (2.4.114-1+b1) ...
#5 22.58 Selecting previously unselected package libdrm-radeon1:arm64.
#5 22.59 Preparing to unpack .../094-libdrm-radeon1_2.4.114-1+b1_arm64.deb ...
#5 22.59 Unpacking libdrm-radeon1:arm64 (2.4.114-1+b1) ...
#5 22.60 Selecting previously unselected package libelf1:arm64.
#5 22.60 Preparing to unpack .../095-libelf1_0.188-2.1_arm64.deb ...
#5 22.60 Unpacking libelf1:arm64 (0.188-2.1) ...
#5 22.63 Selecting previously unselected package libz3-4:arm64.
#5 22.63 Preparing to unpack .../096-libz3-4_4.8.12-3.1_arm64.deb ...
#5 22.63 Unpacking libz3-4:arm64 (4.8.12-3.1) ...
#5 22.98 Selecting previously unselected package libllvm15:arm64.
#5 22.98 Preparing to unpack .../097-libllvm15_1%3a15.0.6-4+b1_arm64.deb ...
#5 22.98 Unpacking libllvm15:arm64 (1:15.0.6-4+b1) ...
#5 23.58 Selecting previously unselected package libsensors-config.
#5 23.58 Preparing to unpack .../098-libsensors-config_1%3a3.6.0-7.1_all.deb ...
#5 23.58 Unpacking libsensors-config (1:3.6.0-7.1) ...
#5 23.60 Selecting previously unselected package libsensors5:arm64.
#5 23.60 Preparing to unpack .../099-libsensors5_1%3a3.6.0-7.1_arm64.deb ...
#5 23.60 Unpacking libsensors5:arm64 (1:3.6.0-7.1) ...
#5 23.62 Selecting previously unselected package libgl1-mesa-dri:arm64.
#5 23.62 Preparing to unpack .../100-libgl1-mesa-dri_22.3.6-1+deb12u1_arm64.deb ...
#5 23.62 Unpacking libgl1-mesa-dri:arm64 (22.3.6-1+deb12u1) ...
#5 24.00 Selecting previously unselected package libglx-mesa0:arm64.
#5 24.00 Preparing to unpack .../101-libglx-mesa0_22.3.6-1+deb12u1_arm64.deb ...
#5 24.00 Unpacking libglx-mesa0:arm64 (22.3.6-1+deb12u1) ...
#5 24.03 Selecting previously unselected package libglx0:arm64.
#5 24.03 Preparing to unpack .../102-libglx0_1.6.0-1_arm64.deb ...
#5 24.03 Unpacking libglx0:arm64 (1.6.0-1) ...
#5 24.05 Selecting previously unselected package libgl1:arm64.
#5 24.05 Preparing to unpack .../103-libgl1_1.6.0-1_arm64.deb ...
#5 24.06 Unpacking libgl1:arm64 (1.6.0-1) ...
#5 24.08 Selecting previously unselected package libxi6:arm64.
#5 24.08 Preparing to unpack .../104-libxi6_2%3a1.8-1+b1_arm64.deb ...
#5 24.08 Unpacking libxi6:arm64 (2:1.8-1+b1) ...
#5 24.10 Selecting previously unselected package libglut3.12:arm64.
#5 24.10 Preparing to unpack .../105-libglut3.12_3.4.0-1_arm64.deb ...
#5 24.10 Unpacking libglut3.12:arm64 (3.4.0-1) ...
#5 24.12 Selecting previously unselected package xorg-sgml-doctools.
#5 24.12 Preparing to unpack .../106-xorg-sgml-doctools_1%3a1.11-1.1_all.deb ...
#5 24.12 Unpacking xorg-sgml-doctools (1:1.11-1.1) ...
#5 24.14 Selecting previously unselected package x11proto-dev.
#5 24.14 Preparing to unpack .../107-x11proto-dev_2022.1-1_all.deb ...
#5 24.14 Unpacking x11proto-dev (2022.1-1) ...
#5 24.18 Selecting previously unselected package libxau-dev:arm64.
#5 24.18 Preparing to unpack .../108-libxau-dev_1%3a1.0.9-1_arm64.deb ...
#5 24.18 Unpacking libxau-dev:arm64 (1:1.0.9-1) ...
#5 24.20 Selecting previously unselected package libxdmcp-dev:arm64.
#5 24.20 Preparing to unpack .../109-libxdmcp-dev_1%3a1.1.2-3_arm64.deb ...
#5 24.20 Unpacking libxdmcp-dev:arm64 (1:1.1.2-3) ...
#5 24.21 Selecting previously unselected package xtrans-dev.
#5 24.21 Preparing to unpack .../110-xtrans-dev_1.4.0-1_all.deb ...
#5 24.21 Unpacking xtrans-dev (1.4.0-1) ...
#5 24.23 Selecting previously unselected package libpthread-stubs0-dev:arm64.
#5 24.23 Preparing to unpack .../111-libpthread-stubs0-dev_0.4-1_arm64.deb ...
#5 24.23 Unpacking libpthread-stubs0-dev:arm64 (0.4-1) ...
#5 24.24 Selecting previously unselected package libxcb1-dev:arm64.
#5 24.24 Preparing to unpack .../112-libxcb1-dev_1.15-1_arm64.deb ...
#5 24.25 Unpacking libxcb1-dev:arm64 (1.15-1) ...
#5 24.27 Selecting previously unselected package libx11-dev:arm64.
#5 24.27 Preparing to unpack .../113-libx11-dev_2%3a1.8.4-2+deb12u2_arm64.deb ...
#5 24.27 Unpacking libx11-dev:arm64 (2:1.8.4-2+deb12u2) ...
#5 24.33 Selecting previously unselected package libglx-dev:arm64.
#5 24.33 Preparing to unpack .../114-libglx-dev_1.6.0-1_arm64.deb ...
#5 24.33 Unpacking libglx-dev:arm64 (1.6.0-1) ...
#5 24.34 Selecting previously unselected package libgl-dev:arm64.
#5 24.34 Preparing to unpack .../115-libgl-dev_1.6.0-1_arm64.deb ...
#5 24.34 Unpacking libgl-dev:arm64 (1.6.0-1) ...
#5 24.36 Selecting previously unselected package libglvnd-core-dev:arm64.
#5 24.37 Preparing to unpack .../116-libglvnd-core-dev_1.6.0-1_arm64.deb ...
#5 24.37 Unpacking libglvnd-core-dev:arm64 (1.6.0-1) ...
#5 24.38 Selecting previously unselected package libwayland-server0:arm64.
#5 24.38 Preparing to unpack .../117-libwayland-server0_1.21.0-1_arm64.deb ...
#5 24.39 Unpacking libwayland-server0:arm64 (1.21.0-1) ...
#5 24.40 Selecting previously unselected package libgbm1:arm64.
#5 24.40 Preparing to unpack .../118-libgbm1_22.3.6-1+deb12u1_arm64.deb ...
#5 24.40 Unpacking libgbm1:arm64 (22.3.6-1+deb12u1) ...
#5 24.42 Selecting previously unselected package libwayland-client0:arm64.
#5 24.42 Preparing to unpack .../119-libwayland-client0_1.21.0-1_arm64.deb ...
#5 24.42 Unpacking libwayland-client0:arm64 (1.21.0-1) ...
#5 24.43 Selecting previously unselected package libegl-mesa0:arm64.
#5 24.44 Preparing to unpack .../120-libegl-mesa0_22.3.6-1+deb12u1_arm64.deb ...
#5 24.44 Unpacking libegl-mesa0:arm64 (22.3.6-1+deb12u1) ...
#5 24.46 Selecting previously unselected package libegl1:arm64.
#5 24.46 Preparing to unpack .../121-libegl1_1.6.0-1_arm64.deb ...
#5 24.46 Unpacking libegl1:arm64 (1.6.0-1) ...
#5 24.47 Selecting previously unselected package libegl-dev:arm64.
#5 24.47 Preparing to unpack .../122-libegl-dev_1.6.0-1_arm64.deb ...
#5 24.48 Unpacking libegl-dev:arm64 (1.6.0-1) ...
#5 24.49 Selecting previously unselected package libgles1:arm64.
#5 24.49 Preparing to unpack .../123-libgles1_1.6.0-1_arm64.deb ...
#5 24.49 Unpacking libgles1:arm64 (1.6.0-1) ...
#5 24.50 Selecting previously unselected package libgles2:arm64.
#5 24.51 Preparing to unpack .../124-libgles2_1.6.0-1_arm64.deb ...
#5 24.51 Unpacking libgles2:arm64 (1.6.0-1) ...
#5 24.52 Selecting previously unselected package libgles-dev:arm64.
#5 24.52 Preparing to unpack .../125-libgles-dev_1.6.0-1_arm64.deb ...
#5 24.52 Unpacking libgles-dev:arm64 (1.6.0-1) ...
#5 24.54 Selecting previously unselected package libopengl0:arm64.
#5 24.54 Preparing to unpack .../126-libopengl0_1.6.0-1_arm64.deb ...
#5 24.54 Unpacking libopengl0:arm64 (1.6.0-1) ...
#5 24.56 Selecting previously unselected package libopengl-dev:arm64.
#5 24.56 Preparing to unpack .../127-libopengl-dev_1.6.0-1_arm64.deb ...
#5 24.56 Unpacking libopengl-dev:arm64 (1.6.0-1) ...
#5 24.58 Selecting previously unselected package libglvnd-dev:arm64.
#5 24.58 Preparing to unpack .../128-libglvnd-dev_1.6.0-1_arm64.deb ...
#5 24.58 Unpacking libglvnd-dev:arm64 (1.6.0-1) ...
#5 24.59 Selecting previously unselected package libgl1-mesa-dev:arm64.
#5 24.59 Preparing to unpack .../129-libgl1-mesa-dev_22.3.6-1+deb12u1_arm64.deb ...
#5 24.59 Unpacking libgl1-mesa-dev:arm64 (22.3.6-1+deb12u1) ...
#5 24.60 Selecting previously unselected package libglu1-mesa:arm64.
#5 24.61 Preparing to unpack .../130-libglu1-mesa_9.0.2-1.1_arm64.deb ...
#5 24.61 Unpacking libglu1-mesa:arm64 (9.0.2-1.1) ...
#5 24.63 Selecting previously unselected package libglu1-mesa-dev:arm64.
#5 24.63 Preparing to unpack .../131-libglu1-mesa-dev_9.0.2-1.1_arm64.deb ...
#5 24.63 Unpacking libglu1-mesa-dev:arm64 (9.0.2-1.1) ...
#5 24.65 Selecting previously unselected package libxext-dev:arm64.
#5 24.65 Preparing to unpack .../132-libxext-dev_2%3a1.3.4-1+b1_arm64.deb ...
#5 24.65 Unpacking libxext-dev:arm64 (2:1.3.4-1+b1) ...
#5 24.67 Selecting previously unselected package x11-common.
#5 24.67 Preparing to unpack .../133-x11-common_1%3a7.7+23_all.deb ...
#5 24.68 Unpacking x11-common (1:7.7+23) ...
#5 24.70 Selecting previously unselected package libice6:arm64.
#5 24.70 Preparing to unpack .../134-libice6_2%3a1.0.10-1_arm64.deb ...
#5 24.70 Unpacking libice6:arm64 (2:1.0.10-1) ...
#5 24.72 Selecting previously unselected package libsm6:arm64.
#5 24.72 Preparing to unpack .../135-libsm6_2%3a1.2.3-1_arm64.deb ...
#5 24.72 Unpacking libsm6:arm64 (2:1.2.3-1) ...
#5 24.74 Selecting previously unselected package libxt6:arm64.
#5 24.74 Preparing to unpack .../136-libxt6_1%3a1.2.1-1.1_arm64.deb ...
#5 24.74 Unpacking libxt6:arm64 (1:1.2.1-1.1) ...
#5 24.76 Selecting previously unselected package libice-dev:arm64.
#5 24.76 Preparing to unpack .../137-libice-dev_2%3a1.0.10-1_arm64.deb ...
#5 24.76 Unpacking libice-dev:arm64 (2:1.0.10-1) ...
#5 24.78 Selecting previously unselected package libsm-dev:arm64.
#5 24.78 Preparing to unpack .../138-libsm-dev_2%3a1.2.3-1_arm64.deb ...
#5 24.78 Unpacking libsm-dev:arm64 (2:1.2.3-1) ...
#5 24.80 Selecting previously unselected package libxt-dev:arm64.
#5 24.80 Preparing to unpack .../139-libxt-dev_1%3a1.2.1-1.1_arm64.deb ...
#5 24.80 Unpacking libxt-dev:arm64 (1:1.2.1-1.1) ...
#5 24.84 Selecting previously unselected package libglut-dev:arm64.
#5 24.84 Preparing to unpack .../140-libglut-dev_3.4.0-1_arm64.deb ...
#5 24.84 Unpacking libglut-dev:arm64 (3.4.0-1) ...
#5 24.86 Selecting previously unselected package freeglut3-dev:arm64.
#5 24.86 Preparing to unpack .../141-freeglut3-dev_3.4.0-1_arm64.deb ...
#5 24.86 Unpacking freeglut3-dev:arm64 (3.4.0-1) ...
#5 24.88 Selecting previously unselected package libcurl3-gnutls:arm64.
#5 24.88 Preparing to unpack .../142-libcurl3-gnutls_7.88.1-10+deb12u7_arm64.deb ...
#5 24.88 Unpacking libcurl3-gnutls:arm64 (7.88.1-10+deb12u7) ...
#5 24.91 Selecting previously unselected package liberror-perl.
#5 24.91 Preparing to unpack .../143-liberror-perl_0.17029-2_all.deb ...
#5 24.91 Unpacking liberror-perl (0.17029-2) ...
#5 24.92 Selecting previously unselected package git-man.
#5 24.93 Preparing to unpack .../144-git-man_1%3a2.39.5-0+deb12u1_all.deb ...
#5 24.93 Unpacking git-man (1:2.39.5-0+deb12u1) ...
#5 25.00 Selecting previously unselected package git.
#5 25.00 Preparing to unpack .../145-git_1%3a2.39.5-0+deb12u1_arm64.deb ...
#5 25.00 Unpacking git (1:2.39.5-0+deb12u1) ...
#5 25.25 Selecting previously unselected package libfontenc1:arm64.
#5 25.25 Preparing to unpack .../146-libfontenc1_1%3a1.1.4-1_arm64.deb ...
#5 25.25 Unpacking libfontenc1:arm64 (1:1.1.4-1) ...
#5 25.27 Selecting previously unselected package libpng16-16:arm64.
#5 25.27 Preparing to unpack .../147-libpng16-16_1.6.39-2_arm64.deb ...
#5 25.27 Unpacking libpng16-16:arm64 (1.6.39-2) ...
#5 25.29 Selecting previously unselected package libfreetype6:arm64.
#5 25.29 Preparing to unpack .../148-libfreetype6_2.12.1+dfsg-5+deb12u3_arm64.deb ...
#5 25.29 Unpacking libfreetype6:arm64 (2.12.1+dfsg-5+deb12u3) ...
#5 25.32 Selecting previously unselected package libgl1-mesa-glx:arm64.
#5 25.32 Preparing to unpack .../149-libgl1-mesa-glx_22.3.6-1+deb12u1_arm64.deb ...
#5 25.33 Unpacking libgl1-mesa-glx:arm64 (22.3.6-1+deb12u1) ...
#5 25.34 Selecting previously unselected package libpixman-1-0:arm64.
#5 25.34 Preparing to unpack .../150-libpixman-1-0_0.42.2-1_arm64.deb ...
#5 25.34 Unpacking libpixman-1-0:arm64 (0.42.2-1) ...
#5 25.36 Selecting previously unselected package libunwind8:arm64.
#5 25.36 Preparing to unpack .../151-libunwind8_1.6.2-3_arm64.deb ...
#5 25.37 Unpacking libunwind8:arm64 (1.6.2-3) ...
#5 25.38 Selecting previously unselected package libwayland-egl1:arm64.
#5 25.38 Preparing to unpack .../152-libwayland-egl1_1.21.0-1_arm64.deb ...
#5 25.38 Unpacking libwayland-egl1:arm64 (1.21.0-1) ...
#5 25.39 Selecting previously unselected package libxmu6:arm64.
#5 25.40 Preparing to unpack .../153-libxmu6_2%3a1.1.3-3_arm64.deb ...
#5 25.40 Unpacking libxmu6:arm64 (2:1.1.3-3) ...
#5 25.41 Selecting previously unselected package libxpm4:arm64.
#5 25.41 Preparing to unpack .../154-libxpm4_1%3a3.5.12-1.1+deb12u1_arm64.deb ...
#5 25.41 Unpacking libxpm4:arm64 (1:3.5.12-1.1+deb12u1) ...
#5 25.43 Selecting previously unselected package libxaw7:arm64.
#5 25.43 Preparing to unpack .../155-libxaw7_2%3a1.0.14-1_arm64.deb ...
#5 25.43 Unpacking libxaw7:arm64 (2:1.0.14-1) ...
#5 25.45 Selecting previously unselected package libxfont2:arm64.
#5 25.45 Preparing to unpack .../156-libxfont2_1%3a2.0.6-1_arm64.deb ...
#5 25.45 Unpacking libxfont2:arm64 (1:2.0.6-1) ...
#5 25.47 Selecting previously unselected package libxkbfile1:arm64.
#5 25.47 Preparing to unpack .../157-libxkbfile1_1%3a1.1.0-1_arm64.deb ...
#5 25.47 Unpacking libxkbfile1:arm64 (1:1.1.0-1) ...
#5 25.49 Selecting previously unselected package libxmuu1:arm64.
#5 25.49 Preparing to unpack .../158-libxmuu1_2%3a1.1.3-3_arm64.deb ...
#5 25.50 Unpacking libxmuu1:arm64 (2:1.1.3-3) ...
#5 25.51 Selecting previously unselected package libxrender1:arm64.
#5 25.51 Preparing to unpack .../159-libxrender1_1%3a0.9.10-1.1_arm64.deb ...
#5 25.51 Unpacking libxrender1:arm64 (1:0.9.10-1.1) ...
#5 25.53 Selecting previously unselected package libxrandr2:arm64.
#5 25.53 Preparing to unpack .../160-libxrandr2_2%3a1.5.2-2+b1_arm64.deb ...
#5 25.53 Unpacking libxrandr2:arm64 (2:1.5.2-2+b1) ...
#5 25.54 Selecting previously unselected package mesa-utils-bin:arm64.
#5 25.54 Preparing to unpack .../161-mesa-utils-bin_8.5.0-1_arm64.deb ...
#5 25.55 Unpacking mesa-utils-bin:arm64 (8.5.0-1) ...
#5 25.56 Selecting previously unselected package mesa-utils.
#5 25.56 Preparing to unpack .../162-mesa-utils_8.5.0-1_arm64.deb ...
#5 25.56 Unpacking mesa-utils (8.5.0-1) ...
#5 25.63 Selecting previously unselected package x11-xkb-utils.
#5 25.63 Preparing to unpack .../163-x11-xkb-utils_7.7+7_arm64.deb ...
#5 25.63 Unpacking x11-xkb-utils (7.7+7) ...
#5 25.65 Selecting previously unselected package xauth.
#5 25.65 Preparing to unpack .../164-xauth_1%3a1.1.2-1_arm64.deb ...
#5 25.65 Unpacking xauth (1:1.1.2-1) ...
#5 25.66 Selecting previously unselected package xkb-data.
#5 25.66 Preparing to unpack .../165-xkb-data_2.35.1-1_all.deb ...
#5 25.66 Unpacking xkb-data (2.35.1-1) ...
#5 25.72 Selecting previously unselected package xserver-common.
#5 25.72 Preparing to unpack .../166-xserver-common_2%3a21.1.7-3+deb12u7_all.deb ...
#5 25.73 Unpacking xserver-common (2:21.1.7-3+deb12u7) ...
#5 25.75 Selecting previously unselected package xvfb.
#5 25.75 Preparing to unpack .../167-xvfb_2%3a21.1.7-3+deb12u7_arm64.deb ...
#5 25.76 Unpacking xvfb (2:21.1.7-3+deb12u7) ...
#5 25.81 Selecting previously unselected package zstd.
#5 25.81 Preparing to unpack .../168-zstd_1.5.4+dfsg2-5_arm64.deb ...
#5 25.81 Unpacking zstd (1.5.4+dfsg2-5) ...
#5 25.86 Setting up libpixman-1-0:arm64 (0.42.2-1) ...
#5 25.86 Setting up libwayland-server0:arm64 (1.21.0-1) ...
#5 25.87 Setting up libxau6:arm64 (1:1.0.9-1) ...
#5 25.87 Setting up libpsl5:arm64 (0.21.2-1) ...
#5 25.87 Setting up libicu72:arm64 (72.1-3) ...
#5 25.87 Setting up libglvnd-core-dev:arm64 (1.6.0-1) ...
#5 25.88 Setting up libglvnd0:arm64 (1.6.0-1) ...
#5 25.88 Setting up libcbor0.8:arm64 (0.8.0-2+b1) ...
#5 25.88 Setting up libbrotli1:arm64 (1.0.9-2+b6) ...
#5 25.89 Setting up binutils-common:arm64 (2.40-2) ...
#5 25.89 Setting up x11-common (1:7.7+23) ...
#5 25.94 debconf: unable to initialize frontend: Dialog
#5 25.94 debconf: (TERM is not set, so the dialog frontend is not usable.)
#5 25.94 debconf: falling back to frontend: Readline
#5 25.94 debconf: unable to initialize frontend: Readline
#5 25.94 debconf: (This frontend requires a controlling tty.)
#5 25.94 debconf: falling back to frontend: Teletype
#5 25.95 invoke-rc.d: could not determine current runlevel
#5 25.95 invoke-rc.d: policy-rc.d denied execution of restart.
#5 25.95 Setting up libsensors-config (1:3.6.0-7.1) ...
#5 25.96 Setting up libnghttp2-14:arm64 (1.52.0-1+deb12u1) ...
#5 25.96 Setting up linux-libc-dev:arm64 (6.1.106-3) ...
#5 25.97 Setting up libctf-nobfd0:arm64 (2.40-2) ...
#5 25.97 Setting up xkb-data (2.35.1-1) ...
#5 25.97 Setting up libgomp1:arm64 (12.2.0-14) ...
#5 25.97 Setting up bzip2 (1.0.8-5+b1) ...
#5 25.98 Setting up libunwind8:arm64 (1.6.2-3) ...
#5 25.98 Setting up libpthread-stubs0-dev:arm64 (0.4-1) ...
#5 25.98 Setting up libopengl0:arm64 (1.6.0-1) ...
#5 25.99 Setting up libjansson4:arm64 (2.14-2) ...
#5 25.99 Setting up libsasl2-modules-db:arm64 (2.1.28+dfsg-10) ...
#5 25.99 Setting up xtrans-dev (1.4.0-1) ...
#5 25.99 Setting up libfontenc1:arm64 (1:1.1.4-1) ...
#5 26.00 Setting up perl-modules-5.36 (5.36.0-7+deb12u1) ...
#5 26.00 Setting up libz3-4:arm64 (4.8.12-3.1) ...
#5 26.01 Setting up libtirpc-dev:arm64 (1.3.3+ds-1) ...
#5 26.01 Setting up libuv1:arm64 (1.44.2-1+deb12u1) ...
#5 26.02 Setting up rpcsvc-proto (1.4.3-1) ...
#5 26.02 Setting up libgles2:arm64 (1.6.0-1) ...
#5 26.02 Setting up libx11-data (2:1.8.4-2+deb12u2) ...
#5 26.03 Setting up make (4.3-4.1) ...
#5 26.03 Setting up libmpfr6:arm64 (4.2.0-1) ...
#5 26.03 Setting up librtmp1:arm64 (2.4+20151223.gitfa8646d.1-2+b2) ...
#5 26.04 Setting up libgles1:arm64 (1.6.0-1) ...
#5 26.04 Setting up xz-utils (5.4.1-0.2) ...
#5 26.05 update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzma.1.gz because associated file /usr/share/man/man1/xz.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/unlzma.1.gz because associated file /usr/share/man/man1/unxz.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzcat.1.gz because associated file /usr/share/man/man1/xzcat.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzmore.1.gz because associated file /usr/share/man/man1/xzmore.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzless.1.gz because associated file /usr/share/man/man1/xzless.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzdiff.1.gz because associated file /usr/share/man/man1/xzdiff.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzcmp.1.gz because associated file /usr/share/man/man1/xzcmp.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzgrep.1.gz because associated file /usr/share/man/man1/xzgrep.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzegrep.1.gz because associated file /usr/share/man/man1/xzegrep.1.gz (of link group lzma) doesn't exist
#5 26.05 update-alternatives: warning: skip creation of /usr/share/man/man1/lzfgrep.1.gz because associated file /usr/share/man/man1/xzfgrep.1.gz (of link group lzma) doesn't exist
#5 26.05 Setting up libproc2-0:arm64 (2:4.0.2-3) ...
#5 26.05 Setting up libpng16-16:arm64 (1.6.39-2) ...
#5 26.06 Setting up libmpc3:arm64 (1.3.1-1) ...
#5 26.06 Setting up libatomic1:arm64 (12.2.0-14) ...
#5 26.06 Setting up patch (2.7.6-7) ...
#5 26.07 Setting up libjsoncpp25:arm64 (1.9.5-4) ...
#5 26.07 Setting up libgdbm-compat4:arm64 (1.23-3) ...
#5 26.07 Setting up libsensors5:arm64 (1:3.6.0-7.1) ...
#5 26.08 Setting up libglapi-mesa:arm64 (22.3.6-1+deb12u1) ...
#5 26.08 Setting up libsasl2-2:arm64 (2.1.28+dfsg-10) ...
#5 26.08 Setting up libubsan1:arm64 (12.2.0-14) ...
#5 26.08 Setting up libnsl-dev:arm64 (1.3.0-2) ...
#5 26.09 Setting up libxshmfence1:arm64 (1.3-1) ...
#5 26.09 Setting up libhwasan0:arm64 (12.2.0-14) ...
#5 26.10 Setting up librhash0:arm64 (1.4.3-3) ...
#5 26.10 Setting up libcrypt-dev:arm64 (1:4.4.33-2) ...
#5 26.11 Setting up libasan8:arm64 (12.2.0-14) ...
#5 26.12 Setting up procps (2:4.0.2-3) ...
#5 26.14 Setting up git-man (1:2.39.5-0+deb12u1) ...
#5 26.14 Setting up libssh2-1:arm64 (1.10.0-3+b1) ...
#5 26.14 Setting up xorg-sgml-doctools (1:1.11-1.1) ...
#5 26.15 Setting up cmake-data (3.25.1-1) ...
#5 26.16 Setting up libglu1-mesa:arm64 (9.0.2-1.1) ...
#5 26.17 Setting up libwayland-egl1:arm64 (1.21.0-1) ...
#5 26.17 Setting up libtsan2:arm64 (12.2.0-14) ...
#5 26.17 Setting up libopengl-dev:arm64 (1.6.0-1) ...
#5 26.18 Setting up libbinutils:arm64 (2.40-2) ...
#5 26.18 Setting up libfido2-1:arm64 (1.12.0-2+b1) ...
#5 26.18 Setting up libisl23:arm64 (0.25-1.1) ...
#5 26.19 Setting up libc-dev-bin (2.36-9+deb12u8) ...
#5 26.20 Setting up libbsd0:arm64 (0.11.7-2) ...
#5 26.20 Setting up libdrm-common (2.4.114-1) ...
#5 26.20 Setting up libelf1:arm64 (0.188-2.1) ...
#5 26.21 Setting up libxml2:arm64 (2.9.14+dfsg-1.3~deb12u1) ...
#5 26.21 Setting up zstd (1.5.4+dfsg2-5) ...
#5 26.21 Setting up libcc1-0:arm64 (12.2.0-14) ...
#5 26.22 Setting up libperl5.36:arm64 (5.36.0-7+deb12u1) ...
#5 26.22 Setting up liblsan0:arm64 (12.2.0-14) ...
#5 26.23 Setting up libitm1:arm64 (12.2.0-14) ...
#5 26.23 Setting up libwayland-client0:arm64 (1.21.0-1) ...
#5 26.24 Setting up libctf0:arm64 (2.40-2) ...
#5 26.25 Setting up x11proto-dev (2022.1-1) ...
#5 26.25 Setting up libice6:arm64 (2:1.0.10-1) ...
#5 26.26 Setting up libxdmcp6:arm64 (1:1.1.2-3) ...
#5 26.26 Setting up cpp-12 (12.2.0-14) ...
#5 26.26 Setting up libxcb1:arm64 (1.15-1) ...
#5 26.27 Setting up libxcb-xfixes0:arm64 (1.15-1) ...
#5 26.27 Setting up libxau-dev:arm64 (1:1.0.9-1) ...
#5 26.27 Setting up libice-dev:arm64 (2:1.0.10-1) ...
#5 26.28 Setting up libarchive13:arm64 (3.6.2-1+deb12u1) ...
#5 26.28 Setting up libxcb-glx0:arm64 (1.15-1) ...
#5 26.29 Setting up libedit2:arm64 (3.1-20221030-2) ...
#5 26.29 Setting up libxcb-shm0:arm64 (1.15-1) ...
#5 26.29 Setting up libldap-2.5-0:arm64 (2.5.13+dfsg-5) ...
#5 26.30 Setting up libxcb-present0:arm64 (1.15-1) ...
#5 26.30 Setting up libxdmcp-dev:arm64 (1:1.1.2-3) ...
#5 26.31 Setting up perl (5.36.0-7+deb12u1) ...
#5 26.32 Setting up libgprofng0:arm64 (2.40-2) ...
#5 26.32 Setting up libfreetype6:arm64 (2.12.1+dfsg-5+deb12u3) ...
#5 26.32 Setting up libxcb-sync1:arm64 (1.15-1) ...
#5 26.33 Setting up libgcc-12-dev:arm64 (12.2.0-14) ...
#5 26.33 Setting up libdpkg-perl (1.21.22) ...
#5 26.33 Setting up libxcb-dri2-0:arm64 (1.15-1) ...
#5 26.34 Setting up libdrm2:arm64 (2.4.114-1+b1) ...
#5 26.34 Setting up libxcb-randr0:arm64 (1.15-1) ...
#5 26.35 Setting up cpp (4:12.2.0-3) ...
#5 26.35 Setting up libllvm15:arm64 (1:15.0.6-4+b1) ...
#5 26.36 Setting up libcurl4:arm64 (7.88.1-10+deb12u7) ...
#5 26.36 Setting up libc6-dev:arm64 (2.36-9+deb12u8) ...
#5 26.36 Setting up libx11-6:arm64 (2:1.8.4-2+deb12u2) ...
#5 26.37 Setting up libxkbfile1:arm64 (1:1.1.0-1) ...
#5 26.37 Setting up libsm6:arm64 (2:1.2.3-1) ...
#5 26.37 Setting up libxfont2:arm64 (1:2.0.6-1) ...
#5 26.38 Setting up libxmuu1:arm64 (2:1.1.3-3) ...
#5 26.38 Setting up libdrm-amdgpu1:arm64 (2.4.114-1+b1) ...
#5 26.38 Setting up libxcb-dri3-0:arm64 (1.15-1) ...
#5 26.38 Setting up libx11-xcb1:arm64 (2:1.8.4-2+deb12u2) ...
#5 26.39 Setting up libdrm-nouveau2:arm64 (2.4.114-1+b1) ...
#5 26.39 Setting up libxcb1-dev:arm64 (1.15-1) ...
#5 26.39 Setting up libxpm4:arm64 (1:3.5.12-1.1+deb12u1) ...
#5 26.40 Setting up libxrender1:arm64 (1:0.9.10-1.1) ...
#5 26.40 Setting up libstdc++-12-dev:arm64 (12.2.0-14) ...
#5 26.40 Setting up libgbm1:arm64 (22.3.6-1+deb12u1) ...
#5 26.41 Setting up libsm-dev:arm64 (2:1.2.3-1) ...
#5 26.41 Setting up libdrm-radeon1:arm64 (2.4.114-1+b1) ...
#5 26.41 Setting up openssh-client (1:9.2p1-2+deb12u3) ...
#5 26.45 Setting up libgl1-mesa-dri:arm64 (22.3.6-1+deb12u1) ...
#5 26.45 Setting up libx11-dev:arm64 (2:1.8.4-2+deb12u2) ...
#5 26.46 Setting up libxext6:arm64 (2:1.3.4-1+b1) ...
#5 26.46 Setting up binutils-aarch64-linux-gnu (2.40-2) ...
#5 26.46 Setting up libcurl3-gnutls:arm64 (7.88.1-10+deb12u7) ...
#5 26.47 Setting up binutils (2.40-2) ...
#5 26.47 Setting up dpkg-dev (1.21.22) ...
#5 26.48 Setting up libxxf86vm1:arm64 (1:1.1.4-1+b2) ...
#5 26.48 Setting up liberror-perl (0.17029-2) ...
#5 26.48 Setting up libegl-mesa0:arm64 (22.3.6-1+deb12u1) ...
#5 26.49 Setting up gcc-12 (12.2.0-14) ...
#5 26.49 Setting up libxfixes3:arm64 (1:6.0.0-2) ...
#5 26.49 Setting up libxrandr2:arm64 (2:1.5.2-2+b1) ...
#5 26.50 Setting up git (1:2.39.5-0+deb12u1) ...
#5 26.50 Setting up libxt6:arm64 (1:1.2.1-1.1) ...
#5 26.51 Setting up libxext-dev:arm64 (2:1.3.4-1+b1) ...
#5 26.51 Setting up xauth (1:1.1.2-1) ...
#5 26.51 Setting up libegl1:arm64 (1.6.0-1) ...
#5 26.52 Setting up cmake (3.25.1-1) ...
#5 26.52 Setting up g++-12 (12.2.0-14) ...
#5 26.53 Setting up libxmu6:arm64 (2:1.1.3-3) ...
#5 26.53 Setting up libglx-mesa0:arm64 (22.3.6-1+deb12u1) ...
#5 26.53 Setting up libxi6:arm64 (2:1.8-1+b1) ...
#5 26.53 Setting up libglx0:arm64 (1.6.0-1) ...
#5 26.54 Setting up libxaw7:arm64 (2:1.0.14-1) ...
#5 26.54 Setting up gcc (4:12.2.0-3) ...
#5 26.55 Setting up libgl1:arm64 (1.6.0-1) ...
#5 26.55 Setting up mesa-utils-bin:arm64 (8.5.0-1) ...
#5 26.55 Setting up libxt-dev:arm64 (1:1.2.1-1.1) ...
#5 26.56 Setting up libglut3.12:arm64 (3.4.0-1) ...
#5 26.56 Setting up libgl1-mesa-glx:arm64 (22.3.6-1+deb12u1) ...
#5 26.56 Setting up g++ (4:12.2.0-3) ...
#5 26.57 update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
#5 26.57 Setting up build-essential (12.9) ...
#5 26.57 Setting up libglx-dev:arm64 (1.6.0-1) ...
#5 26.57 Setting up libgl-dev:arm64 (1.6.0-1) ...
#5 26.58 Setting up libegl-dev:arm64 (1.6.0-1) ...
#5 26.58 Setting up x11-xkb-utils (7.7+7) ...
#5 26.59 Setting up mesa-utils (8.5.0-1) ...
#5 26.59 Setting up libglu1-mesa-dev:arm64 (9.0.2-1.1) ...
#5 26.59 Setting up xserver-common (2:21.1.7-3+deb12u7) ...
#5 26.60 Setting up libgles-dev:arm64 (1.6.0-1) ...
#5 26.60 Setting up xvfb (2:21.1.7-3+deb12u7) ...
#5 26.60 Setting up libglvnd-dev:arm64 (1.6.0-1) ...
#5 26.61 Setting up libgl1-mesa-dev:arm64 (22.3.6-1+deb12u1) ...
#5 26.61 Setting up libglut-dev:arm64 (3.4.0-1) ...
#5 26.61 Setting up freeglut3-dev:arm64 (3.4.0-1) ...
#5 26.61 Processing triggers for libc-bin (2.36-9+deb12u8) ...
#5 DONE 27.1s

#6 [3/3] RUN pip3 install numpy==1.26 manifold3d
#6 1.313 Collecting numpy==1.26
#6 1.761   Downloading numpy-1.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.2 MB)
#6 3.006      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.2/14.2 MB 11.9 MB/s eta 0:00:00
#6 3.058 Collecting manifold3d
#6 3.091   Downloading manifold3d-2.5.1.tar.gz (418 kB)
#6 3.127      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 418.0/418.0 kB 12.0 MB/s eta 0:00:00
#6 3.160   Installing build dependencies: started
#6 4.284   Installing build dependencies: finished with status 'done'
#6 4.285   Getting requirements to build wheel: started
#6 4.367   Getting requirements to build wheel: finished with status 'done'
#6 4.368   Installing backend dependencies: started
#6 4.965   Installing backend dependencies: finished with status 'done'
#6 4.965   Preparing metadata (pyproject.toml): started
#6 5.069   Preparing metadata (pyproject.toml): finished with status 'done'
#6 5.074 Building wheels for collected packages: manifold3d
#6 5.074   Building wheel for manifold3d (pyproject.toml): started
#6 29.88   Building wheel for manifold3d (pyproject.toml): finished with status 'error'
#6 29.89   error: subprocess-exited-with-error
#6 29.89   
#6 29.89   × Building wheel for manifold3d (pyproject.toml) did not run successfully.
#6 29.89   │ exit code: 1
#6 29.89   ╰─> [64 lines of output]
#6 29.89       WARNING: Use cmake.version instead of cmake.minimum-version with scikit-build-core >= 0.8
#6 29.89       *** scikit-build-core 0.10.7 using CMake 3.25.1 (wheel)
#6 29.89       *** Configuring CMake...
#6 29.89       loading initial cache file /tmp/tmpbsc5p0o2/build/CMakeInit.txt
#6 29.89       -- The CXX compiler identification is GNU 12.2.0
#6 29.89       -- Detecting CXX compiler ABI info
#6 29.89       -- Detecting CXX compiler ABI info - done
#6 29.89       -- Check for working CXX compiler: /usr/bin/g++ - skipped
#6 29.89       -- Detecting CXX compile features
#6 29.89       -- Detecting CXX compile features - done
#6 29.89       CMake Warning at manifoldDeps.cmake:4 (find_package):
#6 29.89         By not providing "FindClipper2.cmake" in CMAKE_MODULE_PATH this project has
#6 29.89         asked CMake to find a package configuration file provided by "Clipper2",
#6 29.89         but CMake did not find one.
#6 29.89       
#6 29.89         Could not find a package configuration file provided by "Clipper2" with any
#6 29.89         of the following names:
#6 29.89       
#6 29.89           Clipper2Config.cmake
#6 29.89           clipper2-config.cmake
#6 29.89       
#6 29.89         Add the installation prefix of "Clipper2" to CMAKE_PREFIX_PATH or set
#6 29.89         "Clipper2_DIR" to a directory containing one of the above files.  If
#6 29.89         "Clipper2" provides a separate development package or SDK, be sure it has
#6 29.89         been installed.
#6 29.89       Call Stack (most recent call first):
#6 29.89         CMakeLists.txt:68 (include)
#6 29.89       
#6 29.89       
#6 29.89       -- clipper2 not found, downloading from source
#6 29.89       -- The C compiler identification is GNU 12.2.0
#6 29.89       -- Detecting C compiler ABI info
#6 29.89       -- Detecting C compiler ABI info - done
#6 29.89       -- Check for working C compiler: /usr/bin/gcc - skipped
#6 29.89       -- Detecting C compile features
#6 29.89       -- Detecting C compile features - done
#6 29.89       -- glm not found, downloading from source
#6 29.89       -- GLM: Version 1.0.1
#6 29.89       -- GLM: Build with C++ features auto detection
#6 29.89       -- tbb not found, downloading from source
#6 29.89       CMake Warning at /tmp/tmpbsc5p0o2/build/_deps/tbb-src/CMakeLists.txt:119 (message):
#6 29.89         You are building oneTBB as a static library.  This is highly discouraged
#6 29.89         and such configuration is not supported.  Consider building a dynamic
#6 29.89         library to avoid unforeseen issues.
#6 29.89       
#6 29.89       
#6 29.89       -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
#6 29.89       -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
#6 29.89       -- Found Threads: TRUE
#6 29.89       -- Looking for getcontext
#6 29.89       -- Looking for getcontext - found
#6 29.89       -- TBBBind build targets are disabled due to unsupported environment
#6 29.89       -- Found Python: /usr/local/bin/python3.10 (found version "3.10.15") found components: Interpreter Development.Module
#6 29.89       Parallel Backend: TBB
#6 29.89       thrust not found, downloading from source
#6 29.89       CMake Error at bindings/CMakeLists.txt:16 (add_subdirectory):
#6 29.89         add_subdirectory given source "c" which is not an existing directory.
#6 29.89       
#6 29.89       
#6 29.89       Python_EXECUTABLE=/usr/local/bin/python3.10
#6 29.89       -- Configuring incomplete, errors occurred!
#6 29.89       See also "/tmp/tmpbsc5p0o2/build/CMakeFiles/CMakeOutput.log".
#6 29.89       
#6 29.89       *** CMake configuration failed
#6 29.89       [end of output]
#6 29.89   
#6 29.89   note: This error originates from a subprocess, and is likely not a problem with pip.
#6 29.89   ERROR: Failed building wheel for manifold3d
#6 29.89 Failed to build manifold3d
#6 29.89 ERROR: Could not build wheels for manifold3d, which is required to install pyproject.toml-based projects
#6 29.89 
#6 29.89 [notice] A new release of pip is available: 23.0.1 -> 24.2
#6 29.89 [notice] To update, run: pip install --upgrade pip
#6 ERROR: process "/bin/sh -c pip3 install numpy==1.26 manifold3d" did not complete successfully: exit code: 1
------
 > [3/3] RUN pip3 install numpy==1.26 manifold3d:
29.89       *** CMake configuration failed
29.89       [end of output]
29.89   
29.89   note: This error originates from a subprocess, and is likely not a problem with pip.
29.89   ERROR: Failed building wheel for manifold3d
29.89 Failed to build manifold3d
29.89 ERROR: Could not build wheels for manifold3d, which is required to install pyproject.toml-based projects
29.89 
29.89 [notice] A new release of pip is available: 23.0.1 -> 24.2
29.89 [notice] To update, run: pip install --upgrade pip
------
Dockerfile.test:10
--------------------
   8 |                         libgl1-mesa-glx libgl1-mesa-dri mesa-utils xvfb xauth freeglut3-dev
   9 |     
  10 | >>> RUN pip3 install numpy==1.26 manifold3d
--------------------
ERROR: failed to solve: process "/bin/sh -c pip3 install numpy==1.26 manifold3d" did not complete successfully: exit code: 1
elalish commented 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.

manuel-koch commented 2 weeks ago

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 ?

elalish commented 2 weeks ago

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.

manuel-koch commented 2 weeks ago

@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
pca006132 commented 2 weeks ago

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...

manuel-koch commented 2 weeks ago

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.

pca006132 commented 2 weeks ago

I guess on M1 there is already a bdist for it, it only compiles from sdist when you are on linux aarch64.

pca006132 commented 2 weeks ago

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.

manuel-koch commented 2 days ago

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
pca006132 commented 2 days ago

What version of nanobind are you using? Considering the function is defined in nanobind, I think it is a version issue.

manuel-koch commented 2 days ago

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.

pca006132 commented 2 days ago

Hmm, probably something with requirements.txt.

pca006132 commented 2 days ago

Thinking about it, maybe we were using some internal APIs within nanobind. We should try to only use the public APIs.

manuel-koch commented 1 day ago

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