From b233cde6f87714fc81f3395606f46e2c7a59db0a Mon Sep 17 00:00:00 2001
From: Matt Chan <thewchan@gmail.com>
Date: Tue, 30 Jan 2024 12:18:05 -0500
Subject: [PATCH 1/7] v5.9.6

---
 recipe/meta.yaml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 758fe17..8364323 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,5 +1,5 @@
-{% set version = "5.9.5" %}
-{% set sha256 = "5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c" %}
+{% set version = "5.9.6" %}
+{% set sha256 = "e4b92ddcd7dd4cdd3f900180ea1e104932c7bce234fb88976e2a3b296441225a" %}
 
 package:
   name: psutil
@@ -10,7 +10,7 @@ source:
   sha256: {{ sha256 }}
 
 build:
-  number: 1
+  number: 0
   script: {{ PYTHON }} -m pip install --ignore-installed --no-deps .
 
 requirements:

From 1d5b9a920bac330248bbf3d02d9549079e1a34c8 Mon Sep 17 00:00:00 2001
From: Nehal J Wani <nehaljw.kkd1@gmail.com>
Date: Sun, 17 Dec 2023 16:53:58 +0000
Subject: [PATCH 2/7] Add missing includes for v5.9.7

---
 .../0001-Add-missing-includes-for-macOS.patch | 39 +++++++++++++++++++
 recipe/meta.yaml                              |  2 +
 2 files changed, 41 insertions(+)
 create mode 100644 recipe/0001-Add-missing-includes-for-macOS.patch

diff --git a/recipe/0001-Add-missing-includes-for-macOS.patch b/recipe/0001-Add-missing-includes-for-macOS.patch
new file mode 100644
index 0000000..156666e
--- /dev/null
+++ b/recipe/0001-Add-missing-includes-for-macOS.patch
@@ -0,0 +1,39 @@
+From 63d823164d6c9071a7bf6ec611d2911b46b88152 Mon Sep 17 00:00:00 2001
+From: Nehal J Wani <nehaljw.kkd1@gmail.com>
+Date: Sun, 17 Dec 2023 16:52:21 +0000
+Subject: [PATCH] Add missing includes for macOS
+
+xref: https://github.com/giampaolo/psutil/pull/2242
+---
+ psutil/arch/osx/net.c     | 1 +
+ psutil/arch/osx/sensors.c | 2 ++
+ 2 files changed, 3 insertions(+)
+
+diff --git a/psutil/arch/osx/net.c b/psutil/arch/osx/net.c
+index e9cc61e9..f3de7cf3 100644
+--- a/psutil/arch/osx/net.c
++++ b/psutil/arch/osx/net.c
+@@ -9,6 +9,7 @@
+ // https://github.com/giampaolo/psutil/blame/efd7ed3/psutil/_psutil_osx.c
+ 
+ #include <Python.h>
++#include <arpa/inet.h>
+ #include <net/if_dl.h>
+ #include <net/route.h>
+ #include <sys/sysctl.h>
+diff --git a/psutil/arch/osx/sensors.c b/psutil/arch/osx/sensors.c
+index a2faa157..99f71608 100644
+--- a/psutil/arch/osx/sensors.c
++++ b/psutil/arch/osx/sensors.c
+@@ -12,6 +12,8 @@
+ 
+ 
+ #include <Python.h>
++#include <CoreFoundation/CoreFoundation.h>
++#include <IOKit/IOKitLib.h>
+ #include <IOKit/ps/IOPowerSources.h>
+ #include <IOKit/ps/IOPSKeys.h>
+ 
+-- 
+2.33.1
+
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 8364323..01d3169 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -8,6 +8,8 @@ package:
 source:
   url: https://pypi.io/packages/source/p/psutil/psutil-{{ version }}.tar.gz
   sha256: {{ sha256 }}
+  patches:
+    - 0001-Add-missing-includes-for-macOS.patch
 
 build:
   number: 0

From 67a5876a40284fc47337d36c8fad8e2bf8253f51 Mon Sep 17 00:00:00 2001
From: "conda-forge-webservices[bot]"
 <91080706+conda-forge-webservices[bot]@users.noreply.github.com>
Date: Fri, 2 Feb 2024 20:28:49 +0000
Subject: [PATCH 3/7] MNT: Re-rendered with conda-build 3.28.4, conda-smithy
 3.30.4, and conda-forge-pinning 2024.02.02.14.47.44

---
 .azure-pipelines/azure-pipelines-linux.yml    |  3 ++
 .azure-pipelines/azure-pipelines-osx.yml      |  3 ++
 .azure-pipelines/azure-pipelines-win.yml      |  3 ++
 .../linux_64_python3.10.____cpython.yaml      |  3 --
 .../linux_64_python3.11.____cpython.yaml      |  3 --
 .../linux_64_python3.12.____cpython.yaml      |  5 +--
 .../linux_64_python3.8.____cpython.yaml       |  3 --
 .../linux_64_python3.9.____73_pypy.yaml       |  3 --
 .../linux_64_python3.9.____cpython.yaml       |  3 --
 .../linux_aarch64_python3.10.____cpython.yaml |  3 --
 .../linux_aarch64_python3.11.____cpython.yaml |  3 --
 .../linux_aarch64_python3.12.____cpython.yaml |  5 +--
 .../linux_aarch64_python3.8.____cpython.yaml  |  3 --
 .../linux_aarch64_python3.9.____73_pypy.yaml  |  3 --
 .../linux_aarch64_python3.9.____cpython.yaml  |  3 --
 .../linux_ppc64le_python3.10.____cpython.yaml |  3 --
 .../linux_ppc64le_python3.11.____cpython.yaml |  3 --
 .../linux_ppc64le_python3.12.____cpython.yaml |  5 +--
 .../linux_ppc64le_python3.8.____cpython.yaml  |  3 --
 .../linux_ppc64le_python3.9.____73_pypy.yaml  |  3 --
 .../linux_ppc64le_python3.9.____cpython.yaml  |  3 --
 .ci_support/migrations/python311.yaml         | 37 -------------------
 .../osx_64_python3.10.____cpython.yaml        |  5 +--
 .../osx_64_python3.11.____cpython.yaml        |  5 +--
 .../osx_64_python3.12.____cpython.yaml        |  7 +---
 .ci_support/osx_64_python3.8.____cpython.yaml |  5 +--
 .ci_support/osx_64_python3.9.____73_pypy.yaml |  5 +--
 .ci_support/osx_64_python3.9.____cpython.yaml |  5 +--
 .../osx_arm64_python3.10.____cpython.yaml     |  5 +--
 .../osx_arm64_python3.11.____cpython.yaml     |  5 +--
 .../osx_arm64_python3.12.____cpython.yaml     |  7 +---
 .../osx_arm64_python3.8.____cpython.yaml      |  5 +--
 .../osx_arm64_python3.9.____cpython.yaml      |  5 +--
 .../win_64_python3.10.____cpython.yaml        |  3 --
 .../win_64_python3.11.____cpython.yaml        |  3 --
 .../win_64_python3.12.____cpython.yaml        |  5 +--
 .ci_support/win_64_python3.8.____cpython.yaml |  3 --
 .ci_support/win_64_python3.9.____73_pypy.yaml |  3 --
 .ci_support/win_64_python3.9.____cpython.yaml |  3 --
 .gitignore                                    | 25 ++++++++++++-
 .scripts/build_steps.sh                       |  9 +++--
 .scripts/run_docker_build.sh                  |  9 +++++
 .scripts/run_osx_build.sh                     | 13 +++++--
 .scripts/run_win_build.bat                    | 14 ++++++-
 README.md                                     |  2 +-
 45 files changed, 87 insertions(+), 170 deletions(-)
 delete mode 100644 .ci_support/migrations/python311.yaml

diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
index 8482aa3..8b2bef4 100755
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ b/.azure-pipelines/azure-pipelines-linux.yml
@@ -93,6 +93,9 @@ jobs:
 
   - script: |
         export CI=azure
+        export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt)
+        export remote_url=$(Build.Repository.Uri)
+        export sha=$(Build.SourceVersion)
         export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME
         export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME})
         if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then
diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml
index 2d83e68..5bfabd3 100755
--- a/.azure-pipelines/azure-pipelines-osx.yml
+++ b/.azure-pipelines/azure-pipelines-osx.yml
@@ -47,6 +47,9 @@ jobs:
   # TODO: Fast finish on azure pipelines?
   - script: |
       export CI=azure
+      export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt)
+      export remote_url=$(Build.Repository.Uri)
+      export sha=$(Build.SourceVersion)
       export OSX_FORCE_SDK_DOWNLOAD="1"
       export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME
       export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME})
diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml
index 752cc4d..f09740f 100755
--- a/.azure-pipelines/azure-pipelines-win.yml
+++ b/.azure-pipelines/azure-pipelines-win.yml
@@ -57,6 +57,9 @@ jobs:
         PYTHONUNBUFFERED: 1
         CONFIG: $(CONFIG)
         CI: azure
+        flow_run_id: azure_$(Build.BuildNumber).$(System.JobAttempt)
+        remote_url: $(Build.Repository.Uri)
+        sha: $(Build.SourceVersion)
         UPLOAD_PACKAGES: $(UPLOAD_PACKAGES)
         UPLOAD_TEMP: $(UPLOAD_TEMP)
         BINSTAR_TOKEN: $(BINSTAR_TOKEN)
diff --git a/.ci_support/linux_64_python3.10.____cpython.yaml b/.ci_support/linux_64_python3.10.____cpython.yaml
index 25358bd..df1c85e 100644
--- a/.ci_support/linux_64_python3.10.____cpython.yaml
+++ b/.ci_support/linux_64_python3.10.____cpython.yaml
@@ -18,6 +18,3 @@ python:
 - 3.10.* *_cpython
 target_platform:
 - linux-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_64_python3.11.____cpython.yaml b/.ci_support/linux_64_python3.11.____cpython.yaml
index adfb01c..4d19d45 100644
--- a/.ci_support/linux_64_python3.11.____cpython.yaml
+++ b/.ci_support/linux_64_python3.11.____cpython.yaml
@@ -18,6 +18,3 @@ python:
 - 3.11.* *_cpython
 target_platform:
 - linux-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_64_python3.12.____cpython.yaml b/.ci_support/linux_64_python3.12.____cpython.yaml
index 203d6ee..25e78e2 100644
--- a/.ci_support/linux_64_python3.12.____cpython.yaml
+++ b/.ci_support/linux_64_python3.12.____cpython.yaml
@@ -5,7 +5,7 @@ c_compiler_version:
 cdt_name:
 - cos6
 channel_sources:
-- conda-forge/label/python_rc,conda-forge
+- conda-forge
 channel_targets:
 - conda-forge main
 docker_image:
@@ -18,6 +18,3 @@ python:
 - 3.12.* *_cpython
 target_platform:
 - linux-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_64_python3.8.____cpython.yaml b/.ci_support/linux_64_python3.8.____cpython.yaml
index 66415d6..7288a71 100644
--- a/.ci_support/linux_64_python3.8.____cpython.yaml
+++ b/.ci_support/linux_64_python3.8.____cpython.yaml
@@ -18,6 +18,3 @@ python:
 - 3.8.* *_cpython
 target_platform:
 - linux-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_64_python3.9.____73_pypy.yaml b/.ci_support/linux_64_python3.9.____73_pypy.yaml
index 05fcff6..1de1bae 100644
--- a/.ci_support/linux_64_python3.9.____73_pypy.yaml
+++ b/.ci_support/linux_64_python3.9.____73_pypy.yaml
@@ -18,6 +18,3 @@ python:
 - 3.9.* *_73_pypy
 target_platform:
 - linux-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_64_python3.9.____cpython.yaml b/.ci_support/linux_64_python3.9.____cpython.yaml
index b2bcc49..7f7a505 100644
--- a/.ci_support/linux_64_python3.9.____cpython.yaml
+++ b/.ci_support/linux_64_python3.9.____cpython.yaml
@@ -18,6 +18,3 @@ python:
 - 3.9.* *_cpython
 target_platform:
 - linux-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_aarch64_python3.10.____cpython.yaml b/.ci_support/linux_aarch64_python3.10.____cpython.yaml
index d31aebd..619d7fa 100644
--- a/.ci_support/linux_aarch64_python3.10.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.10.____cpython.yaml
@@ -22,6 +22,3 @@ python:
 - 3.10.* *_cpython
 target_platform:
 - linux-aarch64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_aarch64_python3.11.____cpython.yaml b/.ci_support/linux_aarch64_python3.11.____cpython.yaml
index e79b23e..c7790b2 100644
--- a/.ci_support/linux_aarch64_python3.11.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.11.____cpython.yaml
@@ -22,6 +22,3 @@ python:
 - 3.11.* *_cpython
 target_platform:
 - linux-aarch64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_aarch64_python3.12.____cpython.yaml b/.ci_support/linux_aarch64_python3.12.____cpython.yaml
index a020100..199a27a 100644
--- a/.ci_support/linux_aarch64_python3.12.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.12.____cpython.yaml
@@ -9,7 +9,7 @@ cdt_arch:
 cdt_name:
 - cos7
 channel_sources:
-- conda-forge/label/python_rc,conda-forge
+- conda-forge
 channel_targets:
 - conda-forge main
 docker_image:
@@ -22,6 +22,3 @@ python:
 - 3.12.* *_cpython
 target_platform:
 - linux-aarch64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_aarch64_python3.8.____cpython.yaml b/.ci_support/linux_aarch64_python3.8.____cpython.yaml
index 356547b..129b5bc 100644
--- a/.ci_support/linux_aarch64_python3.8.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.8.____cpython.yaml
@@ -22,6 +22,3 @@ python:
 - 3.8.* *_cpython
 target_platform:
 - linux-aarch64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_aarch64_python3.9.____73_pypy.yaml b/.ci_support/linux_aarch64_python3.9.____73_pypy.yaml
index a6bd43d..90f7871 100644
--- a/.ci_support/linux_aarch64_python3.9.____73_pypy.yaml
+++ b/.ci_support/linux_aarch64_python3.9.____73_pypy.yaml
@@ -22,6 +22,3 @@ python:
 - 3.9.* *_73_pypy
 target_platform:
 - linux-aarch64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_aarch64_python3.9.____cpython.yaml b/.ci_support/linux_aarch64_python3.9.____cpython.yaml
index 81e5736..abf6ed9 100644
--- a/.ci_support/linux_aarch64_python3.9.____cpython.yaml
+++ b/.ci_support/linux_aarch64_python3.9.____cpython.yaml
@@ -22,6 +22,3 @@ python:
 - 3.9.* *_cpython
 target_platform:
 - linux-aarch64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_ppc64le_python3.10.____cpython.yaml b/.ci_support/linux_ppc64le_python3.10.____cpython.yaml
index 4be4b4a..9523fb7 100644
--- a/.ci_support/linux_ppc64le_python3.10.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.10.____cpython.yaml
@@ -18,6 +18,3 @@ python:
 - 3.10.* *_cpython
 target_platform:
 - linux-ppc64le
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_ppc64le_python3.11.____cpython.yaml b/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
index 6d59998..813ac67 100644
--- a/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.11.____cpython.yaml
@@ -18,6 +18,3 @@ python:
 - 3.11.* *_cpython
 target_platform:
 - linux-ppc64le
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_ppc64le_python3.12.____cpython.yaml b/.ci_support/linux_ppc64le_python3.12.____cpython.yaml
index 8c10786..518b26a 100644
--- a/.ci_support/linux_ppc64le_python3.12.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.12.____cpython.yaml
@@ -5,7 +5,7 @@ c_compiler_version:
 cdt_name:
 - cos7
 channel_sources:
-- conda-forge/label/python_rc,conda-forge
+- conda-forge
 channel_targets:
 - conda-forge main
 docker_image:
@@ -18,6 +18,3 @@ python:
 - 3.12.* *_cpython
 target_platform:
 - linux-ppc64le
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_ppc64le_python3.8.____cpython.yaml b/.ci_support/linux_ppc64le_python3.8.____cpython.yaml
index 6ff1ee0..7bb19aa 100644
--- a/.ci_support/linux_ppc64le_python3.8.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.8.____cpython.yaml
@@ -18,6 +18,3 @@ python:
 - 3.8.* *_cpython
 target_platform:
 - linux-ppc64le
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_ppc64le_python3.9.____73_pypy.yaml b/.ci_support/linux_ppc64le_python3.9.____73_pypy.yaml
index e08007f..89d5e58 100644
--- a/.ci_support/linux_ppc64le_python3.9.____73_pypy.yaml
+++ b/.ci_support/linux_ppc64le_python3.9.____73_pypy.yaml
@@ -18,6 +18,3 @@ python:
 - 3.9.* *_73_pypy
 target_platform:
 - linux-ppc64le
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/linux_ppc64le_python3.9.____cpython.yaml b/.ci_support/linux_ppc64le_python3.9.____cpython.yaml
index eb37a00..b6b2eff 100644
--- a/.ci_support/linux_ppc64le_python3.9.____cpython.yaml
+++ b/.ci_support/linux_ppc64le_python3.9.____cpython.yaml
@@ -18,6 +18,3 @@ python:
 - 3.9.* *_cpython
 target_platform:
 - linux-ppc64le
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/migrations/python311.yaml b/.ci_support/migrations/python311.yaml
deleted file mode 100644
index a75ff43..0000000
--- a/.ci_support/migrations/python311.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-migrator_ts: 1666686085
-__migrator:
-    migration_number: 1
-    operation: key_add
-    primary_key: python
-    ordering:
-        python:
-            - 3.6.* *_cpython
-            - 3.7.* *_cpython
-            - 3.8.* *_cpython
-            - 3.9.* *_cpython
-            - 3.10.* *_cpython
-            - 3.11.* *_cpython  # new entry
-            - 3.6.* *_73_pypy
-            - 3.7.* *_73_pypy
-            - 3.8.* *_73_pypy
-            - 3.9.* *_73_pypy
-    paused: false
-    longterm: True
-    pr_limit: 5
-    max_solver_attempts: 10  # this will make the bot retry "not solvable" stuff 10 times
-    exclude:
-      # this shouldn't attempt to modify the python feedstocks
-      - python
-      - pypy3.6
-      - pypy-meta
-      - cross-python
-      - python_abi
-    exclude_pinned_pkgs: false
-
-python:
-  - 3.11.* *_cpython
-# additional entries to add for zip_keys
-numpy:
-  - 1.23
-python_impl:
-  - cpython
diff --git a/.ci_support/osx_64_python3.10.____cpython.yaml b/.ci_support/osx_64_python3.10.____cpython.yaml
index d1c16d2..51b58b5 100644
--- a/.ci_support/osx_64_python3.10.____cpython.yaml
+++ b/.ci_support/osx_64_python3.10.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.10.* *_cpython
 target_platform:
 - osx-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_64_python3.11.____cpython.yaml b/.ci_support/osx_64_python3.11.____cpython.yaml
index d017db5..57cb1f7 100644
--- a/.ci_support/osx_64_python3.11.____cpython.yaml
+++ b/.ci_support/osx_64_python3.11.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.11.* *_cpython
 target_platform:
 - osx-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_64_python3.12.____cpython.yaml b/.ci_support/osx_64_python3.12.____cpython.yaml
index 91b466e..e0075e3 100644
--- a/.ci_support/osx_64_python3.12.____cpython.yaml
+++ b/.ci_support/osx_64_python3.12.____cpython.yaml
@@ -3,9 +3,9 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
-- conda-forge/label/python_rc,conda-forge
+- conda-forge
 channel_targets:
 - conda-forge main
 macos_machine:
@@ -18,6 +18,3 @@ python:
 - 3.12.* *_cpython
 target_platform:
 - osx-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_64_python3.8.____cpython.yaml b/.ci_support/osx_64_python3.8.____cpython.yaml
index 3538099..5389161 100644
--- a/.ci_support/osx_64_python3.8.____cpython.yaml
+++ b/.ci_support/osx_64_python3.8.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.8.* *_cpython
 target_platform:
 - osx-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_64_python3.9.____73_pypy.yaml b/.ci_support/osx_64_python3.9.____73_pypy.yaml
index a25511b..6a03c7f 100644
--- a/.ci_support/osx_64_python3.9.____73_pypy.yaml
+++ b/.ci_support/osx_64_python3.9.____73_pypy.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.9.* *_73_pypy
 target_platform:
 - osx-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_64_python3.9.____cpython.yaml b/.ci_support/osx_64_python3.9.____cpython.yaml
index 8fe0325..755d9c6 100644
--- a/.ci_support/osx_64_python3.9.____cpython.yaml
+++ b/.ci_support/osx_64_python3.9.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.9.* *_cpython
 target_platform:
 - osx-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_arm64_python3.10.____cpython.yaml b/.ci_support/osx_arm64_python3.10.____cpython.yaml
index ff0d620..2f0a395 100644
--- a/.ci_support/osx_arm64_python3.10.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.10.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.10.* *_cpython
 target_platform:
 - osx-arm64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_arm64_python3.11.____cpython.yaml b/.ci_support/osx_arm64_python3.11.____cpython.yaml
index 75e2c2e..e62c871 100644
--- a/.ci_support/osx_arm64_python3.11.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.11.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.11.* *_cpython
 target_platform:
 - osx-arm64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_arm64_python3.12.____cpython.yaml b/.ci_support/osx_arm64_python3.12.____cpython.yaml
index 2ea2609..8f73052 100644
--- a/.ci_support/osx_arm64_python3.12.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.12.____cpython.yaml
@@ -3,9 +3,9 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
-- conda-forge/label/python_rc,conda-forge
+- conda-forge
 channel_targets:
 - conda-forge main
 macos_machine:
@@ -18,6 +18,3 @@ python:
 - 3.12.* *_cpython
 target_platform:
 - osx-arm64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_arm64_python3.8.____cpython.yaml b/.ci_support/osx_arm64_python3.8.____cpython.yaml
index 3443e2f..08c78f2 100644
--- a/.ci_support/osx_arm64_python3.8.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.8.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.8.* *_cpython
 target_platform:
 - osx-arm64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/osx_arm64_python3.9.____cpython.yaml b/.ci_support/osx_arm64_python3.9.____cpython.yaml
index c1cf094..2fac0da 100644
--- a/.ci_support/osx_arm64_python3.9.____cpython.yaml
+++ b/.ci_support/osx_arm64_python3.9.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
 c_compiler:
 - clang
 c_compiler_version:
-- '15'
+- '16'
 channel_sources:
 - conda-forge
 channel_targets:
@@ -18,6 +18,3 @@ python:
 - 3.9.* *_cpython
 target_platform:
 - osx-arm64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/win_64_python3.10.____cpython.yaml b/.ci_support/win_64_python3.10.____cpython.yaml
index d3ef5fb..45e2c73 100644
--- a/.ci_support/win_64_python3.10.____cpython.yaml
+++ b/.ci_support/win_64_python3.10.____cpython.yaml
@@ -12,6 +12,3 @@ python:
 - 3.10.* *_cpython
 target_platform:
 - win-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/win_64_python3.11.____cpython.yaml b/.ci_support/win_64_python3.11.____cpython.yaml
index 593d29d..ca9063f 100644
--- a/.ci_support/win_64_python3.11.____cpython.yaml
+++ b/.ci_support/win_64_python3.11.____cpython.yaml
@@ -12,6 +12,3 @@ python:
 - 3.11.* *_cpython
 target_platform:
 - win-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/win_64_python3.12.____cpython.yaml b/.ci_support/win_64_python3.12.____cpython.yaml
index 2e5beab..2258696 100644
--- a/.ci_support/win_64_python3.12.____cpython.yaml
+++ b/.ci_support/win_64_python3.12.____cpython.yaml
@@ -1,7 +1,7 @@
 c_compiler:
 - vs2019
 channel_sources:
-- conda-forge/label/python_rc,conda-forge
+- conda-forge
 channel_targets:
 - conda-forge main
 pin_run_as_build:
@@ -12,6 +12,3 @@ python:
 - 3.12.* *_cpython
 target_platform:
 - win-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/win_64_python3.8.____cpython.yaml b/.ci_support/win_64_python3.8.____cpython.yaml
index b396bd0..237e1ad 100644
--- a/.ci_support/win_64_python3.8.____cpython.yaml
+++ b/.ci_support/win_64_python3.8.____cpython.yaml
@@ -12,6 +12,3 @@ python:
 - 3.8.* *_cpython
 target_platform:
 - win-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/win_64_python3.9.____73_pypy.yaml b/.ci_support/win_64_python3.9.____73_pypy.yaml
index 4f0e410..23bcdf6 100644
--- a/.ci_support/win_64_python3.9.____73_pypy.yaml
+++ b/.ci_support/win_64_python3.9.____73_pypy.yaml
@@ -12,6 +12,3 @@ python:
 - 3.9.* *_73_pypy
 target_platform:
 - win-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.ci_support/win_64_python3.9.____cpython.yaml b/.ci_support/win_64_python3.9.____cpython.yaml
index d1f23d2..b352724 100644
--- a/.ci_support/win_64_python3.9.____cpython.yaml
+++ b/.ci_support/win_64_python3.9.____cpython.yaml
@@ -12,6 +12,3 @@ python:
 - 3.9.* *_cpython
 target_platform:
 - win-64
-zip_keys:
-- - python
-  - channel_sources
diff --git a/.gitignore b/.gitignore
index c89ecb7..179afe5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,24 @@
-*.pyc
+# User content belongs under recipe/.
+# Feedstock configuration goes in `conda-forge.yml`
+# Everything else is managed by the conda-smithy rerender process.
+# Please do not modify
+
+# Ignore all files and folders in root
+*
+!/conda-forge.yml
+
+# Don't ignore any files/folders if the parent folder is 'un-ignored'
+# This also avoids warnings when adding an already-checked file with an ignored parent.
+!/**/
+# Don't ignore any files/folders recursively in the following folders
+!/recipe/**
+!/.ci_support/**
 
-build_artifacts
+# Since we ignore files/folders recursively, any folders inside
+# build_artifacts gets ignored which trips some build systems.
+# To avoid that we 'un-ignore' all files/folders recursively
+# and only ignore the root build_artifacts folder.
+!/build_artifacts/**
+/build_artifacts
+
+*.pyc
diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh
index 322832b..beda247 100755
--- a/.scripts/build_steps.sh
+++ b/.scripts/build_steps.sh
@@ -28,13 +28,15 @@ conda-build:
 pkgs_dirs:
   - ${FEEDSTOCK_ROOT}/build_artifacts/pkg_cache
   - /opt/conda/pkgs
+solver: libmamba
 
 CONDARC
+export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1
 
 mamba install --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
-    pip mamba conda-build boa conda-forge-ci-setup=3
+    pip mamba conda-build boa conda-forge-ci-setup=4
 mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
-    pip mamba conda-build boa conda-forge-ci-setup
+    pip mamba conda-build boa conda-forge-ci-setup=4
 
 # set up the condarc
 setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}"
@@ -68,7 +70,8 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then
 else
     conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \
         --suppress-variables ${EXTRA_CB_OPTIONS:-} \
-        --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml"
+        --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \
+        --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}"
     ( startgroup "Validating outputs" ) 2> /dev/null
 
     validate_recipe_outputs "${FEEDSTOCK_NAME}"
diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh
index 9236239..00f377a 100755
--- a/.scripts/run_docker_build.sh
+++ b/.scripts/run_docker_build.sh
@@ -21,6 +21,12 @@ if [ -z ${FEEDSTOCK_NAME} ]; then
     export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT})
 fi
 
+if [[ "${sha:-}" == "" ]]; then
+  pushd "${FEEDSTOCK_ROOT}"
+  sha=$(git rev-parse HEAD)
+  popd
+fi
+
 docker info
 
 # In order for the conda-build process in the container to write to the mounted
@@ -91,6 +97,9 @@ docker run ${DOCKER_RUN_ARGS} \
            -e CPU_COUNT \
            -e BUILD_WITH_CONDA_DEBUG \
            -e BUILD_OUTPUT_ID \
+           -e flow_run_id \
+           -e remote_url \
+           -e sha \
            -e BINSTAR_TOKEN \
            -e FEEDSTOCK_TOKEN \
            -e STAGING_BINSTAR_TOKEN \
diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh
index cd9a88f..9259eb9 100755
--- a/.scripts/run_osx_build.sh
+++ b/.scripts/run_osx_build.sh
@@ -22,11 +22,13 @@ bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME}
 
 source ${MINIFORGE_HOME}/etc/profile.d/conda.sh
 conda activate base
+export CONDA_SOLVER="libmamba"
+export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1
 
 mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \
-    pip mamba conda-build boa conda-forge-ci-setup=3
+    pip mamba conda-build boa conda-forge-ci-setup=4
 mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \
-    pip mamba conda-build boa conda-forge-ci-setup
+    pip mamba conda-build boa conda-forge-ci-setup=4
 
 
 
@@ -45,6 +47,10 @@ else
   echo -e "\n\nNot mangling homebrew as we are not running in CI"
 fi
 
+if [[ "${sha:-}" == "" ]]; then
+  sha=$(git rev-parse HEAD)
+fi
+
 echo -e "\n\nRunning the build setup script."
 source run_conda_forge_build_setup
 
@@ -77,7 +83,8 @@ else
 
     conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml \
         --suppress-variables ${EXTRA_CB_OPTIONS:-} \
-        --clobber-file ./.ci_support/clobber_${CONFIG}.yaml
+        --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \
+        --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha"
     ( startgroup "Validating outputs" ) 2> /dev/null
 
     validate_recipe_outputs "${FEEDSTOCK_NAME}"
diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat
index 07d3445..48734de 100755
--- a/.scripts/run_win_build.bat
+++ b/.scripts/run_win_build.bat
@@ -17,10 +17,14 @@ call :start_group "Configuring conda"
 
 :: Activate the base conda environment
 call activate base
+:: Configure the solver
+set "CONDA_SOLVER=libmamba"
+if !errorlevel! neq 0 exit /b !errorlevel!
+set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1"
 
 :: Provision the necessary dependencies to build the recipe later
 echo Installing dependencies
-mamba.exe install "python=3.10" pip mamba conda-build boa conda-forge-ci-setup=3 -c conda-forge --strict-channel-priority --yes
+mamba.exe install "python=3.10" pip mamba conda-build boa conda-forge-ci-setup=4 -c conda-forge --strict-channel-priority --yes
 if !errorlevel! neq 0 exit /b !errorlevel!
 
 :: Set basic configuration
@@ -38,7 +42,13 @@ if EXIST LICENSE.txt (
     copy LICENSE.txt "recipe\\recipe-scripts-license.txt"
 )
 if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] (
-    set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test"
+    if [%CROSSCOMPILING_EMULATOR%] == [] (
+        set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test"
+    )
+)
+
+if NOT [%flow_run_id%] == [] (
+    set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%"
 )
 
 call :end_group
diff --git a/README.md b/README.md
index 3dcafef..421f9a2 100644
--- a/README.md
+++ b/README.md
@@ -363,7 +363,7 @@ available continuous integration services. Thanks to the awesome service provide
 [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/),
 [Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/)
 it is possible to build and upload installable packages to the
-[conda-forge](https://anaconda.org/conda-forge) [Anaconda-Cloud](https://anaconda.org/)
+[conda-forge](https://anaconda.org/conda-forge) [anaconda.org](https://anaconda.org/)
 channel for Linux, Windows and OSX respectively.
 
 To manage the continuous integration and simplify feedstock maintenance

From 0dd3f5488a5ea8dcb3d144151f58bd9d82853153 Mon Sep 17 00:00:00 2001
From: Matt Chan <thewchan@gmail.com>
Date: Wed, 7 Feb 2024 17:34:27 -0500
Subject: [PATCH 4/7] Added upstream patch for pypy

---
 recipe/0002-upstream-patch-for-pypy.patch | 75 +++++++++++++++++++++++
 recipe/meta.yaml                          |  1 +
 2 files changed, 76 insertions(+)
 create mode 100644 recipe/0002-upstream-patch-for-pypy.patch

diff --git a/recipe/0002-upstream-patch-for-pypy.patch b/recipe/0002-upstream-patch-for-pypy.patch
new file mode 100644
index 0000000..eebe38d
--- /dev/null
+++ b/recipe/0002-upstream-patch-for-pypy.patch
@@ -0,0 +1,75 @@
+From ccdb775abe50125a845362fd0b65f1189c02e78b Mon Sep 17 00:00:00 2001
+From: Giampaolo Rodola <g.rodola@gmail.com>
+Date: Thu, 9 Nov 2023 14:34:11 -0800
+Subject: [PATCH] fix #2325: fix compilation on PyPy
+
+---
+ HISTORY.rst             |  5 +++++
+ psutil/_psutil_common.c | 12 ++++++++++++
+ psutil/_psutil_common.h | 14 +++++++++-----
+ 3 files changed, 26 insertions(+), 5 deletions(-)
+
+diff --git a/HISTORY.rst b/HISTORY.rst
+index 6044d8c50..0c62d823c 100644
+--- a/HISTORY.rst
++++ b/HISTORY.rst
+@@ -10,6 +10,11 @@ XXXX-XX-XX
+ - 2324_: enforce Ruff rule `raw-string-in-exception`, which helps providing
+   clearer tracebacks when exceptions are raised by psutil.
+ 
++**Bug fixes**
++
++- 2325_, [PyPy]: psutil did not compile on PyPy due to missing
++  `PyErr_SetExcFromWindowsErrWithFilenameObject` cPython API.
++
+ 5.9.6
+ =====
+ 
+diff --git a/psutil/_psutil_common.c b/psutil/_psutil_common.c
+index d8d78bf64..d78c140ec 100644
+--- a/psutil/_psutil_common.c
++++ b/psutil/_psutil_common.c
+@@ -58,6 +58,18 @@ PyErr_SetFromWindowsErrWithFilename(int winerr, const char *filename) {
+ #endif  // !defined(PyErr_SetFromWindowsErrWithFilename)
+ 
+ 
++#if !defined(PyErr_SetExcFromWindowsErrWithFilenameObject)
++PyObject *
++PyErr_SetExcFromWindowsErrWithFilenameObject(PyObject *type,
++                                             int ierr,
++                                             PyObject *filename) {
++    // Original function is too complex. Just raise OSError without
++    // filename.
++    return PyErr_SetFromWindowsErrWithFilename(ierr, NULL);
++}
++#endif // !defined(PyErr_SetExcFromWindowsErrWithFilenameObject)
++
++
+ // PyPy 2.7
+ #if !defined(PyErr_SetFromWindowsErr)
+ PyObject *
+diff --git a/psutil/_psutil_common.h b/psutil/_psutil_common.h
+index a425f8685..20c03ebd7 100644
+--- a/psutil/_psutil_common.h
++++ b/psutil/_psutil_common.h
+@@ -31,11 +31,15 @@ static const int PSUTIL_CONN_NONE = 128;
+     #define PyUnicode_DecodeFSDefaultAndSize   PyString_FromStringAndSize
+ #endif
+ 
+-#if defined(PSUTIL_WINDOWS) && \
+-        defined(PYPY_VERSION) && \
+-        !defined(PyErr_SetFromWindowsErrWithFilename)
+-    PyObject *PyErr_SetFromWindowsErrWithFilename(int ierr,
+-                                                  const char *filename);
++#if defined(PSUTIL_WINDOWS) && defined(PYPY_VERSION)
++    #if !defined(PyErr_SetFromWindowsErrWithFilename)
++        PyObject *PyErr_SetFromWindowsErrWithFilename(int ierr,
++                                                      const char *filename);
++    #endif
++    #if !defined(PyErr_SetExcFromWindowsErrWithFilenameObject)
++        PyObject *PyErr_SetExcFromWindowsErrWithFilenameObject(
++            PyObject *type, int ierr, PyObject *filename);
++    #endif
+ #endif
+ 
+ // --- _Py_PARSE_PID
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 01d3169..156a139 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -10,6 +10,7 @@ source:
   sha256: {{ sha256 }}
   patches:
     - 0001-Add-missing-includes-for-macOS.patch
+    - 0002-upstream-patch-for-pypy.patch
 
 build:
   number: 0

From 9006050ab54b564c6c729d6ae3b181a75e1280c5 Mon Sep 17 00:00:00 2001
From: Matt Chan <thewchan@gmail.com>
Date: Wed, 7 Feb 2024 17:42:12 -0500
Subject: [PATCH 5/7] Add selector to pypy patch

---
 recipe/meta.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 156a139..73a006a 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -10,7 +10,7 @@ source:
   sha256: {{ sha256 }}
   patches:
     - 0001-Add-missing-includes-for-macOS.patch
-    - 0002-upstream-patch-for-pypy.patch
+    - 0002-upstream-patch-for-pypy.patch  # [python_impl == 'pypy']
 
 build:
   number: 0

From 9a31cf6411fcd656e948c65a6c1b978c0afc60e6 Mon Sep 17 00:00:00 2001
From: jakirkham <jakirkham@gmail.com>
Date: Wed, 7 Feb 2024 15:11:47 -0800
Subject: [PATCH 6/7] Always apply PyPy patch

---
 recipe/meta.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 73a006a..156a139 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -10,7 +10,7 @@ source:
   sha256: {{ sha256 }}
   patches:
     - 0001-Add-missing-includes-for-macOS.patch
-    - 0002-upstream-patch-for-pypy.patch  # [python_impl == 'pypy']
+    - 0002-upstream-patch-for-pypy.patch
 
 build:
   number: 0

From 7e0ed5d322472691ec94f1ca82fe42c9aa79251a Mon Sep 17 00:00:00 2001
From: Matt Chan <thewchan@gmail.com>
Date: Thu, 8 Feb 2024 13:16:45 -0500
Subject: [PATCH 7/7] Remove unneeded patch portion

---
 recipe/0002-upstream-patch-for-pypy.patch | 27 -----------------------
 1 file changed, 27 deletions(-)

diff --git a/recipe/0002-upstream-patch-for-pypy.patch b/recipe/0002-upstream-patch-for-pypy.patch
index eebe38d..76d6d3b 100644
--- a/recipe/0002-upstream-patch-for-pypy.patch
+++ b/recipe/0002-upstream-patch-for-pypy.patch
@@ -1,30 +1,3 @@
-From ccdb775abe50125a845362fd0b65f1189c02e78b Mon Sep 17 00:00:00 2001
-From: Giampaolo Rodola <g.rodola@gmail.com>
-Date: Thu, 9 Nov 2023 14:34:11 -0800
-Subject: [PATCH] fix #2325: fix compilation on PyPy
-
----
- HISTORY.rst             |  5 +++++
- psutil/_psutil_common.c | 12 ++++++++++++
- psutil/_psutil_common.h | 14 +++++++++-----
- 3 files changed, 26 insertions(+), 5 deletions(-)
-
-diff --git a/HISTORY.rst b/HISTORY.rst
-index 6044d8c50..0c62d823c 100644
---- a/HISTORY.rst
-+++ b/HISTORY.rst
-@@ -10,6 +10,11 @@ XXXX-XX-XX
- - 2324_: enforce Ruff rule `raw-string-in-exception`, which helps providing
-   clearer tracebacks when exceptions are raised by psutil.
- 
-+**Bug fixes**
-+
-+- 2325_, [PyPy]: psutil did not compile on PyPy due to missing
-+  `PyErr_SetExcFromWindowsErrWithFilenameObject` cPython API.
-+
- 5.9.6
- =====
- 
 diff --git a/psutil/_psutil_common.c b/psutil/_psutil_common.c
 index d8d78bf64..d78c140ec 100644
 --- a/psutil/_psutil_common.c