summaryrefslogtreecommitdiff
path: root/lang/python/python-psutil/patches
diff options
context:
space:
mode:
Diffstat (limited to 'lang/python/python-psutil/patches')
-rw-r--r--lang/python/python-psutil/patches/100_add_cross_platform_build_ability.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/lang/python/python-psutil/patches/100_add_cross_platform_build_ability.patch b/lang/python/python-psutil/patches/100_add_cross_platform_build_ability.patch
new file mode 100644
index 000000000..e7e84f49a
--- /dev/null
+++ b/lang/python/python-psutil/patches/100_add_cross_platform_build_ability.patch
@@ -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")
+
+
+ # ===================================================================