Mon May 13 11:41:55 UTC 2024 I: starting to build python-array-api-compat/unstable/arm64 on jenkins on '2024-05-13 11:41' Mon May 13 11:41:55 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/arm64_13/17801/console.log Mon May 13 11:41:55 UTC 2024 I: Downloading source for unstable/python-array-api-compat=1.4-1 --2024-05-13 11:41:56-- http://deb.debian.org/debian/pool/main/p/python-array-api-compat/python-array-api-compat_1.4-1.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2217 (2.2K) [text/prs.lines.tag] Saving to: ‘python-array-api-compat_1.4-1.dsc’ 0K .. 100% 305M=0s 2024-05-13 11:41:56 (305 MB/s) - ‘python-array-api-compat_1.4-1.dsc’ saved [2217/2217] Mon May 13 11:41:56 UTC 2024 I: python-array-api-compat_1.4-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: python-array-api-compat Binary: python3-array-api-compat Architecture: all Version: 1.4-1 Maintainer: Debian Med Packaging Team Uploaders: Andreas Tille Homepage: https://data-apis.org/array-api-compat/ Standards-Version: 4.6.2 Vcs-Browser: https://salsa.debian.org/python-team/packages/python-array-api-compat Vcs-Git: https://salsa.debian.org/python-team/packages/python-array-api-compat.git Build-Depends: debhelper-compat (= 13), dh-python, python3-all, python3-pytest , python3-numpy , python3-torch Package-List: python3-array-api-compat deb python optional arch=all Checksums-Sha1: 350bdefa9074e3b894ff080ae72793cbd1772e35 33757 python-array-api-compat_1.4.orig.tar.gz 9b35e6d8a3e40fb19303dbc9d6379873930f0743 2388 python-array-api-compat_1.4-1.debian.tar.xz Checksums-Sha256: 3e8616fe5de61e39ea764a0f1974f1c69b23c19785d11279afa8f4e2ec254743 33757 python-array-api-compat_1.4.orig.tar.gz 2e9a27a7a82108cd139507c80d63d779725fa97e45cdfef3ff1441366d7c0d1e 2388 python-array-api-compat_1.4-1.debian.tar.xz Files: 8161f70e9813bb703a6815a411f1ded7 33757 python-array-api-compat_1.4.orig.tar.gz a2e1adc310cf6ef85c683c98a28853a8 2388 python-array-api-compat_1.4-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQJFBAEBCgAvFiEE8fAHMgoDVUHwpmPKV4oElNHGRtEFAmVU+2sRHHRpbGxlQGRl Ymlhbi5vcmcACgkQV4oElNHGRtEwrw/+K1G9JuQ5YpVHMBg93k5PmkrZclp/pQ2K gHgJHDwmjDDBEuQQFew4ZyCajcSwD5xHfcIpGrMAOWmZMMiTAELPnnaZdK3T52Ox rO2Wu36Ow4DpeoQ9Rw7NKT6IXK+gy1lgMt/J9ongOfYvtHegrd3VCckn9EgtPqug 6iKStkZ7xZrru5CF8D7wkKFdVhPkOsq5oo1MMp2LDQjAiVMbX65/A71HnxQ7sd0D 1XYcjhAis4uqBFKOqlS8p6FJHG9uN7B68ewqw6HViXJJf1B4QPhRC6dkS2xz+WG3 CNOpb7JnRDlZyB5zQqLlrPAQPoLeMEaDblHPUmjhDj1EorYdNu8ZXFYDShAplAG9 1T1g1lM07tGTjsi8ujOcq/49b+8RSjFBPvHGSXMsD0LRalj4OFw3YFtYXgNbWa/v LVTZswNx2f8Bn36F+gsmwUixqdChldgiFzVx4G7mqdFAj3wwzYIPm9Yxm9Je6N26 DYVyn24LX61KB/45tNQItWTkEEBDUNlsawvtL3CJJtGkDNg9B5WHM8jVHWhrKf4H mBASU8BwslB8Y09EKwwJnPKIiBBLMro4rPcVyQ7tDfXXWpaIhrqOhgTMUWFpI5zR 0n5ZxeHiejRLVKfEDcvgiu9yjbcMRKIP5WrEGbK85t8AOzQDaOZjvfdvOVGLhZ4F +oUmmExL50g= =aQXf -----END PGP SIGNATURE----- Mon May 13 11:41:56 UTC 2024 I: Checking whether the package is not for us Mon May 13 11:41:56 UTC 2024 I: Starting 1st build on remote node codethink01-arm64.debian.net. Mon May 13 11:41:56 UTC 2024 I: Preparing to do remote build '1' on codethink01-arm64.debian.net. Mon May 13 11:45:49 UTC 2024 I: Deleting $TMPDIR on codethink01-arm64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Sun Jun 15 06:04:58 -12 2025 I: pbuilder-time-stamp: 1750010698 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [python-array-api-compat_1.4-1.dsc] I: copying [./python-array-api-compat_1.4.orig.tar.gz] I: copying [./python-array-api-compat_1.4-1.debian.tar.xz] I: Extracting source gpgv: Signature made Wed Nov 15 17:10:03 2023 gpgv: using RSA key F1F007320A035541F0A663CA578A0494D1C646D1 gpgv: issuer "tille@debian.org" gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./python-array-api-compat_1.4-1.dsc: no acceptable signature found dpkg-source: info: extracting python-array-api-compat in python-array-api-compat-1.4 dpkg-source: info: unpacking python-array-api-compat_1.4.orig.tar.gz dpkg-source: info: unpacking python-array-api-compat_1.4-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/1278330/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='arm64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='arm64' IFS=' ' INVOCATION_ID='c7baef8b2a344ae3b6bdfa4017c659f4' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='1278330' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.lFBCVyf3/pbuilderrc_VoS9 --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.lFBCVyf3/b1 --logfile b1/build.log python-array-api-compat_1.4-1.dsc' SUDO_GID='109' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://192.168.101.4:3128' I: uname -a Linux codethink01-arm64 6.1.0-21-cloud-arm64 #1 SMP Debian 6.1.90-1 (2024-05-03) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Jun 15 14:05 /bin -> usr/bin I: user script /srv/workspace/pbuilder/1278330/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: arm64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-python, python3-all, python3-pytest, python3-numpy, python3-torch dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19744 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-numpy; however: Package python3-numpy is not installed. pbuilder-satisfydepends-dummy depends on python3-torch; however: Package python3-torch is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} fontconfig{a} fontconfig-config{a} fonts-dejavu-core{a} fonts-dejavu-mono{a} gdal-data{a} gdal-plugins{a} gettext{a} gettext-base{a} groff-base{a} ibverbs-providers{a} intltool-debian{a} iso-codes{a} libabsl20230802{a} libaec0{a} libamd-comgr2{a} libamdhip64-5{a} libaom3{a} libarchive-zip-perl{a} libarchive13t64{a} libarmadillo12{a} libarpack2t64{a} libavcodec60{a} libavformat60{a} libavif16{a} libavutil58{a} libbenchmark1.8.3{a} libblas3{a} libblosc1{a} libbluray2{a} libbrotli1{a} libbsd0{a} libcairo-gobject2{a} libcairo2{a} libcap2-bin{a} libcfitsio10t64{a} libcharls2{a} libchromaprint1{a} libcjson1{a} libcodec2-1.2{a} libcom-err2{a} libcpuinfo0{a} libcurl3t64-gnutls{a} libcurl4t64{a} libdatrie1{a} libdav1d7{a} libdbus-1-3{a} libdc1394-25{a} libde265-0{a} libdebhelper-perl{a} libdeflate0{a} libdnnl3{a} libdouble-conversion3{a} libdrm-amdgpu1{a} libdrm-common{a} libdrm-nouveau2{a} libdrm-radeon1{a} libdrm2{a} libdw1t64{a} libedit2{a} libegl-mesa0{a} libegl1{a} libelf1t64{a} libevdev2{a} libevent-core-2.1-7t64{a} libevent-pthreads-2.1-7t64{a} libexif12{a} libexpat1{a} libfabric1{a} libfile-stripnondeterminism-perl{a} libfmt9{a} libfontconfig1{a} libfreetype6{a} libfreexl1{a} libfribidi0{a} libfyba0t64{a} libgav1-1{a} libgbm1{a} libgd3{a} libgdal34t64{a} libgdcm3.0t64{a} libgdk-pixbuf-2.0-0{a} libgdk-pixbuf2.0-common{a} libgeos-c1t64{a} libgeos3.12.1t64{a} libgeotiff5{a} libgfortran5{a} libgif7{a} libgl1{a} libgl1-mesa-dri{a} libglapi-mesa{a} libglib2.0-0t64{a} libgloo0{a} libglvnd0{a} libglx-mesa0{a} libglx0{a} libgme0{a} libgphoto2-6t64{a} libgphoto2-port12t64{a} libgraphite2-3{a} libgsm1{a} libgssapi-krb5-2{a} libgstreamer-plugins-base1.0-0{a} libgstreamer1.0-0{a} libgudev-1.0-0{a} libharfbuzz0b{a} libhdf4-0-alt{a} libhdf5-103-1t64{a} libhdf5-hl-100t64{a} libheif-plugin-dav1d{a} libheif-plugin-libde265{a} libheif1{a} libhiredis1.1.0{a} libhsa-runtime64-1{a} libhsakmt1{a} libhwloc-plugins{a} libhwloc15{a} libhwy1t64{a} libibverbs1{a} libice6{a} libicu72{a} libimath-3-1-29t64{a} libinput-bin{a} libinput10{a} libjbig0{a} libjpeg62-turbo{a} libjson-c5{a} libjxl0.7{a} libk5crypto3{a} libkeyutils1{a} libkmlbase1t64{a} libkmldom1t64{a} libkmlengine1t64{a} libkrb5-3{a} libkrb5support0{a} liblapack3{a} liblcms2-2{a} libldap-2.5-0{a} liblept5{a} liblerc4{a} libleveldb1d{a} libllvm17t64{a} liblmdb0{a} libltdl7{a} libmagic-mgc{a} libmagic1t64{a} libmariadb3{a} libmbedcrypto7t64{a} libmd4c0{a} libminizip1t64{a} libmp3lame0{a} libmpg123-0t64{a} libmtdev1t64{a} libmunge2{a} libnetcdf19t64{a} libnghttp2-14{a} libnl-3-200{a} libnl-route-3-200{a} libnorm1t64{a} libnspr4{a} libnss3{a} libnuma1{a} libodbc2{a} libodbcinst2{a} libogdi4.1{a} libogg0{a} libonnx1t64{a} libopencv-calib3d406t64{a} libopencv-contrib406t64{a} libopencv-core406t64{a} libopencv-dnn406t64{a} libopencv-features2d406t64{a} libopencv-flann406t64{a} libopencv-highgui406t64{a} libopencv-imgcodecs406t64{a} libopencv-imgproc406t64{a} libopencv-ml406t64{a} libopencv-objdetect406t64{a} libopencv-video406t64{a} libopencv-videoio406t64{a} libopenexr-3-1-30{a} libopengl0{a} libopenjp2-7{a} libopenmpi3t64{a} libopenmpt0t64{a} libopus0{a} liborc-0.4-0t64{a} libpango-1.0-0{a} libpangocairo-1.0-0{a} libpangoft2-1.0-0{a} libpciaccess0{a} libpcre2-16-0{a} libpgm-5.3-0t64{a} libpipeline1{a} libpixman-1-0{a} libpmix2t64{a} libpng16-16t64{a} libpoppler126t64{a} libpq5{a} libproj25{a} libprotobuf32t64{a} libpsl5t64{a} libpthreadpool0{a} libpython3-stdlib{a} libpython3.11-minimal{a} libpython3.11-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libqhull-r8.0{a} libqt5core5t64{a} libqt5dbus5t64{a} libqt5gui5t64{a} libqt5network5t64{a} libqt5opengl5t64{a} libqt5test5t64{a} libqt5widgets5t64{a} librabbitmq4{a} librav1e0{a} libraw1394-11{a} librdmacm1t64{a} libreadline8t64{a} librist4{a} librsvg2-2{a} librtmp1{a} librttopo1{a} libsasl2-2{a} libsasl2-modules-db{a} libsensors-config{a} libsensors5{a} libsharpyuv0{a} libshine3{a} libsleef3{a} libsm6{a} libsnappy1v5{a} libsocket++1{a} libsodium23{a} libsoxr0{a} libspatialite8t64{a} libspeex1{a} libsrt1.5-gnutls{a} libssh-gcrypt-4{a} libssh2-1t64{a} libsub-override-perl{a} libsuperlu6{a} libsvtav1enc1d1{a} libswresample4{a} libswscale7{a} libsz2{a} libtbb12{a} libtbbbind-2-5{a} libtbbmalloc2{a} libtensorpipe0{a} libtesseract5{a} libthai-data{a} libthai0{a} libtheora0{a} libtiff6{a} libtirpc-common{a} libtirpc3t64{a} libtool{a} libtorch-test{a} libtorch2.1{a} libtwolame0{a} libuchardet0{a} libucx0{a} libudfread0{a} libunwind8{a} liburiparser1{a} libusb-1.0-0{a} libuv1t64{a} libva-drm2{a} libva-x11-2{a} libva2{a} libvdpau1{a} libvorbis0a{a} libvorbisenc2{a} libvorbisfile3{a} libvpx9{a} libvulkan1{a} libwacom-common{a} libwacom9{a} libwayland-client0{a} libwayland-server0{a} libwebp7{a} libwebpmux3{a} libx11-6{a} libx11-data{a} libx11-xcb1{a} libx264-164{a} libx265-199{a} libxau6{a} libxcb-dri2-0{a} libxcb-dri3-0{a} libxcb-glx0{a} libxcb-icccm4{a} libxcb-image0{a} libxcb-keysyms1{a} libxcb-present0{a} libxcb-randr0{a} libxcb-render-util0{a} libxcb-render0{a} libxcb-shape0{a} libxcb-shm0{a} libxcb-sync1{a} libxcb-util1{a} libxcb-xfixes0{a} libxcb-xinerama0{a} libxcb-xinput0{a} libxcb-xkb1{a} libxcb1{a} libxdmcp6{a} libxerces-c3.2t64{a} libxext6{a} libxfixes3{a} libxkbcommon-x11-0{a} libxkbcommon0{a} libxml2{a} libxnnpack0{a} libxnvctrl0{a} libxpm4{a} libxrender1{a} libxshmfence1{a} libxvidcore4{a} libxxf86vm1{a} libyaml-0-2{a} libyuv0{a} libz3-4{a} libzmq5{a} libzvbi-common{a} libzvbi0t64{a} m4{a} man-db{a} mariadb-common{a} media-types{a} mysql-common{a} netbase{a} ocl-icd-libopencl1{a} openssl{a} po-debconf{a} proj-data{a} python3{a} python3-all{a} python3-astunparse{a} python3-attr{a} python3-certifi{a} python3-chardet{a} python3-charset-normalizer{a} python3-dateutil{a} python3-distutils{a} python3-expecttest{a} python3-filelock{a} python3-fsspec{a} python3-hypothesis{a} python3-idna{a} python3-iniconfig{a} python3-jinja2{a} python3-lib2to3{a} python3-markupsafe{a} python3-minimal{a} python3-mpmath{a} python3-networkx{a} python3-numpy{a} python3-packaging{a} python3-pkg-resources{a} python3-pluggy{a} python3-psutil{a} python3-pytest{a} python3-requests{a} python3-setuptools{a} python3-six{a} python3-sortedcontainers{a} python3-sympy{a} python3-torch{a} python3-typing-extensions{a} python3-urllib3{a} python3-yaml{a} python3.11{a} python3.11-minimal{a} python3.12{a} python3.12-minimal{a} readline-common{a} sensible-utils{a} shared-mime-info{a} tzdata{a} unixodbc-common{a} x11-common{a} xkb-data{a} The following packages are RECOMMENDED but will NOT be installed: curl dbus git gstreamer1.0-plugins-base isympy-common krb5-locales libaacs0 libarchive-cpio-perl libgdk-pixbuf2.0-bin libglib2.0-data libgphoto2-l10n libheif-plugin-aomenc libheif-plugin-x265 libldap-common libltdl-dev libmail-sendmail-perl libpam-cap libqt5svg5 librsvg2-common libsasl2-modules libtorch-dev libvdpau-va-gl1 lynx mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers ninja-build poppler-data proj-bin publicsuffix pybind11-dev python3-babel python3-click python3-dask python3-distributed python3-dropbox python3-fusepy python3-gdal python3-libarchive-c python3-matplotlib python3-paramiko python3-pil python3-pydot python3-pygit2 python3-pygments python3-pygraphviz python3-scipy qt5-gtk-platformtheme qttranslations5-l10n qtwayland5 va-driver-all vdpau-driver-all wget xdg-user-dirs 0 packages upgraded, 398 newly installed, 0 to remove and 0 not upgraded. Need to get 288 MB of archives. After unpacking 1322 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main arm64 libpython3.11-minimal arm64 3.11.9-1 [813 kB] Get: 2 http://deb.debian.org/debian unstable/main arm64 libexpat1 arm64 2.6.2-1 [88.7 kB] Get: 3 http://deb.debian.org/debian unstable/main arm64 python3.11-minimal arm64 3.11.9-1 [1767 kB] Get: 4 http://deb.debian.org/debian unstable/main arm64 python3-minimal arm64 3.11.8-1 [26.3 kB] Get: 5 http://deb.debian.org/debian unstable/main arm64 media-types all 10.1.0 [26.9 kB] Get: 6 http://deb.debian.org/debian unstable/main arm64 netbase all 6.4 [12.8 kB] Get: 7 http://deb.debian.org/debian unstable/main arm64 tzdata all 2024a-4 [255 kB] Get: 8 http://deb.debian.org/debian unstable/main arm64 readline-common all 8.2-4 [69.3 kB] Get: 9 http://deb.debian.org/debian unstable/main arm64 libreadline8t64 arm64 8.2-4 [157 kB] Get: 10 http://deb.debian.org/debian unstable/main arm64 libpython3.11-stdlib arm64 3.11.9-1 [1775 kB] Get: 11 http://deb.debian.org/debian unstable/main arm64 python3.11 arm64 3.11.9-1 [602 kB] Get: 12 http://deb.debian.org/debian unstable/main arm64 libpython3-stdlib arm64 3.11.8-1 [9332 B] Get: 13 http://deb.debian.org/debian unstable/main arm64 python3 arm64 3.11.8-1 [27.4 kB] Get: 14 http://deb.debian.org/debian unstable/main arm64 libpython3.12-minimal arm64 3.12.3-1 [802 kB] Get: 15 http://deb.debian.org/debian unstable/main arm64 python3.12-minimal arm64 3.12.3-1 [1931 kB] Get: 16 http://deb.debian.org/debian unstable/main arm64 sensible-utils all 0.0.22 [22.4 kB] Get: 17 http://deb.debian.org/debian unstable/main arm64 openssl arm64 3.2.1-3 [1324 kB] Get: 18 http://deb.debian.org/debian unstable/main arm64 ca-certificates all 20240203 [158 kB] Get: 19 http://deb.debian.org/debian unstable/main arm64 libmagic-mgc arm64 1:5.45-3 [314 kB] Get: 20 http://deb.debian.org/debian unstable/main arm64 libmagic1t64 arm64 1:5.45-3 [100 kB] Get: 21 http://deb.debian.org/debian unstable/main arm64 file arm64 1:5.45-3 [43.0 kB] Get: 22 http://deb.debian.org/debian unstable/main arm64 gettext-base arm64 0.21-14+b1 [160 kB] Get: 23 http://deb.debian.org/debian unstable/main arm64 libuchardet0 arm64 0.0.8-1+b1 [69.0 kB] Get: 24 http://deb.debian.org/debian unstable/main arm64 groff-base arm64 1.23.0-4 [1130 kB] Get: 25 http://deb.debian.org/debian unstable/main arm64 bsdextrautils arm64 2.40-8 [93.0 kB] Get: 26 http://deb.debian.org/debian unstable/main arm64 libpipeline1 arm64 1.5.7-2 [36.5 kB] Get: 27 http://deb.debian.org/debian unstable/main arm64 man-db arm64 2.12.1-1 [1394 kB] Get: 28 http://deb.debian.org/debian unstable/main arm64 m4 arm64 1.4.19-4 [277 kB] Get: 29 http://deb.debian.org/debian unstable/main arm64 autoconf all 2.71-3 [332 kB] Get: 30 http://deb.debian.org/debian unstable/main arm64 autotools-dev all 20220109.1 [51.6 kB] Get: 31 http://deb.debian.org/debian unstable/main arm64 automake all 1:1.16.5-1.3 [823 kB] Get: 32 http://deb.debian.org/debian unstable/main arm64 autopoint all 0.21-14 [496 kB] Get: 33 http://deb.debian.org/debian unstable/main arm64 libdebhelper-perl all 13.15.3 [88.0 kB] Get: 34 http://deb.debian.org/debian unstable/main arm64 libtool all 2.4.7-7 [517 kB] Get: 35 http://deb.debian.org/debian unstable/main arm64 dh-autoreconf all 20 [17.1 kB] Get: 36 http://deb.debian.org/debian unstable/main arm64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 37 http://deb.debian.org/debian unstable/main arm64 libsub-override-perl all 0.10-1 [10.6 kB] Get: 38 http://deb.debian.org/debian unstable/main arm64 libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 39 http://deb.debian.org/debian unstable/main arm64 dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 40 http://deb.debian.org/debian unstable/main arm64 libelf1t64 arm64 0.191-1+b1 [187 kB] Get: 41 http://deb.debian.org/debian unstable/main arm64 dwz arm64 0.15-1+b1 [102 kB] Get: 42 http://deb.debian.org/debian unstable/main arm64 libicu72 arm64 72.1-4+b1 [9224 kB] Get: 43 http://deb.debian.org/debian unstable/main arm64 libxml2 arm64 2.9.14+dfsg-1.3+b3 [624 kB] Get: 44 http://deb.debian.org/debian unstable/main arm64 gettext arm64 0.21-14+b1 [1249 kB] Get: 45 http://deb.debian.org/debian unstable/main arm64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 46 http://deb.debian.org/debian unstable/main arm64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 47 http://deb.debian.org/debian unstable/main arm64 debhelper all 13.15.3 [901 kB] Get: 48 http://deb.debian.org/debian unstable/main arm64 python3-pkg-resources all 68.1.2-2 [241 kB] Get: 49 http://deb.debian.org/debian unstable/main arm64 python3-lib2to3 all 3.12.3-1 [77.6 kB] Get: 50 http://deb.debian.org/debian unstable/main arm64 python3-distutils all 3.12.3-1 [131 kB] Get: 51 http://deb.debian.org/debian unstable/main arm64 python3-setuptools all 68.1.2-2 [468 kB] Get: 52 http://deb.debian.org/debian unstable/main arm64 dh-python all 6.20240422 [107 kB] Get: 53 http://deb.debian.org/debian unstable/main arm64 libbrotli1 arm64 1.1.0-2+b3 [295 kB] Get: 54 http://deb.debian.org/debian unstable/main arm64 libpng16-16t64 arm64 1.6.43-5 [272 kB] Get: 55 http://deb.debian.org/debian unstable/main arm64 libfreetype6 arm64 2.13.2+dfsg-1+b4 [408 kB] Get: 56 http://deb.debian.org/debian unstable/main arm64 fonts-dejavu-mono all 2.37-8 [489 kB] Get: 57 http://deb.debian.org/debian unstable/main arm64 fonts-dejavu-core all 2.37-8 [840 kB] Get: 58 http://deb.debian.org/debian unstable/main arm64 fontconfig-config arm64 2.15.0-1.1 [317 kB] Get: 59 http://deb.debian.org/debian unstable/main arm64 libfontconfig1 arm64 2.15.0-1.1 [385 kB] Get: 60 http://deb.debian.org/debian unstable/main arm64 fontconfig arm64 2.15.0-1.1 [462 kB] Get: 61 http://deb.debian.org/debian unstable/main arm64 gdal-data all 3.8.5+dfsg-1 [547 kB] Get: 62 http://deb.debian.org/debian unstable/main arm64 gdal-plugins arm64 3.8.5+dfsg-1 [331 kB] Get: 63 http://deb.debian.org/debian unstable/main arm64 libnl-3-200 arm64 3.7.0-0.3 [56.5 kB] Get: 64 http://deb.debian.org/debian unstable/main arm64 libnl-route-3-200 arm64 3.7.0-0.3 [165 kB] Get: 65 http://deb.debian.org/debian unstable/main arm64 libibverbs1 arm64 50.0-2+b1 [58.2 kB] Get: 66 http://deb.debian.org/debian unstable/main arm64 ibverbs-providers arm64 50.0-2+b1 [315 kB] Get: 67 http://deb.debian.org/debian unstable/main arm64 iso-codes all 4.16.0-1 [2936 kB] Get: 68 http://deb.debian.org/debian unstable/main arm64 libabsl20230802 arm64 20230802.1-4 [432 kB] Get: 69 http://deb.debian.org/debian unstable/main arm64 libaec0 arm64 1.1.3-1 [22.1 kB] Get: 70 http://deb.debian.org/debian unstable/main arm64 libbsd0 arm64 0.12.2-1 [129 kB] Get: 71 http://deb.debian.org/debian unstable/main arm64 libedit2 arm64 3.1-20230828-1+b1 [89.1 kB] Get: 72 http://deb.debian.org/debian unstable/main arm64 libz3-4 arm64 4.8.12-3.1+b2 [6508 kB] Get: 73 http://deb.debian.org/debian unstable/main arm64 libllvm17t64 arm64 1:17.0.6-12 [21.3 MB] Get: 74 http://deb.debian.org/debian unstable/main arm64 libamd-comgr2 arm64 6.0+git20231212.4510c28+dfsg-3+b1 [12.1 MB] Get: 75 http://deb.debian.org/debian unstable/main arm64 libdrm-common all 2.4.120-2 [7688 B] Get: 76 http://deb.debian.org/debian unstable/main arm64 libdrm2 arm64 2.4.120-2 [37.5 kB] Get: 77 http://deb.debian.org/debian unstable/main arm64 libdrm-amdgpu1 arm64 2.4.120-2 [21.0 kB] Get: 78 http://deb.debian.org/debian unstable/main arm64 libnuma1 arm64 2.0.18-1 [21.4 kB] Get: 79 http://deb.debian.org/debian unstable/main arm64 libhsakmt1 arm64 5.7.0-1 [57.6 kB] Get: 80 http://deb.debian.org/debian unstable/main arm64 libhsa-runtime64-1 arm64 5.7.1-2 [276 kB] Get: 81 http://deb.debian.org/debian unstable/main arm64 libamdhip64-5 arm64 5.7.1-3 [8698 kB] Get: 82 http://deb.debian.org/debian unstable/main arm64 libaom3 arm64 3.8.2-2 [1528 kB] Get: 83 http://deb.debian.org/debian unstable/main arm64 libarchive13t64 arm64 3.7.2-2 [321 kB] Get: 84 http://deb.debian.org/debian unstable/main arm64 libblas3 arm64 3.12.0-3 [91.7 kB] Get: 85 http://deb.debian.org/debian unstable/main arm64 libgfortran5 arm64 14-20240429-1 [361 kB] Get: 86 http://deb.debian.org/debian unstable/main arm64 liblapack3 arm64 3.12.0-3 [1757 kB] Get: 87 http://deb.debian.org/debian unstable/main arm64 libarpack2t64 arm64 3.9.1-1.1+b1 [81.4 kB] Get: 88 http://deb.debian.org/debian unstable/main arm64 libsuperlu6 arm64 6.0.1+dfsg1-1+b1 [141 kB] Get: 89 http://deb.debian.org/debian unstable/main arm64 libarmadillo12 arm64 1:12.8.2+dfsg-1 [102 kB] Get: 90 http://deb.debian.org/debian unstable/main arm64 libva2 arm64 2.21.0-1 [68.5 kB] Get: 91 http://deb.debian.org/debian unstable/main arm64 libva-drm2 arm64 2.21.0-1 [18.3 kB] Get: 92 http://deb.debian.org/debian unstable/main arm64 libxau6 arm64 1:1.0.9-1+b1 [18.1 kB] Get: 93 http://deb.debian.org/debian unstable/main arm64 libxdmcp6 arm64 1:1.1.2-3+b1 [24.3 kB] Get: 94 http://deb.debian.org/debian unstable/main arm64 libxcb1 arm64 1.17.0-1 [143 kB] Get: 95 http://deb.debian.org/debian unstable/main arm64 libx11-data all 2:1.8.7-1 [328 kB] Get: 96 http://deb.debian.org/debian unstable/main arm64 libx11-6 arm64 2:1.8.7-1+b1 [775 kB] Get: 97 http://deb.debian.org/debian unstable/main arm64 libx11-xcb1 arm64 2:1.8.7-1+b1 [232 kB] Get: 98 http://deb.debian.org/debian unstable/main arm64 libxcb-dri3-0 arm64 1.17.0-1 [106 kB] Get: 99 http://deb.debian.org/debian unstable/main arm64 libxext6 arm64 2:1.3.4-1+b1 [51.7 kB] Get: 100 http://deb.debian.org/debian unstable/main arm64 libxfixes3 arm64 1:6.0.0-2+b1 [20.5 kB] Get: 101 http://deb.debian.org/debian unstable/main arm64 libva-x11-2 arm64 2.21.0-1 [22.8 kB] Get: 102 http://deb.debian.org/debian unstable/main arm64 libvdpau1 arm64 1.5-2+b1 [24.2 kB] Get: 103 http://deb.debian.org/debian unstable/main arm64 ocl-icd-libopencl1 arm64 2.3.2-1+b1 [39.3 kB] Get: 104 http://deb.debian.org/debian unstable/main arm64 libavutil58 arm64 7:6.1.1-4+b1 [361 kB] Get: 105 http://deb.debian.org/debian unstable/main arm64 libpixman-1-0 arm64 0.42.2-1+b1 [477 kB] Get: 106 http://deb.debian.org/debian unstable/main arm64 libxcb-render0 arm64 1.17.0-1 [114 kB] Get: 107 http://deb.debian.org/debian unstable/main arm64 libxcb-shm0 arm64 1.17.0-1 [105 kB] Get: 108 http://deb.debian.org/debian unstable/main arm64 libxrender1 arm64 1:0.9.10-1.1+b1 [27.0 kB] Get: 109 http://deb.debian.org/debian unstable/main arm64 libcairo2 arm64 1.18.0-3+b1 [478 kB] Get: 110 http://deb.debian.org/debian unstable/main arm64 libcodec2-1.2 arm64 1.2.0-2+b1 [8168 kB] Get: 111 http://deb.debian.org/debian unstable/main arm64 libdav1d7 arm64 1.4.1-1 [251 kB] Get: 112 http://deb.debian.org/debian unstable/main arm64 libglib2.0-0t64 arm64 2.80.2-1 [1393 kB] Get: 113 http://deb.debian.org/debian unstable/main arm64 libgsm1 arm64 1.0.22-1+b1 [26.9 kB] Get: 114 http://deb.debian.org/debian unstable/main arm64 libhwy1t64 arm64 1.0.7-8.1 [356 kB] Get: 115 http://deb.debian.org/debian unstable/main arm64 liblcms2-2 arm64 2.14-2+b1 [144 kB] Get: 116 http://deb.debian.org/debian unstable/main arm64 libjxl0.7 arm64 0.7.0-10.2+b3 [683 kB] Get: 117 http://deb.debian.org/debian unstable/main arm64 libmp3lame0 arm64 3.100-6+b2 [352 kB] Get: 118 http://deb.debian.org/debian unstable/main arm64 libopenjp2-7 arm64 2.5.0-2+b3 [177 kB] Get: 119 http://deb.debian.org/debian unstable/main arm64 libopus0 arm64 1.4-1+b1 [180 kB] Get: 120 http://deb.debian.org/debian unstable/main arm64 librav1e0 arm64 0.7.1-2 [630 kB] Get: 121 http://deb.debian.org/debian unstable/main arm64 libcairo-gobject2 arm64 1.18.0-3+b1 [129 kB] Get: 122 http://deb.debian.org/debian unstable/main arm64 libgdk-pixbuf2.0-common all 2.42.10+dfsg-3 [307 kB] Get: 123 http://deb.debian.org/debian unstable/main arm64 shared-mime-info arm64 2.4-4 [755 kB] Get: 124 http://deb.debian.org/debian unstable/main arm64 libjpeg62-turbo arm64 1:2.1.5-3 [172 kB] Get: 125 http://deb.debian.org/debian unstable/main arm64 libdeflate0 arm64 1.20-1 [41.5 kB] Get: 126 http://deb.debian.org/debian unstable/main arm64 libjbig0 arm64 2.1-6.1+b1 [30.4 kB] Get: 127 http://deb.debian.org/debian unstable/main arm64 liblerc4 arm64 4.0.0+ds-4+b1 [142 kB] Get: 128 http://deb.debian.org/debian unstable/main arm64 libsharpyuv0 arm64 1.4.0-0.1 [111 kB] Get: 129 http://deb.debian.org/debian unstable/main arm64 libwebp7 arm64 1.4.0-0.1 [267 kB] Get: 130 http://deb.debian.org/debian unstable/main arm64 libtiff6 arm64 4.5.1+git230720-4 [307 kB] Get: 131 http://deb.debian.org/debian unstable/main arm64 libgdk-pixbuf-2.0-0 arm64 2.42.10+dfsg-3+b3 [130 kB] Get: 132 http://deb.debian.org/debian unstable/main arm64 libfribidi0 arm64 1.0.13-3+b1 [71.3 kB] Get: 133 http://deb.debian.org/debian unstable/main arm64 libgraphite2-3 arm64 1.3.14-2 [69.2 kB] Get: 134 http://deb.debian.org/debian unstable/main arm64 libharfbuzz0b arm64 8.3.0-2+b1 [2178 kB] Get: 135 http://deb.debian.org/debian unstable/main arm64 libthai-data all 0.1.29-2 [168 kB] Get: 136 http://deb.debian.org/debian unstable/main arm64 libdatrie1 arm64 0.2.13-3 [37.2 kB] Get: 137 http://deb.debian.org/debian unstable/main arm64 libthai0 arm64 0.1.29-2 [48.0 kB] Get: 138 http://deb.debian.org/debian unstable/main arm64 libpango-1.0-0 arm64 1.52.2+ds-1 [206 kB] Get: 139 http://deb.debian.org/debian unstable/main arm64 libpangoft2-1.0-0 arm64 1.52.2+ds-1 [45.5 kB] Get: 140 http://deb.debian.org/debian unstable/main arm64 libpangocairo-1.0-0 arm64 1.52.2+ds-1 [33.0 kB] Get: 141 http://deb.debian.org/debian unstable/main arm64 librsvg2-2 arm64 2.58.0+dfsg-1 [1735 kB] Get: 142 http://deb.debian.org/debian unstable/main arm64 libshine3 arm64 3.1.1-2+b1 [24.3 kB] Get: 143 http://deb.debian.org/debian unstable/main arm64 libsnappy1v5 arm64 1.2.0-2 [28.3 kB] Get: 144 http://deb.debian.org/debian unstable/main arm64 libspeex1 arm64 1.2.1-2+b1 [49.5 kB] Get: 145 http://deb.debian.org/debian unstable/main arm64 libsvtav1enc1d1 arm64 1.7.0+dfsg-2+b1 [1083 kB] Get: 146 http://deb.debian.org/debian unstable/main arm64 libsoxr0 arm64 0.1.3-4+b1 [53.3 kB] Get: 147 http://deb.debian.org/debian unstable/main arm64 libswresample4 arm64 7:6.1.1-4+b1 [84.7 kB] Get: 148 http://deb.debian.org/debian unstable/main arm64 libogg0 arm64 1.3.5-3+b1 [23.5 kB] Get: 149 http://deb.debian.org/debian unstable/main arm64 libtheora0 arm64 1.1.1+dfsg.1-16.1+b2 [147 kB] Get: 150 http://deb.debian.org/debian unstable/main arm64 libtwolame0 arm64 0.4.0-2+b1 [48.8 kB] Get: 151 http://deb.debian.org/debian unstable/main arm64 libvorbis0a arm64 1.3.7-2 [82.3 kB] Get: 152 http://deb.debian.org/debian unstable/main arm64 libvorbisenc2 arm64 1.3.7-2 [75.5 kB] Get: 153 http://deb.debian.org/debian unstable/main arm64 libvpx9 arm64 1.14.0-2 [1059 kB] Get: 154 http://deb.debian.org/debian unstable/main arm64 libwebpmux3 arm64 1.4.0-0.1 [122 kB] Get: 155 http://deb.debian.org/debian unstable/main arm64 libx264-164 arm64 2:0.164.3108+git31e19f9-1 [442 kB] Get: 156 http://deb.debian.org/debian unstable/main arm64 libx265-199 arm64 3.5-2+b1 [603 kB] Get: 157 http://deb.debian.org/debian unstable/main arm64 libxvidcore4 arm64 2:1.3.7-1+b1 [201 kB] Get: 158 http://deb.debian.org/debian unstable/main arm64 libzvbi-common all 0.2.42-2 [70.4 kB] Get: 159 http://deb.debian.org/debian unstable/main arm64 libzvbi0t64 arm64 0.2.42-2 [259 kB] Get: 160 http://deb.debian.org/debian unstable/main arm64 libavcodec60 arm64 7:6.1.1-4+b1 [4998 kB] Get: 161 http://deb.debian.org/debian unstable/main arm64 libudfread0 arm64 1.1.2-1+b1 [16.2 kB] Get: 162 http://deb.debian.org/debian unstable/main arm64 libbluray2 arm64 1:1.3.4-1+b1 [124 kB] Get: 163 http://deb.debian.org/debian unstable/main arm64 libchromaprint1 arm64 1.5.1-5 [38.8 kB] Get: 164 http://deb.debian.org/debian unstable/main arm64 libgme0 arm64 0.6.3-7+b1 [120 kB] Get: 165 http://deb.debian.org/debian unstable/main arm64 libmpg123-0t64 arm64 1.32.6-3 [141 kB] Get: 166 http://deb.debian.org/debian unstable/main arm64 libvorbisfile3 arm64 1.3.7-2 [20.5 kB] Get: 167 http://deb.debian.org/debian unstable/main arm64 libopenmpt0t64 arm64 0.7.6-1+b1 [715 kB] Get: 168 http://deb.debian.org/debian unstable/main arm64 librabbitmq4 arm64 0.11.0-1+b2 [40.6 kB] Get: 169 http://deb.debian.org/debian unstable/main arm64 libcjson1 arm64 1.7.17-2 [28.2 kB] Get: 170 http://deb.debian.org/debian unstable/main arm64 libmbedcrypto7t64 arm64 2.28.8-1 [269 kB] Get: 171 http://deb.debian.org/debian unstable/main arm64 librist4 arm64 0.2.10+dfsg-2 [68.1 kB] Get: 172 http://deb.debian.org/debian unstable/main arm64 libsrt1.5-gnutls arm64 1.5.3-1+b2 [287 kB] Get: 173 http://deb.debian.org/debian unstable/main arm64 libkrb5support0 arm64 1.20.1-6+b1 [33.0 kB] Get: 174 http://deb.debian.org/debian unstable/main arm64 libcom-err2 arm64 1.47.1~rc2-1 [22.5 kB] Get: 175 http://deb.debian.org/debian unstable/main arm64 libk5crypto3 arm64 1.20.1-6+b1 [80.5 kB] Get: 176 http://deb.debian.org/debian unstable/main arm64 libkeyutils1 arm64 1.6.3-3 [9112 B] Get: 177 http://deb.debian.org/debian unstable/main arm64 libkrb5-3 arm64 1.20.1-6+b1 [315 kB] Get: 178 http://deb.debian.org/debian unstable/main arm64 libgssapi-krb5-2 arm64 1.20.1-6+b1 [124 kB] Get: 179 http://deb.debian.org/debian unstable/main arm64 libssh-gcrypt-4 arm64 0.10.6-2+b1 [207 kB] Get: 180 http://deb.debian.org/debian unstable/main arm64 libnorm1t64 arm64 1.5.9+dfsg-3.1 [204 kB] Get: 181 http://deb.debian.org/debian unstable/main arm64 libpgm-5.3-0t64 arm64 5.3.128~dfsg-2.1 [151 kB] Get: 182 http://deb.debian.org/debian unstable/main arm64 libsodium23 arm64 1.0.18-1+b1 [118 kB] Get: 183 http://deb.debian.org/debian unstable/main arm64 libzmq5 arm64 4.3.5-1+b2 [251 kB] Get: 184 http://deb.debian.org/debian unstable/main arm64 libavformat60 arm64 7:6.1.1-4+b1 [1068 kB] Get: 185 http://deb.debian.org/debian unstable/main arm64 libgav1-1 arm64 0.19.0-2+b1 [481 kB] Get: 186 http://deb.debian.org/debian unstable/main arm64 libyuv0 arm64 0.0~git202401110.af6ac82-1 [123 kB] Get: 187 http://deb.debian.org/debian unstable/main arm64 libavif16 arm64 1.0.4-3 [99.4 kB] Get: 188 http://deb.debian.org/debian unstable/main arm64 libbenchmark1.8.3 arm64 1.8.3-3 [111 kB] Get: 189 http://deb.debian.org/debian unstable/main arm64 libblosc1 arm64 1.21.5+ds-1+b1 [39.0 kB] Get: 190 http://deb.debian.org/debian unstable/main arm64 libcap2-bin arm64 1:2.66-5 [34.0 kB] Get: 191 http://deb.debian.org/debian unstable/main arm64 libsasl2-modules-db arm64 2.1.28+dfsg1-6 [20.1 kB] Get: 192 http://deb.debian.org/debian unstable/main arm64 libsasl2-2 arm64 2.1.28+dfsg1-6 [55.3 kB] Get: 193 http://deb.debian.org/debian unstable/main arm64 libldap-2.5-0 arm64 2.5.17+dfsg-1 [173 kB] Get: 194 http://deb.debian.org/debian unstable/main arm64 libnghttp2-14 arm64 1.61.0-1+b1 [71.0 kB] Get: 195 http://deb.debian.org/debian unstable/main arm64 libpsl5t64 arm64 0.21.2-1.1 [56.8 kB] Get: 196 http://deb.debian.org/debian unstable/main arm64 librtmp1 arm64 2.4+20151223.gitfa8646d.1-2+b4 [56.7 kB] Get: 197 http://deb.debian.org/debian unstable/main arm64 libssh2-1t64 arm64 1.11.0-4.1+b2 [207 kB] Get: 198 http://deb.debian.org/debian unstable/main arm64 libcurl3t64-gnutls arm64 8.7.1-5 [405 kB] Get: 199 http://deb.debian.org/debian unstable/main arm64 libcfitsio10t64 arm64 4.3.1-1.1+b1 [514 kB] Get: 200 http://deb.debian.org/debian unstable/main arm64 libcharls2 arm64 2.4.2-2+b1 [78.4 kB] Get: 201 http://deb.debian.org/debian unstable/main arm64 libcpuinfo0 arm64 0.0~git20230113.6481e8b-2 [24.7 kB] Get: 202 http://deb.debian.org/debian unstable/main arm64 libcurl4t64 arm64 8.7.1-5 [412 kB] Get: 203 http://deb.debian.org/debian unstable/main arm64 libdbus-1-3 arm64 1.14.10-4+b1 [195 kB] Get: 204 http://deb.debian.org/debian unstable/main arm64 libraw1394-11 arm64 2.1.2-2+b1 [38.1 kB] Get: 205 http://deb.debian.org/debian unstable/main arm64 libusb-1.0-0 arm64 2:1.0.27-1 [55.2 kB] Get: 206 http://deb.debian.org/debian unstable/main arm64 libdc1394-25 arm64 2.2.6-4+b1 [105 kB] Get: 207 http://deb.debian.org/debian unstable/main arm64 libde265-0 arm64 1.0.15-1+b1 [151 kB] Get: 208 http://deb.debian.org/debian unstable/main arm64 libdnnl3 arm64 3.1.1-2 [2630 kB] Get: 209 http://deb.debian.org/debian unstable/main arm64 libdouble-conversion3 arm64 3.3.0-1+b1 [37.0 kB] Get: 210 http://deb.debian.org/debian unstable/main arm64 libdrm-nouveau2 arm64 2.4.120-2 [18.7 kB] Get: 211 http://deb.debian.org/debian unstable/main arm64 libdrm-radeon1 arm64 2.4.120-2 [21.1 kB] Get: 212 http://deb.debian.org/debian unstable/main arm64 libdw1t64 arm64 0.191-1+b1 [230 kB] Get: 213 http://deb.debian.org/debian unstable/main arm64 libwayland-server0 arm64 1.22.0-2.1+b1 [32.3 kB] Get: 214 http://deb.debian.org/debian unstable/main arm64 libxcb-randr0 arm64 1.17.0-1 [116 kB] Get: 215 http://deb.debian.org/debian unstable/main arm64 libgbm1 arm64 24.0.7-1 [40.3 kB] Get: 216 http://deb.debian.org/debian unstable/main arm64 libglapi-mesa arm64 24.0.7-1 [46.0 kB] Get: 217 http://deb.debian.org/debian unstable/main arm64 libwayland-client0 arm64 1.22.0-2.1+b1 [24.8 kB] Get: 218 http://deb.debian.org/debian unstable/main arm64 libxcb-dri2-0 arm64 1.17.0-1 [106 kB] Get: 219 http://deb.debian.org/debian unstable/main arm64 libxcb-present0 arm64 1.17.0-1 [105 kB] Get: 220 http://deb.debian.org/debian unstable/main arm64 libxcb-sync1 arm64 1.17.0-1 [108 kB] Get: 221 http://deb.debian.org/debian unstable/main arm64 libxcb-xfixes0 arm64 1.17.0-1 [109 kB] Get: 222 http://deb.debian.org/debian unstable/main arm64 libxshmfence1 arm64 1.3-1+b1 [9080 B] Get: 223 http://deb.debian.org/debian unstable/main arm64 libegl-mesa0 arm64 24.0.7-1 [112 kB] Get: 224 http://deb.debian.org/debian unstable/main arm64 libevdev2 arm64 1.13.1+dfsg-1+b1 [31.0 kB] Get: 225 http://deb.debian.org/debian unstable/main arm64 libevent-core-2.1-7t64 arm64 2.1.12-stable-8.1+b3 [125 kB] Get: 226 http://deb.debian.org/debian unstable/main arm64 libevent-pthreads-2.1-7t64 arm64 2.1.12-stable-8.1+b3 [54.3 kB] Get: 227 http://deb.debian.org/debian unstable/main arm64 libexif12 arm64 0.6.24-1+b1 [396 kB] Get: 228 http://deb.debian.org/debian unstable/main arm64 librdmacm1t64 arm64 50.0-2+b1 [66.6 kB] Get: 229 http://deb.debian.org/debian unstable/main arm64 libfabric1 arm64 1.17.0-3+b1 [479 kB] Get: 230 http://deb.debian.org/debian unstable/main arm64 libfmt9 arm64 9.1.0+ds1-2 [107 kB] Get: 231 http://deb.debian.org/debian unstable/main arm64 libminizip1t64 arm64 1:1.3.dfsg+really1.3.1-1 [52.0 kB] Get: 232 http://deb.debian.org/debian unstable/main arm64 libfreexl1 arm64 2.0.0-1+b2 [38.1 kB] Get: 233 http://deb.debian.org/debian unstable/main arm64 libfyba0t64 arm64 4.1.1-11 [106 kB] Get: 234 http://deb.debian.org/debian unstable/main arm64 libheif-plugin-dav1d arm64 1.17.6-1+b2 [9888 B] Get: 235 http://deb.debian.org/debian unstable/main arm64 libheif-plugin-libde265 arm64 1.17.6-1+b2 [13.0 kB] Get: 236 http://deb.debian.org/debian unstable/main arm64 libheif1 arm64 1.17.6-1+b2 [247 kB] Get: 237 http://deb.debian.org/debian unstable/main arm64 libxpm4 arm64 1:3.5.17-1+b1 [52.9 kB] Get: 238 http://deb.debian.org/debian unstable/main arm64 libgd3 arm64 2.3.3-9+b3 [114 kB] Get: 239 http://deb.debian.org/debian unstable/main arm64 libgeos3.12.1t64 arm64 3.12.1-3 [800 kB] Get: 240 http://deb.debian.org/debian unstable/main arm64 libgeos-c1t64 arm64 3.12.1-3 [87.9 kB] Get: 241 http://deb.debian.org/debian unstable/main arm64 proj-data all 9.4.0-1 [6258 kB] Get: 242 http://deb.debian.org/debian unstable/main arm64 libproj25 arm64 9.4.0-1+b1 [1178 kB] Get: 243 http://deb.debian.org/debian unstable/main arm64 libgeotiff5 arm64 1.7.1-5+b1 [66.1 kB] Get: 244 http://deb.debian.org/debian unstable/main arm64 libgif7 arm64 5.2.2-1 [43.7 kB] Get: 245 http://deb.debian.org/debian unstable/main arm64 libsz2 arm64 1.1.3-1 [7664 B] Get: 246 http://deb.debian.org/debian unstable/main arm64 libhdf4-0-alt arm64 4.3.0-1 [236 kB] Get: 247 http://deb.debian.org/debian unstable/main arm64 libhdf5-103-1t64 arm64 1.10.10+repack-3.3 [1035 kB] Get: 248 http://deb.debian.org/debian unstable/main arm64 libjson-c5 arm64 0.17-1+b1 [43.5 kB] Get: 249 http://deb.debian.org/debian unstable/main arm64 liburiparser1 arm64 0.9.7+dfsg-2+b1 [41.1 kB] Get: 250 http://deb.debian.org/debian unstable/main arm64 libkmlbase1t64 arm64 1.3.0-12 [44.8 kB] Get: 251 http://deb.debian.org/debian unstable/main arm64 libkmldom1t64 arm64 1.3.0-12 [141 kB] Get: 252 http://deb.debian.org/debian unstable/main arm64 libkmlengine1t64 arm64 1.3.0-12 [70.6 kB] Get: 253 http://deb.debian.org/debian unstable/main arm64 mysql-common all 5.8+1.1.0 [6636 B] Get: 254 http://deb.debian.org/debian unstable/main arm64 mariadb-common all 1:10.11.7-4 [25.9 kB] Get: 255 http://deb.debian.org/debian unstable/main arm64 libmariadb3 arm64 1:10.11.7-4 [165 kB] Get: 256 http://deb.debian.org/debian unstable/main arm64 libhdf5-hl-100t64 arm64 1.10.10+repack-3.3 [60.1 kB] Get: 257 http://deb.debian.org/debian unstable/main arm64 libnetcdf19t64 arm64 1:4.9.2-6 [441 kB] Get: 258 http://deb.debian.org/debian unstable/main arm64 libltdl7 arm64 2.4.7-7+b1 [393 kB] Get: 259 http://deb.debian.org/debian unstable/main arm64 libodbc2 arm64 2.3.12-1+b2 [133 kB] Get: 260 http://deb.debian.org/debian unstable/main arm64 unixodbc-common all 2.3.12-1 [8496 B] Get: 261 http://deb.debian.org/debian unstable/main arm64 libodbcinst2 arm64 2.3.12-1+b2 [36.3 kB] Get: 262 http://deb.debian.org/debian unstable/main arm64 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB] Get: 263 http://deb.debian.org/debian unstable/main arm64 libtirpc3t64 arm64 1.3.4+ds-1.3 [78.4 kB] Get: 264 http://deb.debian.org/debian unstable/main arm64 libogdi4.1 arm64 4.1.1+ds-4 [196 kB] Get: 265 http://deb.debian.org/debian unstable/main arm64 libnspr4 arm64 2:4.35-1.1+b1 [101 kB] Get: 266 http://deb.debian.org/debian unstable/main arm64 libnss3 arm64 2:3.99-1 [1293 kB] Get: 267 http://deb.debian.org/debian unstable/main arm64 libpoppler126t64 arm64 22.12.0-2.2+b1 [1762 kB] Get: 268 http://deb.debian.org/debian unstable/main arm64 libpq5 arm64 16.3-1 [209 kB] Get: 269 http://deb.debian.org/debian unstable/main arm64 libqhull-r8.0 arm64 2020.2-6+b1 [226 kB] Get: 270 http://deb.debian.org/debian unstable/main arm64 librttopo1 arm64 1.1.0-3+b1 [164 kB] Get: 271 http://deb.debian.org/debian unstable/main arm64 libspatialite8t64 arm64 5.1.0-3+b1 [1595 kB] Get: 272 http://deb.debian.org/debian unstable/main arm64 libxerces-c3.2t64 arm64 3.2.4+debian-1.3 [781 kB] Get: 273 http://deb.debian.org/debian unstable/main arm64 libgdal34t64 arm64 3.8.5+dfsg-1 [7416 kB] Get: 274 http://deb.debian.org/debian unstable/main arm64 libsocket++1 arm64 1.12.13+git20131030.5d039ba-1+b1 [72.6 kB] Get: 275 http://deb.debian.org/debian unstable/main arm64 libgdcm3.0t64 arm64 3.0.24-1 [2035 kB] Get: 276 http://deb.debian.org/debian unstable/main arm64 libglvnd0 arm64 1.7.0-1+b1 [41.7 kB] Get: 277 http://deb.debian.org/debian unstable/main arm64 libxcb-glx0 arm64 1.17.0-1 [122 kB] Get: 278 http://deb.debian.org/debian unstable/main arm64 libxxf86vm1 arm64 1:1.1.4-1+b2 [20.1 kB] Get: 279 http://deb.debian.org/debian unstable/main arm64 libvulkan1 arm64 1.3.280.0-1 [119 kB] Get: 280 http://deb.debian.org/debian unstable/main arm64 libsensors-config all 1:3.6.0-9 [14.6 kB] Get: 281 http://deb.debian.org/debian unstable/main arm64 libsensors5 arm64 1:3.6.0-9 [33.9 kB] Get: 282 http://deb.debian.org/debian unstable/main arm64 libgl1-mesa-dri arm64 24.0.7-1 [7018 kB] Get: 283 http://deb.debian.org/debian unstable/main arm64 libglx-mesa0 arm64 24.0.7-1 [150 kB] Get: 284 http://deb.debian.org/debian unstable/main arm64 libglx0 arm64 1.7.0-1+b1 [31.0 kB] Get: 285 http://deb.debian.org/debian unstable/main arm64 libgl1 arm64 1.7.0-1+b1 [90.9 kB] Get: 286 http://deb.debian.org/debian unstable/main arm64 libhiredis1.1.0 arm64 1.2.0-6+b2 [48.3 kB] Get: 287 http://deb.debian.org/debian unstable/main arm64 libhwloc15 arm64 2.10.0-1+b1 [140 kB] Get: 288 http://deb.debian.org/debian unstable/main arm64 libmunge2 arm64 0.5.15-4 [19.2 kB] Get: 289 http://deb.debian.org/debian unstable/main arm64 libpciaccess0 arm64 0.17-3+b1 [51.1 kB] Get: 290 http://deb.debian.org/debian unstable/main arm64 libxnvctrl0 arm64 535.171.04-1 [13.8 kB] Get: 291 http://deb.debian.org/debian unstable/main arm64 libhwloc-plugins arm64 2.10.0-1+b1 [18.0 kB] Get: 292 http://deb.debian.org/debian unstable/main arm64 libpmix2t64 arm64 5.0.2-3 [580 kB] Get: 293 http://deb.debian.org/debian unstable/main arm64 libucx0 arm64 1.16.0+ds-5 [938 kB] Get: 294 http://deb.debian.org/debian unstable/main arm64 libopenmpi3t64 arm64 4.1.6-13.3 [2170 kB] Get: 295 http://deb.debian.org/debian unstable/main arm64 libgloo0 arm64 0.0~git20230519.597accf-2+b2 [177 kB] Get: 296 http://deb.debian.org/debian unstable/main arm64 libgphoto2-port12t64 arm64 2.5.31-2.1+b1 [135 kB] Get: 297 http://deb.debian.org/debian unstable/main arm64 libgphoto2-6t64 arm64 2.5.31-2.1+b1 [718 kB] Get: 298 http://deb.debian.org/debian unstable/main arm64 libunwind8 arm64 1.6.2-3+b1 [47.9 kB] Get: 299 http://deb.debian.org/debian unstable/main arm64 libgstreamer1.0-0 arm64 1.24.3-1 [1245 kB] Get: 300 http://deb.debian.org/debian unstable/main arm64 liborc-0.4-0t64 arm64 1:0.4.38-1 [172 kB] Get: 301 http://deb.debian.org/debian unstable/main arm64 libgstreamer-plugins-base1.0-0 arm64 1.24.3-1 [883 kB] Get: 302 http://deb.debian.org/debian unstable/main arm64 libgudev-1.0-0 arm64 238-5 [13.6 kB] Get: 303 http://deb.debian.org/debian unstable/main arm64 x11-common all 1:7.7+23 [252 kB] Get: 304 http://deb.debian.org/debian unstable/main arm64 libice6 arm64 2:1.0.10-1+b1 [53.7 kB] Get: 305 http://deb.debian.org/debian unstable/main arm64 libimath-3-1-29t64 arm64 3.1.9-3.1+b1 [35.0 kB] Get: 306 http://deb.debian.org/debian unstable/main arm64 libwacom-common all 2.10.0-2 [62.5 kB] Get: 307 http://deb.debian.org/debian unstable/main arm64 libwacom9 arm64 2.10.0-2 [21.5 kB] Get: 308 http://deb.debian.org/debian unstable/main arm64 libinput-bin arm64 1.25.0-1+b2 [24.8 kB] Get: 309 http://deb.debian.org/debian unstable/main arm64 libmtdev1t64 arm64 1.1.6-1.2 [21.9 kB] Get: 310 http://deb.debian.org/debian unstable/main arm64 libinput10 arm64 1.25.0-1+b2 [116 kB] Get: 311 http://deb.debian.org/debian unstable/main arm64 liblept5 arm64 1.82.0-3+b4 [977 kB] Get: 312 http://deb.debian.org/debian unstable/main arm64 libleveldb1d arm64 1.23-5+b1 [122 kB] Get: 313 http://deb.debian.org/debian unstable/main arm64 liblmdb0 arm64 0.9.31-1+b1 [43.0 kB] Get: 314 http://deb.debian.org/debian unstable/main arm64 libmd4c0 arm64 0.4.8-1+b1 [42.2 kB] Get: 315 http://deb.debian.org/debian unstable/main arm64 libprotobuf32t64 arm64 3.21.12-8.2 [851 kB] Get: 316 http://deb.debian.org/debian unstable/main arm64 libonnx1t64 arm64 1.14.1-2.1+b1 [923 kB] Get: 317 http://deb.debian.org/debian unstable/main arm64 libtbbmalloc2 arm64 2021.11.0-2 [35.0 kB] Get: 318 http://deb.debian.org/debian unstable/main arm64 libtbbbind-2-5 arm64 2021.11.0-2 [13.7 kB] Get: 319 http://deb.debian.org/debian unstable/main arm64 libtbb12 arm64 2021.11.0-2 [63.1 kB] Get: 320 http://deb.debian.org/debian unstable/main arm64 libopencv-core406t64 arm64 4.6.0+dfsg-13.1+b2 [875 kB] Get: 321 http://deb.debian.org/debian unstable/main arm64 libopencv-flann406t64 arm64 4.6.0+dfsg-13.1+b2 [114 kB] Get: 322 http://deb.debian.org/debian unstable/main arm64 libopencv-imgproc406t64 arm64 4.6.0+dfsg-13.1+b2 [911 kB] Get: 323 http://deb.debian.org/debian unstable/main arm64 libopencv-features2d406t64 arm64 4.6.0+dfsg-13.1+b2 [209 kB] Get: 324 http://deb.debian.org/debian unstable/main arm64 libopencv-calib3d406t64 arm64 4.6.0+dfsg-13.1+b2 [591 kB] Get: 325 http://deb.debian.org/debian unstable/main arm64 libopencv-dnn406t64 arm64 4.6.0+dfsg-13.1+b2 [995 kB] Get: 326 http://deb.debian.org/debian unstable/main arm64 libopengl0 arm64 1.7.0-1+b1 [32.1 kB] Get: 327 http://deb.debian.org/debian unstable/main arm64 libpcre2-16-0 arm64 10.42-4+b1 [217 kB] Get: 328 http://deb.debian.org/debian unstable/main arm64 libqt5core5t64 arm64 5.15.10+dfsg-7.2+b1 [1700 kB] Get: 329 http://deb.debian.org/debian unstable/main arm64 libegl1 arm64 1.7.0-1+b1 [33.9 kB] Get: 330 http://deb.debian.org/debian unstable/main arm64 libqt5dbus5t64 arm64 5.15.10+dfsg-7.2+b1 [205 kB] Get: 331 http://deb.debian.org/debian unstable/main arm64 libqt5network5t64 arm64 5.15.10+dfsg-7.2+b1 [653 kB] Get: 332 http://deb.debian.org/debian unstable/main arm64 libsm6 arm64 2:1.2.3-1+b1 [32.7 kB] Get: 333 http://deb.debian.org/debian unstable/main arm64 libxcb-icccm4 arm64 0.4.1-1.1+b1 [26.5 kB] Get: 334 http://deb.debian.org/debian unstable/main arm64 libxcb-util1 arm64 0.4.0-1+b1 [23.2 kB] Get: 335 http://deb.debian.org/debian unstable/main arm64 libxcb-image0 arm64 0.4.0-2+b1 [22.0 kB] Get: 336 http://deb.debian.org/debian unstable/main arm64 libxcb-keysyms1 arm64 0.4.0-1+b2 [16.0 kB] Get: 337 http://deb.debian.org/debian unstable/main arm64 libxcb-render-util0 arm64 0.3.9-1+b1 [17.5 kB] Get: 338 http://deb.debian.org/debian unstable/main arm64 libxcb-shape0 arm64 1.17.0-1 [105 kB] Get: 339 http://deb.debian.org/debian unstable/main arm64 libxcb-xinerama0 arm64 1.17.0-1 [105 kB] Get: 340 http://deb.debian.org/debian unstable/main arm64 libxcb-xinput0 arm64 1.17.0-1 [129 kB] Get: 341 http://deb.debian.org/debian unstable/main arm64 libxcb-xkb1 arm64 1.17.0-1 [128 kB] Get: 342 http://deb.debian.org/debian unstable/main arm64 xkb-data all 2.41-2 [795 kB] Get: 343 http://deb.debian.org/debian unstable/main arm64 libxkbcommon0 arm64 1.6.0-1+b1 [103 kB] Get: 344 http://deb.debian.org/debian unstable/main arm64 libxkbcommon-x11-0 arm64 1.6.0-1+b1 [15.4 kB] Get: 345 http://deb.debian.org/debian unstable/main arm64 libqt5gui5t64 arm64 5.15.10+dfsg-7.2+b1 [3134 kB] Get: 346 http://deb.debian.org/debian unstable/main arm64 libqt5widgets5t64 arm64 5.15.10+dfsg-7.2+b1 [2263 kB] Get: 347 http://deb.debian.org/debian unstable/main arm64 libqt5opengl5t64 arm64 5.15.10+dfsg-7.2+b1 [142 kB] Get: 348 http://deb.debian.org/debian unstable/main arm64 libqt5test5t64 arm64 5.15.10+dfsg-7.2+b1 [138 kB] Get: 349 http://deb.debian.org/debian unstable/main arm64 libopencv-highgui406t64 arm64 4.6.0+dfsg-13.1+b2 [113 kB] Get: 350 http://deb.debian.org/debian unstable/main arm64 libopenexr-3-1-30 arm64 3.1.5-5.1+b2 [854 kB] Get: 351 http://deb.debian.org/debian unstable/main arm64 libopencv-imgcodecs406t64 arm64 4.6.0+dfsg-13.1+b2 [113 kB] Get: 352 http://deb.debian.org/debian unstable/main arm64 libopencv-ml406t64 arm64 4.6.0+dfsg-13.1+b2 [180 kB] Get: 353 http://deb.debian.org/debian unstable/main arm64 libopencv-objdetect406t64 arm64 4.6.0+dfsg-13.1+b2 [198 kB] Get: 354 http://deb.debian.org/debian unstable/main arm64 libopencv-video406t64 arm64 4.6.0+dfsg-13.1+b2 [156 kB] Get: 355 http://deb.debian.org/debian unstable/main arm64 libtesseract5 arm64 5.3.4-1.1+b1 [1155 kB] Get: 356 http://deb.debian.org/debian unstable/main arm64 libopencv-contrib406t64 arm64 4.6.0+dfsg-13.1+b2 [3470 kB] Get: 357 http://deb.debian.org/debian unstable/main arm64 libswscale7 arm64 7:6.1.1-4+b1 [182 kB] Get: 358 http://deb.debian.org/debian unstable/main arm64 libopencv-videoio406t64 arm64 4.6.0+dfsg-13.1+b2 [193 kB] Get: 359 http://deb.debian.org/debian unstable/main arm64 libpthreadpool0 arm64 0.0~git20210507.1787867-2+b1 [21.4 kB] Get: 360 http://deb.debian.org/debian unstable/main arm64 libpython3.12-stdlib arm64 3.12.3-1 [1889 kB] Get: 361 http://deb.debian.org/debian unstable/main arm64 libsleef3 arm64 3.5.1-3 [406 kB] Get: 362 http://deb.debian.org/debian unstable/main arm64 libuv1t64 arm64 1.48.0-3 [142 kB] Get: 363 http://deb.debian.org/debian unstable/main arm64 libtensorpipe0 arm64 0.0~git20220513.bb1473a-5+b2 [483 kB] Get: 364 http://deb.debian.org/debian unstable/main arm64 libxnnpack0 arm64 0.0~git20221221.51a9875-1 [363 kB] Get: 365 http://deb.debian.org/debian unstable/main arm64 libtorch2.1 arm64 2.1.2+dfsg-4 [39.3 MB] Get: 366 http://deb.debian.org/debian unstable/main arm64 libtorch-test arm64 2.1.2+dfsg-4 [6161 kB] Get: 367 http://deb.debian.org/debian unstable/main arm64 libyaml-0-2 arm64 0.2.5-1+b1 [49.0 kB] Get: 368 http://deb.debian.org/debian unstable/main arm64 python3.12 arm64 3.12.3-1 [659 kB] Get: 369 http://deb.debian.org/debian unstable/main arm64 python3-all arm64 3.11.8-1 [1056 B] Get: 370 http://deb.debian.org/debian unstable/main arm64 python3-six all 1.16.0-6 [16.3 kB] Get: 371 http://deb.debian.org/debian unstable/main arm64 python3-astunparse all 1.6.3-2 [13.8 kB] Get: 372 http://deb.debian.org/debian unstable/main arm64 python3-attr all 23.2.0-2 [65.5 kB] Get: 373 http://deb.debian.org/debian unstable/main arm64 python3-certifi all 2023.11.17-1 [155 kB] Get: 374 http://deb.debian.org/debian unstable/main arm64 python3-chardet all 5.2.0+dfsg-1 [107 kB] Get: 375 http://deb.debian.org/debian unstable/main arm64 python3-charset-normalizer all 3.3.2-1 [51.6 kB] Get: 376 http://deb.debian.org/debian unstable/main arm64 python3-dateutil all 2.9.0-2 [79.4 kB] Get: 377 http://deb.debian.org/debian unstable/main arm64 python3-sortedcontainers all 2.4.0-2 [31.9 kB] Get: 378 http://deb.debian.org/debian unstable/main arm64 python3-hypothesis all 6.100.7-1 [315 kB] Get: 379 http://deb.debian.org/debian unstable/main arm64 python3-expecttest all 0.1.5-1 [7492 B] Get: 380 http://deb.debian.org/debian unstable/main arm64 python3-filelock all 3.14.0-1 [10.9 kB] Get: 381 http://deb.debian.org/debian unstable/main arm64 python3-fsspec all 2024.3.1-1 [115 kB] Get: 382 http://deb.debian.org/debian unstable/main arm64 python3-idna all 3.6-2 [37.0 kB] Get: 383 http://deb.debian.org/debian unstable/main arm64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 384 http://deb.debian.org/debian unstable/main arm64 python3-markupsafe arm64 2.1.5-1 [14.6 kB] Get: 385 http://deb.debian.org/debian unstable/main arm64 python3-jinja2 all 3.1.3-1 [119 kB] Get: 386 http://deb.debian.org/debian unstable/main arm64 python3-mpmath all 1.3.0-1 [419 kB] Get: 387 http://deb.debian.org/debian unstable/main arm64 python3-networkx all 3.2.1-4 [14.2 MB] Get: 388 http://deb.debian.org/debian unstable/main arm64 python3-numpy arm64 1:1.26.4+ds-8 [4219 kB] Get: 389 http://deb.debian.org/debian unstable/main arm64 python3-packaging all 24.0-1 [45.5 kB] Get: 390 http://deb.debian.org/debian unstable/main arm64 python3-pluggy all 1.5.0-1 [26.9 kB] Get: 391 http://deb.debian.org/debian unstable/main arm64 python3-psutil arm64 5.9.8-2 [225 kB] Get: 392 http://deb.debian.org/debian unstable/main arm64 python3-pytest all 8.1.2-1 [246 kB] Get: 393 http://deb.debian.org/debian unstable/main arm64 python3-urllib3 all 1.26.18-2 [116 kB] Get: 394 http://deb.debian.org/debian unstable/main arm64 python3-requests all 2.31.0+dfsg-1 [68.6 kB] Get: 395 http://deb.debian.org/debian unstable/main arm64 python3-sympy all 1.12-7 [3869 kB] Get: 396 http://deb.debian.org/debian unstable/main arm64 python3-typing-extensions all 4.10.0-1 [66.2 kB] Get: 397 http://deb.debian.org/debian unstable/main arm64 python3-yaml arm64 6.0.1-2 [153 kB] Get: 398 http://deb.debian.org/debian unstable/main arm64 python3-torch arm64 2.1.2+dfsg-4 [9932 kB] Fetched 288 MB in 4s (75.1 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19744 files and directories currently installed.) Preparing to unpack .../libpython3.11-minimal_3.11.9-1_arm64.deb ... Unpacking libpython3.11-minimal:arm64 (3.11.9-1) ... Selecting previously unselected package libexpat1:arm64. Preparing to unpack .../libexpat1_2.6.2-1_arm64.deb ... Unpacking libexpat1:arm64 (2.6.2-1) ... Selecting previously unselected package python3.11-minimal. Preparing to unpack .../python3.11-minimal_3.11.9-1_arm64.deb ... Unpacking python3.11-minimal (3.11.9-1) ... Setting up libpython3.11-minimal:arm64 (3.11.9-1) ... Setting up libexpat1:arm64 (2.6.2-1) ... Setting up python3.11-minimal (3.11.9-1) ... Selecting previously unselected package python3-minimal. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20060 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.11.8-1_arm64.deb ... Unpacking python3-minimal (3.11.8-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2024a-4_all.deb ... Unpacking tzdata (2024a-4) ... Selecting previously unselected package readline-common. Preparing to unpack .../4-readline-common_8.2-4_all.deb ... Unpacking readline-common (8.2-4) ... Selecting previously unselected package libreadline8t64:arm64. Preparing to unpack .../5-libreadline8t64_8.2-4_arm64.deb ... Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8 to /lib/aarch64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libhistory.so.8.2 to /lib/aarch64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8 to /lib/aarch64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/aarch64-linux-gnu/libreadline.so.8.2 to /lib/aarch64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:arm64 (8.2-4) ... Selecting previously unselected package libpython3.11-stdlib:arm64. Preparing to unpack .../6-libpython3.11-stdlib_3.11.9-1_arm64.deb ... Unpacking libpython3.11-stdlib:arm64 (3.11.9-1) ... Selecting previously unselected package python3.11. Preparing to unpack .../7-python3.11_3.11.9-1_arm64.deb ... Unpacking python3.11 (3.11.9-1) ... Selecting previously unselected package libpython3-stdlib:arm64. Preparing to unpack .../8-libpython3-stdlib_3.11.8-1_arm64.deb ... Unpacking libpython3-stdlib:arm64 (3.11.8-1) ... Setting up python3-minimal (3.11.8-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 21052 files and directories currently installed.) Preparing to unpack .../000-python3_3.11.8-1_arm64.deb ... Unpacking python3 (3.11.8-1) ... Selecting previously unselected package libpython3.12-minimal:arm64. Preparing to unpack .../001-libpython3.12-minimal_3.12.3-1_arm64.deb ... Unpacking libpython3.12-minimal:arm64 (3.12.3-1) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../002-python3.12-minimal_3.12.3-1_arm64.deb ... Unpacking python3.12-minimal (3.12.3-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../003-sensible-utils_0.0.22_all.deb ... Unpacking sensible-utils (0.0.22) ... Selecting previously unselected package openssl. Preparing to unpack .../004-openssl_3.2.1-3_arm64.deb ... Unpacking openssl (3.2.1-3) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../005-ca-certificates_20240203_all.deb ... Unpacking ca-certificates (20240203) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../006-libmagic-mgc_1%3a5.45-3_arm64.deb ... Unpacking libmagic-mgc (1:5.45-3) ... Selecting previously unselected package libmagic1t64:arm64. Preparing to unpack .../007-libmagic1t64_1%3a5.45-3_arm64.deb ... Unpacking libmagic1t64:arm64 (1:5.45-3) ... Selecting previously unselected package file. Preparing to unpack .../008-file_1%3a5.45-3_arm64.deb ... Unpacking file (1:5.45-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../009-gettext-base_0.21-14+b1_arm64.deb ... Unpacking gettext-base (0.21-14+b1) ... Selecting previously unselected package libuchardet0:arm64. Preparing to unpack .../010-libuchardet0_0.0.8-1+b1_arm64.deb ... Unpacking libuchardet0:arm64 (0.0.8-1+b1) ... Selecting previously unselected package groff-base. Preparing to unpack .../011-groff-base_1.23.0-4_arm64.deb ... Unpacking groff-base (1.23.0-4) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../012-bsdextrautils_2.40-8_arm64.deb ... Unpacking bsdextrautils (2.40-8) ... Selecting previously unselected package libpipeline1:arm64. Preparing to unpack .../013-libpipeline1_1.5.7-2_arm64.deb ... Unpacking libpipeline1:arm64 (1.5.7-2) ... Selecting previously unselected package man-db. Preparing to unpack .../014-man-db_2.12.1-1_arm64.deb ... Unpacking man-db (2.12.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../015-m4_1.4.19-4_arm64.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../016-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../017-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../018-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../019-autopoint_0.21-14_all.deb ... Unpacking autopoint (0.21-14) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../020-libdebhelper-perl_13.15.3_all.deb ... Unpacking libdebhelper-perl (13.15.3) ... Selecting previously unselected package libtool. Preparing to unpack .../021-libtool_2.4.7-7_all.deb ... Unpacking libtool (2.4.7-7) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../022-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../023-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../024-libsub-override-perl_0.10-1_all.deb ... Unpacking libsub-override-perl (0.10-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../025-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../026-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1t64:arm64. Preparing to unpack .../027-libelf1t64_0.191-1+b1_arm64.deb ... Unpacking libelf1t64:arm64 (0.191-1+b1) ... Selecting previously unselected package dwz. Preparing to unpack .../028-dwz_0.15-1+b1_arm64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libicu72:arm64. Preparing to unpack .../029-libicu72_72.1-4+b1_arm64.deb ... Unpacking libicu72:arm64 (72.1-4+b1) ... Selecting previously unselected package libxml2:arm64. Preparing to unpack .../030-libxml2_2.9.14+dfsg-1.3+b3_arm64.deb ... Unpacking libxml2:arm64 (2.9.14+dfsg-1.3+b3) ... Selecting previously unselected package gettext. Preparing to unpack .../031-gettext_0.21-14+b1_arm64.deb ... Unpacking gettext (0.21-14+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../032-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../033-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../034-debhelper_13.15.3_all.deb ... Unpacking debhelper (13.15.3) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../035-python3-pkg-resources_68.1.2-2_all.deb ... Unpacking python3-pkg-resources (68.1.2-2) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../036-python3-lib2to3_3.12.3-1_all.deb ... Unpacking python3-lib2to3 (3.12.3-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../037-python3-distutils_3.12.3-1_all.deb ... Unpacking python3-distutils (3.12.3-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../038-python3-setuptools_68.1.2-2_all.deb ... Unpacking python3-setuptools (68.1.2-2) ... Selecting previously unselected package dh-python. Preparing to unpack .../039-dh-python_6.20240422_all.deb ... Unpacking dh-python (6.20240422) ... Selecting previously unselected package libbrotli1:arm64. Preparing to unpack .../040-libbrotli1_1.1.0-2+b3_arm64.deb ... Unpacking libbrotli1:arm64 (1.1.0-2+b3) ... Selecting previously unselected package libpng16-16t64:arm64. Preparing to unpack .../041-libpng16-16t64_1.6.43-5_arm64.deb ... Unpacking libpng16-16t64:arm64 (1.6.43-5) ... Selecting previously unselected package libfreetype6:arm64. Preparing to unpack .../042-libfreetype6_2.13.2+dfsg-1+b4_arm64.deb ... Unpacking libfreetype6:arm64 (2.13.2+dfsg-1+b4) ... Selecting previously unselected package fonts-dejavu-mono. Preparing to unpack .../043-fonts-dejavu-mono_2.37-8_all.deb ... Unpacking fonts-dejavu-mono (2.37-8) ... Selecting previously unselected package fonts-dejavu-core. Preparing to unpack .../044-fonts-dejavu-core_2.37-8_all.deb ... Unpacking fonts-dejavu-core (2.37-8) ... Selecting previously unselected package fontconfig-config. Preparing to unpack .../045-fontconfig-config_2.15.0-1.1_arm64.deb ... Unpacking fontconfig-config (2.15.0-1.1) ... Selecting previously unselected package libfontconfig1:arm64. Preparing to unpack .../046-libfontconfig1_2.15.0-1.1_arm64.deb ... Unpacking libfontconfig1:arm64 (2.15.0-1.1) ... Selecting previously unselected package fontconfig. Preparing to unpack .../047-fontconfig_2.15.0-1.1_arm64.deb ... Unpacking fontconfig (2.15.0-1.1) ... Selecting previously unselected package gdal-data. Preparing to unpack .../048-gdal-data_3.8.5+dfsg-1_all.deb ... Unpacking gdal-data (3.8.5+dfsg-1) ... Selecting previously unselected package gdal-plugins:arm64. Preparing to unpack .../049-gdal-plugins_3.8.5+dfsg-1_arm64.deb ... Unpacking gdal-plugins:arm64 (3.8.5+dfsg-1) ... Selecting previously unselected package libnl-3-200:arm64. Preparing to unpack .../050-libnl-3-200_3.7.0-0.3_arm64.deb ... Unpacking libnl-3-200:arm64 (3.7.0-0.3) ... Selecting previously unselected package libnl-route-3-200:arm64. Preparing to unpack .../051-libnl-route-3-200_3.7.0-0.3_arm64.deb ... Unpacking libnl-route-3-200:arm64 (3.7.0-0.3) ... Selecting previously unselected package libibverbs1:arm64. Preparing to unpack .../052-libibverbs1_50.0-2+b1_arm64.deb ... Unpacking libibverbs1:arm64 (50.0-2+b1) ... Selecting previously unselected package ibverbs-providers:arm64. Preparing to unpack .../053-ibverbs-providers_50.0-2+b1_arm64.deb ... Unpacking ibverbs-providers:arm64 (50.0-2+b1) ... Selecting previously unselected package iso-codes. Preparing to unpack .../054-iso-codes_4.16.0-1_all.deb ... Unpacking iso-codes (4.16.0-1) ... Selecting previously unselected package libabsl20230802:arm64. Preparing to unpack .../055-libabsl20230802_20230802.1-4_arm64.deb ... Unpacking libabsl20230802:arm64 (20230802.1-4) ... Selecting previously unselected package libaec0:arm64. Preparing to unpack .../056-libaec0_1.1.3-1_arm64.deb ... Unpacking libaec0:arm64 (1.1.3-1) ... Selecting previously unselected package libbsd0:arm64. Preparing to unpack .../057-libbsd0_0.12.2-1_arm64.deb ... Unpacking libbsd0:arm64 (0.12.2-1) ... Selecting previously unselected package libedit2:arm64. Preparing to unpack .../058-libedit2_3.1-20230828-1+b1_arm64.deb ... Unpacking libedit2:arm64 (3.1-20230828-1+b1) ... Selecting previously unselected package libz3-4:arm64. Preparing to unpack .../059-libz3-4_4.8.12-3.1+b2_arm64.deb ... Unpacking libz3-4:arm64 (4.8.12-3.1+b2) ... Selecting previously unselected package libllvm17t64:arm64. Preparing to unpack .../060-libllvm17t64_1%3a17.0.6-12_arm64.deb ... Unpacking libllvm17t64:arm64 (1:17.0.6-12) ... Selecting previously unselected package libamd-comgr2:arm64. Preparing to unpack .../061-libamd-comgr2_6.0+git20231212.4510c28+dfsg-3+b1_arm64.deb ... Unpacking libamd-comgr2:arm64 (6.0+git20231212.4510c28+dfsg-3+b1) ... Selecting previously unselected package libdrm-common. Preparing to unpack .../062-libdrm-common_2.4.120-2_all.deb ... Unpacking libdrm-common (2.4.120-2) ... Selecting previously unselected package libdrm2:arm64. Preparing to unpack .../063-libdrm2_2.4.120-2_arm64.deb ... Unpacking libdrm2:arm64 (2.4.120-2) ... Selecting previously unselected package libdrm-amdgpu1:arm64. Preparing to unpack .../064-libdrm-amdgpu1_2.4.120-2_arm64.deb ... Unpacking libdrm-amdgpu1:arm64 (2.4.120-2) ... Selecting previously unselected package libnuma1:arm64. Preparing to unpack .../065-libnuma1_2.0.18-1_arm64.deb ... Unpacking libnuma1:arm64 (2.0.18-1) ... Selecting previously unselected package libhsakmt1:arm64. Preparing to unpack .../066-libhsakmt1_5.7.0-1_arm64.deb ... Unpacking libhsakmt1:arm64 (5.7.0-1) ... Selecting previously unselected package libhsa-runtime64-1. Preparing to unpack .../067-libhsa-runtime64-1_5.7.1-2_arm64.deb ... Unpacking libhsa-runtime64-1 (5.7.1-2) ... Selecting previously unselected package libamdhip64-5. Preparing to unpack .../068-libamdhip64-5_5.7.1-3_arm64.deb ... Unpacking libamdhip64-5 (5.7.1-3) ... Selecting previously unselected package libaom3:arm64. Preparing to unpack .../069-libaom3_3.8.2-2_arm64.deb ... Unpacking libaom3:arm64 (3.8.2-2) ... Selecting previously unselected package libarchive13t64:arm64. Preparing to unpack .../070-libarchive13t64_3.7.2-2_arm64.deb ... Unpacking libarchive13t64:arm64 (3.7.2-2) ... Selecting previously unselected package libblas3:arm64. Preparing to unpack .../071-libblas3_3.12.0-3_arm64.deb ... Unpacking libblas3:arm64 (3.12.0-3) ... Selecting previously unselected package libgfortran5:arm64. Preparing to unpack .../072-libgfortran5_14-20240429-1_arm64.deb ... Unpacking libgfortran5:arm64 (14-20240429-1) ... Selecting previously unselected package liblapack3:arm64. Preparing to unpack .../073-liblapack3_3.12.0-3_arm64.deb ... Unpacking liblapack3:arm64 (3.12.0-3) ... Selecting previously unselected package libarpack2t64:arm64. Preparing to unpack .../074-libarpack2t64_3.9.1-1.1+b1_arm64.deb ... Unpacking libarpack2t64:arm64 (3.9.1-1.1+b1) ... Selecting previously unselected package libsuperlu6:arm64. Preparing to unpack .../075-libsuperlu6_6.0.1+dfsg1-1+b1_arm64.deb ... Unpacking libsuperlu6:arm64 (6.0.1+dfsg1-1+b1) ... Selecting previously unselected package libarmadillo12. Preparing to unpack .../076-libarmadillo12_1%3a12.8.2+dfsg-1_arm64.deb ... Unpacking libarmadillo12 (1:12.8.2+dfsg-1) ... Selecting previously unselected package libva2:arm64. Preparing to unpack .../077-libva2_2.21.0-1_arm64.deb ... Unpacking libva2:arm64 (2.21.0-1) ... Selecting previously unselected package libva-drm2:arm64. Preparing to unpack .../078-libva-drm2_2.21.0-1_arm64.deb ... Unpacking libva-drm2:arm64 (2.21.0-1) ... Selecting previously unselected package libxau6:arm64. Preparing to unpack .../079-libxau6_1%3a1.0.9-1+b1_arm64.deb ... Unpacking libxau6:arm64 (1:1.0.9-1+b1) ... Selecting previously unselected package libxdmcp6:arm64. Preparing to unpack .../080-libxdmcp6_1%3a1.1.2-3+b1_arm64.deb ... Unpacking libxdmcp6:arm64 (1:1.1.2-3+b1) ... Selecting previously unselected package libxcb1:arm64. Preparing to unpack .../081-libxcb1_1.17.0-1_arm64.deb ... Unpacking libxcb1:arm64 (1.17.0-1) ... Selecting previously unselected package libx11-data. Preparing to unpack .../082-libx11-data_2%3a1.8.7-1_all.deb ... Unpacking libx11-data (2:1.8.7-1) ... Selecting previously unselected package libx11-6:arm64. Preparing to unpack .../083-libx11-6_2%3a1.8.7-1+b1_arm64.deb ... Unpacking libx11-6:arm64 (2:1.8.7-1+b1) ... Selecting previously unselected package libx11-xcb1:arm64. Preparing to unpack .../084-libx11-xcb1_2%3a1.8.7-1+b1_arm64.deb ... Unpacking libx11-xcb1:arm64 (2:1.8.7-1+b1) ... Selecting previously unselected package libxcb-dri3-0:arm64. Preparing to unpack .../085-libxcb-dri3-0_1.17.0-1_arm64.deb ... Unpacking libxcb-dri3-0:arm64 (1.17.0-1) ... Selecting previously unselected package libxext6:arm64. Preparing to unpack .../086-libxext6_2%3a1.3.4-1+b1_arm64.deb ... Unpacking libxext6:arm64 (2:1.3.4-1+b1) ... Selecting previously unselected package libxfixes3:arm64. Preparing to unpack .../087-libxfixes3_1%3a6.0.0-2+b1_arm64.deb ... Unpacking libxfixes3:arm64 (1:6.0.0-2+b1) ... Selecting previously unselected package libva-x11-2:arm64. Preparing to unpack .../088-libva-x11-2_2.21.0-1_arm64.deb ... Unpacking libva-x11-2:arm64 (2.21.0-1) ... Selecting previously unselected package libvdpau1:arm64. Preparing to unpack .../089-libvdpau1_1.5-2+b1_arm64.deb ... Unpacking libvdpau1:arm64 (1.5-2+b1) ... Selecting previously unselected package ocl-icd-libopencl1:arm64. Preparing to unpack .../090-ocl-icd-libopencl1_2.3.2-1+b1_arm64.deb ... Unpacking ocl-icd-libopencl1:arm64 (2.3.2-1+b1) ... Selecting previously unselected package libavutil58:arm64. Preparing to unpack .../091-libavutil58_7%3a6.1.1-4+b1_arm64.deb ... Unpacking libavutil58:arm64 (7:6.1.1-4+b1) ... Selecting previously unselected package libpixman-1-0:arm64. Preparing to unpack .../092-libpixman-1-0_0.42.2-1+b1_arm64.deb ... Unpacking libpixman-1-0:arm64 (0.42.2-1+b1) ... Selecting previously unselected package libxcb-render0:arm64. Preparing to unpack .../093-libxcb-render0_1.17.0-1_arm64.deb ... Unpacking libxcb-render0:arm64 (1.17.0-1) ... Selecting previously unselected package libxcb-shm0:arm64. Preparing to unpack .../094-libxcb-shm0_1.17.0-1_arm64.deb ... Unpacking libxcb-shm0:arm64 (1.17.0-1) ... Selecting previously unselected package libxrender1:arm64. Preparing to unpack .../095-libxrender1_1%3a0.9.10-1.1+b1_arm64.deb ... Unpacking libxrender1:arm64 (1:0.9.10-1.1+b1) ... Selecting previously unselected package libcairo2:arm64. Preparing to unpack .../096-libcairo2_1.18.0-3+b1_arm64.deb ... Unpacking libcairo2:arm64 (1.18.0-3+b1) ... Selecting previously unselected package libcodec2-1.2:arm64. Preparing to unpack .../097-libcodec2-1.2_1.2.0-2+b1_arm64.deb ... Unpacking libcodec2-1.2:arm64 (1.2.0-2+b1) ... Selecting previously unselected package libdav1d7:arm64. Preparing to unpack .../098-libdav1d7_1.4.1-1_arm64.deb ... Unpacking libdav1d7:arm64 (1.4.1-1) ... Selecting previously unselected package libglib2.0-0t64:arm64. Preparing to unpack .../099-libglib2.0-0t64_2.80.2-1_arm64.deb ... Unpacking libglib2.0-0t64:arm64 (2.80.2-1) ... Selecting previously unselected package libgsm1:arm64. Preparing to unpack .../100-libgsm1_1.0.22-1+b1_arm64.deb ... Unpacking libgsm1:arm64 (1.0.22-1+b1) ... Selecting previously unselected package libhwy1t64:arm64. Preparing to unpack .../101-libhwy1t64_1.0.7-8.1_arm64.deb ... Unpacking libhwy1t64:arm64 (1.0.7-8.1) ... Selecting previously unselected package liblcms2-2:arm64. Preparing to unpack .../102-liblcms2-2_2.14-2+b1_arm64.deb ... Unpacking liblcms2-2:arm64 (2.14-2+b1) ... Selecting previously unselected package libjxl0.7:arm64. Preparing to unpack .../103-libjxl0.7_0.7.0-10.2+b3_arm64.deb ... Unpacking libjxl0.7:arm64 (0.7.0-10.2+b3) ... Selecting previously unselected package libmp3lame0:arm64. Preparing to unpack .../104-libmp3lame0_3.100-6+b2_arm64.deb ... Unpacking libmp3lame0:arm64 (3.100-6+b2) ... Selecting previously unselected package libopenjp2-7:arm64. Preparing to unpack .../105-libopenjp2-7_2.5.0-2+b3_arm64.deb ... Unpacking libopenjp2-7:arm64 (2.5.0-2+b3) ... Selecting previously unselected package libopus0:arm64. Preparing to unpack .../106-libopus0_1.4-1+b1_arm64.deb ... Unpacking libopus0:arm64 (1.4-1+b1) ... Selecting previously unselected package librav1e0:arm64. Preparing to unpack .../107-librav1e0_0.7.1-2_arm64.deb ... Unpacking librav1e0:arm64 (0.7.1-2) ... Selecting previously unselected package libcairo-gobject2:arm64. Preparing to unpack .../108-libcairo-gobject2_1.18.0-3+b1_arm64.deb ... Unpacking libcairo-gobject2:arm64 (1.18.0-3+b1) ... Selecting previously unselected package libgdk-pixbuf2.0-common. Preparing to unpack .../109-libgdk-pixbuf2.0-common_2.42.10+dfsg-3_all.deb ... Unpacking libgdk-pixbuf2.0-common (2.42.10+dfsg-3) ... Selecting previously unselected package shared-mime-info. Preparing to unpack .../110-shared-mime-info_2.4-4_arm64.deb ... Unpacking shared-mime-info (2.4-4) ... Selecting previously unselected package libjpeg62-turbo:arm64. Preparing to unpack .../111-libjpeg62-turbo_1%3a2.1.5-3_arm64.deb ... Unpacking libjpeg62-turbo:arm64 (1:2.1.5-3) ... Selecting previously unselected package libdeflate0:arm64. Preparing to unpack .../112-libdeflate0_1.20-1_arm64.deb ... Unpacking libdeflate0:arm64 (1.20-1) ... Selecting previously unselected package libjbig0:arm64. Preparing to unpack .../113-libjbig0_2.1-6.1+b1_arm64.deb ... Unpacking libjbig0:arm64 (2.1-6.1+b1) ... Selecting previously unselected package liblerc4:arm64. Preparing to unpack .../114-liblerc4_4.0.0+ds-4+b1_arm64.deb ... Unpacking liblerc4:arm64 (4.0.0+ds-4+b1) ... Selecting previously unselected package libsharpyuv0:arm64. Preparing to unpack .../115-libsharpyuv0_1.4.0-0.1_arm64.deb ... Unpacking libsharpyuv0:arm64 (1.4.0-0.1) ... Selecting previously unselected package libwebp7:arm64. Preparing to unpack .../116-libwebp7_1.4.0-0.1_arm64.deb ... Unpacking libwebp7:arm64 (1.4.0-0.1) ... Selecting previously unselected package libtiff6:arm64. Preparing to unpack .../117-libtiff6_4.5.1+git230720-4_arm64.deb ... Unpacking libtiff6:arm64 (4.5.1+git230720-4) ... Selecting previously unselected package libgdk-pixbuf-2.0-0:arm64. Preparing to unpack .../118-libgdk-pixbuf-2.0-0_2.42.10+dfsg-3+b3_arm64.deb ... Unpacking libgdk-pixbuf-2.0-0:arm64 (2.42.10+dfsg-3+b3) ... Selecting previously unselected package libfribidi0:arm64. Preparing to unpack .../119-libfribidi0_1.0.13-3+b1_arm64.deb ... Unpacking libfribidi0:arm64 (1.0.13-3+b1) ... Selecting previously unselected package libgraphite2-3:arm64. Preparing to unpack .../120-libgraphite2-3_1.3.14-2_arm64.deb ... Unpacking libgraphite2-3:arm64 (1.3.14-2) ... Selecting previously unselected package libharfbuzz0b:arm64. Preparing to unpack .../121-libharfbuzz0b_8.3.0-2+b1_arm64.deb ... Unpacking libharfbuzz0b:arm64 (8.3.0-2+b1) ... Selecting previously unselected package libthai-data. Preparing to unpack .../122-libthai-data_0.1.29-2_all.deb ... Unpacking libthai-data (0.1.29-2) ... Selecting previously unselected package libdatrie1:arm64. Preparing to unpack .../123-libdatrie1_0.2.13-3_arm64.deb ... Unpacking libdatrie1:arm64 (0.2.13-3) ... Selecting previously unselected package libthai0:arm64. Preparing to unpack .../124-libthai0_0.1.29-2_arm64.deb ... Unpacking libthai0:arm64 (0.1.29-2) ... Selecting previously unselected package libpango-1.0-0:arm64. Preparing to unpack .../125-libpango-1.0-0_1.52.2+ds-1_arm64.deb ... Unpacking libpango-1.0-0:arm64 (1.52.2+ds-1) ... Selecting previously unselected package libpangoft2-1.0-0:arm64. Preparing to unpack .../126-libpangoft2-1.0-0_1.52.2+ds-1_arm64.deb ... Unpacking libpangoft2-1.0-0:arm64 (1.52.2+ds-1) ... Selecting previously unselected package libpangocairo-1.0-0:arm64. Preparing to unpack .../127-libpangocairo-1.0-0_1.52.2+ds-1_arm64.deb ... Unpacking libpangocairo-1.0-0:arm64 (1.52.2+ds-1) ... Selecting previously unselected package librsvg2-2:arm64. Preparing to unpack .../128-librsvg2-2_2.58.0+dfsg-1_arm64.deb ... Unpacking librsvg2-2:arm64 (2.58.0+dfsg-1) ... Selecting previously unselected package libshine3:arm64. Preparing to unpack .../129-libshine3_3.1.1-2+b1_arm64.deb ... Unpacking libshine3:arm64 (3.1.1-2+b1) ... Selecting previously unselected package libsnappy1v5:arm64. Preparing to unpack .../130-libsnappy1v5_1.2.0-2_arm64.deb ... Unpacking libsnappy1v5:arm64 (1.2.0-2) ... Selecting previously unselected package libspeex1:arm64. Preparing to unpack .../131-libspeex1_1.2.1-2+b1_arm64.deb ... Unpacking libspeex1:arm64 (1.2.1-2+b1) ... Selecting previously unselected package libsvtav1enc1d1:arm64. Preparing to unpack .../132-libsvtav1enc1d1_1.7.0+dfsg-2+b1_arm64.deb ... Unpacking libsvtav1enc1d1:arm64 (1.7.0+dfsg-2+b1) ... Selecting previously unselected package libsoxr0:arm64. Preparing to unpack .../133-libsoxr0_0.1.3-4+b1_arm64.deb ... Unpacking libsoxr0:arm64 (0.1.3-4+b1) ... Selecting previously unselected package libswresample4:arm64. Preparing to unpack .../134-libswresample4_7%3a6.1.1-4+b1_arm64.deb ... Unpacking libswresample4:arm64 (7:6.1.1-4+b1) ... Selecting previously unselected package libogg0:arm64. Preparing to unpack .../135-libogg0_1.3.5-3+b1_arm64.deb ... Unpacking libogg0:arm64 (1.3.5-3+b1) ... Selecting previously unselected package libtheora0:arm64. Preparing to unpack .../136-libtheora0_1.1.1+dfsg.1-16.1+b2_arm64.deb ... Unpacking libtheora0:arm64 (1.1.1+dfsg.1-16.1+b2) ... Selecting previously unselected package libtwolame0:arm64. Preparing to unpack .../137-libtwolame0_0.4.0-2+b1_arm64.deb ... Unpacking libtwolame0:arm64 (0.4.0-2+b1) ... Selecting previously unselected package libvorbis0a:arm64. Preparing to unpack .../138-libvorbis0a_1.3.7-2_arm64.deb ... Unpacking libvorbis0a:arm64 (1.3.7-2) ... Selecting previously unselected package libvorbisenc2:arm64. Preparing to unpack .../139-libvorbisenc2_1.3.7-2_arm64.deb ... Unpacking libvorbisenc2:arm64 (1.3.7-2) ... Selecting previously unselected package libvpx9:arm64. Preparing to unpack .../140-libvpx9_1.14.0-2_arm64.deb ... Unpacking libvpx9:arm64 (1.14.0-2) ... Selecting previously unselected package libwebpmux3:arm64. Preparing to unpack .../141-libwebpmux3_1.4.0-0.1_arm64.deb ... Unpacking libwebpmux3:arm64 (1.4.0-0.1) ... Selecting previously unselected package libx264-164:arm64. Preparing to unpack .../142-libx264-164_2%3a0.164.3108+git31e19f9-1_arm64.deb ... Unpacking libx264-164:arm64 (2:0.164.3108+git31e19f9-1) ... Selecting previously unselected package libx265-199:arm64. Preparing to unpack .../143-libx265-199_3.5-2+b1_arm64.deb ... Unpacking libx265-199:arm64 (3.5-2+b1) ... Selecting previously unselected package libxvidcore4:arm64. Preparing to unpack .../144-libxvidcore4_2%3a1.3.7-1+b1_arm64.deb ... Unpacking libxvidcore4:arm64 (2:1.3.7-1+b1) ... Selecting previously unselected package libzvbi-common. Preparing to unpack .../145-libzvbi-common_0.2.42-2_all.deb ... Unpacking libzvbi-common (0.2.42-2) ... Selecting previously unselected package libzvbi0t64:arm64. Preparing to unpack .../146-libzvbi0t64_0.2.42-2_arm64.deb ... Unpacking libzvbi0t64:arm64 (0.2.42-2) ... Selecting previously unselected package libavcodec60:arm64. Preparing to unpack .../147-libavcodec60_7%3a6.1.1-4+b1_arm64.deb ... Unpacking libavcodec60:arm64 (7:6.1.1-4+b1) ... Selecting previously unselected package libudfread0:arm64. Preparing to unpack .../148-libudfread0_1.1.2-1+b1_arm64.deb ... Unpacking libudfread0:arm64 (1.1.2-1+b1) ... Selecting previously unselected package libbluray2:arm64. Preparing to unpack .../149-libbluray2_1%3a1.3.4-1+b1_arm64.deb ... Unpacking libbluray2:arm64 (1:1.3.4-1+b1) ... Selecting previously unselected package libchromaprint1:arm64. Preparing to unpack .../150-libchromaprint1_1.5.1-5_arm64.deb ... Unpacking libchromaprint1:arm64 (1.5.1-5) ... Selecting previously unselected package libgme0:arm64. Preparing to unpack .../151-libgme0_0.6.3-7+b1_arm64.deb ... Unpacking libgme0:arm64 (0.6.3-7+b1) ... Selecting previously unselected package libmpg123-0t64:arm64. Preparing to unpack .../152-libmpg123-0t64_1.32.6-3_arm64.deb ... Unpacking libmpg123-0t64:arm64 (1.32.6-3) ... Selecting previously unselected package libvorbisfile3:arm64. Preparing to unpack .../153-libvorbisfile3_1.3.7-2_arm64.deb ... Unpacking libvorbisfile3:arm64 (1.3.7-2) ... Selecting previously unselected package libopenmpt0t64:arm64. Preparing to unpack .../154-libopenmpt0t64_0.7.6-1+b1_arm64.deb ... Unpacking libopenmpt0t64:arm64 (0.7.6-1+b1) ... Selecting previously unselected package librabbitmq4:arm64. Preparing to unpack .../155-librabbitmq4_0.11.0-1+b2_arm64.deb ... Unpacking librabbitmq4:arm64 (0.11.0-1+b2) ... Selecting previously unselected package libcjson1:arm64. Preparing to unpack .../156-libcjson1_1.7.17-2_arm64.deb ... Unpacking libcjson1:arm64 (1.7.17-2) ... Selecting previously unselected package libmbedcrypto7t64:arm64. Preparing to unpack .../157-libmbedcrypto7t64_2.28.8-1_arm64.deb ... Unpacking libmbedcrypto7t64:arm64 (2.28.8-1) ... Selecting previously unselected package librist4:arm64. Preparing to unpack .../158-librist4_0.2.10+dfsg-2_arm64.deb ... Unpacking librist4:arm64 (0.2.10+dfsg-2) ... Selecting previously unselected package libsrt1.5-gnutls:arm64. Preparing to unpack .../159-libsrt1.5-gnutls_1.5.3-1+b2_arm64.deb ... Unpacking libsrt1.5-gnutls:arm64 (1.5.3-1+b2) ... Selecting previously unselected package libkrb5support0:arm64. Preparing to unpack .../160-libkrb5support0_1.20.1-6+b1_arm64.deb ... Unpacking libkrb5support0:arm64 (1.20.1-6+b1) ... Selecting previously unselected package libcom-err2:arm64. Preparing to unpack .../161-libcom-err2_1.47.1~rc2-1_arm64.deb ... Unpacking libcom-err2:arm64 (1.47.1~rc2-1) ... Selecting previously unselected package libk5crypto3:arm64. Preparing to unpack .../162-libk5crypto3_1.20.1-6+b1_arm64.deb ... Unpacking libk5crypto3:arm64 (1.20.1-6+b1) ... Selecting previously unselected package libkeyutils1:arm64. Preparing to unpack .../163-libkeyutils1_1.6.3-3_arm64.deb ... Unpacking libkeyutils1:arm64 (1.6.3-3) ... Selecting previously unselected package libkrb5-3:arm64. Preparing to unpack .../164-libkrb5-3_1.20.1-6+b1_arm64.deb ... Unpacking libkrb5-3:arm64 (1.20.1-6+b1) ... Selecting previously unselected package libgssapi-krb5-2:arm64. Preparing to unpack .../165-libgssapi-krb5-2_1.20.1-6+b1_arm64.deb ... Unpacking libgssapi-krb5-2:arm64 (1.20.1-6+b1) ... Selecting previously unselected package libssh-gcrypt-4:arm64. Preparing to unpack .../166-libssh-gcrypt-4_0.10.6-2+b1_arm64.deb ... Unpacking libssh-gcrypt-4:arm64 (0.10.6-2+b1) ... Selecting previously unselected package libnorm1t64:arm64. Preparing to unpack .../167-libnorm1t64_1.5.9+dfsg-3.1_arm64.deb ... Unpacking libnorm1t64:arm64 (1.5.9+dfsg-3.1) ... Selecting previously unselected package libpgm-5.3-0t64:arm64. Preparing to unpack .../168-libpgm-5.3-0t64_5.3.128~dfsg-2.1_arm64.deb ... Unpacking libpgm-5.3-0t64:arm64 (5.3.128~dfsg-2.1) ... Selecting previously unselected package libsodium23:arm64. Preparing to unpack .../169-libsodium23_1.0.18-1+b1_arm64.deb ... Unpacking libsodium23:arm64 (1.0.18-1+b1) ... Selecting previously unselected package libzmq5:arm64. Preparing to unpack .../170-libzmq5_4.3.5-1+b2_arm64.deb ... Unpacking libzmq5:arm64 (4.3.5-1+b2) ... Selecting previously unselected package libavformat60:arm64. Preparing to unpack .../171-libavformat60_7%3a6.1.1-4+b1_arm64.deb ... Unpacking libavformat60:arm64 (7:6.1.1-4+b1) ... Selecting previously unselected package libgav1-1:arm64. Preparing to unpack .../172-libgav1-1_0.19.0-2+b1_arm64.deb ... Unpacking libgav1-1:arm64 (0.19.0-2+b1) ... Selecting previously unselected package libyuv0:arm64. Preparing to unpack .../173-libyuv0_0.0~git202401110.af6ac82-1_arm64.deb ... Unpacking libyuv0:arm64 (0.0~git202401110.af6ac82-1) ... Selecting previously unselected package libavif16:arm64. Preparing to unpack .../174-libavif16_1.0.4-3_arm64.deb ... Unpacking libavif16:arm64 (1.0.4-3) ... Selecting previously unselected package libbenchmark1.8.3:arm64. Preparing to unpack .../175-libbenchmark1.8.3_1.8.3-3_arm64.deb ... Unpacking libbenchmark1.8.3:arm64 (1.8.3-3) ... Selecting previously unselected package libblosc1:arm64. Preparing to unpack .../176-libblosc1_1.21.5+ds-1+b1_arm64.deb ... Unpacking libblosc1:arm64 (1.21.5+ds-1+b1) ... Selecting previously unselected package libcap2-bin. Preparing to unpack .../177-libcap2-bin_1%3a2.66-5_arm64.deb ... Unpacking libcap2-bin (1:2.66-5) ... Selecting previously unselected package libsasl2-modules-db:arm64. Preparing to unpack .../178-libsasl2-modules-db_2.1.28+dfsg1-6_arm64.deb ... Unpacking libsasl2-modules-db:arm64 (2.1.28+dfsg1-6) ... Selecting previously unselected package libsasl2-2:arm64. Preparing to unpack .../179-libsasl2-2_2.1.28+dfsg1-6_arm64.deb ... Unpacking libsasl2-2:arm64 (2.1.28+dfsg1-6) ... Selecting previously unselected package libldap-2.5-0:arm64. Preparing to unpack .../180-libldap-2.5-0_2.5.17+dfsg-1_arm64.deb ... Unpacking libldap-2.5-0:arm64 (2.5.17+dfsg-1) ... Selecting previously unselected package libnghttp2-14:arm64. Preparing to unpack .../181-libnghttp2-14_1.61.0-1+b1_arm64.deb ... Unpacking libnghttp2-14:arm64 (1.61.0-1+b1) ... Selecting previously unselected package libpsl5t64:arm64. Preparing to unpack .../182-libpsl5t64_0.21.2-1.1_arm64.deb ... Unpacking libpsl5t64:arm64 (0.21.2-1.1) ... Selecting previously unselected package librtmp1:arm64. Preparing to unpack .../183-librtmp1_2.4+20151223.gitfa8646d.1-2+b4_arm64.deb ... Unpacking librtmp1:arm64 (2.4+20151223.gitfa8646d.1-2+b4) ... Selecting previously unselected package libssh2-1t64:arm64. Preparing to unpack .../184-libssh2-1t64_1.11.0-4.1+b2_arm64.deb ... Unpacking libssh2-1t64:arm64 (1.11.0-4.1+b2) ... Selecting previously unselected package libcurl3t64-gnutls:arm64. Preparing to unpack .../185-libcurl3t64-gnutls_8.7.1-5_arm64.deb ... Unpacking libcurl3t64-gnutls:arm64 (8.7.1-5) ... Selecting previously unselected package libcfitsio10t64:arm64. Preparing to unpack .../186-libcfitsio10t64_4.3.1-1.1+b1_arm64.deb ... Unpacking libcfitsio10t64:arm64 (4.3.1-1.1+b1) ... Selecting previously unselected package libcharls2:arm64. Preparing to unpack .../187-libcharls2_2.4.2-2+b1_arm64.deb ... Unpacking libcharls2:arm64 (2.4.2-2+b1) ... Selecting previously unselected package libcpuinfo0:arm64. Preparing to unpack .../188-libcpuinfo0_0.0~git20230113.6481e8b-2_arm64.deb ... Unpacking libcpuinfo0:arm64 (0.0~git20230113.6481e8b-2) ... Selecting previously unselected package libcurl4t64:arm64. Preparing to unpack .../189-libcurl4t64_8.7.1-5_arm64.deb ... Unpacking libcurl4t64:arm64 (8.7.1-5) ... Selecting previously unselected package libdbus-1-3:arm64. Preparing to unpack .../190-libdbus-1-3_1.14.10-4+b1_arm64.deb ... Unpacking libdbus-1-3:arm64 (1.14.10-4+b1) ... Selecting previously unselected package libraw1394-11:arm64. Preparing to unpack .../191-libraw1394-11_2.1.2-2+b1_arm64.deb ... Unpacking libraw1394-11:arm64 (2.1.2-2+b1) ... Selecting previously unselected package libusb-1.0-0:arm64. Preparing to unpack .../192-libusb-1.0-0_2%3a1.0.27-1_arm64.deb ... Unpacking libusb-1.0-0:arm64 (2:1.0.27-1) ... Selecting previously unselected package libdc1394-25:arm64. Preparing to unpack .../193-libdc1394-25_2.2.6-4+b1_arm64.deb ... Unpacking libdc1394-25:arm64 (2.2.6-4+b1) ... Selecting previously unselected package libde265-0:arm64. Preparing to unpack .../194-libde265-0_1.0.15-1+b1_arm64.deb ... Unpacking libde265-0:arm64 (1.0.15-1+b1) ... Selecting previously unselected package libdnnl3:arm64. Preparing to unpack .../195-libdnnl3_3.1.1-2_arm64.deb ... Unpacking libdnnl3:arm64 (3.1.1-2) ... Selecting previously unselected package libdouble-conversion3:arm64. Preparing to unpack .../196-libdouble-conversion3_3.3.0-1+b1_arm64.deb ... Unpacking libdouble-conversion3:arm64 (3.3.0-1+b1) ... Selecting previously unselected package libdrm-nouveau2:arm64. Preparing to unpack .../197-libdrm-nouveau2_2.4.120-2_arm64.deb ... Unpacking libdrm-nouveau2:arm64 (2.4.120-2) ... Selecting previously unselected package libdrm-radeon1:arm64. Preparing to unpack .../198-libdrm-radeon1_2.4.120-2_arm64.deb ... Unpacking libdrm-radeon1:arm64 (2.4.120-2) ... Selecting previously unselected package libdw1t64:arm64. Preparing to unpack .../199-libdw1t64_0.191-1+b1_arm64.deb ... Unpacking libdw1t64:arm64 (0.191-1+b1) ... Selecting previously unselected package libwayland-server0:arm64. Preparing to unpack .../200-libwayland-server0_1.22.0-2.1+b1_arm64.deb ... Unpacking libwayland-server0:arm64 (1.22.0-2.1+b1) ... Selecting previously unselected package libxcb-randr0:arm64. Preparing to unpack .../201-libxcb-randr0_1.17.0-1_arm64.deb ... Unpacking libxcb-randr0:arm64 (1.17.0-1) ... Selecting previously unselected package libgbm1:arm64. Preparing to unpack .../202-libgbm1_24.0.7-1_arm64.deb ... Unpacking libgbm1:arm64 (24.0.7-1) ... Selecting previously unselected package libglapi-mesa:arm64. Preparing to unpack .../203-libglapi-mesa_24.0.7-1_arm64.deb ... Unpacking libglapi-mesa:arm64 (24.0.7-1) ... Selecting previously unselected package libwayland-client0:arm64. Preparing to unpack .../204-libwayland-client0_1.22.0-2.1+b1_arm64.deb ... Unpacking libwayland-client0:arm64 (1.22.0-2.1+b1) ... Selecting previously unselected package libxcb-dri2-0:arm64. Preparing to unpack .../205-libxcb-dri2-0_1.17.0-1_arm64.deb ... Unpacking libxcb-dri2-0:arm64 (1.17.0-1) ... Selecting previously unselected package libxcb-present0:arm64. Preparing to unpack .../206-libxcb-present0_1.17.0-1_arm64.deb ... Unpacking libxcb-present0:arm64 (1.17.0-1) ... Selecting previously unselected package libxcb-sync1:arm64. Preparing to unpack .../207-libxcb-sync1_1.17.0-1_arm64.deb ... Unpacking libxcb-sync1:arm64 (1.17.0-1) ... Selecting previously unselected package libxcb-xfixes0:arm64. Preparing to unpack .../208-libxcb-xfixes0_1.17.0-1_arm64.deb ... Unpacking libxcb-xfixes0:arm64 (1.17.0-1) ... Selecting previously unselected package libxshmfence1:arm64. Preparing to unpack .../209-libxshmfence1_1.3-1+b1_arm64.deb ... Unpacking libxshmfence1:arm64 (1.3-1+b1) ... Selecting previously unselected package libegl-mesa0:arm64. Preparing to unpack .../210-libegl-mesa0_24.0.7-1_arm64.deb ... Unpacking libegl-mesa0:arm64 (24.0.7-1) ... Selecting previously unselected package libevdev2:arm64. Preparing to unpack .../211-libevdev2_1.13.1+dfsg-1+b1_arm64.deb ... Unpacking libevdev2:arm64 (1.13.1+dfsg-1+b1) ... Selecting previously unselected package libevent-core-2.1-7t64:arm64. Preparing to unpack .../212-libevent-core-2.1-7t64_2.1.12-stable-8.1+b3_arm64.deb ... Unpacking libevent-core-2.1-7t64:arm64 (2.1.12-stable-8.1+b3) ... Selecting previously unselected package libevent-pthreads-2.1-7t64:arm64. Preparing to unpack .../213-libevent-pthreads-2.1-7t64_2.1.12-stable-8.1+b3_arm64.deb ... Unpacking libevent-pthreads-2.1-7t64:arm64 (2.1.12-stable-8.1+b3) ... Selecting previously unselected package libexif12:arm64. Preparing to unpack .../214-libexif12_0.6.24-1+b1_arm64.deb ... Unpacking libexif12:arm64 (0.6.24-1+b1) ... Selecting previously unselected package librdmacm1t64:arm64. Preparing to unpack .../215-librdmacm1t64_50.0-2+b1_arm64.deb ... Unpacking librdmacm1t64:arm64 (50.0-2+b1) ... Selecting previously unselected package libfabric1:arm64. Preparing to unpack .../216-libfabric1_1.17.0-3+b1_arm64.deb ... Unpacking libfabric1:arm64 (1.17.0-3+b1) ... Selecting previously unselected package libfmt9:arm64. Preparing to unpack .../217-libfmt9_9.1.0+ds1-2_arm64.deb ... Unpacking libfmt9:arm64 (9.1.0+ds1-2) ... Selecting previously unselected package libminizip1t64:arm64. Preparing to unpack .../218-libminizip1t64_1%3a1.3.dfsg+really1.3.1-1_arm64.deb ... Unpacking libminizip1t64:arm64 (1:1.3.dfsg+really1.3.1-1) ... Selecting previously unselected package libfreexl1:arm64. Preparing to unpack .../219-libfreexl1_2.0.0-1+b2_arm64.deb ... Unpacking libfreexl1:arm64 (2.0.0-1+b2) ... Selecting previously unselected package libfyba0t64:arm64. Preparing to unpack .../220-libfyba0t64_4.1.1-11_arm64.deb ... Unpacking libfyba0t64:arm64 (4.1.1-11) ... Selecting previously unselected package libheif-plugin-dav1d:arm64. Preparing to unpack .../221-libheif-plugin-dav1d_1.17.6-1+b2_arm64.deb ... Unpacking libheif-plugin-dav1d:arm64 (1.17.6-1+b2) ... Selecting previously unselected package libheif-plugin-libde265:arm64. Preparing to unpack .../222-libheif-plugin-libde265_1.17.6-1+b2_arm64.deb ... Unpacking libheif-plugin-libde265:arm64 (1.17.6-1+b2) ... Selecting previously unselected package libheif1:arm64. Preparing to unpack .../223-libheif1_1.17.6-1+b2_arm64.deb ... Unpacking libheif1:arm64 (1.17.6-1+b2) ... Selecting previously unselected package libxpm4:arm64. Preparing to unpack .../224-libxpm4_1%3a3.5.17-1+b1_arm64.deb ... Unpacking libxpm4:arm64 (1:3.5.17-1+b1) ... Selecting previously unselected package libgd3:arm64. Preparing to unpack .../225-libgd3_2.3.3-9+b3_arm64.deb ... Unpacking libgd3:arm64 (2.3.3-9+b3) ... Selecting previously unselected package libgeos3.12.1t64:arm64. Preparing to unpack .../226-libgeos3.12.1t64_3.12.1-3_arm64.deb ... Unpacking libgeos3.12.1t64:arm64 (3.12.1-3) ... Selecting previously unselected package libgeos-c1t64:arm64. Preparing to unpack .../227-libgeos-c1t64_3.12.1-3_arm64.deb ... Unpacking libgeos-c1t64:arm64 (3.12.1-3) ... Selecting previously unselected package proj-data. Preparing to unpack .../228-proj-data_9.4.0-1_all.deb ... Unpacking proj-data (9.4.0-1) ... Selecting previously unselected package libproj25:arm64. Preparing to unpack .../229-libproj25_9.4.0-1+b1_arm64.deb ... Unpacking libproj25:arm64 (9.4.0-1+b1) ... Selecting previously unselected package libgeotiff5:arm64. Preparing to unpack .../230-libgeotiff5_1.7.1-5+b1_arm64.deb ... Unpacking libgeotiff5:arm64 (1.7.1-5+b1) ... Selecting previously unselected package libgif7:arm64. Preparing to unpack .../231-libgif7_5.2.2-1_arm64.deb ... Unpacking libgif7:arm64 (5.2.2-1) ... Selecting previously unselected package libsz2:arm64. Preparing to unpack .../232-libsz2_1.1.3-1_arm64.deb ... Unpacking libsz2:arm64 (1.1.3-1) ... Selecting previously unselected package libhdf4-0-alt:arm64. Preparing to unpack .../233-libhdf4-0-alt_4.3.0-1_arm64.deb ... Unpacking libhdf4-0-alt:arm64 (4.3.0-1) ... Selecting previously unselected package libhdf5-103-1t64:arm64. Preparing to unpack .../234-libhdf5-103-1t64_1.10.10+repack-3.3_arm64.deb ... Unpacking libhdf5-103-1t64:arm64 (1.10.10+repack-3.3) ... Selecting previously unselected package libjson-c5:arm64. Preparing to unpack .../235-libjson-c5_0.17-1+b1_arm64.deb ... Unpacking libjson-c5:arm64 (0.17-1+b1) ... Selecting previously unselected package liburiparser1:arm64. Preparing to unpack .../236-liburiparser1_0.9.7+dfsg-2+b1_arm64.deb ... Unpacking liburiparser1:arm64 (0.9.7+dfsg-2+b1) ... Selecting previously unselected package libkmlbase1t64:arm64. Preparing to unpack .../237-libkmlbase1t64_1.3.0-12_arm64.deb ... Unpacking libkmlbase1t64:arm64 (1.3.0-12) ... Selecting previously unselected package libkmldom1t64:arm64. Preparing to unpack .../238-libkmldom1t64_1.3.0-12_arm64.deb ... Unpacking libkmldom1t64:arm64 (1.3.0-12) ... Selecting previously unselected package libkmlengine1t64:arm64. Preparing to unpack .../239-libkmlengine1t64_1.3.0-12_arm64.deb ... Unpacking libkmlengine1t64:arm64 (1.3.0-12) ... Selecting previously unselected package mysql-common. Preparing to unpack .../240-mysql-common_5.8+1.1.0_all.deb ... Unpacking mysql-common (5.8+1.1.0) ... Selecting previously unselected package mariadb-common. Preparing to unpack .../241-mariadb-common_1%3a10.11.7-4_all.deb ... Unpacking mariadb-common (1:10.11.7-4) ... Selecting previously unselected package libmariadb3:arm64. Preparing to unpack .../242-libmariadb3_1%3a10.11.7-4_arm64.deb ... Unpacking libmariadb3:arm64 (1:10.11.7-4) ... Selecting previously unselected package libhdf5-hl-100t64:arm64. Preparing to unpack .../243-libhdf5-hl-100t64_1.10.10+repack-3.3_arm64.deb ... Unpacking libhdf5-hl-100t64:arm64 (1.10.10+repack-3.3) ... Selecting previously unselected package libnetcdf19t64:arm64. Preparing to unpack .../244-libnetcdf19t64_1%3a4.9.2-6_arm64.deb ... Unpacking libnetcdf19t64:arm64 (1:4.9.2-6) ... Selecting previously unselected package libltdl7:arm64. Preparing to unpack .../245-libltdl7_2.4.7-7+b1_arm64.deb ... Unpacking libltdl7:arm64 (2.4.7-7+b1) ... Selecting previously unselected package libodbc2:arm64. Preparing to unpack .../246-libodbc2_2.3.12-1+b2_arm64.deb ... Unpacking libodbc2:arm64 (2.3.12-1+b2) ... Selecting previously unselected package unixodbc-common. Preparing to unpack .../247-unixodbc-common_2.3.12-1_all.deb ... Unpacking unixodbc-common (2.3.12-1) ... Selecting previously unselected package libodbcinst2:arm64. Preparing to unpack .../248-libodbcinst2_2.3.12-1+b2_arm64.deb ... Unpacking libodbcinst2:arm64 (2.3.12-1+b2) ... Selecting previously unselected package libtirpc-common. Preparing to unpack .../249-libtirpc-common_1.3.4+ds-1.3_all.deb ... Unpacking libtirpc-common (1.3.4+ds-1.3) ... Selecting previously unselected package libtirpc3t64:arm64. Preparing to unpack .../250-libtirpc3t64_1.3.4+ds-1.3_arm64.deb ... Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3 to /lib/aarch64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64' Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3.0.0 to /lib/aarch64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' Unpacking libtirpc3t64:arm64 (1.3.4+ds-1.3) ... Selecting previously unselected package libogdi4.1:arm64. Preparing to unpack .../251-libogdi4.1_4.1.1+ds-4_arm64.deb ... Unpacking libogdi4.1:arm64 (4.1.1+ds-4) ... Selecting previously unselected package libnspr4:arm64. Preparing to unpack .../252-libnspr4_2%3a4.35-1.1+b1_arm64.deb ... Unpacking libnspr4:arm64 (2:4.35-1.1+b1) ... Selecting previously unselected package libnss3:arm64. Preparing to unpack .../253-libnss3_2%3a3.99-1_arm64.deb ... Unpacking libnss3:arm64 (2:3.99-1) ... Selecting previously unselected package libpoppler126t64:arm64. Preparing to unpack .../254-libpoppler126t64_22.12.0-2.2+b1_arm64.deb ... Unpacking libpoppler126t64:arm64 (22.12.0-2.2+b1) ... Selecting previously unselected package libpq5:arm64. Preparing to unpack .../255-libpq5_16.3-1_arm64.deb ... Unpacking libpq5:arm64 (16.3-1) ... Selecting previously unselected package libqhull-r8.0:arm64. Preparing to unpack .../256-libqhull-r8.0_2020.2-6+b1_arm64.deb ... Unpacking libqhull-r8.0:arm64 (2020.2-6+b1) ... Selecting previously unselected package librttopo1:arm64. Preparing to unpack .../257-librttopo1_1.1.0-3+b1_arm64.deb ... Unpacking librttopo1:arm64 (1.1.0-3+b1) ... Selecting previously unselected package libspatialite8t64:arm64. Preparing to unpack .../258-libspatialite8t64_5.1.0-3+b1_arm64.deb ... Unpacking libspatialite8t64:arm64 (5.1.0-3+b1) ... Selecting previously unselected package libxerces-c3.2t64:arm64. Preparing to unpack .../259-libxerces-c3.2t64_3.2.4+debian-1.3_arm64.deb ... Unpacking libxerces-c3.2t64:arm64 (3.2.4+debian-1.3) ... Selecting previously unselected package libgdal34t64:arm64. Preparing to unpack .../260-libgdal34t64_3.8.5+dfsg-1_arm64.deb ... Unpacking libgdal34t64:arm64 (3.8.5+dfsg-1) ... Selecting previously unselected package libsocket++1:arm64. Preparing to unpack .../261-libsocket++1_1.12.13+git20131030.5d039ba-1+b1_arm64.deb ... Unpacking libsocket++1:arm64 (1.12.13+git20131030.5d039ba-1+b1) ... Selecting previously unselected package libgdcm3.0t64:arm64. Preparing to unpack .../262-libgdcm3.0t64_3.0.24-1_arm64.deb ... Unpacking libgdcm3.0t64:arm64 (3.0.24-1) ... Selecting previously unselected package libglvnd0:arm64. Preparing to unpack .../263-libglvnd0_1.7.0-1+b1_arm64.deb ... Unpacking libglvnd0:arm64 (1.7.0-1+b1) ... Selecting previously unselected package libxcb-glx0:arm64. Preparing to unpack .../264-libxcb-glx0_1.17.0-1_arm64.deb ... Unpacking libxcb-glx0:arm64 (1.17.0-1) ... Selecting previously unselected package libxxf86vm1:arm64. Preparing to unpack .../265-libxxf86vm1_1%3a1.1.4-1+b2_arm64.deb ... Unpacking libxxf86vm1:arm64 (1:1.1.4-1+b2) ... Selecting previously unselected package libvulkan1:arm64. Preparing to unpack .../266-libvulkan1_1.3.280.0-1_arm64.deb ... Unpacking libvulkan1:arm64 (1.3.280.0-1) ... Selecting previously unselected package libsensors-config. Preparing to unpack .../267-libsensors-config_1%3a3.6.0-9_all.deb ... Unpacking libsensors-config (1:3.6.0-9) ... Selecting previously unselected package libsensors5:arm64. Preparing to unpack .../268-libsensors5_1%3a3.6.0-9_arm64.deb ... Unpacking libsensors5:arm64 (1:3.6.0-9) ... Selecting previously unselected package libgl1-mesa-dri:arm64. Preparing to unpack .../269-libgl1-mesa-dri_24.0.7-1_arm64.deb ... Unpacking libgl1-mesa-dri:arm64 (24.0.7-1) ... Selecting previously unselected package libglx-mesa0:arm64. Preparing to unpack .../270-libglx-mesa0_24.0.7-1_arm64.deb ... Unpacking libglx-mesa0:arm64 (24.0.7-1) ... Selecting previously unselected package libglx0:arm64. Preparing to unpack .../271-libglx0_1.7.0-1+b1_arm64.deb ... Unpacking libglx0:arm64 (1.7.0-1+b1) ... Selecting previously unselected package libgl1:arm64. Preparing to unpack .../272-libgl1_1.7.0-1+b1_arm64.deb ... Unpacking libgl1:arm64 (1.7.0-1+b1) ... Selecting previously unselected package libhiredis1.1.0:arm64. Preparing to unpack .../273-libhiredis1.1.0_1.2.0-6+b2_arm64.deb ... Unpacking libhiredis1.1.0:arm64 (1.2.0-6+b2) ... Selecting previously unselected package libhwloc15:arm64. Preparing to unpack .../274-libhwloc15_2.10.0-1+b1_arm64.deb ... Unpacking libhwloc15:arm64 (2.10.0-1+b1) ... Selecting previously unselected package libmunge2:arm64. Preparing to unpack .../275-libmunge2_0.5.15-4_arm64.deb ... Unpacking libmunge2:arm64 (0.5.15-4) ... Selecting previously unselected package libpciaccess0:arm64. Preparing to unpack .../276-libpciaccess0_0.17-3+b1_arm64.deb ... Unpacking libpciaccess0:arm64 (0.17-3+b1) ... Selecting previously unselected package libxnvctrl0:arm64. Preparing to unpack .../277-libxnvctrl0_535.171.04-1_arm64.deb ... Unpacking libxnvctrl0:arm64 (535.171.04-1) ... Selecting previously unselected package libhwloc-plugins:arm64. Preparing to unpack .../278-libhwloc-plugins_2.10.0-1+b1_arm64.deb ... Unpacking libhwloc-plugins:arm64 (2.10.0-1+b1) ... Selecting previously unselected package libpmix2t64:arm64. Preparing to unpack .../279-libpmix2t64_5.0.2-3_arm64.deb ... Unpacking libpmix2t64:arm64 (5.0.2-3) ... Selecting previously unselected package libucx0:arm64. Preparing to unpack .../280-libucx0_1.16.0+ds-5_arm64.deb ... Unpacking libucx0:arm64 (1.16.0+ds-5) ... Selecting previously unselected package libopenmpi3t64:arm64. Preparing to unpack .../281-libopenmpi3t64_4.1.6-13.3_arm64.deb ... Unpacking libopenmpi3t64:arm64 (4.1.6-13.3) ... Selecting previously unselected package libgloo0. Preparing to unpack .../282-libgloo0_0.0~git20230519.597accf-2+b2_arm64.deb ... Unpacking libgloo0 (0.0~git20230519.597accf-2+b2) ... Selecting previously unselected package libgphoto2-port12t64:arm64. Preparing to unpack .../283-libgphoto2-port12t64_2.5.31-2.1+b1_arm64.deb ... Unpacking libgphoto2-port12t64:arm64 (2.5.31-2.1+b1) ... Selecting previously unselected package libgphoto2-6t64:arm64. Preparing to unpack .../284-libgphoto2-6t64_2.5.31-2.1+b1_arm64.deb ... Unpacking libgphoto2-6t64:arm64 (2.5.31-2.1+b1) ... Selecting previously unselected package libunwind8:arm64. Preparing to unpack .../285-libunwind8_1.6.2-3+b1_arm64.deb ... Unpacking libunwind8:arm64 (1.6.2-3+b1) ... Selecting previously unselected package libgstreamer1.0-0:arm64. Preparing to unpack .../286-libgstreamer1.0-0_1.24.3-1_arm64.deb ... Unpacking libgstreamer1.0-0:arm64 (1.24.3-1) ... Selecting previously unselected package liborc-0.4-0t64:arm64. Preparing to unpack .../287-liborc-0.4-0t64_1%3a0.4.38-1_arm64.deb ... Unpacking liborc-0.4-0t64:arm64 (1:0.4.38-1) ... Selecting previously unselected package libgstreamer-plugins-base1.0-0:arm64. Preparing to unpack .../288-libgstreamer-plugins-base1.0-0_1.24.3-1_arm64.deb ... Unpacking libgstreamer-plugins-base1.0-0:arm64 (1.24.3-1) ... Selecting previously unselected package libgudev-1.0-0:arm64. Preparing to unpack .../289-libgudev-1.0-0_238-5_arm64.deb ... Unpacking libgudev-1.0-0:arm64 (238-5) ... Selecting previously unselected package x11-common. Preparing to unpack .../290-x11-common_1%3a7.7+23_all.deb ... Unpacking x11-common (1:7.7+23) ... Selecting previously unselected package libice6:arm64. Preparing to unpack .../291-libice6_2%3a1.0.10-1+b1_arm64.deb ... Unpacking libice6:arm64 (2:1.0.10-1+b1) ... Selecting previously unselected package libimath-3-1-29t64:arm64. Preparing to unpack .../292-libimath-3-1-29t64_3.1.9-3.1+b1_arm64.deb ... Unpacking libimath-3-1-29t64:arm64 (3.1.9-3.1+b1) ... Selecting previously unselected package libwacom-common. Preparing to unpack .../293-libwacom-common_2.10.0-2_all.deb ... Unpacking libwacom-common (2.10.0-2) ... Selecting previously unselected package libwacom9:arm64. Preparing to unpack .../294-libwacom9_2.10.0-2_arm64.deb ... Unpacking libwacom9:arm64 (2.10.0-2) ... Selecting previously unselected package libinput-bin. Preparing to unpack .../295-libinput-bin_1.25.0-1+b2_arm64.deb ... Unpacking libinput-bin (1.25.0-1+b2) ... Selecting previously unselected package libmtdev1t64:arm64. Preparing to unpack .../296-libmtdev1t64_1.1.6-1.2_arm64.deb ... Unpacking libmtdev1t64:arm64 (1.1.6-1.2) ... Selecting previously unselected package libinput10:arm64. Preparing to unpack .../297-libinput10_1.25.0-1+b2_arm64.deb ... Unpacking libinput10:arm64 (1.25.0-1+b2) ... Selecting previously unselected package liblept5:arm64. Preparing to unpack .../298-liblept5_1.82.0-3+b4_arm64.deb ... Unpacking liblept5:arm64 (1.82.0-3+b4) ... Selecting previously unselected package libleveldb1d:arm64. Preparing to unpack .../299-libleveldb1d_1.23-5+b1_arm64.deb ... Unpacking libleveldb1d:arm64 (1.23-5+b1) ... Selecting previously unselected package liblmdb0:arm64. Preparing to unpack .../300-liblmdb0_0.9.31-1+b1_arm64.deb ... Unpacking liblmdb0:arm64 (0.9.31-1+b1) ... Selecting previously unselected package libmd4c0:arm64. Preparing to unpack .../301-libmd4c0_0.4.8-1+b1_arm64.deb ... Unpacking libmd4c0:arm64 (0.4.8-1+b1) ... Selecting previously unselected package libprotobuf32t64:arm64. Preparing to unpack .../302-libprotobuf32t64_3.21.12-8.2_arm64.deb ... Unpacking libprotobuf32t64:arm64 (3.21.12-8.2) ... Selecting previously unselected package libonnx1t64:arm64. Preparing to unpack .../303-libonnx1t64_1.14.1-2.1+b1_arm64.deb ... Unpacking libonnx1t64:arm64 (1.14.1-2.1+b1) ... Selecting previously unselected package libtbbmalloc2:arm64. Preparing to unpack .../304-libtbbmalloc2_2021.11.0-2_arm64.deb ... Unpacking libtbbmalloc2:arm64 (2021.11.0-2) ... Selecting previously unselected package libtbbbind-2-5:arm64. Preparing to unpack .../305-libtbbbind-2-5_2021.11.0-2_arm64.deb ... Unpacking libtbbbind-2-5:arm64 (2021.11.0-2) ... Selecting previously unselected package libtbb12:arm64. Preparing to unpack .../306-libtbb12_2021.11.0-2_arm64.deb ... Unpacking libtbb12:arm64 (2021.11.0-2) ... Selecting previously unselected package libopencv-core406t64:arm64. Preparing to unpack .../307-libopencv-core406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-core406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopencv-flann406t64:arm64. Preparing to unpack .../308-libopencv-flann406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-flann406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopencv-imgproc406t64:arm64. Preparing to unpack .../309-libopencv-imgproc406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-imgproc406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopencv-features2d406t64:arm64. Preparing to unpack .../310-libopencv-features2d406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-features2d406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopencv-calib3d406t64:arm64. Preparing to unpack .../311-libopencv-calib3d406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-calib3d406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopencv-dnn406t64:arm64. Preparing to unpack .../312-libopencv-dnn406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-dnn406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopengl0:arm64. Preparing to unpack .../313-libopengl0_1.7.0-1+b1_arm64.deb ... Unpacking libopengl0:arm64 (1.7.0-1+b1) ... Selecting previously unselected package libpcre2-16-0:arm64. Preparing to unpack .../314-libpcre2-16-0_10.42-4+b1_arm64.deb ... Unpacking libpcre2-16-0:arm64 (10.42-4+b1) ... Selecting previously unselected package libqt5core5t64:arm64. Preparing to unpack .../315-libqt5core5t64_5.15.10+dfsg-7.2+b1_arm64.deb ... Unpacking libqt5core5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Selecting previously unselected package libegl1:arm64. Preparing to unpack .../316-libegl1_1.7.0-1+b1_arm64.deb ... Unpacking libegl1:arm64 (1.7.0-1+b1) ... Selecting previously unselected package libqt5dbus5t64:arm64. Preparing to unpack .../317-libqt5dbus5t64_5.15.10+dfsg-7.2+b1_arm64.deb ... Unpacking libqt5dbus5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Selecting previously unselected package libqt5network5t64:arm64. Preparing to unpack .../318-libqt5network5t64_5.15.10+dfsg-7.2+b1_arm64.deb ... Unpacking libqt5network5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Selecting previously unselected package libsm6:arm64. Preparing to unpack .../319-libsm6_2%3a1.2.3-1+b1_arm64.deb ... Unpacking libsm6:arm64 (2:1.2.3-1+b1) ... Selecting previously unselected package libxcb-icccm4:arm64. Preparing to unpack .../320-libxcb-icccm4_0.4.1-1.1+b1_arm64.deb ... Unpacking libxcb-icccm4:arm64 (0.4.1-1.1+b1) ... Selecting previously unselected package libxcb-util1:arm64. Preparing to unpack .../321-libxcb-util1_0.4.0-1+b1_arm64.deb ... Unpacking libxcb-util1:arm64 (0.4.0-1+b1) ... Selecting previously unselected package libxcb-image0:arm64. Preparing to unpack .../322-libxcb-image0_0.4.0-2+b1_arm64.deb ... Unpacking libxcb-image0:arm64 (0.4.0-2+b1) ... Selecting previously unselected package libxcb-keysyms1:arm64. Preparing to unpack .../323-libxcb-keysyms1_0.4.0-1+b2_arm64.deb ... Unpacking libxcb-keysyms1:arm64 (0.4.0-1+b2) ... Selecting previously unselected package libxcb-render-util0:arm64. Preparing to unpack .../324-libxcb-render-util0_0.3.9-1+b1_arm64.deb ... Unpacking libxcb-render-util0:arm64 (0.3.9-1+b1) ... Selecting previously unselected package libxcb-shape0:arm64. Preparing to unpack .../325-libxcb-shape0_1.17.0-1_arm64.deb ... Unpacking libxcb-shape0:arm64 (1.17.0-1) ... Selecting previously unselected package libxcb-xinerama0:arm64. Preparing to unpack .../326-libxcb-xinerama0_1.17.0-1_arm64.deb ... Unpacking libxcb-xinerama0:arm64 (1.17.0-1) ... Selecting previously unselected package libxcb-xinput0:arm64. Preparing to unpack .../327-libxcb-xinput0_1.17.0-1_arm64.deb ... Unpacking libxcb-xinput0:arm64 (1.17.0-1) ... Selecting previously unselected package libxcb-xkb1:arm64. Preparing to unpack .../328-libxcb-xkb1_1.17.0-1_arm64.deb ... Unpacking libxcb-xkb1:arm64 (1.17.0-1) ... Selecting previously unselected package xkb-data. Preparing to unpack .../329-xkb-data_2.41-2_all.deb ... Unpacking xkb-data (2.41-2) ... Selecting previously unselected package libxkbcommon0:arm64. Preparing to unpack .../330-libxkbcommon0_1.6.0-1+b1_arm64.deb ... Unpacking libxkbcommon0:arm64 (1.6.0-1+b1) ... Selecting previously unselected package libxkbcommon-x11-0:arm64. Preparing to unpack .../331-libxkbcommon-x11-0_1.6.0-1+b1_arm64.deb ... Unpacking libxkbcommon-x11-0:arm64 (1.6.0-1+b1) ... Selecting previously unselected package libqt5gui5t64:arm64. Preparing to unpack .../332-libqt5gui5t64_5.15.10+dfsg-7.2+b1_arm64.deb ... Unpacking libqt5gui5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Selecting previously unselected package libqt5widgets5t64:arm64. Preparing to unpack .../333-libqt5widgets5t64_5.15.10+dfsg-7.2+b1_arm64.deb ... Unpacking libqt5widgets5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Selecting previously unselected package libqt5opengl5t64:arm64. Preparing to unpack .../334-libqt5opengl5t64_5.15.10+dfsg-7.2+b1_arm64.deb ... Unpacking libqt5opengl5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Selecting previously unselected package libqt5test5t64:arm64. Preparing to unpack .../335-libqt5test5t64_5.15.10+dfsg-7.2+b1_arm64.deb ... Unpacking libqt5test5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Selecting previously unselected package libopencv-highgui406t64:arm64. Preparing to unpack .../336-libopencv-highgui406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-highgui406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopenexr-3-1-30:arm64. Preparing to unpack .../337-libopenexr-3-1-30_3.1.5-5.1+b2_arm64.deb ... Unpacking libopenexr-3-1-30:arm64 (3.1.5-5.1+b2) ... Selecting previously unselected package libopencv-imgcodecs406t64:arm64. Preparing to unpack .../338-libopencv-imgcodecs406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-imgcodecs406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopencv-ml406t64:arm64. Preparing to unpack .../339-libopencv-ml406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-ml406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopencv-objdetect406t64:arm64. Preparing to unpack .../340-libopencv-objdetect406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-objdetect406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libopencv-video406t64:arm64. Preparing to unpack .../341-libopencv-video406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-video406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libtesseract5:arm64. Preparing to unpack .../342-libtesseract5_5.3.4-1.1+b1_arm64.deb ... Unpacking libtesseract5:arm64 (5.3.4-1.1+b1) ... Selecting previously unselected package libopencv-contrib406t64:arm64. Preparing to unpack .../343-libopencv-contrib406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-contrib406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libswscale7:arm64. Preparing to unpack .../344-libswscale7_7%3a6.1.1-4+b1_arm64.deb ... Unpacking libswscale7:arm64 (7:6.1.1-4+b1) ... Selecting previously unselected package libopencv-videoio406t64:arm64. Preparing to unpack .../345-libopencv-videoio406t64_4.6.0+dfsg-13.1+b2_arm64.deb ... Unpacking libopencv-videoio406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Selecting previously unselected package libpthreadpool0:arm64. Preparing to unpack .../346-libpthreadpool0_0.0~git20210507.1787867-2+b1_arm64.deb ... Unpacking libpthreadpool0:arm64 (0.0~git20210507.1787867-2+b1) ... Selecting previously unselected package libpython3.12-stdlib:arm64. Preparing to unpack .../347-libpython3.12-stdlib_3.12.3-1_arm64.deb ... Unpacking libpython3.12-stdlib:arm64 (3.12.3-1) ... Selecting previously unselected package libsleef3:arm64. Preparing to unpack .../348-libsleef3_3.5.1-3_arm64.deb ... Unpacking libsleef3:arm64 (3.5.1-3) ... Selecting previously unselected package libuv1t64:arm64. Preparing to unpack .../349-libuv1t64_1.48.0-3_arm64.deb ... Unpacking libuv1t64:arm64 (1.48.0-3) ... Selecting previously unselected package libtensorpipe0:arm64. Preparing to unpack .../350-libtensorpipe0_0.0~git20220513.bb1473a-5+b2_arm64.deb ... Unpacking libtensorpipe0:arm64 (0.0~git20220513.bb1473a-5+b2) ... Selecting previously unselected package libxnnpack0. Preparing to unpack .../351-libxnnpack0_0.0~git20221221.51a9875-1_arm64.deb ... Unpacking libxnnpack0 (0.0~git20221221.51a9875-1) ... Selecting previously unselected package libtorch2.1:arm64. Preparing to unpack .../352-libtorch2.1_2.1.2+dfsg-4_arm64.deb ... Unpacking libtorch2.1:arm64 (2.1.2+dfsg-4) ... Selecting previously unselected package libtorch-test. Preparing to unpack .../353-libtorch-test_2.1.2+dfsg-4_arm64.deb ... Unpacking libtorch-test (2.1.2+dfsg-4) ... Selecting previously unselected package libyaml-0-2:arm64. Preparing to unpack .../354-libyaml-0-2_0.2.5-1+b1_arm64.deb ... Unpacking libyaml-0-2:arm64 (0.2.5-1+b1) ... Selecting previously unselected package python3.12. Preparing to unpack .../355-python3.12_3.12.3-1_arm64.deb ... Unpacking python3.12 (3.12.3-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../356-python3-all_3.11.8-1_arm64.deb ... Unpacking python3-all (3.11.8-1) ... Selecting previously unselected package python3-six. Preparing to unpack .../357-python3-six_1.16.0-6_all.deb ... Unpacking python3-six (1.16.0-6) ... Selecting previously unselected package python3-astunparse. Preparing to unpack .../358-python3-astunparse_1.6.3-2_all.deb ... Unpacking python3-astunparse (1.6.3-2) ... Selecting previously unselected package python3-attr. Preparing to unpack .../359-python3-attr_23.2.0-2_all.deb ... Unpacking python3-attr (23.2.0-2) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../360-python3-certifi_2023.11.17-1_all.deb ... Unpacking python3-certifi (2023.11.17-1) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../361-python3-chardet_5.2.0+dfsg-1_all.deb ... Unpacking python3-chardet (5.2.0+dfsg-1) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../362-python3-charset-normalizer_3.3.2-1_all.deb ... Unpacking python3-charset-normalizer (3.3.2-1) ... Selecting previously unselected package python3-dateutil. Preparing to unpack .../363-python3-dateutil_2.9.0-2_all.deb ... Unpacking python3-dateutil (2.9.0-2) ... Selecting previously unselected package python3-sortedcontainers. Preparing to unpack .../364-python3-sortedcontainers_2.4.0-2_all.deb ... Unpacking python3-sortedcontainers (2.4.0-2) ... Selecting previously unselected package python3-hypothesis. Preparing to unpack .../365-python3-hypothesis_6.100.7-1_all.deb ... Unpacking python3-hypothesis (6.100.7-1) ... Selecting previously unselected package python3-expecttest. Preparing to unpack .../366-python3-expecttest_0.1.5-1_all.deb ... Unpacking python3-expecttest (0.1.5-1) ... Selecting previously unselected package python3-filelock. Preparing to unpack .../367-python3-filelock_3.14.0-1_all.deb ... Unpacking python3-filelock (3.14.0-1) ... Selecting previously unselected package python3-fsspec. Preparing to unpack .../368-python3-fsspec_2024.3.1-1_all.deb ... Unpacking python3-fsspec (2024.3.1-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../369-python3-idna_3.6-2_all.deb ... Unpacking python3-idna (3.6-2) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../370-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../371-python3-markupsafe_2.1.5-1_arm64.deb ... Unpacking python3-markupsafe (2.1.5-1) ... Selecting previously unselected package python3-jinja2. Preparing to unpack .../372-python3-jinja2_3.1.3-1_all.deb ... Unpacking python3-jinja2 (3.1.3-1) ... Selecting previously unselected package python3-mpmath. Preparing to unpack .../373-python3-mpmath_1.3.0-1_all.deb ... Unpacking python3-mpmath (1.3.0-1) ... Selecting previously unselected package python3-networkx. Preparing to unpack .../374-python3-networkx_3.2.1-4_all.deb ... Unpacking python3-networkx (3.2.1-4) ... Selecting previously unselected package python3-numpy. Preparing to unpack .../375-python3-numpy_1%3a1.26.4+ds-8_arm64.deb ... Unpacking python3-numpy (1:1.26.4+ds-8) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../376-python3-packaging_24.0-1_all.deb ... Unpacking python3-packaging (24.0-1) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../377-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-psutil. Preparing to unpack .../378-python3-psutil_5.9.8-2_arm64.deb ... Unpacking python3-psutil (5.9.8-2) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../379-python3-pytest_8.1.2-1_all.deb ... Unpacking python3-pytest (8.1.2-1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../380-python3-urllib3_1.26.18-2_all.deb ... Unpacking python3-urllib3 (1.26.18-2) ... Selecting previously unselected package python3-requests. Preparing to unpack .../381-python3-requests_2.31.0+dfsg-1_all.deb ... Unpacking python3-requests (2.31.0+dfsg-1) ... Selecting previously unselected package python3-sympy. Preparing to unpack .../382-python3-sympy_1.12-7_all.deb ... Unpacking python3-sympy (1.12-7) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../383-python3-typing-extensions_4.10.0-1_all.deb ... Unpacking python3-typing-extensions (4.10.0-1) ... Selecting previously unselected package python3-yaml. Preparing to unpack .../384-python3-yaml_6.0.1-2_arm64.deb ... Unpacking python3-yaml (6.0.1-2) ... Selecting previously unselected package python3-torch. Preparing to unpack .../385-python3-torch_2.1.2+dfsg-4_arm64.deb ... Unpacking python3-torch (2.1.2+dfsg-4) ... Setting up libgme0:arm64 (0.6.3-7+b1) ... Setting up libchromaprint1:arm64 (1.5.1-5) ... Setting up libhwy1t64:arm64 (1.0.7-8.1) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:arm64 (1.5.7-2) ... Setting up liblmdb0:arm64 (0.9.31-1+b1) ... Setting up libgraphite2-3:arm64 (1.3.14-2) ... Setting up liblcms2-2:arm64 (2.14-2+b1) ... Setting up libtbbmalloc2:arm64 (2021.11.0-2) ... Setting up libpixman-1-0:arm64 (0.42.2-1+b1) ... Setting up libudfread0:arm64 (1.1.2-1+b1) ... Setting up libnorm1t64:arm64 (1.5.9+dfsg-3.1) ... Setting up libsharpyuv0:arm64 (1.4.0-0.1) ... Setting up libwayland-server0:arm64 (1.22.0-2.1+b1) ... Setting up libaom3:arm64 (3.8.2-2) ... Setting up libpciaccess0:arm64 (0.17-3+b1) ... Setting up mysql-common (5.8+1.1.0) ... update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up libprotobuf32t64:arm64 (3.21.12-8.2) ... Setting up librabbitmq4:arm64 (0.11.0-1+b2) ... Setting up libxau6:arm64 (1:1.0.9-1+b1) ... Setting up libdouble-conversion3:arm64 (3.3.0-1+b1) ... Setting up libraw1394-11:arm64 (2.1.2-2+b1) ... Setting up libkeyutils1:arm64 (1.6.3-3) ... Setting up libsodium23:arm64 (1.0.18-1+b1) ... Setting up libicu72:arm64 (72.1-4+b1) ... Setting up libogg0:arm64 (1.3.5-3+b1) ... Setting up liblerc4:arm64 (4.0.0+ds-4+b1) ... Setting up libspeex1:arm64 (1.2.1-2+b1) ... Setting up proj-data (9.4.0-1) ... Setting up libshine3:arm64 (3.1.1-2+b1) ... Setting up bsdextrautils (2.40-8) ... Setting up libx264-164:arm64 (2:0.164.3108+git31e19f9-1) ... Setting up libtwolame0:arm64 (0.4.0-2+b1) ... Setting up libmbedcrypto7t64:arm64 (2.28.8-1) ... Setting up libbenchmark1.8.3:arm64 (1.8.3-3) ... Setting up libdatrie1:arm64 (0.2.13-3) ... Setting up libmagic-mgc (1:5.45-3) ... Setting up libgsm1:arm64 (1.0.22-1+b1) ... Setting up libcharls2:arm64 (2.4.2-2+b1) ... Setting up libgeos3.12.1t64:arm64 (3.12.1-3) ... Setting up libsoxr0:arm64 (0.1.3-4+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:arm64 (0.2.5-1+b1) ... Setting up libglvnd0:arm64 (1.7.0-1+b1) ... Setting up libtirpc-common (1.3.4+ds-1.3) ... Setting up libcodec2-1.2:arm64 (1.2.0-2+b1) ... Setting up libgeos-c1t64:arm64 (3.12.1-3) ... Setting up libdebhelper-perl (13.15.3) ... Setting up libbrotli1:arm64 (1.1.0-2+b3) ... Setting up libgdk-pixbuf2.0-common (2.42.10+dfsg-3) ... Setting up libuv1t64:arm64 (1.48.0-3) ... Setting up libmagic1t64:arm64 (1:5.45-3) ... Setting up libpython3.12-minimal:arm64 (3.12.3-1) ... Setting up x11-common (1:7.7+23) ... invoke-rc.d: could not determine current runlevel Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix. Setting up libsensors-config (1:3.6.0-9) ... Setting up libpsl5t64:arm64 (0.21.2-1.1) ... Setting up libnghttp2-14:arm64 (1.61.0-1+b1) ... Setting up libdeflate0:arm64 (1.20-1) ... Setting up gettext-base (0.21-14+b1) ... Setting up m4 (1.4.19-4) ... Setting up libqhull-r8.0:arm64 (2020.2-6+b1) ... Setting up xkb-data (2.41-2) ... Setting up libsvtav1enc1d1:arm64 (1.7.0+dfsg-2+b1) ... Setting up libcom-err2:arm64 (1.47.1~rc2-1) ... Setting up file (1:5.45-3) ... Setting up libsleef3:arm64 (3.5.1-3) ... Setting up libmpg123-0t64:arm64 (1.32.6-3) ... Setting up libcjson1:arm64 (1.7.17-2) ... Setting up libxvidcore4:arm64 (2:1.3.7-1+b1) ... Setting up libunwind8:arm64 (1.6.2-3+b1) ... Setting up libjbig0:arm64 (2.1-6.1+b1) ... Setting up librav1e0:arm64 (0.7.1-2) ... Setting up libpcre2-16-0:arm64 (10.42-4+b1) ... Setting up libaec0:arm64 (1.1.3-1) ... Setting up gdal-data (3.8.5+dfsg-1) ... Setting up libopengl0:arm64 (1.7.0-1+b1) ... Setting up libelf1t64:arm64 (0.191-1+b1) ... Setting up libpthreadpool0:arm64 (0.0~git20210507.1787867-2+b1) ... Setting up libsnappy1v5:arm64 (1.2.0-2) ... Setting up liborc-0.4-0t64:arm64 (1:0.4.38-1) ... Setting up libkrb5support0:arm64 (1.20.1-6+b1) ... Setting up libdw1t64:arm64 (0.191-1+b1) ... Setting up libsasl2-modules-db:arm64 (2.1.28+dfsg1-6) ... Setting up librist4:arm64 (0.2.10+dfsg-2) ... Setting up tzdata (2024a-4) ... Current default time zone: 'Etc/UTC' Local time is now: Sun Jun 15 18:06:48 UTC 2025. Universal Time is now: Sun Jun 15 18:06:48 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libcap2-bin (1:2.66-5) ... Setting up mariadb-common (1:10.11.7-4) ... update-alternatives: using /etc/mysql/mariadb.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up libpgm-5.3-0t64:arm64 (5.3.128~dfsg-2.1) ... Setting up autotools-dev (20220109.1) ... Setting up libz3-4:arm64 (4.8.12-3.1+b2) ... Setting up libglib2.0-0t64:arm64 (2.80.2-1) ... No schema files found: doing nothing. Setting up libblas3:arm64 (3.12.0-3) ... update-alternatives: using /usr/lib/aarch64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/aarch64-linux-gnu/libblas.so.3 (libblas.so.3-aarch64-linux-gnu) in auto mode Setting up libmunge2:arm64 (0.5.15-4) ... Setting up libjpeg62-turbo:arm64 (1:2.1.5-3) ... Setting up libva2:arm64 (2.21.0-1) ... Setting up libx11-data (2:1.8.7-1) ... Setting up libnspr4:arm64 (2:4.35-1.1+b1) ... Setting up librtmp1:arm64 (2.4+20151223.gitfa8646d.1-2+b4) ... Setting up libtensorpipe0:arm64 (0.0~git20220513.bb1473a-5+b2) ... Setting up libdbus-1-3:arm64 (1.14.10-4+b1) ... Setting up libfribidi0:arm64 (1.0.13-3+b1) ... Setting up libopus0:arm64 (1.4-1+b1) ... Setting up libexif12:arm64 (0.6.24-1+b1) ... Setting up fonts-dejavu-mono (2.37-8) ... Setting up libpng16-16t64:arm64 (1.6.43-5) ... Setting up libhwloc15:arm64 (2.10.0-1+b1) ... Setting up libimath-3-1-29t64:arm64 (3.1.9-3.1+b1) ... Setting up libvorbis0a:arm64 (1.3.7-2) ... Setting up autopoint (0.21-14) ... Setting up libmariadb3:arm64 (1:10.11.7-4) ... Setting up fonts-dejavu-core (2.37-8) ... Setting up unixodbc-common (2.3.12-1) ... Setting up libsocket++1:arm64 (1.12.13+git20131030.5d039ba-1+b1) ... Setting up libsensors5:arm64 (1:3.6.0-9) ... Setting up libjxl0.7:arm64 (0.7.0-10.2+b3) ... Setting up libk5crypto3:arm64 (1.20.1-6+b1) ... Setting up libltdl7:arm64 (2.4.7-7+b1) ... Setting up libglapi-mesa:arm64 (24.0.7-1) ... Setting up libsasl2-2:arm64 (2.1.28+dfsg1-6) ... Setting up libgfortran5:arm64 (14-20240429-1) ... Setting up libvulkan1:arm64 (1.3.280.0-1) ... Setting up autoconf (2.71-3) ... Setting up libcpuinfo0:arm64 (0.0~git20230113.6481e8b-2) ... Setting up libwebp7:arm64 (1.4.0-0.1) ... Setting up libfmt9:arm64 (9.1.0+ds1-2) ... Setting up libgif7:arm64 (5.2.2-1) ... Setting up libodbc2:arm64 (2.3.12-1+b2) ... Setting up liburiparser1:arm64 (0.9.7+dfsg-2+b1) ... Setting up libnuma1:arm64 (2.0.18-1) ... Setting up libfyba0t64:arm64 (4.1.1-11) ... Setting up libvpx9:arm64 (1.14.0-2) ... Setting up dwz (0.15-1+b1) ... Setting up librttopo1:arm64 (1.1.0-3+b1) ... Setting up libsrt1.5-gnutls:arm64 (1.5.3-1+b2) ... Setting up libdav1d7:arm64 (1.4.1-1) ... Setting up libxnnpack0 (0.0~git20221221.51a9875-1) ... Setting up libmtdev1t64:arm64 (1.1.6-1.2) ... Setting up sensible-utils (0.0.22) ... Setting up libminizip1t64:arm64 (1:1.3.dfsg+really1.3.1-1) ... Setting up ocl-icd-libopencl1:arm64 (2.3.2-1+b1) ... Setting up libxshmfence1:arm64 (1.3-1+b1) ... Setting up libtiff6:arm64 (4.5.1+git230720-4) ... Setting up libuchardet0:arm64 (0.0.8-1+b1) ... Setting up libblosc1:arm64 (1.21.5+ds-1+b1) ... Setting up libnl-3-200:arm64 (3.7.0-0.3) ... Setting up libmd4c0:arm64 (0.4.8-1+b1) ... Setting up libopenjp2-7:arm64 (2.5.0-2+b3) ... Setting up libsub-override-perl (0.10-1) ... Setting up libthai-data (0.1.29-2) ... Setting up libonnx1t64:arm64 (1.14.1-2.1+b1) ... Setting up netbase (6.4) ... Setting up libabsl20230802:arm64 (20230802.1-4) ... Setting up libkrb5-3:arm64 (1.20.1-6+b1) ... Setting up libevent-core-2.1-7t64:arm64 (2.1.12-stable-8.1+b3) ... Setting up libusb-1.0-0:arm64 (2:1.0.27-1) ... Setting up libssh2-1t64:arm64 (1.11.0-4.1+b2) ... Setting up libde265-0:arm64 (1.0.15-1+b1) ... Setting up libkmlbase1t64:arm64 (1.3.0-12) ... Setting up openssl (3.2.1-3) ... Setting up libwebpmux3:arm64 (1.4.0-0.1) ... Setting up libbsd0:arm64 (0.12.2-1) ... Setting up libdnnl3:arm64 (3.1.1-2) ... Setting up libdrm-common (2.4.120-2) ... Setting up libyuv0:arm64 (0.0~git202401110.af6ac82-1) ... Setting up libhiredis1.1.0:arm64 (1.2.0-6+b2) ... Setting up libjson-c5:arm64 (0.17-1+b1) ... Setting up libevdev2:arm64 (1.13.1+dfsg-1+b1) ... Setting up readline-common (8.2-4) ... Setting up libxml2:arm64 (2.9.14+dfsg-1.3+b3) ... Setting up iso-codes (4.16.0-1) ... Setting up libgudev-1.0-0:arm64 (238-5) ... Setting up libzvbi-common (0.2.42-2) ... Setting up libgstreamer1.0-0:arm64 (1.24.3-1) ... Setcap worked! gst-ptp-helper is not suid! Setting up libmp3lame0:arm64 (3.100-6+b2) ... Setting up libsz2:arm64 (1.1.3-1) ... Setting up libvorbisenc2:arm64 (1.3.7-2) ... Setting up gdal-plugins:arm64 (3.8.5+dfsg-1) ... Setting up libwacom-common (2.10.0-2) ... Setting up libxkbcommon0:arm64 (1.6.0-1+b1) ... Setting up libwayland-client0:arm64 (1.22.0-2.1+b1) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up libgdcm3.0t64:arm64 (3.0.24-1) ... Setting up python3.12-minimal (3.12.3-1) ... Setting up libleveldb1d:arm64 (1.23-5+b1) ... Setting up libice6:arm64 (2:1.0.10-1+b1) ... Setting up libodbcinst2:arm64 (2.3.12-1+b2) ... Setting up libxdmcp6:arm64 (1:1.1.2-3+b1) ... Setting up liblapack3:arm64 (3.12.0-3) ... update-alternatives: using /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/aarch64-linux-gnu/liblapack.so.3 (liblapack.so.3-aarch64-linux-gnu) in auto mode Setting up libxcb1:arm64 (1.17.0-1) ... Setting up gettext (0.21-14+b1) ... Setting up libarpack2t64:arm64 (3.9.1-1.1+b1) ... Setting up libxcb-xfixes0:arm64 (1.17.0-1) ... Setting up libzvbi0t64:arm64 (0.2.42-2) ... Setting up libxcb-xinput0:arm64 (1.17.0-1) ... Setting up libtool (2.4.7-7) ... Setting up libxcb-render0:arm64 (1.17.0-1) ... Setting up libwacom9:arm64 (2.10.0-2) ... Setting up libevent-pthreads-2.1-7t64:arm64 (2.1.12-stable-8.1+b3) ... Setting up fontconfig-config (2.15.0-1.1) ... Setting up libxcb-glx0:arm64 (1.17.0-1) ... Setting up libedit2:arm64 (3.1-20230828-1+b1) ... Setting up libxcb-keysyms1:arm64 (0.4.0-1+b2) ... Setting up libxcb-shape0:arm64 (1.17.0-1) ... Setting up libxcb-render-util0:arm64 (0.3.9-1+b1) ... Setting up libnss3:arm64 (2:3.99-1) ... Setting up libxcb-shm0:arm64 (1.17.0-1) ... Setting up libxcb-icccm4:arm64 (0.4.1-1.1+b1) ... Setting up libsuperlu6:arm64 (6.0.1+dfsg1-1+b1) ... Setting up libldap-2.5-0:arm64 (2.5.17+dfsg-1) ... Setting up liblept5:arm64 (1.82.0-3+b4) ... Setting up libxcb-util1:arm64 (0.4.0-1+b1) ... Setting up libinput-bin (1.25.0-1+b2) ... Setting up libxcb-xkb1:arm64 (1.17.0-1) ... Setting up libxcb-image0:arm64 (0.4.0-2+b1) ... Setting up libtbbbind-2-5:arm64 (2021.11.0-2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up libnl-route-3-200:arm64 (3.7.0-0.3) ... Setting up libxcb-present0:arm64 (1.17.0-1) ... Setting up libkmldom1t64:arm64 (1.3.0-12) ... Setting up dh-autoreconf (20) ... Setting up libthai0:arm64 (0.1.29-2) ... Setting up ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 146 added, 0 removed; done. Setting up libvorbisfile3:arm64 (1.3.7-2) ... Setting up libxcb-xinerama0:arm64 (1.17.0-1) ... Setting up libllvm17t64:arm64 (1:17.0.6-12) ... Setting up libfreetype6:arm64 (2.13.2+dfsg-1+b4) ... Setting up libxcb-sync1:arm64 (1.17.0-1) ... Setting up libopenexr-3-1-30:arm64 (3.1.5-5.1+b2) ... Setting up shared-mime-info (2.4-4) ... Setting up libxkbcommon-x11-0:arm64 (1.6.0-1+b1) ... Setting up libdc1394-25:arm64 (2.2.6-4+b1) ... Setting up libgssapi-krb5-2:arm64 (1.20.1-6+b1) ... Setting up libgav1-1:arm64 (0.19.0-2+b1) ... Setting up libhdf4-0-alt:arm64 (4.3.0-1) ... Setting up libx265-199:arm64 (3.5-2+b1) ... Setting up libreadline8t64:arm64 (8.2-4) ... Setting up libxcb-dri2-0:arm64 (1.17.0-1) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up libdrm2:arm64 (2.4.120-2) ... Setting up libfreexl1:arm64 (2.0.0-1+b2) ... Setting up libva-drm2:arm64 (2.21.0-1) ... Setting up groff-base (1.23.0-4) ... Setting up libxcb-randr0:arm64 (1.17.0-1) ... Setting up libx11-6:arm64 (2:1.8.7-1+b1) ... Setting up libharfbuzz0b:arm64 (8.3.0-2+b1) ... Setting up libgdk-pixbuf-2.0-0:arm64 (2.42.10+dfsg-3+b3) ... Setting up libgphoto2-port12t64:arm64 (2.5.31-2.1+b1) ... Setting up libamd-comgr2:arm64 (6.0+git20231212.4510c28+dfsg-3+b1) ... Setting up libfontconfig1:arm64 (2.15.0-1.1) ... Setting up libbluray2:arm64 (1:1.3.4-1+b1) ... Setting up libsm6:arm64 (2:1.2.3-1+b1) ... Setting up libarchive13t64:arm64 (3.7.2-2) ... Setting up libopenmpt0t64:arm64 (0.7.6-1+b1) ... Setting up libarmadillo12 (1:12.8.2+dfsg-1) ... Setting up libdrm-amdgpu1:arm64 (2.4.120-2) ... Setting up libssh-gcrypt-4:arm64 (0.10.6-2+b1) ... Setting up libxcb-dri3-0:arm64 (1.17.0-1) ... Setting up libinput10:arm64 (1.25.0-1+b2) ... Setting up libx11-xcb1:arm64 (2:1.8.7-1+b1) ... Setting up libibverbs1:arm64 (50.0-2+b1) ... Setting up fontconfig (2.15.0-1.1) ... Regenerating fonts cache... done. Setting up libavif16:arm64 (1.0.4-3) ... Setting up libdrm-nouveau2:arm64 (2.4.120-2) ... Setting up libzmq5:arm64 (4.3.5-1+b2) ... Setting up libpython3.12-stdlib:arm64 (3.12.3-1) ... Setting up libxpm4:arm64 (1:3.5.17-1+b1) ... Setting up libxrender1:arm64 (1:0.9.10-1.1+b1) ... Setting up libcurl4t64:arm64 (8.7.1-5) ... Setting up libtirpc3t64:arm64 (1.3.4+ds-1.3) ... Setting up libgbm1:arm64 (24.0.7-1) ... Setting up ibverbs-providers:arm64 (50.0-2+b1) ... Setting up libogdi4.1:arm64 (4.1.1+ds-4) ... Setting up libdrm-radeon1:arm64 (2.4.120-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpython3.11-stdlib:arm64 (3.11.9-1) ... Setting up python3.12 (3.12.3-1) ... Setting up libpango-1.0-0:arm64 (1.52.2+ds-1) ... Setting up libgl1-mesa-dri:arm64 (24.0.7-1) ... Setting up libpq5:arm64 (16.3-1) ... Setting up libcurl3t64-gnutls:arm64 (8.7.1-5) ... Setting up libxext6:arm64 (2:1.3.4-1+b1) ... Setting up libgstreamer-plugins-base1.0-0:arm64 (1.24.3-1) ... Setting up libtbb12:arm64 (2021.11.0-2) ... Setting up libkmlengine1t64:arm64 (1.3.0-12) ... Setting up libxerces-c3.2t64:arm64 (3.2.4+debian-1.3) ... Setting up man-db (2.12.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libcairo2:arm64 (1.18.0-3+b1) ... Setting up libxxf86vm1:arm64 (1:1.1.4-1+b2) ... Setting up libxnvctrl0:arm64 (535.171.04-1) ... Setting up libpoppler126t64:arm64 (22.12.0-2.2+b1) ... Setting up libqt5core5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Setting up libegl-mesa0:arm64 (24.0.7-1) ... Setting up libcfitsio10t64:arm64 (4.3.1-1.1+b1) ... Setting up libxfixes3:arm64 (1:6.0.0-2+b1) ... Setting up libtesseract5:arm64 (5.3.4-1.1+b1) ... Setting up libvdpau1:arm64 (1.5-2+b1) ... Setting up libtheora0:arm64 (1.1.1+dfsg.1-16.1+b2) ... Setting up libegl1:arm64 (1.7.0-1+b1) ... Setting up librdmacm1t64:arm64 (50.0-2+b1) ... Setting up libcairo-gobject2:arm64 (1.18.0-3+b1) ... Setting up libpangoft2-1.0-0:arm64 (1.52.2+ds-1) ... Setting up libhdf5-103-1t64:arm64 (1.10.10+repack-3.3) ... Setting up libva-x11-2:arm64 (2.21.0-1) ... Setting up libhsakmt1:arm64 (5.7.0-1) ... Setting up libpangocairo-1.0-0:arm64 (1.52.2+ds-1) ... Setting up libpython3-stdlib:arm64 (3.11.8-1) ... Setting up libfabric1:arm64 (1.17.0-3+b1) ... Setting up libhdf5-hl-100t64:arm64 (1.10.10+repack-3.3) ... Setting up python3.11 (3.11.9-1) ... Setting up libnetcdf19t64:arm64 (1:4.9.2-6) ... Setting up libqt5dbus5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Setting up libglx-mesa0:arm64 (24.0.7-1) ... Setting up libglx0:arm64 (1.7.0-1+b1) ... Setting up libproj25:arm64 (9.4.0-1+b1) ... Setting up libqt5network5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Setting up debhelper (13.15.3) ... Setting up libavutil58:arm64 (7:6.1.1-4+b1) ... Setting up python3 (3.11.8-1) ... Setting up python3-sortedcontainers (2.4.0-2) ... Setting up libqt5test5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Setting up libhwloc-plugins:arm64 (2.10.0-1+b1) ... Setting up python3-markupsafe (2.1.5-1) ... Setting up python3-psutil (5.9.8-2) ... Setting up libgeotiff5:arm64 (1.7.1-5+b1) ... Setting up librsvg2-2:arm64 (2.58.0+dfsg-1) ... Setting up python3-six (1.16.0-6) ... Setting up python3-jinja2 (3.1.3-1) ... Setting up python3-packaging (24.0-1) ... Setting up libgl1:arm64 (1.7.0-1+b1) ... Setting up python3-certifi (2023.11.17-1) ... Setting up libswresample4:arm64 (7:6.1.1-4+b1) ... Setting up python3-idna (3.6-2) ... Setting up python3-typing-extensions (4.10.0-1) ... Setting up libpmix2t64:arm64 (5.0.2-3) ... Setting up python3-urllib3 (1.26.18-2) ... Setting up python3-pluggy (1.5.0-1) ... Setting up libavcodec60:arm64 (7:6.1.1-4+b1) ... Setting up libhsa-runtime64-1 (5.7.1-2) ... Setting up python3-dateutil (2.9.0-2) ... Setting up python3-mpmath (1.3.0-1) ... Setting up python3-lib2to3 (3.12.3-1) ... Setting up libopencv-core406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libswscale7:arm64 (7:6.1.1-4+b1) ... Setting up libspatialite8t64:arm64 (5.1.0-3+b1) ... Setting up python3-pkg-resources (68.1.2-2) ... Setting up python3-distutils (3.12.3-1) ... python3.12: can't get files for byte-compilation Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-sympy (1.12-7) ... Setting up python3-attr (23.2.0-2) ... Setting up python3-filelock (3.14.0-1) ... Setting up python3-astunparse (1.6.3-2) ... Setting up python3-setuptools (68.1.2-2) ... Setting up python3-charset-normalizer (3.3.2-1) ... Setting up python3-pytest (8.1.2-1) ... Setting up python3-hypothesis (6.100.7-1) ... Setting up python3-fsspec (2024.3.1-1) ... Setting up python3-all (3.11.8-1) ... Setting up python3-yaml (6.0.1-2) ... Setting up libopencv-flann406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libavformat60:arm64 (7:6.1.1-4+b1) ... Setting up python3-networkx (3.2.1-4) ... Setting up libqt5gui5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Setting up libopencv-ml406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up python3-chardet (5.2.0+dfsg-1) ... Setting up libamdhip64-5 (5.7.1-3) ... Setting up python3-requests (2.31.0+dfsg-1) ... Setting up libopencv-imgproc406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up python3-numpy (1:1.26.4+ds-8) ... Setting up python3-expecttest (0.1.5-1) ... Setting up dh-python (6.20240422) ... Setting up libucx0:arm64 (1.16.0+ds-5) ... Setting up libopencv-dnn406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libqt5widgets5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Setting up libopencv-features2d406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libopenmpi3t64:arm64 (4.1.6-13.3) ... Setting up libqt5opengl5t64:arm64 (5.15.10+dfsg-7.2+b1) ... Setting up libopencv-calib3d406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libopencv-video406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libgloo0 (0.0~git20230519.597accf-2+b2) ... Setting up libopencv-highgui406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libopencv-objdetect406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libheif1:arm64 (1.17.6-1+b2) ... Setting up libgdal34t64:arm64 (3.8.5+dfsg-1) ... Setting up libgd3:arm64 (2.3.3-9+b3) ... Setting up libheif-plugin-dav1d:arm64 (1.17.6-1+b2) ... Setting up libheif-plugin-libde265:arm64 (1.17.6-1+b2) ... Setting up libopencv-imgcodecs406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libopencv-contrib406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libgphoto2-6t64:arm64 (2.5.31-2.1+b1) ... No diversion 'diversion of /lib/udev/hwdb.d/20-libgphoto2-6.hwdb to /lib/udev/hwdb.d/20-libgphoto2-6.hwdb.usr-is-merged by usr-is-merged', none removed. No diversion 'diversion of /lib/udev/rules.d/60-libgphoto2-6.rules to /lib/udev/rules.d/60-libgphoto2-6.rules.usr-is-merged by usr-is-merged', none removed. Setting up libopencv-videoio406t64:arm64 (4.6.0+dfsg-13.1+b2) ... Setting up libtorch2.1:arm64 (2.1.2+dfsg-4) ... Setting up libtorch-test (2.1.2+dfsg-4) ... Setting up python3-torch (2.1.2+dfsg-4) ... Processing triggers for libc-bin (2.38-11) ... Processing triggers for ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/python-array-api-compat-1.4/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../python-array-api-compat_1.4-1_source.changes dpkg-buildpackage: info: source package python-array-api-compat dpkg-buildpackage: info: source version 1.4-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Andreas Tille dpkg-source --before-build . dpkg-buildpackage: info: host architecture arm64 debian/rules clean dh clean --with python3 --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:311: python3.12 setup.py clean running clean removing '/build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build' (and everything under it) 'build/bdist.linux-aarch64' does not exist -- can't clean it 'build/scripts-3.12' does not exist -- can't clean it I: pybuild base:311: python3.11 setup.py clean running clean removing '/build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build' (and everything under it) 'build/bdist.linux-aarch64' does not exist -- can't clean it 'build/scripts-3.11' does not exist -- can't clean it dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --with python3 --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild I: pybuild base:311: python3.12 setup.py config running config I: pybuild base:311: python3.11 setup.py config running config dh_auto_build -O--buildsystem=pybuild I: pybuild base:311: /usr/bin/python3.12 setup.py build running build running build_py creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat copying array_api_compat/_internal.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat copying array_api_compat/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/torch copying array_api_compat/torch/linalg.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/torch copying array_api_compat/torch/_aliases.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/torch copying array_api_compat/torch/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/torch creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/numpy copying array_api_compat/numpy/linalg.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/numpy copying array_api_compat/numpy/_typing.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/numpy copying array_api_compat/numpy/_aliases.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/numpy copying array_api_compat/numpy/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/numpy creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/cupy copying array_api_compat/cupy/linalg.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/cupy copying array_api_compat/cupy/_typing.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/cupy copying array_api_compat/cupy/_aliases.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/cupy copying array_api_compat/cupy/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/cupy creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/common copying array_api_compat/common/_typing.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/common copying array_api_compat/common/_linalg.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/common copying array_api_compat/common/_helpers.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/common copying array_api_compat/common/_aliases.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/common copying array_api_compat/common/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build/array_api_compat/common I: pybuild base:311: /usr/bin/python3 setup.py build running build running build_py creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat copying array_api_compat/_internal.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat copying array_api_compat/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/torch copying array_api_compat/torch/linalg.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/torch copying array_api_compat/torch/_aliases.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/torch copying array_api_compat/torch/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/torch creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/numpy copying array_api_compat/numpy/linalg.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/numpy copying array_api_compat/numpy/_typing.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/numpy copying array_api_compat/numpy/_aliases.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/numpy copying array_api_compat/numpy/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/numpy creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/cupy copying array_api_compat/cupy/linalg.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/cupy copying array_api_compat/cupy/_typing.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/cupy copying array_api_compat/cupy/_aliases.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/cupy copying array_api_compat/cupy/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/cupy creating /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/common copying array_api_compat/common/_typing.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/common copying array_api_compat/common/_linalg.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/common copying array_api_compat/common/_helpers.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/common copying array_api_compat/common/_aliases.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/common copying array_api_compat/common/__init__.py -> /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build/array_api_compat/common dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build; python3.12 -m pytest --ignore tests/test_vendoring.py ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.5.0 rootdir: /build/reproducible-path/python-array-api-compat-1.4 plugins: hypothesis-6.100.7 collected 27 items tests/test_array_namespace.py s.Fs.F.F. [ 33%] tests/test_common.py s.F [ 44%] tests/test_isdtype.py s.Fs.Fs.Fs.Fs.F [100%] =================================== FAILURES =================================== _______________________ test_array_namespace[None-torch] _______________________ library = 'torch', api_version = None @pytest.mark.parametrize("library", ["cupy", "numpy", "torch"]) @pytest.mark.parametrize("api_version", [None, '2021.12']) def test_array_namespace(library, api_version): > lib = import_(library) tests/test_array_namespace.py:12: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/_helpers.py:8: in import_ return import_module(library) /usr/lib/python3.12/importlib/__init__.py:90: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1387: in _gcd_import ??? :1360: in _find_and_load ??? :1331: in _find_and_load_unlocked ??? :935: in _load_unlocked ??? :995: in exec_module ??? :488: in _call_with_frames_removed ??? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError _____________________ test_array_namespace[2021.12-torch] ______________________ library = 'torch', api_version = '2021.12' @pytest.mark.parametrize("library", ["cupy", "numpy", "torch"]) @pytest.mark.parametrize("api_version", [None, '2021.12']) def test_array_namespace(library, api_version): > lib = import_(library) tests/test_array_namespace.py:12: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/_helpers.py:8: in import_ return import_module(library) /usr/lib/python3.12/importlib/__init__.py:90: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1387: in _gcd_import ??? :1360: in _find_and_load ??? :1331: in _find_and_load_unlocked ??? :935: in _load_unlocked ??? :995: in exec_module ??? :488: in _call_with_frames_removed ??? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError _________________________ test_array_namespace_errors __________________________ def test_array_namespace_errors(): pytest.raises(TypeError, lambda: array_namespace([1])) pytest.raises(TypeError, lambda: array_namespace()) import numpy as np > import torch tests/test_array_namespace.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError __________________________ test_to_device_host[torch] __________________________ library = 'torch' @pytest.mark.parametrize("library", ["cupy", "numpy", "torch"]) def test_to_device_host(library): # different libraries have different semantics # for DtoH transfers; ensure that we support a portable # shim for common array libs # see: https://github.com/scipy/scipy/issues/18286#issuecomment-1527552919 > xp = import_('array_api_compat.' + library) tests/test_common.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/_helpers.py:8: in import_ return import_module(library) /usr/lib/python3.12/importlib/__init__.py:90: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1387: in _gcd_import ??? :1360: in _find_and_load ??? :1331: in _find_and_load_unlocked ??? :935: in _load_unlocked ??? :995: in exec_module ??? :488: in _call_with_frames_removed ??? array_api_compat/torch/__init__.py:1: in from torch import * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError _______________________ test_isdtype_spec_dtypes[torch] ________________________ library = 'torch' @pytest.mark.parametrize("library", ["cupy", "numpy", "torch"]) def test_isdtype_spec_dtypes(library): > xp = import_('array_api_compat.' + library) tests/test_isdtype.py:69: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/_helpers.py:8: in import_ return import_module(library) /usr/lib/python3.12/importlib/__init__.py:90: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1387: in _gcd_import ??? :1360: in _find_and_load ??? :1331: in _find_and_load_unlocked ??? :935: in _load_unlocked ??? :995: in exec_module ??? :488: in _call_with_frames_removed ??? array_api_compat/torch/__init__.py:1: in from torch import * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError ________________ test_isdtype_additional_dtypes[float16-torch] _________________ library = 'torch', dtype_ = 'float16' @pytest.mark.parametrize("library", ["cupy", "numpy", "torch"]) @pytest.mark.parametrize("dtype_", additional_dtypes) def test_isdtype_additional_dtypes(library, dtype_): > xp = import_('array_api_compat.' + library) tests/test_isdtype.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/_helpers.py:8: in import_ return import_module(library) /usr/lib/python3.12/importlib/__init__.py:90: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1387: in _gcd_import ??? :1360: in _find_and_load ??? :1331: in _find_and_load_unlocked ??? :935: in _load_unlocked ??? :995: in exec_module ??? :488: in _call_with_frames_removed ??? array_api_compat/torch/__init__.py:1: in from torch import * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError ________________ test_isdtype_additional_dtypes[float128-torch] ________________ library = 'torch', dtype_ = 'float128' @pytest.mark.parametrize("library", ["cupy", "numpy", "torch"]) @pytest.mark.parametrize("dtype_", additional_dtypes) def test_isdtype_additional_dtypes(library, dtype_): > xp = import_('array_api_compat.' + library) tests/test_isdtype.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/_helpers.py:8: in import_ return import_module(library) /usr/lib/python3.12/importlib/__init__.py:90: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1387: in _gcd_import ??? :1360: in _find_and_load ??? :1331: in _find_and_load_unlocked ??? :935: in _load_unlocked ??? :995: in exec_module ??? :488: in _call_with_frames_removed ??? array_api_compat/torch/__init__.py:1: in from torch import * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError _______________ test_isdtype_additional_dtypes[complex256-torch] _______________ library = 'torch', dtype_ = 'complex256' @pytest.mark.parametrize("library", ["cupy", "numpy", "torch"]) @pytest.mark.parametrize("dtype_", additional_dtypes) def test_isdtype_additional_dtypes(library, dtype_): > xp = import_('array_api_compat.' + library) tests/test_isdtype.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/_helpers.py:8: in import_ return import_module(library) /usr/lib/python3.12/importlib/__init__.py:90: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1387: in _gcd_import ??? :1360: in _find_and_load ??? :1331: in _find_and_load_unlocked ??? :935: in _load_unlocked ??? :995: in exec_module ??? :488: in _call_with_frames_removed ??? array_api_compat/torch/__init__.py:1: in from torch import * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError ________________ test_isdtype_additional_dtypes[bfloat16-torch] ________________ library = 'torch', dtype_ = 'bfloat16' @pytest.mark.parametrize("library", ["cupy", "numpy", "torch"]) @pytest.mark.parametrize("dtype_", additional_dtypes) def test_isdtype_additional_dtypes(library, dtype_): > xp = import_('array_api_compat.' + library) tests/test_isdtype.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/_helpers.py:8: in import_ return import_module(library) /usr/lib/python3.12/importlib/__init__.py:90: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1387: in _gcd_import ??? :1360: in _find_and_load ??? :1331: in _find_and_load_unlocked ??? :935: in _load_unlocked ??? :995: in exec_module ??? :488: in _call_with_frames_removed ??? array_api_compat/torch/__init__.py:1: in from torch import * _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ r""" The torch package contains data structures for multi-dimensional tensors and defines mathematical operations over these tensors. Additionally, it provides many utilities for efficient serialization of Tensors and arbitrary types, and other useful utilities. It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0. """ import math import os import sys import platform import textwrap import ctypes import inspect # multipy/deploy is setting this import before importing torch, this is the most # reliable way we have to detect if we're running within deploy. # https://github.com/pytorch/multipy/blob/d60f34ad38c371e441fe7ffdb77a3c3dda5a5d19/multipy/runtime/interpreter/interpreter_impl.cpp#L134-L137 def _running_with_deploy(): return sys.modules.get("torch._meta_registrations", None) is object from ._utils import _import_dotted_name, classproperty from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \ USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS # TODO(torch_deploy) figure out how to freeze version.py in fbcode build if _running_with_deploy(): __version__ = "torch-deploy-1.8" else: from .torch_version import __version__ as __version__ from typing import Any, Callable, Dict, Optional, Set, Tuple, Type, TYPE_CHECKING, Union, List import builtins __all__ = [ 'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type', 'set_default_device', 'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed', 'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul', 'no_grad', 'enable_grad', 'rand', 'randn', 'inference_mode', 'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage', 'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage', 'TypedStorage', 'UntypedStorage', 'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor', 'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor', 'lobpcg', 'use_deterministic_algorithms', 'are_deterministic_algorithms_enabled', 'is_deterministic_algorithms_warn_only_enabled', 'set_deterministic_debug_mode', 'get_deterministic_debug_mode', 'set_float32_matmul_precision', 'get_float32_matmul_precision', 'set_warn_always', 'is_warn_always_enabled', 'SymInt', 'SymFloat', 'SymBool', 'sym_not', 'sym_int', 'sym_float', 'sym_max', 'sym_min', 'compile', 'vmap', 'export', ] ################################################################################ # Load the extension module ################################################################################ if sys.platform == 'win32': pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files') py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin') th_dll_path = os.path.join(os.path.dirname(__file__), 'lib') # When users create a virtualenv that inherits the base environment, # we will need to add the corresponding library directory into # DLL search directories. Otherwise, it will rely on `PATH` which # is dependent on user settings. if sys.exec_prefix != sys.base_exec_prefix: base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin') else: base_py_dll_path = '' dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path])) if all(not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths): nvtoolsext_dll_path = os.path.join( os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64') else: nvtoolsext_dll_path = '' from .version import cuda as cuda_version import glob if cuda_version and all(not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths): cuda_version_1 = cuda_version.replace('.', '_') cuda_path_var = 'CUDA_PATH_V' + cuda_version_1 default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version) cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin') else: cuda_path = '' dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path])) kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True) with_load_library_flags = hasattr(kernel32, 'AddDllDirectory') prev_error_mode = kernel32.SetErrorMode(0x0001) kernel32.LoadLibraryW.restype = ctypes.c_void_p if with_load_library_flags: kernel32.LoadLibraryExW.restype = ctypes.c_void_p for dll_path in dll_paths: os.add_dll_directory(dll_path) try: ctypes.CDLL('vcruntime140.dll') ctypes.CDLL('msvcp140.dll') ctypes.CDLL('vcruntime140_1.dll') except OSError: print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure. It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''') dlls = glob.glob(os.path.join(th_dll_path, '*.dll')) path_patched = False for dll in dlls: is_loaded = False if with_load_library_flags: res = kernel32.LoadLibraryExW(dll, None, 0x00001100) last_error = ctypes.get_last_error() if res is None and last_error != 126: err = ctypes.WinError(last_error) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err elif res is not None: is_loaded = True if not is_loaded: if not path_patched: os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']]) path_patched = True res = kernel32.LoadLibraryW(dll) if res is None: err = ctypes.WinError(ctypes.get_last_error()) err.strerror += f' Error loading "{dll}" or one of its dependencies.' raise err kernel32.SetErrorMode(prev_error_mode) def _preload_cuda_deps(lib_folder, lib_name): """Preloads cuda deps if they could not be found otherwise.""" # Should only be called on Linux if default path resolution have failed assert platform.system() == 'Linux', 'Should only be called on Linux' import glob lib_path = None for path in sys.path: nvidia_path = os.path.join(path, 'nvidia') if not os.path.exists(nvidia_path): continue candidate_lib_paths = glob.glob(os.path.join(nvidia_path, lib_folder, 'lib', lib_name)) if candidate_lib_paths and not lib_path: lib_path = candidate_lib_paths[0] if lib_path: break if not lib_path: raise ValueError(f"{lib_name} not found in the system path {sys.path}") ctypes.CDLL(lib_path) # See Note [Global dependencies] def _load_global_deps() -> None: if _running_with_deploy() or platform.system() == 'Windows': return lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so') here = os.path.abspath(__file__) lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name) try: ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) except OSError as err: # Can only happen for wheel with cuda libs as PYPI deps # As PyTorch is not purelib, but nvidia-*-cu12 is cuda_libs: Dict[str, str] = { 'cublas': 'libcublas.so.*[0-9]', 'cudnn': 'libcudnn.so.*[0-9]', 'cuda_nvrtc': 'libnvrtc.so.*[0-9]', 'cuda_runtime': 'libcudart.so.*[0-9]', 'cuda_cupti': 'libcupti.so.*[0-9]', 'cufft': 'libcufft.so.*[0-9]', 'curand': 'libcurand.so.*[0-9]', 'cusolver': 'libcusolver.so.*[0-9]', 'cusparse': 'libcusparse.so.*[0-9]', 'nccl': 'libnccl.so.*[0-9]', 'nvtx': 'libnvToolsExt.so.*[0-9]', } is_cuda_lib_err = [lib for lib in cuda_libs.values() if(lib.split('.')[0] in err.args[0])] if not is_cuda_lib_err: raise err for lib_folder, lib_name in cuda_libs.items(): _preload_cuda_deps(lib_folder, lib_name) ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL) if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \ (_running_with_deploy() or platform.system() != 'Windows'): # Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a # few circumstances: # # 1. You're in a build environment (e.g., fbcode) where # libtorch_global_deps is not available, but you still need # to get mkl to link in with RTLD_GLOBAL or it will just # not work. # # 2. You're trying to run PyTorch under UBSAN and you need # to ensure that only one copy of libtorch is loaded, so # vptr checks work properly # # If you're using this setting, you must verify that all the libraries # you load consistently use the same libstdc++, or you may have # mysterious segfaults. # old_flags = sys.getdlopenflags() sys.setdlopenflags(os.RTLD_GLOBAL | os.RTLD_LAZY) from torch._C import * # noqa: F403 sys.setdlopenflags(old_flags) del old_flags else: # Easy way. You want this most of the time, because it will prevent # C++ symbols from libtorch clobbering C++ symbols from other # libraries, leading to mysterious segfaults. # # If building in an environment where libtorch_global_deps isn't available # like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will # want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False # # See Note [Global dependencies] if USE_GLOBAL_DEPS: _load_global_deps() from torch._C import * # noqa: F403 # Appease the type checker; ordinarily this binding is inserted by the # torch._C module initialization code in C if TYPE_CHECKING: import torch._C as _C class SymInt: """ Like an int (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return builtins.bool(self != 0) def __int__(self): return self.node.int_() def __index__(self): return self.node.int_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_float__(self): raise AssertionError("type stub not overridden") def __repr__(self): return str(self.node) class SymFloat: """ Like an float (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() # Magic methods installed by torch.fx.experimental.symbolic_shapes def __eq__(self, other: object) -> builtins.bool: raise AssertionError("type stub not overridden") def __lt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __gt__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __le__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __ge__(self, other) -> builtins.bool: raise AssertionError("type stub not overridden") def __sym_max__(self, other): raise AssertionError("type stub not overridden") def __sym_min__(self, other): raise AssertionError("type stub not overridden") def __sym_int__(self): raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() class SymBool: """ Like an bool (including magic methods), but redirects all operations on the wrapped node. This is used in particular to symbolically record operations in the symbolic shape workflow. Unlike regular bools, regular boolean operators will force extra guards instead of symbolically evaluate. Use the bitwise operators instead to handle this. """ def __init__(self, node): # This field MUST be named node; C++ binding code assumes that this # class has a field named node that stores SymNode self.node = node def __bool__(self): return self.node.bool_() def __int__(self): return builtins.int(self.node.bool_()) # Magic methods installed by torch.fx.experimental.symbolic_shapes def __and__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") def __or__(self, other) -> "SymBool": raise AssertionError("type stub not overridden") # We very carefully define __sym_not__, and not a number of other # plausible alternatives: # # - We do not override __not__ because this is not a real magic # method; you cannot override the meaning of the not builtin in # Python. We use the name 'sym_not' to clarify that in user code you # cannot use the builtin not or operator.not_ or operator.__not__ and # hit this magic method; you must use our custom sym_not operator. # # - We do not override the __invert__ method because SymBool is # meant to be usable in situations where bool is expected. However, # bitwise negation ~a does the wrong thing with booleans (because # bool is a subclass of int, so ~1 = -2 which is not falseish.) # This would be a giant footgun, so we get around it by defining # our own operator. Note that bitwise and/or do the right thing, # so we reuse the conventional operators there for readability. # def __sym_not__(self) -> "SymBool": raise AssertionError("type stub not overridden") def __repr__(self): return self.node.str() def sym_not(a): r""" SymInt-aware utility for logical negation. Args: a (SymBool or bool): Object to negate """ if hasattr(a, '__sym_not__'): return a.__sym_not__() return not a def sym_float(a): r""" SymInt-aware utility for float casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymFloat): return a elif hasattr(a, '__sym_float__'): return a.__sym_float__() return py_float(a) # type: ignore[operator] def sym_int(a): r""" SymInt-aware utility for int casting. Args: a (SymInt, SymFloat, or object): Object to cast """ if isinstance(a, SymInt): return a elif isinstance(a, SymFloat): return math.floor(a) if a >= 0 else math.ceil(a) # type: ignore[arg-type, call-overload] return py_int(a) # type: ignore[operator] def sym_max(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_max__(b) elif isinstance(b, (SymInt, SymFloat)): # NB: If you actually care about preserving output type exactly # if you do something like max(0, 0.0), it is NOT sound to treat # min/max as commutative return b.__sym_max__(a) return builtins.max(a, b) # type: ignore[operator] def sym_min(a, b): """ SymInt-aware utility for max().""" if isinstance(a, (SymInt, SymFloat)): return a.__sym_min__(b) elif isinstance(b, (SymInt, SymFloat)): return b.__sym_min__(a) return builtins.min(a, b) # type: ignore[operator] # Check to see if we can load C extensions, and if not provide some guidance # on what the problem might be. try: # _initExtension is chosen (arbitrarily) as a sentinel. from torch._C import _initExtension except ImportError: import torch._C as _C_for_compiled_check # The __file__ check only works for Python 3.7 and above. if _C_for_compiled_check.__file__ is None: > raise ImportError(textwrap.dedent(''' Failed to load PyTorch C extensions: It appears that PyTorch has loaded the `torch/_C` folder of the PyTorch repository rather than the C extensions which are expected in the `torch._C` namespace. This can occur when using the `install` workflow. e.g. $ python setup.py install && python -c "import torch" This error can generally be solved using the `develop` workflow $ python setup.py develop && python -c "import torch" # This should succeed or by running Python from a different directory. ''').strip()) from None E ImportError: Failed to load PyTorch C extensions: E It appears that PyTorch has loaded the `torch/_C` folder E of the PyTorch repository rather than the C extensions which E are expected in the `torch._C` namespace. This can occur when E using the `install` workflow. e.g. E $ python setup.py install && python -c "import torch" E E This error can generally be solved using the `develop` workflow E $ python setup.py develop && python -c "import torch" # This should succeed E or by running Python from a different directory. /usr/lib/python3/dist-packages/torch/__init__.py:451: ImportError =========================== short test summary info ============================ FAILED tests/test_array_namespace.py::test_array_namespace[None-torch] - Impo... FAILED tests/test_array_namespace.py::test_array_namespace[2021.12-torch] - I... FAILED tests/test_array_namespace.py::test_array_namespace_errors - ImportErr... FAILED tests/test_common.py::test_to_device_host[torch] - ImportError: Failed... FAILED tests/test_isdtype.py::test_isdtype_spec_dtypes[torch] - ImportError: ... FAILED tests/test_isdtype.py::test_isdtype_additional_dtypes[float16-torch] FAILED tests/test_isdtype.py::test_isdtype_additional_dtypes[float128-torch] FAILED tests/test_isdtype.py::test_isdtype_additional_dtypes[complex256-torch] FAILED tests/test_isdtype.py::test_isdtype_additional_dtypes[bfloat16-torch] =================== 9 failed, 10 passed, 8 skipped in 1.26s ==================== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.12_array_api_compat/build; python3.12 -m pytest --ignore tests/test_vendoring.py I: pybuild base:311: cd /build/reproducible-path/python-array-api-compat-1.4/.pybuild/cpython3_3.11_array_api_compat/build; python3.11 -m pytest --ignore tests/test_vendoring.py ============================= test session starts ============================== platform linux -- Python 3.11.9, pytest-8.1.2, pluggy-1.5.0 rootdir: /build/reproducible-path/python-array-api-compat-1.4 plugins: hypothesis-6.100.7 collected 27 items tests/test_array_namespace.py s..s..... [ 33%] tests/test_common.py s.. [ 44%] tests/test_isdtype.py s..s..s..s..s.. [100%] ======================== 19 passed, 8 skipped in 2.95s ========================= dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 3.11" returned exit code 13 make: *** [debian/rules:9: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 I: copying local configuration E: Failed autobuilding of package I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/1278330 and its subdirectories Mon May 13 11:45:50 UTC 2024 W: No second build log, what happened?