make sysutils/py-psutil build on SecBSD
This commit is contained in:
parent
09b3080379
commit
e2e2ced49d
15 changed files with 528 additions and 3 deletions
|
@ -22,7 +22,7 @@ MODPY_PYBUILD = setuptools
|
||||||
FLAVORS = python3
|
FLAVORS = python3
|
||||||
FLAVOR = python3
|
FLAVOR = python3
|
||||||
|
|
||||||
MODPY_PYTEST_ARGS = lib*/psutil/tests
|
MODPY_PYTEST_ARGS = lib/psutil/tests
|
||||||
TEST_DEPENDS = devel/py-mock${MODPY_FLAVOR}
|
TEST_DEPENDS = devel/py-mock${MODPY_FLAVOR}
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
.include <bsd.port.mk>
|
||||||
|
|
29
sysutils/py-psutil/patches/patch-psutil___init___py
Normal file
29
sysutils/py-psutil/patches/patch-psutil___init___py
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
Index: psutil/__init__.py
|
||||||
|
--- psutil/__init__.py.orig
|
||||||
|
+++ psutil/__init__.py
|
||||||
|
@@ -66,6 +66,7 @@ from ._common import OSX # deprecated alias
|
||||||
|
from ._common import POSIX # NOQA
|
||||||
|
from ._common import POWER_TIME_UNKNOWN
|
||||||
|
from ._common import POWER_TIME_UNLIMITED
|
||||||
|
+from ._common import SECBSD # NOQA
|
||||||
|
from ._common import STATUS_DEAD
|
||||||
|
from ._common import STATUS_DISK_SLEEP
|
||||||
|
from ._common import STATUS_IDLE
|
||||||
|
@@ -170,7 +171,7 @@ __all__ = [
|
||||||
|
"POWER_TIME_UNKNOWN", "POWER_TIME_UNLIMITED",
|
||||||
|
|
||||||
|
"BSD", "FREEBSD", "LINUX", "NETBSD", "OPENBSD", "MACOS", "OSX", "POSIX",
|
||||||
|
- "SUNOS", "WINDOWS", "AIX",
|
||||||
|
+ "SECBSD", "SUNOS", "WINDOWS", "AIX",
|
||||||
|
|
||||||
|
# "RLIM_INFINITY", "RLIMIT_AS", "RLIMIT_CORE", "RLIMIT_CPU", "RLIMIT_DATA",
|
||||||
|
# "RLIMIT_FSIZE", "RLIMIT_LOCKS", "RLIMIT_MEMLOCK", "RLIMIT_NOFILE",
|
||||||
|
@@ -1179,7 +1180,7 @@ class Process(object):
|
||||||
|
try:
|
||||||
|
os.kill(self.pid, sig)
|
||||||
|
except ProcessLookupError:
|
||||||
|
- if OPENBSD and pid_exists(self.pid):
|
||||||
|
+ if OPENBSD or SECBSD and pid_exists(self.pid):
|
||||||
|
# We do this because os.kill() lies in case of
|
||||||
|
# zombie processes.
|
||||||
|
raise ZombieProcess(self.pid, self._name, self._ppid)
|
23
sysutils/py-psutil/patches/patch-psutil__common_py
Normal file
23
sysutils/py-psutil/patches/patch-psutil__common_py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Index: psutil/_common.py
|
||||||
|
--- psutil/_common.py.orig
|
||||||
|
+++ psutil/_common.py
|
||||||
|
@@ -49,7 +49,7 @@ _DEFAULT = object()
|
||||||
|
__all__ = [
|
||||||
|
# OS constants
|
||||||
|
'FREEBSD', 'BSD', 'LINUX', 'NETBSD', 'OPENBSD', 'MACOS', 'OSX', 'POSIX',
|
||||||
|
- 'SUNOS', 'WINDOWS',
|
||||||
|
+ 'SECBSD', 'SUNOS', 'WINDOWS',
|
||||||
|
# connection constants
|
||||||
|
'CONN_CLOSE', 'CONN_CLOSE_WAIT', 'CONN_CLOSING', 'CONN_ESTABLISHED',
|
||||||
|
'CONN_FIN_WAIT1', 'CONN_FIN_WAIT2', 'CONN_LAST_ACK', 'CONN_LISTEN',
|
||||||
|
@@ -90,8 +90,9 @@ MACOS = sys.platform.startswith("darwin")
|
||||||
|
OSX = MACOS # deprecated alias
|
||||||
|
FREEBSD = sys.platform.startswith(("freebsd", "midnightbsd"))
|
||||||
|
OPENBSD = sys.platform.startswith("openbsd")
|
||||||
|
+SECBSD = sys.platform.startswith("secbsd")
|
||||||
|
NETBSD = sys.platform.startswith("netbsd")
|
||||||
|
-BSD = FREEBSD or OPENBSD or NETBSD
|
||||||
|
+BSD = FREEBSD or OPENBSD or SECBSD or NETBSD
|
||||||
|
SUNOS = sys.platform.startswith(("sunos", "solaris"))
|
||||||
|
AIX = sys.platform.startswith("aix")
|
||||||
|
|
127
sysutils/py-psutil/patches/patch-psutil__psbsd_py
Normal file
127
sysutils/py-psutil/patches/patch-psutil__psbsd_py
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
Index: psutil/_psbsd.py
|
||||||
|
--- psutil/_psbsd.py.orig
|
||||||
|
+++ psutil/_psbsd.py
|
||||||
|
@@ -2,7 +2,7 @@
|
||||||
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
|
# found in the LICENSE file.
|
||||||
|
|
||||||
|
-"""FreeBSD, OpenBSD and NetBSD platforms implementation."""
|
||||||
|
+"""FreeBSD, OpenBSD, SecBSD and NetBSD platforms implementation."""
|
||||||
|
|
||||||
|
import contextlib
|
||||||
|
import errno
|
||||||
|
@@ -19,6 +19,7 @@ from . import _psutil_posix as cext_posix
|
||||||
|
from ._common import FREEBSD
|
||||||
|
from ._common import NETBSD
|
||||||
|
from ._common import OPENBSD
|
||||||
|
+from ._common import SECBSD
|
||||||
|
from ._common import AccessDenied
|
||||||
|
from ._common import NoSuchProcess
|
||||||
|
from ._common import ZombieProcess
|
||||||
|
@@ -51,7 +52,7 @@ if FREEBSD:
|
||||||
|
cext.SWAIT: _common.STATUS_WAITING,
|
||||||
|
cext.SLOCK: _common.STATUS_LOCKED,
|
||||||
|
}
|
||||||
|
-elif OPENBSD:
|
||||||
|
+elif OPENBSD or SECBSD:
|
||||||
|
PROC_STATUSES = {
|
||||||
|
cext.SIDL: _common.STATUS_IDLE,
|
||||||
|
cext.SSLEEP: _common.STATUS_SLEEPING,
|
||||||
|
@@ -250,7 +251,7 @@ def cpu_count_logical():
|
||||||
|
return cext.cpu_count_logical()
|
||||||
|
|
||||||
|
|
||||||
|
-if OPENBSD or NETBSD:
|
||||||
|
+if OPENBSD or NETBSD or SECBSD:
|
||||||
|
def cpu_count_cores():
|
||||||
|
# OpenBSD and NetBSD do not implement this.
|
||||||
|
return 1 if cpu_count_logical() == 1 else None
|
||||||
|
@@ -304,7 +305,7 @@ def cpu_stats():
|
||||||
|
for line in f:
|
||||||
|
if line.startswith(b'intr'):
|
||||||
|
intrs = int(line.split()[1])
|
||||||
|
- elif OPENBSD:
|
||||||
|
+ elif OPENBSD or SECBSD:
|
||||||
|
# Note: the C ext is returning some metrics we are not exposing:
|
||||||
|
# traps, faults and forks.
|
||||||
|
ctxsw, intrs, soft_intrs, syscalls, traps, faults, forks = \
|
||||||
|
@@ -336,7 +337,7 @@ if FREEBSD:
|
||||||
|
max_freq = None
|
||||||
|
ret.append(_common.scpufreq(current, min_freq, max_freq))
|
||||||
|
return ret
|
||||||
|
-elif OPENBSD:
|
||||||
|
+elif OPENBSD or SECBSD:
|
||||||
|
def cpu_freq():
|
||||||
|
curr = float(cext.cpu_freq())
|
||||||
|
return [_common.scpufreq(curr, 0.0, 0.0)]
|
||||||
|
@@ -401,7 +402,7 @@ def net_if_stats():
|
||||||
|
|
||||||
|
def net_connections(kind):
|
||||||
|
"""System-wide network connections."""
|
||||||
|
- if OPENBSD:
|
||||||
|
+ if OPENBSD or SECBSD:
|
||||||
|
ret = []
|
||||||
|
for pid in pids():
|
||||||
|
try:
|
||||||
|
@@ -492,7 +493,7 @@ def users():
|
||||||
|
for item in rawlist:
|
||||||
|
user, tty, hostname, tstamp, pid = item
|
||||||
|
if pid == -1:
|
||||||
|
- assert OPENBSD
|
||||||
|
+ assert SECBSD
|
||||||
|
pid = None
|
||||||
|
if tty == '~':
|
||||||
|
continue # reboot or shutdown
|
||||||
|
@@ -521,14 +522,14 @@ def _pid_0_exists():
|
||||||
|
def pids():
|
||||||
|
"""Returns a list of PIDs currently running on the system."""
|
||||||
|
ret = cext.pids()
|
||||||
|
- if OPENBSD and (0 not in ret) and _pid_0_exists():
|
||||||
|
+ if SECBSD and (0 not in ret) and _pid_0_exists():
|
||||||
|
# On OpenBSD the kernel does not return PID 0 (neither does
|
||||||
|
# ps) but it's actually querable (Process(0) will succeed).
|
||||||
|
ret.insert(0, 0)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
-if OPENBSD or NETBSD:
|
||||||
|
+if OPENBSD or NETBSD or SECBSD:
|
||||||
|
def pid_exists(pid):
|
||||||
|
"""Return True if pid exists."""
|
||||||
|
exists = _psposix.pid_exists(pid)
|
||||||
|
@@ -653,7 +654,7 @@ class Process(object):
|
||||||
|
|
||||||
|
@wrap_exceptions
|
||||||
|
def cmdline(self):
|
||||||
|
- if OPENBSD and self.pid == 0:
|
||||||
|
+ if SECBSD and self.pid == 0:
|
||||||
|
return [] # ...else it crashes
|
||||||
|
elif NETBSD:
|
||||||
|
# XXX - most of the times the underlying sysctl() call on Net
|
||||||
|
@@ -764,7 +765,7 @@ class Process(object):
|
||||||
|
for thread_id, utime, stime in rawlist:
|
||||||
|
ntuple = _common.pthread(thread_id, utime, stime)
|
||||||
|
retlist.append(ntuple)
|
||||||
|
- if OPENBSD:
|
||||||
|
+ if OPENBSD or SECBSD:
|
||||||
|
self._assert_alive()
|
||||||
|
return retlist
|
||||||
|
|
||||||
|
@@ -797,7 +798,7 @@ class Process(object):
|
||||||
|
TCP_STATUSES)
|
||||||
|
ret.append(nt)
|
||||||
|
|
||||||
|
- if OPENBSD:
|
||||||
|
+ if OPENBSD or SECBSD:
|
||||||
|
self._assert_alive()
|
||||||
|
|
||||||
|
return ret
|
||||||
|
@@ -834,7 +835,7 @@ class Process(object):
|
||||||
|
"""Return process current working directory."""
|
||||||
|
# sometimes we get an empty string, in which case we turn
|
||||||
|
# it into None
|
||||||
|
- if OPENBSD and self.pid == 0:
|
||||||
|
+ if SECBSD and self.pid == 0:
|
||||||
|
return None # ...else it would raise EINVAL
|
||||||
|
elif NETBSD or HAS_PROC_OPEN_FILES:
|
||||||
|
# FreeBSD < 8 does not support functions based on
|
29
sysutils/py-psutil/patches/patch-psutil_tests_test_bsd_py
Normal file
29
sysutils/py-psutil/patches/patch-psutil_tests_test_bsd_py
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
Index: psutil/tests/test_bsd.py
|
||||||
|
--- psutil/tests/test_bsd.py.orig
|
||||||
|
+++ psutil/tests/test_bsd.py
|
||||||
|
@@ -21,6 +21,7 @@ from psutil import BSD
|
||||||
|
from psutil import FREEBSD
|
||||||
|
from psutil import NETBSD
|
||||||
|
from psutil import OPENBSD
|
||||||
|
+from psutil import SECBSD
|
||||||
|
from psutil.tests import HAS_BATTERY
|
||||||
|
from psutil.tests import TOLERANCE_SYS_MEM
|
||||||
|
from psutil.tests import PsutilTestCase
|
||||||
|
@@ -49,7 +50,7 @@ def sysctl(cmdline):
|
||||||
|
result = sh("sysctl " + cmdline)
|
||||||
|
if FREEBSD:
|
||||||
|
result = result[result.find(": ") + 2:]
|
||||||
|
- elif OPENBSD or NETBSD:
|
||||||
|
+ elif OPENBSD or NETBSD or SECBSD:
|
||||||
|
result = result[result.find("=") + 1:]
|
||||||
|
try:
|
||||||
|
return int(result)
|
||||||
|
@@ -481,7 +482,7 @@ class FreeBSDSystemTestCase(PsutilTestCase):
|
||||||
|
# =====================================================================
|
||||||
|
|
||||||
|
|
||||||
|
-@unittest.skipIf(not OPENBSD, "OPENBSD only")
|
||||||
|
+@unittest.skipIf(not (OPENBSD or SECBSD), "OPENBSD only")
|
||||||
|
class OpenBSDTestCase(PsutilTestCase):
|
||||||
|
|
||||||
|
def test_boot_time(self):
|
|
@ -0,0 +1,29 @@
|
||||||
|
Index: psutil/tests/test_connections.py
|
||||||
|
--- psutil/tests/test_connections.py.orig
|
||||||
|
+++ psutil/tests/test_connections.py
|
||||||
|
@@ -23,6 +23,7 @@ from psutil import MACOS
|
||||||
|
from psutil import NETBSD
|
||||||
|
from psutil import OPENBSD
|
||||||
|
from psutil import POSIX
|
||||||
|
+from psutil import SECBSD
|
||||||
|
from psutil import SUNOS
|
||||||
|
from psutil import WINDOWS
|
||||||
|
from psutil._common import supports_ipv6
|
||||||
|
@@ -143,7 +144,7 @@ class TestUnconnectedSockets(ConnectionTestCase):
|
||||||
|
laddr = laddr.decode()
|
||||||
|
if sock.family == AF_INET6:
|
||||||
|
laddr = laddr[:2]
|
||||||
|
- if sock.family == AF_UNIX and OPENBSD:
|
||||||
|
+ if sock.family == AF_UNIX and (OPENBSD or SECBSD):
|
||||||
|
# No addresses are set for UNIX sockets on OpenBSD.
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
@@ -249,7 +250,7 @@ class TestConnectedSocket(ConnectionTestCase):
|
||||||
|
self.assertEqual(cons[1].raddr, "")
|
||||||
|
# one local address should though
|
||||||
|
self.assertEqual(testfn, cons[0].laddr or cons[1].laddr)
|
||||||
|
- elif OPENBSD:
|
||||||
|
+ elif OPENBSD or SECBSD:
|
||||||
|
# No addresses whatsoever here.
|
||||||
|
for addr in (cons[0].laddr, cons[0].raddr,
|
||||||
|
cons[1].laddr, cons[1].raddr):
|
|
@ -0,0 +1,47 @@
|
||||||
|
Index: psutil/tests/test_contracts.py
|
||||||
|
--- psutil/tests/test_contracts.py.orig
|
||||||
|
+++ psutil/tests/test_contracts.py
|
||||||
|
@@ -30,6 +30,7 @@ from psutil import NETBSD
|
||||||
|
from psutil import OPENBSD
|
||||||
|
from psutil import OSX
|
||||||
|
from psutil import POSIX
|
||||||
|
+from psutil import SECBSD
|
||||||
|
from psutil import SUNOS
|
||||||
|
from psutil import WINDOWS
|
||||||
|
from psutil._compat import FileNotFoundError
|
||||||
|
@@ -136,7 +137,7 @@ class TestAvailSystemAPIs(PsutilTestCase):
|
||||||
|
|
||||||
|
def test_cpu_freq(self):
|
||||||
|
self.assertEqual(hasattr(psutil, "cpu_freq"),
|
||||||
|
- LINUX or MACOS or WINDOWS or FREEBSD or OPENBSD)
|
||||||
|
+ LINUX or MACOS or WINDOWS or FREEBSD or OPENBSD or SECBSD)
|
||||||
|
|
||||||
|
def test_sensors_temperatures(self):
|
||||||
|
self.assertEqual(
|
||||||
|
@@ -155,7 +156,7 @@ class TestAvailProcessAPIs(PsutilTestCase):
|
||||||
|
def test_environ(self):
|
||||||
|
self.assertEqual(hasattr(psutil.Process, "environ"),
|
||||||
|
LINUX or MACOS or WINDOWS or AIX or SUNOS or
|
||||||
|
- FREEBSD or OPENBSD or NETBSD)
|
||||||
|
+ FREEBSD or OPENBSD or NETBSD or SECBSD)
|
||||||
|
|
||||||
|
def test_uids(self):
|
||||||
|
self.assertEqual(hasattr(psutil.Process, "uids"), POSIX)
|
||||||
|
@@ -195,7 +196,7 @@ class TestAvailProcessAPIs(PsutilTestCase):
|
||||||
|
def test_memory_maps(self):
|
||||||
|
hasit = hasattr(psutil.Process, "memory_maps")
|
||||||
|
self.assertEqual(
|
||||||
|
- hasit, False if OPENBSD or NETBSD or AIX or MACOS else True)
|
||||||
|
+ hasit, False if OPENBSD or SECBSD or NETBSD or AIX or MACOS else True)
|
||||||
|
|
||||||
|
|
||||||
|
# ===================================================================
|
||||||
|
@@ -494,7 +495,7 @@ class TestFetchAllProcesses(PsutilTestCase):
|
||||||
|
self.assertGreaterEqual(ret, 0)
|
||||||
|
except AssertionError:
|
||||||
|
# XXX
|
||||||
|
- if OPENBSD and info['status'] == psutil.STATUS_ZOMBIE:
|
||||||
|
+ if (OPENBSD or SECBSD) and info['status'] == psutil.STATUS_ZOMBIE:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
raise
|
|
@ -0,0 +1,29 @@
|
||||||
|
Index: psutil/tests/test_memleaks.py
|
||||||
|
--- psutil/tests/test_memleaks.py.orig
|
||||||
|
+++ psutil/tests/test_memleaks.py
|
||||||
|
@@ -28,6 +28,7 @@ from psutil import LINUX
|
||||||
|
from psutil import MACOS
|
||||||
|
from psutil import OPENBSD
|
||||||
|
from psutil import POSIX
|
||||||
|
+from psutil import SECBSD
|
||||||
|
from psutil import SUNOS
|
||||||
|
from psutil import WINDOWS
|
||||||
|
from psutil._compat import ProcessLookupError
|
||||||
|
@@ -160,7 +161,7 @@ class TestProcessObjectLeaks(TestMemoryLeak):
|
||||||
|
self.execute(self.proc.create_time)
|
||||||
|
|
||||||
|
@fewtimes_if_linux()
|
||||||
|
- @skip_on_access_denied(only_if=OPENBSD)
|
||||||
|
+ @skip_on_access_denied(only_if=SECBSD)
|
||||||
|
def test_num_threads(self):
|
||||||
|
self.execute(self.proc.num_threads)
|
||||||
|
|
||||||
|
@@ -178,7 +179,7 @@ class TestProcessObjectLeaks(TestMemoryLeak):
|
||||||
|
self.execute(self.proc.num_ctx_switches)
|
||||||
|
|
||||||
|
@fewtimes_if_linux()
|
||||||
|
- @skip_on_access_denied(only_if=OPENBSD)
|
||||||
|
+ @skip_on_access_denied(only_if=SECBSD)
|
||||||
|
def test_threads(self):
|
||||||
|
self.execute(self.proc.threads)
|
||||||
|
|
20
sysutils/py-psutil/patches/patch-psutil_tests_test_posix_py
Normal file
20
sysutils/py-psutil/patches/patch-psutil_tests_test_posix_py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Index: psutil/tests/test_posix.py
|
||||||
|
--- psutil/tests/test_posix.py.orig
|
||||||
|
+++ psutil/tests/test_posix.py
|
||||||
|
@@ -22,6 +22,7 @@ from psutil import LINUX
|
||||||
|
from psutil import MACOS
|
||||||
|
from psutil import OPENBSD
|
||||||
|
from psutil import POSIX
|
||||||
|
+from psutil import SECBSD
|
||||||
|
from psutil import SUNOS
|
||||||
|
from psutil.tests import CI_TESTING
|
||||||
|
from psutil.tests import HAS_NET_IO_COUNTERS
|
||||||
|
@@ -307,7 +308,7 @@ class TestSystemAPIs(PsutilTestCase):
|
||||||
|
pids_psutil = psutil.pids()
|
||||||
|
|
||||||
|
# on MACOS and OPENBSD ps doesn't show pid 0
|
||||||
|
- if MACOS or OPENBSD and 0 not in pids_ps:
|
||||||
|
+ if MACOS or OPENBSD or SECBSD and 0 not in pids_ps:
|
||||||
|
pids_ps.insert(0, 0)
|
||||||
|
|
||||||
|
# There will often be one more process in pids_ps for ps itself
|
|
@ -0,0 +1,74 @@
|
||||||
|
Index: psutil/tests/test_process.py
|
||||||
|
--- psutil/tests/test_process.py.orig
|
||||||
|
+++ psutil/tests/test_process.py
|
||||||
|
@@ -30,6 +30,7 @@ from psutil import NETBSD
|
||||||
|
from psutil import OPENBSD
|
||||||
|
from psutil import OSX
|
||||||
|
from psutil import POSIX
|
||||||
|
+from psutil import SECBSD
|
||||||
|
from psutil import SUNOS
|
||||||
|
from psutil import WINDOWS
|
||||||
|
from psutil._common import open_text
|
||||||
|
@@ -503,7 +504,7 @@ class TestProcess(PsutilTestCase):
|
||||||
|
# thread number, since we always have with 1 thread per process,
|
||||||
|
# but this does not apply across all platforms (MACOS, Windows)
|
||||||
|
p = psutil.Process()
|
||||||
|
- if OPENBSD:
|
||||||
|
+ if OPENBSD or SECBSD:
|
||||||
|
try:
|
||||||
|
step1 = p.num_threads()
|
||||||
|
except psutil.AccessDenied:
|
||||||
|
@@ -524,7 +525,7 @@ class TestProcess(PsutilTestCase):
|
||||||
|
@unittest.skipIf(not HAS_THREADS, 'not supported')
|
||||||
|
def test_threads(self):
|
||||||
|
p = psutil.Process()
|
||||||
|
- if OPENBSD:
|
||||||
|
+ if OPENBSD or SECBSD:
|
||||||
|
try:
|
||||||
|
step1 = p.threads()
|
||||||
|
except psutil.AccessDenied:
|
||||||
|
@@ -546,7 +547,7 @@ class TestProcess(PsutilTestCase):
|
||||||
|
@unittest.skipIf(not HAS_THREADS, 'not supported')
|
||||||
|
def test_threads_2(self):
|
||||||
|
p = self.spawn_psproc()
|
||||||
|
- if OPENBSD:
|
||||||
|
+ if OPENBSD or SECBSD:
|
||||||
|
try:
|
||||||
|
p.threads()
|
||||||
|
except psutil.AccessDenied:
|
||||||
|
@@ -715,7 +716,7 @@ class TestProcess(PsutilTestCase):
|
||||||
|
# Also /proc/pid/cmdline behaves the same so it looks
|
||||||
|
# like this is a kernel bug.
|
||||||
|
# XXX - AIX truncates long arguments in /proc/pid/cmdline
|
||||||
|
- if NETBSD or OPENBSD or AIX:
|
||||||
|
+ if NETBSD or OPENBSD or SECBSD or AIX:
|
||||||
|
self.assertEqual(p.cmdline()[0], PYTHON_EXE)
|
||||||
|
else:
|
||||||
|
if MACOS and CI_TESTING:
|
||||||
|
@@ -1030,7 +1031,7 @@ class TestProcess(PsutilTestCase):
|
||||||
|
self.assertEqual(p.num_fds(), start)
|
||||||
|
|
||||||
|
@skip_on_not_implemented(only_if=LINUX)
|
||||||
|
- @unittest.skipIf(OPENBSD or NETBSD, "not reliable on OPENBSD & NETBSD")
|
||||||
|
+ @unittest.skipIf(OPENBSD or SECBSD or NETBSD, "not reliable on OPENBSD & NETBSD")
|
||||||
|
def test_num_ctx_switches(self):
|
||||||
|
p = psutil.Process()
|
||||||
|
before = sum(p.num_ctx_switches())
|
||||||
|
@@ -1267,7 +1268,7 @@ class TestProcess(PsutilTestCase):
|
||||||
|
except psutil.NoSuchProcess:
|
||||||
|
pass
|
||||||
|
except psutil.AccessDenied:
|
||||||
|
- if OPENBSD and fun_name in ('threads', 'num_threads'):
|
||||||
|
+ if (OPENBSD or SECBSD) and fun_name in ('threads', 'num_threads'):
|
||||||
|
return
|
||||||
|
raise
|
||||||
|
else:
|
||||||
|
@@ -1399,7 +1400,7 @@ class TestProcess(PsutilTestCase):
|
||||||
|
elif name == "name":
|
||||||
|
assert name, name
|
||||||
|
|
||||||
|
- if not OPENBSD:
|
||||||
|
+ if not (OPENBSD or SECBSD):
|
||||||
|
self.assertIn(0, psutil.pids())
|
||||||
|
assert psutil.pid_exists(0)
|
||||||
|
|
51
sysutils/py-psutil/patches/patch-psutil_tests_test_system_py
Normal file
51
sysutils/py-psutil/patches/patch-psutil_tests_test_system_py
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
Index: psutil/tests/test_system.py
|
||||||
|
--- psutil/tests/test_system.py.orig
|
||||||
|
+++ psutil/tests/test_system.py
|
||||||
|
@@ -28,6 +28,7 @@ from psutil import MACOS
|
||||||
|
from psutil import NETBSD
|
||||||
|
from psutil import OPENBSD
|
||||||
|
from psutil import POSIX
|
||||||
|
+from psutil import SECBSD
|
||||||
|
from psutil import SUNOS
|
||||||
|
from psutil import WINDOWS
|
||||||
|
from psutil._compat import FileNotFoundError
|
||||||
|
@@ -214,7 +215,7 @@ class TestMiscAPIs(PsutilTestCase):
|
||||||
|
user.host
|
||||||
|
assert user.started > 0.0, user
|
||||||
|
datetime.datetime.fromtimestamp(user.started)
|
||||||
|
- if WINDOWS or OPENBSD:
|
||||||
|
+ if WINDOWS or OPENBSD or SECBSD:
|
||||||
|
self.assertIsNone(user.pid)
|
||||||
|
else:
|
||||||
|
psutil.Process(user.pid)
|
||||||
|
@@ -230,7 +231,7 @@ class TestMiscAPIs(PsutilTestCase):
|
||||||
|
|
||||||
|
def test_os_constants(self):
|
||||||
|
names = ["POSIX", "WINDOWS", "LINUX", "MACOS", "FREEBSD", "OPENBSD",
|
||||||
|
- "NETBSD", "BSD", "SUNOS"]
|
||||||
|
+ "SECBSD", "NETBSD", "BSD", "SUNOS"]
|
||||||
|
for name in names:
|
||||||
|
self.assertIsInstance(getattr(psutil, name), bool, msg=name)
|
||||||
|
|
||||||
|
@@ -244,10 +245,11 @@ class TestMiscAPIs(PsutilTestCase):
|
||||||
|
elif "bsd" in sys.platform.lower():
|
||||||
|
assert psutil.BSD
|
||||||
|
self.assertEqual([psutil.FREEBSD, psutil.OPENBSD,
|
||||||
|
- psutil.NETBSD].count(True), 1)
|
||||||
|
+ psutil.SECBSD, psutil.NETBSD].count(True), 1)
|
||||||
|
names.remove("BSD")
|
||||||
|
names.remove("FREEBSD")
|
||||||
|
names.remove("OPENBSD")
|
||||||
|
+ names.remove("SECBSD")
|
||||||
|
names.remove("NETBSD")
|
||||||
|
elif "sunos" in sys.platform.lower() or \
|
||||||
|
"solaris" in sys.platform.lower():
|
||||||
|
@@ -657,7 +659,7 @@ class TestDiskAPIs(PsutilTestCase):
|
||||||
|
self.assertEqual(nt[1], nt.write_count)
|
||||||
|
self.assertEqual(nt[2], nt.read_bytes)
|
||||||
|
self.assertEqual(nt[3], nt.write_bytes)
|
||||||
|
- if not (OPENBSD or NETBSD):
|
||||||
|
+ if not (OPENBSD or NETBSD or SECBSD):
|
||||||
|
self.assertEqual(nt[4], nt.read_time)
|
||||||
|
self.assertEqual(nt[5], nt.write_time)
|
||||||
|
if LINUX:
|
|
@ -0,0 +1,29 @@
|
||||||
|
Index: psutil/tests/test_unicode.py
|
||||||
|
--- psutil/tests/test_unicode.py.orig
|
||||||
|
+++ psutil/tests/test_unicode.py
|
||||||
|
@@ -84,6 +84,7 @@ import psutil
|
||||||
|
from psutil import BSD
|
||||||
|
from psutil import OPENBSD
|
||||||
|
from psutil import POSIX
|
||||||
|
+from psutil import SECBSD
|
||||||
|
from psutil import WINDOWS
|
||||||
|
from psutil._compat import PY3
|
||||||
|
from psutil._compat import u
|
||||||
|
@@ -258,7 +259,7 @@ class TestFSAPIs(BaseUnicodeTest):
|
||||||
|
conn = psutil.Process().connections('unix')[0]
|
||||||
|
self.assertIsInstance(conn.laddr, str)
|
||||||
|
# AF_UNIX addr not set on OpenBSD
|
||||||
|
- if not OPENBSD: # XXX
|
||||||
|
+ if not (OPENBSD or SECBSD): # XXX
|
||||||
|
self.assertEqual(conn.laddr, name)
|
||||||
|
|
||||||
|
@unittest.skipIf(not POSIX, "POSIX only")
|
||||||
|
@@ -282,7 +283,7 @@ class TestFSAPIs(BaseUnicodeTest):
|
||||||
|
with closing(sock):
|
||||||
|
cons = psutil.net_connections(kind='unix')
|
||||||
|
# AF_UNIX addr not set on OpenBSD
|
||||||
|
- if not OPENBSD:
|
||||||
|
+ if not (OPENBSD or SECBSD):
|
||||||
|
conn = find_sock(cons)
|
||||||
|
self.assertIsInstance(conn.laddr, str)
|
||||||
|
self.assertEqual(conn.laddr, name)
|
11
sysutils/py-psutil/patches/patch-pyproject_toml
Normal file
11
sysutils/py-psutil/patches/patch-pyproject_toml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
Index: pyproject.toml
|
||||||
|
--- pyproject.toml.orig
|
||||||
|
+++ pyproject.toml
|
||||||
|
@@ -27,6 +27,7 @@ exclude_lines = [
|
||||||
|
"if MACOS",
|
||||||
|
"if NETBSD",
|
||||||
|
"if OPENBSD",
|
||||||
|
+ "if SECBSD",
|
||||||
|
"if ppid_map is None:",
|
||||||
|
"if PY3:",
|
||||||
|
"if SUNOS",
|
29
sysutils/py-psutil/patches/patch-setup_py
Normal file
29
sysutils/py-psutil/patches/patch-setup_py
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
Index: setup.py
|
||||||
|
--- setup.py.orig
|
||||||
|
+++ setup.py
|
||||||
|
@@ -51,6 +51,7 @@ from _common import MACOS # NOQA
|
||||||
|
from _common import NETBSD # NOQA
|
||||||
|
from _common import OPENBSD # NOQA
|
||||||
|
from _common import POSIX # NOQA
|
||||||
|
+from _common import SECBSD # NOQA
|
||||||
|
from _common import SUNOS # NOQA
|
||||||
|
from _common import WINDOWS # NOQA
|
||||||
|
from _common import hilite # NOQA
|
||||||
|
@@ -234,7 +235,7 @@ elif FREEBSD:
|
||||||
|
libraries=["devstat"],
|
||||||
|
**py_limited_api)
|
||||||
|
|
||||||
|
-elif OPENBSD:
|
||||||
|
+elif OPENBSD or SECBSD:
|
||||||
|
macros.append(("PSUTIL_OPENBSD", 1))
|
||||||
|
ext = Extension(
|
||||||
|
'psutil._psutil_bsd',
|
||||||
|
@@ -470,7 +471,7 @@ def main():
|
||||||
|
missdeps("pkg install gcc python%s" % py3)
|
||||||
|
elif which('mport'): # MidnightBSD
|
||||||
|
missdeps("mport install gcc python%s" % py3)
|
||||||
|
- elif OPENBSD:
|
||||||
|
+ elif OPENBSD or SECBSD:
|
||||||
|
missdeps("pkg_add -v gcc python%s" % py3)
|
||||||
|
elif NETBSD:
|
||||||
|
missdeps("pkgin install gcc python%s" % py3)
|
|
@ -72,8 +72,6 @@ lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_proce
|
||||||
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_process.${MODPY_PYC_MAGIC_TAG}pyc
|
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_process.${MODPY_PYC_MAGIC_TAG}pyc
|
||||||
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_sunos.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
|
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_sunos.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
|
||||||
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_sunos.${MODPY_PYC_MAGIC_TAG}pyc
|
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_sunos.${MODPY_PYC_MAGIC_TAG}pyc
|
||||||
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_system.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
|
|
||||||
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_system.${MODPY_PYC_MAGIC_TAG}pyc
|
|
||||||
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_testutils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
|
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_testutils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
|
||||||
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_testutils.${MODPY_PYC_MAGIC_TAG}pyc
|
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_testutils.${MODPY_PYC_MAGIC_TAG}pyc
|
||||||
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_unicode.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
|
lib/python${MODPY_VERSION}/site-packages/psutil/tests/${MODPY_PYCACHE}test_unicode.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue