|
@ -0,0 +1,59 @@ |
|
|
|
|
|
From: https://github.com/giampaolo/psutil/pull/2068/commits/9a5cb2b71d301a63ea765f02a196fd046e769685 |
|
|
|
|
|
|
|
|
|
|
|
From 9a5cb2b71d301a63ea765f02a196fd046e769685 Mon Sep 17 00:00:00 2001 |
|
|
|
|
|
From: "Sergey V. Lobanov" <sergey@lobanov.in> |
|
|
|
|
|
Date: Mon, 31 Jan 2022 17:48:14 +0300 |
|
|
|
|
|
Subject: [PATCH] Add cross-platform build ability |
|
|
|
|
|
|
|
|
|
|
|
Currently it is not possible to build psutil on MacOS for Linux |
|
|
|
|
|
target using external toolchain. It fails due to build script |
|
|
|
|
|
detects build host OS and changes build logic according to detected |
|
|
|
|
|
OS. |
|
|
|
|
|
|
|
|
|
|
|
This patch allows to redefine os.name and sys.platform using ENV |
|
|
|
|
|
vars TARGET_OS_NAME and TARGET_SYS_PLATFORM. If these variables |
|
|
|
|
|
are not defined then os.name and sys.platform is used as it does |
|
|
|
|
|
currently. |
|
|
|
|
|
|
|
|
|
|
|
Using this patch it is possible to compile psutil on MacOS with |
|
|
|
|
|
OpenWrt GCC Toolchain (OpenWrt is Linux). |
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in> |
|
|
|
|
|
---
|
|
|
|
|
|
psutil/_common.py | 23 ++++++++++++++--------- |
|
|
|
|
|
1 file changed, 14 insertions(+), 9 deletions(-) |
|
|
|
|
|
|
|
|
|
|
|
--- a/psutil/_common.py
|
|
|
|
|
|
+++ b/psutil/_common.py
|
|
|
|
|
|
@@ -81,17 +81,22 @@ __all__ = [
|
|
|
|
|
|
# =================================================================== |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-POSIX = os.name == "posix"
|
|
|
|
|
|
-WINDOWS = os.name == "nt"
|
|
|
|
|
|
-LINUX = sys.platform.startswith("linux")
|
|
|
|
|
|
-MACOS = sys.platform.startswith("darwin")
|
|
|
|
|
|
+# Allow to redefine os.name and sys.platform if build OS and target
|
|
|
|
|
|
+# OS are different (e.g. build OS is MacOS, target OS is Linux)
|
|
|
|
|
|
+target_os_name = os.getenv('TARGET_OS_NAME', os.name)
|
|
|
|
|
|
+target_sys_platform = os.getenv('TARGET_SYS_PLATFORM', sys.platform)
|
|
|
|
|
|
+
|
|
|
|
|
|
+POSIX = target_os_name == "posix"
|
|
|
|
|
|
+WINDOWS = target_os_name == "nt"
|
|
|
|
|
|
+LINUX = target_sys_platform.startswith("linux")
|
|
|
|
|
|
+MACOS = target_sys_platform.startswith("darwin")
|
|
|
|
|
|
OSX = MACOS # deprecated alias |
|
|
|
|
|
-FREEBSD = sys.platform.startswith(("freebsd", "midnightbsd"))
|
|
|
|
|
|
-OPENBSD = sys.platform.startswith("openbsd")
|
|
|
|
|
|
-NETBSD = sys.platform.startswith("netbsd")
|
|
|
|
|
|
+FREEBSD = target_sys_platform.startswith(("freebsd", "midnightbsd"))
|
|
|
|
|
|
+OPENBSD = target_sys_platform.startswith("openbsd")
|
|
|
|
|
|
+NETBSD = target_sys_platform.startswith("netbsd")
|
|
|
|
|
|
BSD = FREEBSD or OPENBSD or NETBSD |
|
|
|
|
|
-SUNOS = sys.platform.startswith(("sunos", "solaris"))
|
|
|
|
|
|
-AIX = sys.platform.startswith("aix")
|
|
|
|
|
|
+SUNOS = target_sys_platform.startswith(("sunos", "solaris"))
|
|
|
|
|
|
+AIX = target_sys_platform.startswith("aix")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# =================================================================== |