Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add linux aarch64 wheel #2103

Closed
wants to merge 6 commits into from

Conversation

mayeut
Copy link
Contributor

@mayeut mayeut commented May 7, 2022

Summary

Description

Build Linux aarch64 wheels.
Linux aarch64 downloads now represents around 8% of downloads. Having binary wheels will help users to install psutil as can be seen in multiple issues.

pypinfo --percent psutil system cpu 
Served from cache: False
Data processed: 1.93 GiB
Data billed: 1.93 GiB
Estimated cost: $0.01

| system_name | cpu     | percent | download_count |
| ----------- | ------- | ------- | -------------- |
| Linux       |  x86_64 |  84.76% |     39,403,724 |
| Linux       | aarch64 |   8.33% |      3,872,566 |
| Windows     |   AMD64 |   5.53% |      2,570,873 |
| Darwin      |  x86_64 |   1.12% |        519,017 |
| Darwin      |   arm64 |   0.12% |         54,917 |
| Linux       |  armv7l |   0.06% |         27,417 |
| Windows     |     x86 |   0.05% |         22,328 |
| Linux       |    None |   0.02% |          8,005 |
| FreeBSD     |   amd64 |   0.02% |          7,841 |
| OS/390      |   2,964 |   0.01% |          3,566 |
| Total       |         |         |     46,490,254 |

This PR builds on top of #2102 :
Use Limited API when building with CPython 3.6+ on Linux/macOS/Windows.
This allows to use pre-built wheels in all future versions of CPython 3.
Windows builds for CPython 3.6+ are moved from AppVeyor to GitHub Actions.

This PR builds on top of #2040 :
Updates the build workflow to use the latest cibuildwheel as a GitHub Action and adds a universal2 wheel for macOS.
cibuildwheel configuration is now in its own file (as there's no pyproject.toml yet).

Diff of wheels produced:

+psutil-5.9.1-cp27-cp27m-macosx_10_9_x86_64.whl
 psutil-5.9.1-cp27-cp27m-manylinux2010_i686.whl
 psutil-5.9.1-cp27-cp27m-manylinux2010_x86_64.whl
 psutil-5.9.1-cp27-cp27m-win_amd64.whl
 psutil-5.9.1-cp27-cp27m-win32.whl
 psutil-5.9.1-cp27-cp27mu-manylinux2010_i686.whl
 psutil-5.9.1-cp27-cp27mu-manylinux2010_x86_64.whl
+psutil-5.9.1-cp35-cp35m-manylinux2010_i686.whl
+psutil-5.9.1-cp35-cp35m-manylinux2010_x86_64.whl
-psutil-5.9.1-cp36-cp36m-macosx_10_9_x86_64.whl
+psutil-5.9.1-cp36-abi3-macosx_10_9_x86_64.whl
+psutil-5.9.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
-psutil-5.9.1-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
+psutil-5.9.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
-psutil-5.9.1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+psutil-5.9.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-psutil-5.9.1-cp36-cp36m-win_amd64.whl
+psutil-5.9.1-cp36-abi3-win_amd64.whl
-psutil-5.9.1-cp36-cp36m-win32.whl
+psutil-5.9.1-cp36-abi3-win32.whl
-psutil-5.9.1-cp37-cp37m-macosx_10_9_x86_64.whl
-psutil-5.9.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
-psutil-5.9.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-psutil-5.9.1-cp37-cp37m-win_amd64.whl
-psutil-5.9.1-cp37-cp37m-win32.whl
-psutil-5.9.1-cp38-cp38-macosx_10_9_x86_64.whl
+psutil-5.9.1-cp38-abi3-macosx_10_9_universal2.whl
-psutil-5.9.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
-psutil-5.9.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-psutil-5.9.1-cp38-cp38-win_amd64.whl
-psutil-5.9.1-cp38-cp38-win32.whl
-psutil-5.9.1-cp39-cp39-macosx_10_9_x86_64.whl
-psutil-5.9.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
-psutil-5.9.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-psutil-5.9.1-cp39-cp39-win_amd64.whl
-psutil-5.9.1-cp39-cp39-win32.whl
-psutil-5.9.1-cp310-cp310-macosx_10_9_x86_64.whl
-psutil-5.9.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
-psutil-5.9.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
-psutil-5.9.1-cp310-cp310-win_amd64.whl
-psutil-5.9.1-cp310-cp310-win32.whl

@ddelange
Copy link

ddelange commented May 30, 2022

@mayeut is the failing test a flaky one which can be re-run, or does this PR need another fix before @giampaolo can review?

awesome work btw 🙏

oh and I think mitigates won't actually close the linked issues in the PR description ref (or is this intentional?)

@mayeut
Copy link
Contributor Author

mayeut commented Jun 4, 2022

@mayeut is the failing test a flaky one which can be re-run, or does this PR need another fix before @giampaolo can review?

It was a flaky test. There was also another fix needed since the master branch now fails on AppVeyor.
It is ready for review.

As mentioned in #2070 (comment),
I'll gladly answer any question/remarks @giampaolo can have in all those PRs which are now (in order):

oh and I think mitigates won't actually close the linked issues in the PR description ref (or is this intentional?)

This is intentional. It won't fix those issues which are related to building from sources. Of course, people are much less likely to hit those since they would probably get a pre-built wheel unless enforcing a build from source. Hence mitigates.

@ddelange
Copy link

ddelange commented Jun 7, 2022

For people eager to test these awesome wheels in the meantime:

Using -f, --find-links or PIP_FIND_LINKS env var, pip will fetch HTML and look for any <a> and include those wheels in the installation process:

$ export PIP_FIND_LINKS='https://github.com/ddelange/psutil/releases/expanded_assets/release-5.9.1' # space separated links
$ pip install --no-cache-dir psutil==5.9.1
Collecting psutil~=5.9
  Downloading https://github.com/ddelange/psutil/releases/download/release-5.9.1/psutil-5.9.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (271 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 271.3/271.3 KB 22.2 MB/s eta 0:00:00

As this is dynamic, definitely unsafe for production. I recommend forking to have some immutability.

@ddelange
Copy link

@giampaolo could you please review this awesome contribution?

@mayeut mayeut force-pushed the abi3-linux-aarch64 branch 2 times, most recently from 19490c3 to ba013d8 Compare August 27, 2022 10:08
@mayeut

This comment was marked as outdated.

@mayeut mayeut force-pushed the abi3-linux-aarch64 branch 2 times, most recently from 4e4d7bc to ca86104 Compare September 3, 2022 12:28
@brando90
Copy link

brando90 commented Sep 8, 2022

Whats the progress for this? Seems my docker image won't compile even after installing gcc:

(base) root@5b3be73900d9:/# apt-get upgrade && apt-get install -y gcc
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package gcc
(base) root@5b3be73900d9:/# apt-get update \
  && apt-get install -y --no-install-recommends \
    ssh \
    git \
    m4 \
    libgmp-dev \
    opam \
    wget \
    ca-certificates \
    rsync \
    strace \
    gcc
Get:1 http://security.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:2 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:4 http://security.debian.org/debian-security bullseye-security/main arm64 Packages [180 kB]
Get:5 http://deb.debian.org/debian bullseye/main arm64 Packages [8069 kB]
Get:6 http://deb.debian.org/debian bullseye-updates/main arm64 Packages [2604 B]
Fetched 8460 kB in 2s (5070 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ca-certificates is already the newest version (20210119).
git is already the newest version (1:2.30.2-1).
wget is already the newest version (1.21-1+deb11u1).
The following additional packages will be installed:
  binutils binutils-aarch64-linux-gnu binutils-common bubblewrap build-essential cpp cpp-10 dpkg-dev g++ g++-10 gcc-10 libamd2 libasan6 libatomic1
  libbinutils libc-dev-bin libc6-dev libcap2 libcc1-0 libcolamd2 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libgcc-10-dev libglpk40 libgmpxx4ldbl
  libgomp1 libisl23 libitm1 liblsan0 libltdl7 libmpc3 libmpfr6 libnsl-dev libpopt0 libsigsegv2 libstdc++-10-dev libsuitesparseconfig5 libtirpc-common
  libtirpc-dev libtirpc3 libtsan0 libubsan1 libwrap0 linux-libc-dev make opam-doc opam-installer openssh-client openssh-server openssh-sftp-server
  patch runit-helper unzip xz-utils
Suggested packages:
  binutils-doc cpp-doc gcc-10-locales debian-keyring gcc-10-doc gcc-multilib manpages-dev autoconf automake libtool flex bison gdb gcc-doc glibc-doc
  gnupg bzr libiodbc2-dev default-libmysqlclient-dev gmp-doc libgmp10-doc libmpfr-dev libstdc++-10-doc m4-doc make-doc keychain libpam-ssh
  monkeysphere ssh-askpass molly-guard ufw ed diffutils-doc zip
Recommended packages:
  fakeroot gnupg libalgorithm-merge-perl manpages manpages-dev libc-devtools libfile-fcntllock-perl liblocale-gettext-perl ocaml darcs xauth
  default-logind | logind | libpam-systemd ncurses-term
The following NEW packages will be installed:
  binutils binutils-aarch64-linux-gnu binutils-common bubblewrap build-essential cpp cpp-10 dpkg-dev g++ g++-10 gcc gcc-10 libamd2 libasan6 libatomic1
  libbinutils libc-dev-bin libc6-dev libcap2 libcc1-0 libcolamd2 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libgcc-10-dev libglpk40 libgmp-dev
  libgmpxx4ldbl libgomp1 libisl23 libitm1 liblsan0 libltdl7 libmpc3 libmpfr6 libnsl-dev libpopt0 libsigsegv2 libstdc++-10-dev libsuitesparseconfig5
  libtirpc-dev libtsan0 libubsan1 libwrap0 linux-libc-dev m4 make opam opam-doc opam-installer openssh-server openssh-sftp-server patch rsync
  runit-helper ssh strace unzip xz-utils
The following packages will be upgraded:
  libtirpc-common libtirpc3 openssh-client
3 upgraded, 60 newly installed, 0 to remove and 10 not upgraded.
Need to get 65.0 MB of archives.
After this operation, 234 MB of additional disk space will be used.
Get:1 http://security.debian.org/debian-security bullseye-security/main arm64 libtirpc-common all 1.3.1-1+deb11u1 [13.5 kB]
Get:2 http://deb.debian.org/debian bullseye/main arm64 libpopt0 arm64 1.18-2 [48.8 kB]
Get:3 http://security.debian.org/debian-security bullseye-security/main arm64 libtirpc3 arm64 1.3.1-1+deb11u1 [80.2 kB]
Get:4 http://security.debian.org/debian-security bullseye-security/main arm64 linux-libc-dev arm64 5.10.136-1 [1508 kB]
Get:5 http://deb.debian.org/debian bullseye/main arm64 rsync arm64 3.2.3-4+deb11u1 [379 kB]
Get:6 http://deb.debian.org/debian bullseye/main arm64 openssh-client arm64 1:8.4p1-5+deb11u1 [893 kB]
Get:7 http://security.debian.org/debian-security bullseye-security/main arm64 libtirpc-dev arm64 1.3.1-1+deb11u1 [193 kB]
Get:8 http://security.debian.org/debian-security bullseye-security/main arm64 unzip arm64 6.0-26+deb11u1 [165 kB]
Get:9 http://deb.debian.org/debian bullseye/main arm64 openssh-sftp-server arm64 1:8.4p1-5+deb11u1 [49.6 kB]
Get:10 http://deb.debian.org/debian bullseye/main arm64 runit-helper all 2.10.3 [7808 B]
Get:11 http://deb.debian.org/debian bullseye/main arm64 libwrap0 arm64 7.6.q-31 [58.7 kB]
Get:12 http://deb.debian.org/debian bullseye/main arm64 openssh-server arm64 1:8.4p1-5+deb11u1 [361 kB]
Get:13 http://deb.debian.org/debian bullseye/main arm64 ssh all 1:8.4p1-5+deb11u1 [252 kB]
Get:14 http://deb.debian.org/debian bullseye/main arm64 xz-utils arm64 5.2.5-2.1~deb11u1 [219 kB]
Get:15 http://deb.debian.org/debian bullseye/main arm64 binutils-common arm64 2.35.2-2 [2220 kB]
Get:16 http://deb.debian.org/debian bullseye/main arm64 libbinutils arm64 2.35.2-2 [599 kB]
Get:17 http://deb.debian.org/debian bullseye/main arm64 libctf-nobfd0 arm64 2.35.2-2 [108 kB]
Get:18 http://deb.debian.org/debian bullseye/main arm64 libctf0 arm64 2.35.2-2 [51.0 kB]
Get:19 http://deb.debian.org/debian bullseye/main arm64 binutils-aarch64-linux-gnu arm64 2.35.2-2 [2472 kB]
Get:20 http://deb.debian.org/debian bullseye/main arm64 binutils arm64 2.35.2-2 [61.2 kB]
Get:21 http://deb.debian.org/debian bullseye/main arm64 libcap2 arm64 1:2.44-1 [23.2 kB]
Get:22 http://deb.debian.org/debian bullseye/main arm64 bubblewrap arm64 0.4.1-3 [41.6 kB]
Get:23 http://deb.debian.org/debian bullseye/main arm64 libc-dev-bin arm64 2.31-13+deb11u3 [272 kB]
Get:24 http://deb.debian.org/debian bullseye/main arm64 libcrypt-dev arm64 1:4.4.18-4 [108 kB]
Get:25 http://deb.debian.org/debian bullseye/main arm64 libnsl-dev arm64 1.3.0-2 [66.1 kB]
Get:26 http://deb.debian.org/debian bullseye/main arm64 libc6-dev arm64 2.31-13+deb11u3 [2031 kB]
Get:27 http://deb.debian.org/debian bullseye/main arm64 libisl23 arm64 0.23-1 [590 kB]
Get:28 http://deb.debian.org/debian bullseye/main arm64 libmpfr6 arm64 4.1.0-3 [829 kB]
Get:29 http://deb.debian.org/debian bullseye/main arm64 libmpc3 arm64 1.2.0-1 [43.2 kB]
Get:30 http://deb.debian.org/debian bullseye/main arm64 cpp-10 arm64 10.2.1-6 [7756 kB]
Get:31 http://deb.debian.org/debian bullseye/main arm64 cpp arm64 4:10.2.1-1 [19.7 kB]
Get:32 http://deb.debian.org/debian bullseye/main arm64 libcc1-0 arm64 10.2.1-6 [45.1 kB]
Get:33 http://deb.debian.org/debian bullseye/main arm64 libgomp1 arm64 10.2.1-6 [91.6 kB]
Get:34 http://deb.debian.org/debian bullseye/main arm64 libitm1 arm64 10.2.1-6 [23.8 kB]
Get:35 http://deb.debian.org/debian bullseye/main arm64 libatomic1 arm64 10.2.1-6 [9468 B]
Get:36 http://deb.debian.org/debian bullseye/main arm64 libasan6 arm64 10.2.1-6 [2002 kB]
Get:37 http://deb.debian.org/debian bullseye/main arm64 liblsan0 arm64 10.2.1-6 [794 kB]
Get:38 http://deb.debian.org/debian bullseye/main arm64 libtsan0 arm64 10.2.1-6 [1957 kB]
Get:39 http://deb.debian.org/debian bullseye/main arm64 libubsan1 arm64 10.2.1-6 [759 kB]
Get:40 http://deb.debian.org/debian bullseye/main arm64 libgcc-10-dev arm64 10.2.1-6 [876 kB]
Get:41 http://deb.debian.org/debian bullseye/main arm64 gcc-10 arm64 10.2.1-6 [15.4 MB]
Get:42 http://deb.debian.org/debian bullseye/main arm64 gcc arm64 4:10.2.1-1 [5208 B]
Get:43 http://deb.debian.org/debian bullseye/main arm64 libstdc++-10-dev arm64 10.2.1-6 [1704 kB]
Get:44 http://deb.debian.org/debian bullseye/main arm64 g++-10 arm64 10.2.1-6 [8557 kB]
Get:45 http://deb.debian.org/debian bullseye/main arm64 g++ arm64 4:10.2.1-1 [1628 B]
Get:46 http://deb.debian.org/debian bullseye/main arm64 make arm64 4.3-4.1 [391 kB]
Get:47 http://deb.debian.org/debian bullseye/main arm64 libdpkg-perl all 1.20.11 [1546 kB]
Get:48 http://deb.debian.org/debian bullseye/main arm64 patch arm64 2.7.6-7 [121 kB]
Get:49 http://deb.debian.org/debian bullseye/main arm64 dpkg-dev all 1.20.11 [2308 kB]
Get:50 http://deb.debian.org/debian bullseye/main arm64 build-essential arm64 12.9 [7704 B]
Get:51 http://deb.debian.org/debian bullseye/main arm64 libsuitesparseconfig5 arm64 1:5.8.1+dfsg-2 [22.8 kB]
Get:52 http://deb.debian.org/debian bullseye/main arm64 libamd2 arm64 1:5.8.1+dfsg-2 [33.1 kB]
Get:53 http://deb.debian.org/debian bullseye/main arm64 libcolamd2 arm64 1:5.8.1+dfsg-2 [31.0 kB]
Get:54 http://deb.debian.org/debian bullseye/main arm64 libltdl7 arm64 2.4.6-15 [390 kB]
Get:55 http://deb.debian.org/debian bullseye/main arm64 libglpk40 arm64 5.0-1 [344 kB]
Get:56 http://deb.debian.org/debian bullseye/main arm64 libgmpxx4ldbl arm64 2:6.2.1+dfsg-1+deb11u1 [337 kB]
Get:57 http://deb.debian.org/debian bullseye/main arm64 libgmp-dev arm64 2:6.2.1+dfsg-1+deb11u1 [625 kB]
Get:58 http://deb.debian.org/debian bullseye/main arm64 libsigsegv2 arm64 2.13-1 [34.7 kB]
Get:59 http://deb.debian.org/debian bullseye/main arm64 m4 arm64 1.4.18-5 [199 kB]
Get:60 http://deb.debian.org/debian bullseye/main arm64 opam-installer arm64 2.0.8-1 [1289 kB]
Get:61 http://deb.debian.org/debian bullseye/main arm64 opam-doc all 2.0.8-1 [239 kB]
Get:62 http://deb.debian.org/debian bullseye/main arm64 opam arm64 2.0.8-1 [2364 kB]
Get:63 http://deb.debian.org/debian bullseye/main arm64 strace arm64 5.10-1 [994 kB]
Fetched 65.0 MB in 5s (14.2 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libpopt0:arm64.
(Reading database ... 12440 files and directories currently installed.)
Preparing to unpack .../0-libpopt0_1.18-2_arm64.deb ...
Unpacking libpopt0:arm64 (1.18-2) ...
Selecting previously unselected package rsync.
Preparing to unpack .../1-rsync_3.2.3-4+deb11u1_arm64.deb ...
Unpacking rsync (3.2.3-4+deb11u1) ...
Preparing to unpack .../2-openssh-client_1%3a8.4p1-5+deb11u1_arm64.deb ...
Unpacking openssh-client (1:8.4p1-5+deb11u1) over (1:8.4p1-5) ...
Selecting previously unselected package openssh-sftp-server.
Preparing to unpack .../3-openssh-sftp-server_1%3a8.4p1-5+deb11u1_arm64.deb ...
Unpacking openssh-sftp-server (1:8.4p1-5+deb11u1) ...
Selecting previously unselected package runit-helper.
Preparing to unpack .../4-runit-helper_2.10.3_all.deb ...
Unpacking runit-helper (2.10.3) ...
Selecting previously unselected package libwrap0:arm64.
Preparing to unpack .../5-libwrap0_7.6.q-31_arm64.deb ...
Unpacking libwrap0:arm64 (7.6.q-31) ...
Selecting previously unselected package openssh-server.
Preparing to unpack .../6-openssh-server_1%3a8.4p1-5+deb11u1_arm64.deb ...
Unpacking openssh-server (1:8.4p1-5+deb11u1) ...
Selecting previously unselected package ssh.
Preparing to unpack .../7-ssh_1%3a8.4p1-5+deb11u1_all.deb ...
Unpacking ssh (1:8.4p1-5+deb11u1) ...
Preparing to unpack .../8-libtirpc-common_1.3.1-1+deb11u1_all.deb ...
Unpacking libtirpc-common (1.3.1-1+deb11u1) over (1.3.1-1) ...
Setting up libtirpc-common (1.3.1-1+deb11u1) ...
(Reading database ... 12585 files and directories currently installed.)
Preparing to unpack .../libtirpc3_1.3.1-1+deb11u1_arm64.deb ...
Unpacking libtirpc3:arm64 (1.3.1-1+deb11u1) over (1.3.1-1) ...
Setting up libtirpc3:arm64 (1.3.1-1+deb11u1) ...
Selecting previously unselected package xz-utils.
(Reading database ... 12585 files and directories currently installed.)
Preparing to unpack .../00-xz-utils_5.2.5-2.1~deb11u1_arm64.deb ...
Unpacking xz-utils (5.2.5-2.1~deb11u1) ...
Selecting previously unselected package binutils-common:arm64.
Preparing to unpack .../01-binutils-common_2.35.2-2_arm64.deb ...
Unpacking binutils-common:arm64 (2.35.2-2) ...
Selecting previously unselected package libbinutils:arm64.
Preparing to unpack .../02-libbinutils_2.35.2-2_arm64.deb ...
Unpacking libbinutils:arm64 (2.35.2-2) ...
Selecting previously unselected package libctf-nobfd0:arm64.
Preparing to unpack .../03-libctf-nobfd0_2.35.2-2_arm64.deb ...
Unpacking libctf-nobfd0:arm64 (2.35.2-2) ...
Selecting previously unselected package libctf0:arm64.
Preparing to unpack .../04-libctf0_2.35.2-2_arm64.deb ...
Unpacking libctf0:arm64 (2.35.2-2) ...
Selecting previously unselected package binutils-aarch64-linux-gnu.
Preparing to unpack .../05-binutils-aarch64-linux-gnu_2.35.2-2_arm64.deb ...
Unpacking binutils-aarch64-linux-gnu (2.35.2-2) ...
Selecting previously unselected package binutils.
Preparing to unpack .../06-binutils_2.35.2-2_arm64.deb ...
Unpacking binutils (2.35.2-2) ...
Selecting previously unselected package libcap2:arm64.
Preparing to unpack .../07-libcap2_1%3a2.44-1_arm64.deb ...
Unpacking libcap2:arm64 (1:2.44-1) ...
Selecting previously unselected package bubblewrap.
Preparing to unpack .../08-bubblewrap_0.4.1-3_arm64.deb ...
Unpacking bubblewrap (0.4.1-3) ...
Selecting previously unselected package libc-dev-bin.
Preparing to unpack .../09-libc-dev-bin_2.31-13+deb11u3_arm64.deb ...
Unpacking libc-dev-bin (2.31-13+deb11u3) ...
Selecting previously unselected package linux-libc-dev:arm64.
Preparing to unpack .../10-linux-libc-dev_5.10.136-1_arm64.deb ...
Unpacking linux-libc-dev:arm64 (5.10.136-1) ...
Selecting previously unselected package libcrypt-dev:arm64.
Preparing to unpack .../11-libcrypt-dev_1%3a4.4.18-4_arm64.deb ...
Unpacking libcrypt-dev:arm64 (1:4.4.18-4) ...
Selecting previously unselected package libtirpc-dev:arm64.
Preparing to unpack .../12-libtirpc-dev_1.3.1-1+deb11u1_arm64.deb ...
Unpacking libtirpc-dev:arm64 (1.3.1-1+deb11u1) ...
Selecting previously unselected package libnsl-dev:arm64.
Preparing to unpack .../13-libnsl-dev_1.3.0-2_arm64.deb ...
Unpacking libnsl-dev:arm64 (1.3.0-2) ...
Selecting previously unselected package libc6-dev:arm64.
Preparing to unpack .../14-libc6-dev_2.31-13+deb11u3_arm64.deb ...
Unpacking libc6-dev:arm64 (2.31-13+deb11u3) ...
Selecting previously unselected package libisl23:arm64.
Preparing to unpack .../15-libisl23_0.23-1_arm64.deb ...
Unpacking libisl23:arm64 (0.23-1) ...
Selecting previously unselected package libmpfr6:arm64.
Preparing to unpack .../16-libmpfr6_4.1.0-3_arm64.deb ...
Unpacking libmpfr6:arm64 (4.1.0-3) ...
Selecting previously unselected package libmpc3:arm64.
Preparing to unpack .../17-libmpc3_1.2.0-1_arm64.deb ...
Unpacking libmpc3:arm64 (1.2.0-1) ...
Selecting previously unselected package cpp-10.
Preparing to unpack .../18-cpp-10_10.2.1-6_arm64.deb ...
Unpacking cpp-10 (10.2.1-6) ...
Selecting previously unselected package cpp.
Preparing to unpack .../19-cpp_4%3a10.2.1-1_arm64.deb ...
Unpacking cpp (4:10.2.1-1) ...
Selecting previously unselected package libcc1-0:arm64.
Preparing to unpack .../20-libcc1-0_10.2.1-6_arm64.deb ...
Unpacking libcc1-0:arm64 (10.2.1-6) ...
Selecting previously unselected package libgomp1:arm64.
Preparing to unpack .../21-libgomp1_10.2.1-6_arm64.deb ...
Unpacking libgomp1:arm64 (10.2.1-6) ...
Selecting previously unselected package libitm1:arm64.
Preparing to unpack .../22-libitm1_10.2.1-6_arm64.deb ...
Unpacking libitm1:arm64 (10.2.1-6) ...
Selecting previously unselected package libatomic1:arm64.
Preparing to unpack .../23-libatomic1_10.2.1-6_arm64.deb ...
Unpacking libatomic1:arm64 (10.2.1-6) ...
Selecting previously unselected package libasan6:arm64.
Preparing to unpack .../24-libasan6_10.2.1-6_arm64.deb ...
Unpacking libasan6:arm64 (10.2.1-6) ...
Selecting previously unselected package liblsan0:arm64.
Preparing to unpack .../25-liblsan0_10.2.1-6_arm64.deb ...
Unpacking liblsan0:arm64 (10.2.1-6) ...
Selecting previously unselected package libtsan0:arm64.
Preparing to unpack .../26-libtsan0_10.2.1-6_arm64.deb ...
Unpacking libtsan0:arm64 (10.2.1-6) ...
Selecting previously unselected package libubsan1:arm64.
Preparing to unpack .../27-libubsan1_10.2.1-6_arm64.deb ...
Unpacking libubsan1:arm64 (10.2.1-6) ...
Selecting previously unselected package libgcc-10-dev:arm64.
Preparing to unpack .../28-libgcc-10-dev_10.2.1-6_arm64.deb ...
Unpacking libgcc-10-dev:arm64 (10.2.1-6) ...
Selecting previously unselected package gcc-10.
Preparing to unpack .../29-gcc-10_10.2.1-6_arm64.deb ...
Unpacking gcc-10 (10.2.1-6) ...
Selecting previously unselected package gcc.
Preparing to unpack .../30-gcc_4%3a10.2.1-1_arm64.deb ...
Unpacking gcc (4:10.2.1-1) ...
Selecting previously unselected package libstdc++-10-dev:arm64.
Preparing to unpack .../31-libstdc++-10-dev_10.2.1-6_arm64.deb ...
Unpacking libstdc++-10-dev:arm64 (10.2.1-6) ...
Selecting previously unselected package g++-10.
Preparing to unpack .../32-g++-10_10.2.1-6_arm64.deb ...
Unpacking g++-10 (10.2.1-6) ...
Selecting previously unselected package g++.
Preparing to unpack .../33-g++_4%3a10.2.1-1_arm64.deb ...
Unpacking g++ (4:10.2.1-1) ...
Selecting previously unselected package make.
Preparing to unpack .../34-make_4.3-4.1_arm64.deb ...
Unpacking make (4.3-4.1) ...
Selecting previously unselected package libdpkg-perl.
Preparing to unpack .../35-libdpkg-perl_1.20.11_all.deb ...
Unpacking libdpkg-perl (1.20.11) ...
Selecting previously unselected package patch.
Preparing to unpack .../36-patch_2.7.6-7_arm64.deb ...
Unpacking patch (2.7.6-7) ...
Selecting previously unselected package dpkg-dev.
Preparing to unpack .../37-dpkg-dev_1.20.11_all.deb ...
Unpacking dpkg-dev (1.20.11) ...
Selecting previously unselected package build-essential.
Preparing to unpack .../38-build-essential_12.9_arm64.deb ...
Unpacking build-essential (12.9) ...
Selecting previously unselected package libsuitesparseconfig5:arm64.
Preparing to unpack .../39-libsuitesparseconfig5_1%3a5.8.1+dfsg-2_arm64.deb ...
Unpacking libsuitesparseconfig5:arm64 (1:5.8.1+dfsg-2) ...
Selecting previously unselected package libamd2:arm64.
Preparing to unpack .../40-libamd2_1%3a5.8.1+dfsg-2_arm64.deb ...
Unpacking libamd2:arm64 (1:5.8.1+dfsg-2) ...
Selecting previously unselected package libcolamd2:arm64.
Preparing to unpack .../41-libcolamd2_1%3a5.8.1+dfsg-2_arm64.deb ...
Unpacking libcolamd2:arm64 (1:5.8.1+dfsg-2) ...
Selecting previously unselected package libltdl7:arm64.
Preparing to unpack .../42-libltdl7_2.4.6-15_arm64.deb ...
Unpacking libltdl7:arm64 (2.4.6-15) ...
Selecting previously unselected package libglpk40:arm64.
Preparing to unpack .../43-libglpk40_5.0-1_arm64.deb ...
Unpacking libglpk40:arm64 (5.0-1) ...
Selecting previously unselected package libgmpxx4ldbl:arm64.
Preparing to unpack .../44-libgmpxx4ldbl_2%3a6.2.1+dfsg-1+deb11u1_arm64.deb ...
Unpacking libgmpxx4ldbl:arm64 (2:6.2.1+dfsg-1+deb11u1) ...
Selecting previously unselected package libgmp-dev:arm64.
Preparing to unpack .../45-libgmp-dev_2%3a6.2.1+dfsg-1+deb11u1_arm64.deb ...
Unpacking libgmp-dev:arm64 (2:6.2.1+dfsg-1+deb11u1) ...
Selecting previously unselected package libsigsegv2:arm64.
Preparing to unpack .../46-libsigsegv2_2.13-1_arm64.deb ...
Unpacking libsigsegv2:arm64 (2.13-1) ...
Selecting previously unselected package m4.
Preparing to unpack .../47-m4_1.4.18-5_arm64.deb ...
Unpacking m4 (1.4.18-5) ...
Selecting previously unselected package opam-installer.
Preparing to unpack .../48-opam-installer_2.0.8-1_arm64.deb ...
Unpacking opam-installer (2.0.8-1) ...
Selecting previously unselected package opam-doc.
Preparing to unpack .../49-opam-doc_2.0.8-1_all.deb ...
Unpacking opam-doc (2.0.8-1) ...
Selecting previously unselected package unzip.
Preparing to unpack .../50-unzip_6.0-26+deb11u1_arm64.deb ...
Unpacking unzip (6.0-26+deb11u1) ...
Selecting previously unselected package opam.
Preparing to unpack .../51-opam_2.0.8-1_arm64.deb ...
Unpacking opam (2.0.8-1) ...
Selecting previously unselected package strace.
Preparing to unpack .../52-strace_5.10-1_arm64.deb ...
Unpacking strace (5.10-1) ...
Setting up runit-helper (2.10.3) ...
Setting up openssh-client (1:8.4p1-5+deb11u1) ...
Setting up unzip (6.0-26+deb11u1) ...
Setting up opam-doc (2.0.8-1) ...
Setting up binutils-common:arm64 (2.35.2-2) ...
Setting up linux-libc-dev:arm64 (5.10.136-1) ...
Setting up libctf-nobfd0:arm64 (2.35.2-2) ...
Setting up libgomp1:arm64 (10.2.1-6) ...
Setting up libcap2:arm64 (1:2.44-1) ...
Setting up libasan6:arm64 (10.2.1-6) ...
Setting up libtirpc-dev:arm64 (1.3.1-1+deb11u1) ...
Setting up libgmpxx4ldbl:arm64 (2:6.2.1+dfsg-1+deb11u1) ...
Setting up libwrap0:arm64 (7.6.q-31) ...
Setting up make (4.3-4.1) ...
Setting up libmpfr6:arm64 (4.1.0-3) ...
Setting up strace (5.10-1) ...
Setting up libsigsegv2:arm64 (2.13-1) ...
Setting up xz-utils (5.2.5-2.1~deb11u1) ...
update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/lzma.1.gz because associated file /usr/share/man/man1/xz.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/unlzma.1.gz because associated file /usr/share/man/man1/unxz.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzcat.1.gz because associated file /usr/share/man/man1/xzcat.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzmore.1.gz because associated file /usr/share/man/man1/xzmore.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzless.1.gz because associated file /usr/share/man/man1/xzless.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzdiff.1.gz because associated file /usr/share/man/man1/xzdiff.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzcmp.1.gz because associated file /usr/share/man/man1/xzcmp.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzgrep.1.gz because associated file /usr/share/man/man1/xzgrep.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzegrep.1.gz because associated file /usr/share/man/man1/xzegrep.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzfgrep.1.gz because associated file /usr/share/man/man1/xzfgrep.1.gz (of link group lzma) doesn't exist
Setting up libmpc3:arm64 (1.2.0-1) ...
Setting up libatomic1:arm64 (10.2.1-6) ...
Setting up patch (2.7.6-7) ...
Setting up libltdl7:arm64 (2.4.6-15) ...
Setting up libdpkg-perl (1.20.11) ...
Setting up opam-installer (2.0.8-1) ...
Setting up libubsan1:arm64 (10.2.1-6) ...
Setting up libnsl-dev:arm64 (1.3.0-2) ...
Setting up libcrypt-dev:arm64 (1:4.4.18-4) ...
Setting up libbinutils:arm64 (2.35.2-2) ...
Setting up libisl23:arm64 (0.23-1) ...
Setting up libc-dev-bin (2.31-13+deb11u3) ...
Setting up libsuitesparseconfig5:arm64 (1:5.8.1+dfsg-2) ...
Setting up libcc1-0:arm64 (10.2.1-6) ...
Setting up liblsan0:arm64 (10.2.1-6) ...
Setting up cpp-10 (10.2.1-6) ...
Setting up libitm1:arm64 (10.2.1-6) ...
Setting up libpopt0:arm64 (1.18-2) ...
Setting up libtsan0:arm64 (10.2.1-6) ...
Setting up libctf0:arm64 (2.35.2-2) ...
Setting up bubblewrap (0.4.1-3) ...
Setting up libamd2:arm64 (1:5.8.1+dfsg-2) ...
Setting up openssh-sftp-server (1:8.4p1-5+deb11u1) ...
Setting up libgmp-dev:arm64 (2:6.2.1+dfsg-1+deb11u1) ...
Setting up libcolamd2:arm64 (1:5.8.1+dfsg-2) ...
Setting up openssh-server (1:8.4p1-5+deb11u1) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline

Creating config file /etc/ssh/sshd_config with new version
Creating SSH2 RSA key; this may take some time ...
3072 SHA256:prx90yy2U32+vFgTnerMlE7cYaChXduqT/8BO6j1K8s root@5b3be73900d9 (RSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:Us2O9NVVS1yr0O7ah63YgtbBfR0of91lECuidm4V/ZA root@5b3be73900d9 (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:e7KR3B5dS5FCPMslb6yUthiucn3VUv2l9l+YYhU8Yv8 root@5b3be73900d9 (ED25519)
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
Setting up libgcc-10-dev:arm64 (10.2.1-6) ...
Setting up m4 (1.4.18-5) ...
Setting up binutils-aarch64-linux-gnu (2.35.2-2) ...
Setting up binutils (2.35.2-2) ...
Setting up dpkg-dev (1.20.11) ...
Setting up libglpk40:arm64 (5.0-1) ...
Setting up gcc-10 (10.2.1-6) ...
Setting up cpp (4:10.2.1-1) ...
Setting up libc6-dev:arm64 (2.31-13+deb11u3) ...
Setting up rsync (3.2.3-4+deb11u1) ...
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
Setting up libstdc++-10-dev:arm64 (10.2.1-6) ...
Setting up g++-10 (10.2.1-6) ...
Setting up ssh (1:8.4p1-5+deb11u1) ...
Setting up gcc (4:10.2.1-1) ...
Setting up g++ (4:10.2.1-1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Setting up build-essential (12.9) ...
Setting up opam (2.0.8-1) ...
Processing triggers for libc-bin (2.31-13+deb11u3) ...
(base) root@5b3be73900d9:/# pip install psutil
Collecting psutil
  Using cached psutil-5.9.2.tar.gz (479 kB)
Building wheels for collected packages: psutil
  Building wheel for psutil (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /opt/conda/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-l7yplfbq/psutil_a53436f403964f6896bd64e23abcae6e/setup.py'"'"'; __file__='"'"'/tmp/pip-install-l7yplfbq/psutil_a53436f403964f6896bd64e23abcae6e/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-z7s9gpkt
       cwd: /tmp/pip-install-l7yplfbq/psutil_a53436f403964f6896bd64e23abcae6e/
  Complete output (45 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-aarch64-3.9
  creating build/lib.linux-aarch64-3.9/psutil
  copying psutil/_psosx.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_psbsd.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_common.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_pswindows.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_psposix.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/__init__.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_compat.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_pslinux.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_pssunos.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_psaix.py -> build/lib.linux-aarch64-3.9/psutil
  creating build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/__main__.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_process.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_aix.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_misc.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_bsd.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_linux.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/runner.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/__init__.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_connections.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_unicode.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_windows.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_contracts.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_sunos.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_testutils.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_osx.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_memleaks.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_posix.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_system.py -> build/lib.linux-aarch64-3.9/psutil/tests
  running build_ext
  building 'psutil._psutil_linux' extension
  creating build/temp.linux-aarch64-3.9
  creating build/temp.linux-aarch64-3.9/psutil
  gcc -pthread -B /opt/conda/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -n1 .2-a+fp16+rcpc+dotprod+crypto -isystem /opt/conda/include -I/opt/conda/include -fPIC -O2 -n1 .2-a+fp16+rcpc+dotprod+crypto -isystem /opt/conda/include -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=592 -DPSUTIL_LINUX=1 -I/opt/conda/include/python3.9 -c psutil/_psutil_common.c -o build/temp.linux-aarch64-3.9/psutil/_psutil_common.o
  gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory
  gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory
  gcc: error: unrecognized command-line option ‘-n1’; did you mean ‘-n’?
  gcc: error: unrecognized command-line option ‘-n1’; did you mean ‘-n’?
  error: command '/usr/bin/gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for psutil
  Running setup.py clean for psutil
Failed to build psutil
Installing collected packages: psutil
    Running setup.py install for psutil ... error
    ERROR: Command errored out with exit status 1:
     command: /opt/conda/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-l7yplfbq/psutil_a53436f403964f6896bd64e23abcae6e/setup.py'"'"'; __file__='"'"'/tmp/pip-install-l7yplfbq/psutil_a53436f403964f6896bd64e23abcae6e/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-x12vlaw_/install-record.txt --single-version-externally-managed --compile --install-headers /opt/conda/include/python3.9/psutil
         cwd: /tmp/pip-install-l7yplfbq/psutil_a53436f403964f6896bd64e23abcae6e/
    Complete output (47 lines):
    running install
    /opt/conda/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib.linux-aarch64-3.9
    creating build/lib.linux-aarch64-3.9/psutil
    copying psutil/_psosx.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_psbsd.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_common.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_pswindows.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_psposix.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/__init__.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_compat.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_pslinux.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_pssunos.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_psaix.py -> build/lib.linux-aarch64-3.9/psutil
    creating build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/__main__.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_process.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_aix.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_misc.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_bsd.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_linux.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/runner.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/__init__.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_connections.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_unicode.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_windows.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_contracts.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_sunos.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_testutils.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_osx.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_memleaks.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_posix.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_system.py -> build/lib.linux-aarch64-3.9/psutil/tests
    running build_ext
    building 'psutil._psutil_linux' extension
    creating build/temp.linux-aarch64-3.9
    creating build/temp.linux-aarch64-3.9/psutil
    gcc -pthread -B /opt/conda/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -n1 .2-a+fp16+rcpc+dotprod+crypto -isystem /opt/conda/include -I/opt/conda/include -fPIC -O2 -n1 .2-a+fp16+rcpc+dotprod+crypto -isystem /opt/conda/include -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=592 -DPSUTIL_LINUX=1 -I/opt/conda/include/python3.9 -c psutil/_psutil_common.c -o build/temp.linux-aarch64-3.9/psutil/_psutil_common.o
    gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory
    gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory
    gcc: error: unrecognized command-line option ‘-n1’; did you mean ‘-n’?
    gcc: error: unrecognized command-line option ‘-n1’; did you mean ‘-n’?
    error: command '/usr/bin/gcc' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /opt/conda/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-l7yplfbq/psutil_a53436f403964f6896bd64e23abcae6e/setup.py'"'"'; __file__='"'"'/tmp/pip-install-l7yplfbq/psutil_a53436f403964f6896bd64e23abcae6e/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-x12vlaw_/install-record.txt --single-version-externally-managed --compile --install-headers /opt/conda/include/python3.9/psutil Check the logs for full command output.

@ddelange
Copy link

ddelange commented Sep 8, 2022

as long as this PR is not merged and released, pip will get the source distribution and not the arm64 wheel that this PR will add to the build pipeline. hotfix in my previous comment above

@brando90
Copy link

brando90 commented Sep 8, 2022

pip install psutil~=5.9

alas, this didn't seem to work:

(base) root@6200736c601d:/# apt-get update \
  && apt-get install -y --no-install-recommends \
    ssh \
    git \
    m4 \
    libgmp-dev \
    opam \
    wget \
    ca-certificates \
    rsync \
    strace \
    gcc
Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 http://security.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:4 http://security.debian.org/debian-security bullseye-security/main arm64 Packages [180 kB]
Get:5 http://deb.debian.org/debian bullseye/main arm64 Packages [8069 kB]
Get:6 http://deb.debian.org/debian bullseye-updates/main arm64 Packages [2604 B]
Fetched 8460 kB in 2s (5271 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ca-certificates is already the newest version (20210119).
git is already the newest version (1:2.30.2-1).
wget is already the newest version (1.21-1+deb11u1).
The following additional packages will be installed:
  binutils binutils-aarch64-linux-gnu binutils-common bubblewrap build-essential cpp cpp-10 dpkg-dev g++ g++-10 gcc-10 libamd2 libasan6 libatomic1
  libbinutils libc-dev-bin libc6-dev libcap2 libcc1-0 libcolamd2 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libgcc-10-dev libglpk40 libgmpxx4ldbl
  libgomp1 libisl23 libitm1 liblsan0 libltdl7 libmpc3 libmpfr6 libnsl-dev libpopt0 libsigsegv2 libstdc++-10-dev libsuitesparseconfig5 libtirpc-common
  libtirpc-dev libtirpc3 libtsan0 libubsan1 libwrap0 linux-libc-dev make opam-doc opam-installer openssh-client openssh-server openssh-sftp-server
  patch runit-helper unzip xz-utils
Suggested packages:
  binutils-doc cpp-doc gcc-10-locales debian-keyring gcc-10-doc gcc-multilib manpages-dev autoconf automake libtool flex bison gdb gcc-doc glibc-doc
  gnupg bzr libiodbc2-dev default-libmysqlclient-dev gmp-doc libgmp10-doc libmpfr-dev libstdc++-10-doc m4-doc make-doc keychain libpam-ssh
  monkeysphere ssh-askpass molly-guard ufw ed diffutils-doc zip
Recommended packages:
  fakeroot gnupg libalgorithm-merge-perl manpages manpages-dev libc-devtools libfile-fcntllock-perl liblocale-gettext-perl ocaml darcs xauth
  default-logind | logind | libpam-systemd ncurses-term
The following NEW packages will be installed:
  binutils binutils-aarch64-linux-gnu binutils-common bubblewrap build-essential cpp cpp-10 dpkg-dev g++ g++-10 gcc gcc-10 libamd2 libasan6 libatomic1
  libbinutils libc-dev-bin libc6-dev libcap2 libcc1-0 libcolamd2 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libgcc-10-dev libglpk40 libgmp-dev
  libgmpxx4ldbl libgomp1 libisl23 libitm1 liblsan0 libltdl7 libmpc3 libmpfr6 libnsl-dev libpopt0 libsigsegv2 libstdc++-10-dev libsuitesparseconfig5
  libtirpc-dev libtsan0 libubsan1 libwrap0 linux-libc-dev m4 make opam opam-doc opam-installer openssh-server openssh-sftp-server patch rsync
  runit-helper ssh strace unzip xz-utils
The following packages will be upgraded:
  libtirpc-common libtirpc3 openssh-client
3 upgraded, 60 newly installed, 0 to remove and 10 not upgraded.
Need to get 65.0 MB of archives.
After this operation, 234 MB of additional disk space will be used.
Get:1 http://security.debian.org/debian-security bullseye-security/main arm64 libtirpc-common all 1.3.1-1+deb11u1 [13.5 kB]
Get:2 http://deb.debian.org/debian bullseye/main arm64 libpopt0 arm64 1.18-2 [48.8 kB]
Get:3 http://security.debian.org/debian-security bullseye-security/main arm64 libtirpc3 arm64 1.3.1-1+deb11u1 [80.2 kB]
Get:4 http://deb.debian.org/debian bullseye/main arm64 rsync arm64 3.2.3-4+deb11u1 [379 kB]
Get:5 http://security.debian.org/debian-security bullseye-security/main arm64 linux-libc-dev arm64 5.10.136-1 [1508 kB]
Get:6 http://deb.debian.org/debian bullseye/main arm64 openssh-client arm64 1:8.4p1-5+deb11u1 [893 kB]
Get:7 http://security.debian.org/debian-security bullseye-security/main arm64 libtirpc-dev arm64 1.3.1-1+deb11u1 [193 kB]
Get:8 http://security.debian.org/debian-security bullseye-security/main arm64 unzip arm64 6.0-26+deb11u1 [165 kB]
Get:9 http://deb.debian.org/debian bullseye/main arm64 openssh-sftp-server arm64 1:8.4p1-5+deb11u1 [49.6 kB]
Get:10 http://deb.debian.org/debian bullseye/main arm64 runit-helper all 2.10.3 [7808 B]
Get:11 http://deb.debian.org/debian bullseye/main arm64 libwrap0 arm64 7.6.q-31 [58.7 kB]
Get:12 http://deb.debian.org/debian bullseye/main arm64 openssh-server arm64 1:8.4p1-5+deb11u1 [361 kB]
Get:13 http://deb.debian.org/debian bullseye/main arm64 ssh all 1:8.4p1-5+deb11u1 [252 kB]
Get:14 http://deb.debian.org/debian bullseye/main arm64 xz-utils arm64 5.2.5-2.1~deb11u1 [219 kB]
Get:15 http://deb.debian.org/debian bullseye/main arm64 binutils-common arm64 2.35.2-2 [2220 kB]
Get:16 http://deb.debian.org/debian bullseye/main arm64 libbinutils arm64 2.35.2-2 [599 kB]
Get:17 http://deb.debian.org/debian bullseye/main arm64 libctf-nobfd0 arm64 2.35.2-2 [108 kB]
Get:18 http://deb.debian.org/debian bullseye/main arm64 libctf0 arm64 2.35.2-2 [51.0 kB]
Get:19 http://deb.debian.org/debian bullseye/main arm64 binutils-aarch64-linux-gnu arm64 2.35.2-2 [2472 kB]
Get:20 http://deb.debian.org/debian bullseye/main arm64 binutils arm64 2.35.2-2 [61.2 kB]
Get:21 http://deb.debian.org/debian bullseye/main arm64 libcap2 arm64 1:2.44-1 [23.2 kB]
Get:22 http://deb.debian.org/debian bullseye/main arm64 bubblewrap arm64 0.4.1-3 [41.6 kB]
Get:23 http://deb.debian.org/debian bullseye/main arm64 libc-dev-bin arm64 2.31-13+deb11u3 [272 kB]
Get:24 http://deb.debian.org/debian bullseye/main arm64 libcrypt-dev arm64 1:4.4.18-4 [108 kB]
Get:25 http://deb.debian.org/debian bullseye/main arm64 libnsl-dev arm64 1.3.0-2 [66.1 kB]
Get:26 http://deb.debian.org/debian bullseye/main arm64 libc6-dev arm64 2.31-13+deb11u3 [2031 kB]
Get:27 http://deb.debian.org/debian bullseye/main arm64 libisl23 arm64 0.23-1 [590 kB]
Get:28 http://deb.debian.org/debian bullseye/main arm64 libmpfr6 arm64 4.1.0-3 [829 kB]
Get:29 http://deb.debian.org/debian bullseye/main arm64 libmpc3 arm64 1.2.0-1 [43.2 kB]
Get:30 http://deb.debian.org/debian bullseye/main arm64 cpp-10 arm64 10.2.1-6 [7756 kB]
Get:31 http://deb.debian.org/debian bullseye/main arm64 cpp arm64 4:10.2.1-1 [19.7 kB]
Get:32 http://deb.debian.org/debian bullseye/main arm64 libcc1-0 arm64 10.2.1-6 [45.1 kB]
Get:33 http://deb.debian.org/debian bullseye/main arm64 libgomp1 arm64 10.2.1-6 [91.6 kB]
Get:34 http://deb.debian.org/debian bullseye/main arm64 libitm1 arm64 10.2.1-6 [23.8 kB]
Get:35 http://deb.debian.org/debian bullseye/main arm64 libatomic1 arm64 10.2.1-6 [9468 B]
Get:36 http://deb.debian.org/debian bullseye/main arm64 libasan6 arm64 10.2.1-6 [2002 kB]
Get:37 http://deb.debian.org/debian bullseye/main arm64 liblsan0 arm64 10.2.1-6 [794 kB]
Get:38 http://deb.debian.org/debian bullseye/main arm64 libtsan0 arm64 10.2.1-6 [1957 kB]
Get:39 http://deb.debian.org/debian bullseye/main arm64 libubsan1 arm64 10.2.1-6 [759 kB]
Get:40 http://deb.debian.org/debian bullseye/main arm64 libgcc-10-dev arm64 10.2.1-6 [876 kB]
Get:41 http://deb.debian.org/debian bullseye/main arm64 gcc-10 arm64 10.2.1-6 [15.4 MB]
Get:42 http://deb.debian.org/debian bullseye/main arm64 gcc arm64 4:10.2.1-1 [5208 B]
Get:43 http://deb.debian.org/debian bullseye/main arm64 libstdc++-10-dev arm64 10.2.1-6 [1704 kB]
Get:44 http://deb.debian.org/debian bullseye/main arm64 g++-10 arm64 10.2.1-6 [8557 kB]
Get:45 http://deb.debian.org/debian bullseye/main arm64 g++ arm64 4:10.2.1-1 [1628 B]
Get:46 http://deb.debian.org/debian bullseye/main arm64 make arm64 4.3-4.1 [391 kB]
Get:47 http://deb.debian.org/debian bullseye/main arm64 libdpkg-perl all 1.20.11 [1546 kB]
Get:48 http://deb.debian.org/debian bullseye/main arm64 patch arm64 2.7.6-7 [121 kB]
Get:49 http://deb.debian.org/debian bullseye/main arm64 dpkg-dev all 1.20.11 [2308 kB]
Get:50 http://deb.debian.org/debian bullseye/main arm64 build-essential arm64 12.9 [7704 B]
Get:51 http://deb.debian.org/debian bullseye/main arm64 libsuitesparseconfig5 arm64 1:5.8.1+dfsg-2 [22.8 kB]
Get:52 http://deb.debian.org/debian bullseye/main arm64 libamd2 arm64 1:5.8.1+dfsg-2 [33.1 kB]
Get:53 http://deb.debian.org/debian bullseye/main arm64 libcolamd2 arm64 1:5.8.1+dfsg-2 [31.0 kB]
Get:54 http://deb.debian.org/debian bullseye/main arm64 libltdl7 arm64 2.4.6-15 [390 kB]
Get:55 http://deb.debian.org/debian bullseye/main arm64 libglpk40 arm64 5.0-1 [344 kB]
Get:56 http://deb.debian.org/debian bullseye/main arm64 libgmpxx4ldbl arm64 2:6.2.1+dfsg-1+deb11u1 [337 kB]
Get:57 http://deb.debian.org/debian bullseye/main arm64 libgmp-dev arm64 2:6.2.1+dfsg-1+deb11u1 [625 kB]
Get:58 http://deb.debian.org/debian bullseye/main arm64 libsigsegv2 arm64 2.13-1 [34.7 kB]
Get:59 http://deb.debian.org/debian bullseye/main arm64 m4 arm64 1.4.18-5 [199 kB]
Get:60 http://deb.debian.org/debian bullseye/main arm64 opam-installer arm64 2.0.8-1 [1289 kB]
Get:61 http://deb.debian.org/debian bullseye/main arm64 opam-doc all 2.0.8-1 [239 kB]
Get:62 http://deb.debian.org/debian bullseye/main arm64 opam arm64 2.0.8-1 [2364 kB]
Get:63 http://deb.debian.org/debian bullseye/main arm64 strace arm64 5.10-1 [994 kB]
Fetched 65.0 MB in 4s (15.4 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libpopt0:arm64.
(Reading database ... 12440 files and directories currently installed.)
Preparing to unpack .../0-libpopt0_1.18-2_arm64.deb ...
Unpacking libpopt0:arm64 (1.18-2) ...
Selecting previously unselected package rsync.
Preparing to unpack .../1-rsync_3.2.3-4+deb11u1_arm64.deb ...
Unpacking rsync (3.2.3-4+deb11u1) ...
Preparing to unpack .../2-openssh-client_1%3a8.4p1-5+deb11u1_arm64.deb ...
Unpacking openssh-client (1:8.4p1-5+deb11u1) over (1:8.4p1-5) ...
Selecting previously unselected package openssh-sftp-server.
Preparing to unpack .../3-openssh-sftp-server_1%3a8.4p1-5+deb11u1_arm64.deb ...
Unpacking openssh-sftp-server (1:8.4p1-5+deb11u1) ...
Selecting previously unselected package runit-helper.
Preparing to unpack .../4-runit-helper_2.10.3_all.deb ...
Unpacking runit-helper (2.10.3) ...
Selecting previously unselected package libwrap0:arm64.
Preparing to unpack .../5-libwrap0_7.6.q-31_arm64.deb ...
Unpacking libwrap0:arm64 (7.6.q-31) ...
Selecting previously unselected package openssh-server.
Preparing to unpack .../6-openssh-server_1%3a8.4p1-5+deb11u1_arm64.deb ...
Unpacking openssh-server (1:8.4p1-5+deb11u1) ...
Selecting previously unselected package ssh.
Preparing to unpack .../7-ssh_1%3a8.4p1-5+deb11u1_all.deb ...
Unpacking ssh (1:8.4p1-5+deb11u1) ...
Preparing to unpack .../8-libtirpc-common_1.3.1-1+deb11u1_all.deb ...
Unpacking libtirpc-common (1.3.1-1+deb11u1) over (1.3.1-1) ...
Setting up libtirpc-common (1.3.1-1+deb11u1) ...
(Reading database ... 12585 files and directories currently installed.)
Preparing to unpack .../libtirpc3_1.3.1-1+deb11u1_arm64.deb ...
Unpacking libtirpc3:arm64 (1.3.1-1+deb11u1) over (1.3.1-1) ...
Setting up libtirpc3:arm64 (1.3.1-1+deb11u1) ...
Selecting previously unselected package xz-utils.
(Reading database ... 12585 files and directories currently installed.)
Preparing to unpack .../00-xz-utils_5.2.5-2.1~deb11u1_arm64.deb ...
Unpacking xz-utils (5.2.5-2.1~deb11u1) ...
Selecting previously unselected package binutils-common:arm64.
Preparing to unpack .../01-binutils-common_2.35.2-2_arm64.deb ...
Unpacking binutils-common:arm64 (2.35.2-2) ...
Selecting previously unselected package libbinutils:arm64.
Preparing to unpack .../02-libbinutils_2.35.2-2_arm64.deb ...
Unpacking libbinutils:arm64 (2.35.2-2) ...
Selecting previously unselected package libctf-nobfd0:arm64.
Preparing to unpack .../03-libctf-nobfd0_2.35.2-2_arm64.deb ...
Unpacking libctf-nobfd0:arm64 (2.35.2-2) ...
Selecting previously unselected package libctf0:arm64.
Preparing to unpack .../04-libctf0_2.35.2-2_arm64.deb ...
Unpacking libctf0:arm64 (2.35.2-2) ...
Selecting previously unselected package binutils-aarch64-linux-gnu.
Preparing to unpack .../05-binutils-aarch64-linux-gnu_2.35.2-2_arm64.deb ...
Unpacking binutils-aarch64-linux-gnu (2.35.2-2) ...
Selecting previously unselected package binutils.
Preparing to unpack .../06-binutils_2.35.2-2_arm64.deb ...
Unpacking binutils (2.35.2-2) ...
Selecting previously unselected package libcap2:arm64.
Preparing to unpack .../07-libcap2_1%3a2.44-1_arm64.deb ...
Unpacking libcap2:arm64 (1:2.44-1) ...
Selecting previously unselected package bubblewrap.
Preparing to unpack .../08-bubblewrap_0.4.1-3_arm64.deb ...
Unpacking bubblewrap (0.4.1-3) ...
Selecting previously unselected package libc-dev-bin.
Preparing to unpack .../09-libc-dev-bin_2.31-13+deb11u3_arm64.deb ...
Unpacking libc-dev-bin (2.31-13+deb11u3) ...
Selecting previously unselected package linux-libc-dev:arm64.
Preparing to unpack .../10-linux-libc-dev_5.10.136-1_arm64.deb ...
Unpacking linux-libc-dev:arm64 (5.10.136-1) ...
Selecting previously unselected package libcrypt-dev:arm64.
Preparing to unpack .../11-libcrypt-dev_1%3a4.4.18-4_arm64.deb ...
Unpacking libcrypt-dev:arm64 (1:4.4.18-4) ...
Selecting previously unselected package libtirpc-dev:arm64.
Preparing to unpack .../12-libtirpc-dev_1.3.1-1+deb11u1_arm64.deb ...
Unpacking libtirpc-dev:arm64 (1.3.1-1+deb11u1) ...
Selecting previously unselected package libnsl-dev:arm64.
Preparing to unpack .../13-libnsl-dev_1.3.0-2_arm64.deb ...
Unpacking libnsl-dev:arm64 (1.3.0-2) ...
Selecting previously unselected package libc6-dev:arm64.
Preparing to unpack .../14-libc6-dev_2.31-13+deb11u3_arm64.deb ...
Unpacking libc6-dev:arm64 (2.31-13+deb11u3) ...
Selecting previously unselected package libisl23:arm64.
Preparing to unpack .../15-libisl23_0.23-1_arm64.deb ...
Unpacking libisl23:arm64 (0.23-1) ...
Selecting previously unselected package libmpfr6:arm64.
Preparing to unpack .../16-libmpfr6_4.1.0-3_arm64.deb ...
Unpacking libmpfr6:arm64 (4.1.0-3) ...
Selecting previously unselected package libmpc3:arm64.
Preparing to unpack .../17-libmpc3_1.2.0-1_arm64.deb ...
Unpacking libmpc3:arm64 (1.2.0-1) ...
Selecting previously unselected package cpp-10.
Preparing to unpack .../18-cpp-10_10.2.1-6_arm64.deb ...
Unpacking cpp-10 (10.2.1-6) ...
Selecting previously unselected package cpp.
Preparing to unpack .../19-cpp_4%3a10.2.1-1_arm64.deb ...
Unpacking cpp (4:10.2.1-1) ...
Selecting previously unselected package libcc1-0:arm64.
Preparing to unpack .../20-libcc1-0_10.2.1-6_arm64.deb ...
Unpacking libcc1-0:arm64 (10.2.1-6) ...
Selecting previously unselected package libgomp1:arm64.
Preparing to unpack .../21-libgomp1_10.2.1-6_arm64.deb ...
Unpacking libgomp1:arm64 (10.2.1-6) ...
Selecting previously unselected package libitm1:arm64.
Preparing to unpack .../22-libitm1_10.2.1-6_arm64.deb ...
Unpacking libitm1:arm64 (10.2.1-6) ...
Selecting previously unselected package libatomic1:arm64.
Preparing to unpack .../23-libatomic1_10.2.1-6_arm64.deb ...
Unpacking libatomic1:arm64 (10.2.1-6) ...
Selecting previously unselected package libasan6:arm64.
Preparing to unpack .../24-libasan6_10.2.1-6_arm64.deb ...
Unpacking libasan6:arm64 (10.2.1-6) ...
Selecting previously unselected package liblsan0:arm64.
Preparing to unpack .../25-liblsan0_10.2.1-6_arm64.deb ...
Unpacking liblsan0:arm64 (10.2.1-6) ...
Selecting previously unselected package libtsan0:arm64.
Preparing to unpack .../26-libtsan0_10.2.1-6_arm64.deb ...
Unpacking libtsan0:arm64 (10.2.1-6) ...
Selecting previously unselected package libubsan1:arm64.
Preparing to unpack .../27-libubsan1_10.2.1-6_arm64.deb ...
Unpacking libubsan1:arm64 (10.2.1-6) ...
Selecting previously unselected package libgcc-10-dev:arm64.
Preparing to unpack .../28-libgcc-10-dev_10.2.1-6_arm64.deb ...
Unpacking libgcc-10-dev:arm64 (10.2.1-6) ...
Selecting previously unselected package gcc-10.
Preparing to unpack .../29-gcc-10_10.2.1-6_arm64.deb ...
Unpacking gcc-10 (10.2.1-6) ...
Selecting previously unselected package gcc.
Preparing to unpack .../30-gcc_4%3a10.2.1-1_arm64.deb ...
Unpacking gcc (4:10.2.1-1) ...
Selecting previously unselected package libstdc++-10-dev:arm64.
Preparing to unpack .../31-libstdc++-10-dev_10.2.1-6_arm64.deb ...
Unpacking libstdc++-10-dev:arm64 (10.2.1-6) ...
Selecting previously unselected package g++-10.
Preparing to unpack .../32-g++-10_10.2.1-6_arm64.deb ...
Unpacking g++-10 (10.2.1-6) ...
Selecting previously unselected package g++.
Preparing to unpack .../33-g++_4%3a10.2.1-1_arm64.deb ...
Unpacking g++ (4:10.2.1-1) ...
Selecting previously unselected package make.
Preparing to unpack .../34-make_4.3-4.1_arm64.deb ...
Unpacking make (4.3-4.1) ...
Selecting previously unselected package libdpkg-perl.
Preparing to unpack .../35-libdpkg-perl_1.20.11_all.deb ...
Unpacking libdpkg-perl (1.20.11) ...
Selecting previously unselected package patch.
Preparing to unpack .../36-patch_2.7.6-7_arm64.deb ...
Unpacking patch (2.7.6-7) ...
Selecting previously unselected package dpkg-dev.
Preparing to unpack .../37-dpkg-dev_1.20.11_all.deb ...
Unpacking dpkg-dev (1.20.11) ...
Selecting previously unselected package build-essential.
Preparing to unpack .../38-build-essential_12.9_arm64.deb ...
Unpacking build-essential (12.9) ...
Selecting previously unselected package libsuitesparseconfig5:arm64.
Preparing to unpack .../39-libsuitesparseconfig5_1%3a5.8.1+dfsg-2_arm64.deb ...
Unpacking libsuitesparseconfig5:arm64 (1:5.8.1+dfsg-2) ...
Selecting previously unselected package libamd2:arm64.
Preparing to unpack .../40-libamd2_1%3a5.8.1+dfsg-2_arm64.deb ...
Unpacking libamd2:arm64 (1:5.8.1+dfsg-2) ...
Selecting previously unselected package libcolamd2:arm64.
Preparing to unpack .../41-libcolamd2_1%3a5.8.1+dfsg-2_arm64.deb ...
Unpacking libcolamd2:arm64 (1:5.8.1+dfsg-2) ...
Selecting previously unselected package libltdl7:arm64.
Preparing to unpack .../42-libltdl7_2.4.6-15_arm64.deb ...
Unpacking libltdl7:arm64 (2.4.6-15) ...
Selecting previously unselected package libglpk40:arm64.
Preparing to unpack .../43-libglpk40_5.0-1_arm64.deb ...
Unpacking libglpk40:arm64 (5.0-1) ...
Selecting previously unselected package libgmpxx4ldbl:arm64.
Preparing to unpack .../44-libgmpxx4ldbl_2%3a6.2.1+dfsg-1+deb11u1_arm64.deb ...
Unpacking libgmpxx4ldbl:arm64 (2:6.2.1+dfsg-1+deb11u1) ...
Selecting previously unselected package libgmp-dev:arm64.
Preparing to unpack .../45-libgmp-dev_2%3a6.2.1+dfsg-1+deb11u1_arm64.deb ...
Unpacking libgmp-dev:arm64 (2:6.2.1+dfsg-1+deb11u1) ...
Selecting previously unselected package libsigsegv2:arm64.
Preparing to unpack .../46-libsigsegv2_2.13-1_arm64.deb ...
Unpacking libsigsegv2:arm64 (2.13-1) ...
Selecting previously unselected package m4.
Preparing to unpack .../47-m4_1.4.18-5_arm64.deb ...
Unpacking m4 (1.4.18-5) ...
Selecting previously unselected package opam-installer.
Preparing to unpack .../48-opam-installer_2.0.8-1_arm64.deb ...
Unpacking opam-installer (2.0.8-1) ...
Selecting previously unselected package opam-doc.
Preparing to unpack .../49-opam-doc_2.0.8-1_all.deb ...
Unpacking opam-doc (2.0.8-1) ...
Selecting previously unselected package unzip.
Preparing to unpack .../50-unzip_6.0-26+deb11u1_arm64.deb ...
Unpacking unzip (6.0-26+deb11u1) ...
Selecting previously unselected package opam.
Preparing to unpack .../51-opam_2.0.8-1_arm64.deb ...
Unpacking opam (2.0.8-1) ...
Selecting previously unselected package strace.
Preparing to unpack .../52-strace_5.10-1_arm64.deb ...
Unpacking strace (5.10-1) ...
Setting up runit-helper (2.10.3) ...
Setting up openssh-client (1:8.4p1-5+deb11u1) ...
Setting up unzip (6.0-26+deb11u1) ...
Setting up opam-doc (2.0.8-1) ...
Setting up binutils-common:arm64 (2.35.2-2) ...
Setting up linux-libc-dev:arm64 (5.10.136-1) ...
Setting up libctf-nobfd0:arm64 (2.35.2-2) ...
Setting up libgomp1:arm64 (10.2.1-6) ...
Setting up libcap2:arm64 (1:2.44-1) ...
Setting up libasan6:arm64 (10.2.1-6) ...
Setting up libtirpc-dev:arm64 (1.3.1-1+deb11u1) ...
Setting up libgmpxx4ldbl:arm64 (2:6.2.1+dfsg-1+deb11u1) ...
Setting up libwrap0:arm64 (7.6.q-31) ...
Setting up make (4.3-4.1) ...
Setting up libmpfr6:arm64 (4.1.0-3) ...
Setting up strace (5.10-1) ...
Setting up libsigsegv2:arm64 (2.13-1) ...
Setting up xz-utils (5.2.5-2.1~deb11u1) ...
update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/lzma.1.gz because associated file /usr/share/man/man1/xz.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/unlzma.1.gz because associated file /usr/share/man/man1/unxz.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzcat.1.gz because associated file /usr/share/man/man1/xzcat.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzmore.1.gz because associated file /usr/share/man/man1/xzmore.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzless.1.gz because associated file /usr/share/man/man1/xzless.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzdiff.1.gz because associated file /usr/share/man/man1/xzdiff.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzcmp.1.gz because associated file /usr/share/man/man1/xzcmp.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzgrep.1.gz because associated file /usr/share/man/man1/xzgrep.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzegrep.1.gz because associated file /usr/share/man/man1/xzegrep.1.gz (of link group lzma) doesn't exist
update-alternatives: warning: skip creation of /usr/share/man/man1/lzfgrep.1.gz because associated file /usr/share/man/man1/xzfgrep.1.gz (of link group lzma) doesn't exist
Setting up libmpc3:arm64 (1.2.0-1) ...
Setting up libatomic1:arm64 (10.2.1-6) ...
Setting up patch (2.7.6-7) ...
Setting up libltdl7:arm64 (2.4.6-15) ...
Setting up libdpkg-perl (1.20.11) ...
Setting up opam-installer (2.0.8-1) ...
Setting up libubsan1:arm64 (10.2.1-6) ...
Setting up libnsl-dev:arm64 (1.3.0-2) ...
Setting up libcrypt-dev:arm64 (1:4.4.18-4) ...
Setting up libbinutils:arm64 (2.35.2-2) ...
Setting up libisl23:arm64 (0.23-1) ...
Setting up libc-dev-bin (2.31-13+deb11u3) ...
Setting up libsuitesparseconfig5:arm64 (1:5.8.1+dfsg-2) ...
Setting up libcc1-0:arm64 (10.2.1-6) ...
Setting up liblsan0:arm64 (10.2.1-6) ...
Setting up cpp-10 (10.2.1-6) ...
Setting up libitm1:arm64 (10.2.1-6) ...
Setting up libpopt0:arm64 (1.18-2) ...
Setting up libtsan0:arm64 (10.2.1-6) ...
Setting up libctf0:arm64 (2.35.2-2) ...
Setting up bubblewrap (0.4.1-3) ...
Setting up libamd2:arm64 (1:5.8.1+dfsg-2) ...
Setting up openssh-sftp-server (1:8.4p1-5+deb11u1) ...
Setting up libgmp-dev:arm64 (2:6.2.1+dfsg-1+deb11u1) ...
Setting up libcolamd2:arm64 (1:5.8.1+dfsg-2) ...
Setting up openssh-server (1:8.4p1-5+deb11u1) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline

Creating config file /etc/ssh/sshd_config with new version
Creating SSH2 RSA key; this may take some time ...
3072 SHA256:LDlJ6Z3l1ECl4B6cpST4JW9H3hINHiShe3Jkn/OrOBQ root@6200736c601d (RSA)
Creating SSH2 ECDSA key; this may take some time ...
256 SHA256:U+F5yDkIlWoIVO+XGrqyZszfHCLSWKBY7BsxTrRlAYQ root@6200736c601d (ECDSA)
Creating SSH2 ED25519 key; this may take some time ...
256 SHA256:ilPgnGCGJglP/7uG+znqsRdrm94XsPxGzz5ocRqPgW4 root@6200736c601d (ED25519)
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
Setting up libgcc-10-dev:arm64 (10.2.1-6) ...
Setting up m4 (1.4.18-5) ...
Setting up binutils-aarch64-linux-gnu (2.35.2-2) ...
Setting up binutils (2.35.2-2) ...
Setting up dpkg-dev (1.20.11) ...
Setting up libglpk40:arm64 (5.0-1) ...
Setting up gcc-10 (10.2.1-6) ...
Setting up cpp (4:10.2.1-1) ...
Setting up libc6-dev:arm64 (2.31-13+deb11u3) ...
Setting up rsync (3.2.3-4+deb11u1) ...
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
Setting up libstdc++-10-dev:arm64 (10.2.1-6) ...
Setting up g++-10 (10.2.1-6) ...
Setting up ssh (1:8.4p1-5+deb11u1) ...
Setting up gcc (4:10.2.1-1) ...
Setting up g++ (4:10.2.1-1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Setting up build-essential (12.9) ...
Setting up opam (2.0.8-1) ...
Processing triggers for libc-bin (2.31-13+deb11u3) ...
(base) root@6200736c601d:/# pip install psutil~=5.9
Looking in links: https://github.com/ddelange/psutil/releases
Collecting psutil~=5.9
  Using cached psutil-5.9.2.tar.gz (479 kB)
Building wheels for collected packages: psutil
  Building wheel for psutil (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /opt/conda/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-eopafrsp/psutil_790f813b66a64658949d87e4d640756d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-eopafrsp/psutil_790f813b66a64658949d87e4d640756d/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-3x54ue30
       cwd: /tmp/pip-install-eopafrsp/psutil_790f813b66a64658949d87e4d640756d/
  Complete output (45 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-aarch64-3.9
  creating build/lib.linux-aarch64-3.9/psutil
  copying psutil/_psosx.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_psbsd.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_common.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_pswindows.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_psposix.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/__init__.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_compat.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_pslinux.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_pssunos.py -> build/lib.linux-aarch64-3.9/psutil
  copying psutil/_psaix.py -> build/lib.linux-aarch64-3.9/psutil
  creating build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/__main__.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_process.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_aix.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_misc.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_bsd.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_linux.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/runner.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/__init__.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_connections.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_unicode.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_windows.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_contracts.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_sunos.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_testutils.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_osx.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_memleaks.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_posix.py -> build/lib.linux-aarch64-3.9/psutil/tests
  copying psutil/tests/test_system.py -> build/lib.linux-aarch64-3.9/psutil/tests
  running build_ext
  building 'psutil._psutil_linux' extension
  creating build/temp.linux-aarch64-3.9
  creating build/temp.linux-aarch64-3.9/psutil
  gcc -pthread -B /opt/conda/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -n1 .2-a+fp16+rcpc+dotprod+crypto -isystem /opt/conda/include -I/opt/conda/include -fPIC -O2 -n1 .2-a+fp16+rcpc+dotprod+crypto -isystem /opt/conda/include -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=592 -DPSUTIL_LINUX=1 -I/opt/conda/include/python3.9 -c psutil/_psutil_common.c -o build/temp.linux-aarch64-3.9/psutil/_psutil_common.o
  gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory
  gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory
  gcc: error: unrecognized command-line option ‘-n1’; did you mean ‘-n’?
  gcc: error: unrecognized command-line option ‘-n1’; did you mean ‘-n’?
  error: command '/usr/bin/gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for psutil
  Running setup.py clean for psutil
Failed to build psutil
Installing collected packages: psutil
    Running setup.py install for psutil ... error
    ERROR: Command errored out with exit status 1:
     command: /opt/conda/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-eopafrsp/psutil_790f813b66a64658949d87e4d640756d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-eopafrsp/psutil_790f813b66a64658949d87e4d640756d/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-rra9ryj2/install-record.txt --single-version-externally-managed --compile --install-headers /opt/conda/include/python3.9/psutil
         cwd: /tmp/pip-install-eopafrsp/psutil_790f813b66a64658949d87e4d640756d/
    Complete output (47 lines):
    running install
    /opt/conda/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib.linux-aarch64-3.9
    creating build/lib.linux-aarch64-3.9/psutil
    copying psutil/_psosx.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_psbsd.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_common.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_pswindows.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_psposix.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/__init__.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_compat.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_pslinux.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_pssunos.py -> build/lib.linux-aarch64-3.9/psutil
    copying psutil/_psaix.py -> build/lib.linux-aarch64-3.9/psutil
    creating build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/__main__.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_process.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_aix.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_misc.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_bsd.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_linux.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/runner.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/__init__.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_connections.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_unicode.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_windows.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_contracts.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_sunos.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_testutils.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_osx.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_memleaks.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_posix.py -> build/lib.linux-aarch64-3.9/psutil/tests
    copying psutil/tests/test_system.py -> build/lib.linux-aarch64-3.9/psutil/tests
    running build_ext
    building 'psutil._psutil_linux' extension
    creating build/temp.linux-aarch64-3.9
    creating build/temp.linux-aarch64-3.9/psutil
    gcc -pthread -B /opt/conda/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -Wall -fPIC -O2 -n1 .2-a+fp16+rcpc+dotprod+crypto -isystem /opt/conda/include -I/opt/conda/include -fPIC -O2 -n1 .2-a+fp16+rcpc+dotprod+crypto -isystem /opt/conda/include -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=592 -DPSUTIL_LINUX=1 -I/opt/conda/include/python3.9 -c psutil/_psutil_common.c -o build/temp.linux-aarch64-3.9/psutil/_psutil_common.o
    gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory
    gcc: error: .2-a+fp16+rcpc+dotprod+crypto: No such file or directory
    gcc: error: unrecognized command-line option ‘-n1’; did you mean ‘-n’?
    gcc: error: unrecognized command-line option ‘-n1’; did you mean ‘-n’?
    error: command '/usr/bin/gcc' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /opt/conda/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-eopafrsp/psutil_790f813b66a64658949d87e4d640756d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-eopafrsp/psutil_790f813b66a64658949d87e4d640756d/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-rra9ryj2/install-record.txt --single-version-externally-managed --compile --install-headers /opt/conda/include/python3.9/psutil Check the logs for full command output.

I guess there is nothing to do but wait?

@brando90
Copy link

brando90 commented Sep 8, 2022

for completeness this is what I ran:

docker run -i -t continuumio/miniconda3 /bin/bash
export PIP_FIND_LINKS='https://github.com/ddelange/psutil/releases' # space separated links
apt-get update \
  && apt-get install -y --no-install-recommends \
    ssh \
    git \
    m4 \
    libgmp-dev \
    opam \
    wget \
    ca-certificates \
    rsync \
    strace \
    gcc
pip install psutil~=5.9

@brando90
Copy link

brando90 commented Sep 8, 2022

nice article explaining issue: https://pythonspeed.com/articles/docker-build-problems-mac/

@ddelange
Copy link

ddelange commented Sep 17, 2022

@mayeut would it make sense to further future proof the CI by setting these?

CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28
CIBW_MANYLINUX_I686_IMAGE: manylinux_2_28

This will produce even more forward-compatible wheels, built on a RHEL8.6 (instead of RHEL7) docker image (ID=almalinux, ID_LIKE=centos).

edit: hmm, on second thought, from reading this, i think it might reduce backward compatibility (despite producing a wheel like psutil-5.9.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl)

@mayeut
Copy link
Contributor Author

mayeut commented Sep 17, 2022

edit: hmm, on second thought, from reading this, i think it might reduce backward compatibility (despite producing a wheel like psutil-5.9.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl)

Indeed it would reduce backward compatibility. I've kept the default image in the PR which builds on manylinux2014 & produces manylinux2010 compatible wheels (thus going back to CentOS/RHEL/OracleLinux 6).
There should be no forward compatibility issue.

This commit updates the build workflow to use the latest cibuildwheel as a GitHub Action.
cibuildwheel configuration is now in its own file (as there's no `pyproject.toml` yet)

Signed-off-by: mayeut <mayeut@users.noreply.github.com>
Signed-off-by: mayeut <mayeut@users.noreply.github.com>
`macos-10.15` runner is deprecated.

Signed-off-by: mayeut <mayeut@users.noreply.github.com>
Signed-off-by: mayeut <mayeut@users.noreply.github.com>
Signed-off-by: mayeut <mayeut@users.noreply.github.com>
Signed-off-by: mayeut <mayeut@users.noreply.github.com>
@ddelange
Copy link

@giampaolo can you please review?

@giampaolo
Copy link
Owner

giampaolo commented Sep 20, 2022

Hello.
Frankly, this PR aims at doing too many things and adds too much complexity (also, I'm not OK with killing Appveyor in favor of GH Actions). At the moment I prefer not to distribute / maintain binaries for additional architectures (aarch64), because I know from experience that's gonna be extra work on my part, and also because compiling psutil on Linux is relatively easy already. The most pressing tickets at the moment appears to be about people unable to install psutil on macOS Big Sur, so I would welcome a PR for that only, if you can (I believe that is #2040?).

@ddelange
Copy link

Hi @giampaolo 👋

Appreciate you checking in. I don't know @mayeut, but I have seen him putting a lot of time and effort into this PR over the past 4 (!) months. To me your comment is disappointing, I can imagine it similar for @mayeut.

Frankly, this PR aims at doing too many things and adds too much complexity

I think the features are nicely separated, the biggest part of the diff comes in #2102: switching to limited ABI (only two tiny changes in psutil/_psutil_linux.c), and consolidating wheel builds for windows into Github Actions (reducing complexity). This PR only adds one commit (0daf018) on top of #2102: effectively it only adds aarch64 to the build matrix, and skips some tests when running in a QEMU environment.

At the moment I prefer not to distribute / maintain binaries for additional architectures (aarch64), because I know from experience that's gonna be extra work on my part, and also because compiling psutil on Linux is relatively easy already.

With 60+ million downloads per month, this package comes in very high in the 'hall of fame'. I completely understand your effort considerations, and wouldn't want you to get overloaded due to this change. I think, however, that for such an essential package there are enough professional developers out there for whom it would not be a lot of work to handle some aarch64 bugfixes in their spare/allocated OSS time. So if you don't have time for such fixes, which I understand, there will be a contributor sooner or later that will take it over (this effort from @mayeut as a beautiful example).

I'm afraid that waving off aarch64 so quickly isn't that easy in reality: as the PR description points out, aarch64 has already surpassed windows in terms of downloads for this package. Oracle, Amazon, Google, and Microsoft are all offering aarch64 cloud instances at an undeniable price point compared to amd/intel, so the demand will undoubtedly only grow. As for me, I only have experience with Amazon EC2, and know that an install from source on their Graviton processors will fail without further config when there are no wheels available. That's something that many devs will run into during their regular day at work.

There is a lot of value in this PR. Please consider merging and releasing, for Python community's sake 🙏

@giampaolo
Copy link
Owner

giampaolo commented Sep 20, 2022

I think, however, that for such an essential package there are enough professional developers out there for whom it would not be a lot of work to handle some aarch64 bugfixes in their spare/allocated OSS time. So if you don't have time for such fixes, which I understand, there will be a contributor sooner or later that will take it over

Unfortunately that's not how it works, mostly because binaries are directly related to releases, and those are up to me. It’s not about reviewing and merging one PR. It’s about the additional and continuous work required after a PR like this gets merged.

CI builds / binaries distribution is that part of the project infrastructure which requires a constant maintenance over time, because OS and python versions constantly change, and so does GitHub infrastructure / config matrix, which keeps breaking with time. Once wheels for a new platform are offered, you basically are forced to keep supporting them.

I may change my mind in the future, but this is not sustainable for me at the moment. I may have some ideas on how to try make this sustainable in the long run, but I need time to think about it.

@ddelange
Copy link

ddelange commented Sep 21, 2022

It saddens me to see this PR get closed like that, @giampaolo.

Let me try to advocate one more time with regards to your last comment: because CI already tests the binaries right after creating them, and because green CI is required to merge PRs, I don't think you'll run into the drift issues you describe as long as you make a release relatively soon after the last PR went in.

However, I can relate to your prudence as person responsible for releases. Maybe CI on a cron job for master, that creates an issue upon failure, would cover your drift concerns? It would catch and create issues earlier than the next PR. That way, you can offload the "additional and continuous work" to the community (or at least make it obvious that help is wanted).

In the meantime, the show must go on.

To offer the community an alternative to this dead end, and to not let @mayeut's efforts be in vain: my fork includes the commits from this PR on master, and will build and host wheels for every future commit to giampaolo:master. The wheels are not exactly synced up with the upstream tags, but it's the best next thing I could come up with short-term. I will commit to fixing incoming merge conflicts on a best-effort basis until official aarch64 wheels get released.

export PIP_FIND_LINKS=https://ddelange.github.io/psutil/
pip install ...
# OR
pip install ... --find-links=https://ddelange.github.io/psutil/

@mayeut
Copy link
Contributor Author

mayeut commented Sep 21, 2022

@giampaolo, thanks for your detailed answers. While I'm a bit disappointed, I do appreciate the position you'd be in w.r.t. to maintaining if it got merged in.

The most pressing tickets at the moment appears to be about people unable to install psutil on macOS Big Sur, so I would welcome a PR for that only, if you can (I believe that is #2040?).

I'll clean the other PRs with that in mind.

@jasonrichdarmawan
Copy link

I trued @mayeut fork and can't install it on NVIDIA Jetson Nano B01 with Python3.8.0 (the OS came with Python2 and Python3.6.9 but anomalib require Python3.8, so I use Python3.8.0)

What i've did:

// create virtualenv
$ python3.8 -m virtualenv GoDataID_anomalib
$ . GoDataID_anomalib/bin/activate

$ git clone --branch abi3-linux-aarch64 https://github.com/mayeut/psutil.git
$ cd psutil
$ python -m pip install -e .
(GoDataID_anomalib) werate-01@werate-01:~/psutil$ python -m pip install -e .
Obtaining file:///home/werate-01/psutil
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Building wheels for collected packages: psutil
  Building editable for psutil (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building editable for psutil (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [74 lines of output]
      running editable_wheel
      creating /tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil.egg-info
      writing /tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil.egg-info/PKG-INFO
      writing dependency_links to /tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil.egg-info/dependency_links.txt
      writing requirements to /tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil.egg-info/requires.txt
      writing top-level names to /tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil.egg-info/top_level.txt
      writing manifest file '/tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil.egg-info/SOURCES.txt'
      reading manifest file '/tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      adding license file 'LICENSE'
      writing manifest file '/tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil.egg-info/SOURCES.txt'
      creating '/tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil-5.9.5.dist-info'
      creating /tmp/pip-wheel-6penl2ae/.tmp-wubg40az/psutil-5.9.5.dist-info/WHEEL
      running build_py
      running build_ext
      building 'psutil._psutil_linux' extension
      creating /tmp/tmpcn29zv2o.build-temp/psutil
      aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=595 -DPy_LIMITED_API=0x03060000 -DPSUTIL_LINUX=1 -I/home/werate-01/GoDataID_anomalib/include -I/usr/include/python3.8 -c psutil/_psutil_common.c -o /tmp/tmpcn29zv2o.build-temp/psutil/_psutil_common.o
      psutil/_psutil_common.c:9:10: fatal error: Python.h: No such file or directory
       #include <Python.h>
                ^~~~~~~~~~
      compilation terminated.
      Traceback (most recent call last):
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/unixccompiler.py", line 186, in _compile
          self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/ccompiler.py", line 1007, in spawn
          spawn(cmd, dry_run=self.dry_run, **kwargs)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/spawn.py", line 70, in spawn
          raise DistutilsExecError(
      distutils.errors.DistutilsExecError: command '/usr/bin/aarch64-linux-gnu-gcc' failed with exit code 1
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/command/editable_wheel.py", line 140, in run
          self._create_wheel_file(bdist_wheel)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/command/editable_wheel.py", line 330, in _create_wheel_file
          files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/command/editable_wheel.py", line 261, in _run_build_commands
          self._run_build_subcommands()
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/command/editable_wheel.py", line 288, in _run_build_subcommands
          self.run_command(name)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/dist.py", line 1213, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 84, in run
          _build_ext.run(self)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 346, in run
          self.build_extensions()
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 468, in build_extensions
          self._build_extensions_serial()
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 494, in _build_extensions_serial
          self.build_extension(ext)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 246, in build_extension
          _build_ext.build_extension(self, ext)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 549, in build_extension
          objects = self.compiler.compile(
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/ccompiler.py", line 599, in compile
          self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
        File "/tmp/pip-build-env-heybpgxa/overlay/lib/python3.8/site-packages/setuptools/_distutils/unixccompiler.py", line 188, in _compile
          raise CompileError(msg)
      distutils.errors.CompileError: command '/usr/bin/aarch64-linux-gnu-gcc' failed with exit code 1
      error: Support for editable installs via PEP 660 was recently introduced
      in `setuptools`. If you are seeing this error, please report to:
      
      https://github.com/pypa/setuptools/issues
      
      Meanwhile you can try the legacy behavior by setting an
      environment variable and trying to install again:
      
      SETUPTOOLS_ENABLE_FEATURES="legacy-editable"
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building editable for psutil
Failed to build psutil
ERROR: Could not build wheels for psutil, which is required to install pyproject.toml-based projects

[notice] A new release of pip available: 22.3.1 -> 23.0
[notice] To update, run: pip install --upgrade pip

@ddelange
Copy link

ddelange commented Feb 6, 2023

@jasonrichdarmawan
Copy link

https://stackoverflow.com/a/21530768/5511061

Thanks for the info. I will definitely try python3.8-dev. Previously I install python3.8.

I use pip install psutil --find-links=https://ddelange.github.io/psutil/ it works but I find it uncomfortable as I can't review what inside the wheel.

I will use sudo apt-get install python3.8-dev after I flash the SD card. I will post the result today or tomorrow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants