summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2022-11-10 10:35:58 +0100
committerGitHub <noreply@github.com>2022-11-10 10:35:58 +0100
commit1f1074f8fbed46077ddc05dae92af95fecc78a33 (patch)
treecd973b0341e13e489b98e8c1c3a39ff594be3d44
parent6941261ad010d4d1e936af22fec224e9900509c0 (diff)
downloadpsutil-1f1074f8fbed46077ddc05dae92af95fecc78a33.tar.gz
#2164: fix compilation failures on linux < 2.6.27 / CentOS 5 (#2171)
-rw-r--r--.github/workflows/issues.py2
-rw-r--r--HISTORY.rst5
-rw-r--r--psutil/__init__.py2
-rw-r--r--psutil/_psutil_linux.c8
-rwxr-xr-xpsutil/tests/test_windows.py2
5 files changed, 16 insertions, 3 deletions
diff --git a/.github/workflows/issues.py b/.github/workflows/issues.py
index fce52ce7..2aea40be 100644
--- a/.github/workflows/issues.py
+++ b/.github/workflows/issues.py
@@ -10,6 +10,8 @@ is created. Assign labels, provide replies, closes issues, etc. depending
on the situation.
"""
+from __future__ import print_function
+
import functools
import json
import os
diff --git a/HISTORY.rst b/HISTORY.rst
index 32ed0b38..e0b70837 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -1,5 +1,10 @@
*Bug tracker at https://github.com/giampaolo/psutil/issues*
+5.9.5 (IN DEVELOPMENT)
+======================
+
+- 2164_, [Linux]: compilation fails on kernels < 2.6.27 (e.g. CentOS 5).
+
5.9.4
=====
diff --git a/psutil/__init__.py b/psutil/__init__.py
index 56742791..deaf02ea 100644
--- a/psutil/__init__.py
+++ b/psutil/__init__.py
@@ -211,7 +211,7 @@ if hasattr(_psplatform.Process, "rlimit"):
AF_LINK = _psplatform.AF_LINK
__author__ = "Giampaolo Rodola'"
-__version__ = "5.9.4"
+__version__ = "5.9.5"
version_info = tuple([int(num) for num in __version__.split('.')])
_timer = getattr(time, 'monotonic', time.time)
diff --git a/psutil/_psutil_linux.c b/psutil/_psutil_linux.c
index 0bacb204..f04fe776 100644
--- a/psutil/_psutil_linux.c
+++ b/psutil/_psutil_linux.c
@@ -78,10 +78,16 @@ ioprio_set(int which, int who, int ioprio) {
return syscall(__NR_ioprio_set, which, who, ioprio);
}
-// defined in linux/ethtool.h but not always available (e.g. Android)
+// * defined in linux/ethtool.h but not always available (e.g. Android)
+// * #ifdef check needed for old kernels, see:
+// https://github.com/giampaolo/psutil/issues/2164
static inline uint32_t
psutil_ethtool_cmd_speed(const struct ethtool_cmd *ecmd) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
+ return ecmd->speed;
+#else
return (ecmd->speed_hi << 16) | ecmd->speed;
+#endif
}
#define IOPRIO_CLASS_SHIFT 13
diff --git a/psutil/tests/test_windows.py b/psutil/tests/test_windows.py
index cb2642d1..9b163a18 100755
--- a/psutil/tests/test_windows.py
+++ b/psutil/tests/test_windows.py
@@ -23,8 +23,8 @@ import warnings
import psutil
from psutil import WINDOWS
from psutil._compat import FileNotFoundError
-from psutil._compat import which
from psutil._compat import super
+from psutil._compat import which
from psutil.tests import APPVEYOR
from psutil.tests import GITHUB_ACTIONS
from psutil.tests import HAS_BATTERY