Import py-psutil from github commit fc1e59d0, versionning it 3.3.0pre0.

This now supports OpenBSDi mostly properly, the patches in the port
fixing the build and warnings being pushed back.

psutil (python system and process utilities) is a cross-platform library
for retrieving information on running processes and system utilization
(CPU, memory, disks, network) in Python. It is useful mainly for system
monitoring, profiling and limiting process resources and management of
running processes. It implements many functionalities offered by command
line tools such as: ps, top, lsof, netstat, ifconfig, who, df, kill,
free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap.

ok/reqd by sthen@
This commit is contained in:
landry 2015-11-14 07:35:29 +00:00
parent 7d38c1014c
commit baf4eae578
6 changed files with 170 additions and 0 deletions

View File

@ -0,0 +1,27 @@
# $OpenBSD: Makefile,v 1.1.1.1 2015/11/14 07:35:29 landry Exp $
COMMENT = library to retrieve system information and utilisation
MODPY_EGG_VERSION = 3.3.0
GH_ACCOUNT = giampaolo
GH_PROJECT = psutil
GH_COMMIT = fc1e59d08c968898c2ede425a621b62ccf44681c
DISTNAME= psutil-${MODPY_EGG_VERSION}
PKGNAME= py-psutil-${MODPY_EGG_VERSION}pre0
CATEGORIES= sysutils
HOMEPAGE= https://github.com/giampaolo/psutil
# BSD
PERMIT_PACKAGE_CDROM= Yes
MODULES = lang/python
TEST_DEPENDS = ${BUILD_PKGPATH} \
net/py-ipaddress \
devel/py-mock
MODPY_SETUPTOOLS = Yes
do-test:
cd ${WRKSRC}; ${MODPY_BIN} test/test_psutil.py
.include <bsd.port.mk>

View File

@ -0,0 +1,2 @@
SHA256 (psutil-3.3.0.tar.gz) = yMAo0apo1th3CN7iG/mx8GtC5nVPCkzrUWpmfF9m8Vg=
SIZE (psutil-3.3.0.tar.gz) = 256736

View File

@ -0,0 +1,95 @@
$OpenBSD: patch-psutil_arch_bsd_openbsd_c,v 1.1.1.1 2015/11/14 07:35:29 landry Exp $
--- psutil/arch/bsd/openbsd.c.orig Thu Nov 12 23:04:39 2015
+++ psutil/arch/bsd/openbsd.c Fri Nov 13 16:10:24 2015
@@ -30,9 +30,12 @@
#include <sys/file.h>
#undef _KERNEL
#include <sys/disk.h> // struct diskstats
+#include <err.h> // for err() && warn()
+#include <arpa/inet.h> // for inet_ntoa()
#include "openbsd.h"
+#include "../../_psutil_common.h"
#define PSUTIL_KPT2DOUBLE(t) (t ## _sec + t ## _usec / 1000000.0)
#define PSUTIL_TV2DOUBLE(t) ((t).tv_sec + (t).tv_usec / 1000000.0)
@@ -138,6 +141,7 @@ psutil_raise_ad_or_nsp(long pid) {
NoSuchProcess();
else
AccessDenied();
+ return 0;
}
@@ -154,13 +158,9 @@ psutil_get_proc_list(struct kinfo_proc **procList, siz
// On success, the function returns 0.
// On error, the function returns a BSD errno value.
struct kinfo_proc *result;
- int done;
- static const int name[] = { CTL_KERN, KERN_PROC, KERN_PROC, 0 };
// Declaring name as const requires us to cast it when passing it to
// sysctl because the prototype doesn't include the const modifier.
- size_t length;
char errbuf[_POSIX2_LINE_MAX];
- struct kinfo_proc *x;
int cnt;
kvm_t *kd;
@@ -200,7 +200,6 @@ psutil_get_proc_list(struct kinfo_proc **procList, siz
char **
_psutil_get_argv(long pid) {
static char **argv;
- char **p;
int argv_mib[] = {CTL_KERN, KERN_PROC_ARGS, pid, KERN_PROC_ARGV};
size_t argv_size = 128;
/* Loop and reallocate until we have enough space to fit argv. */
@@ -321,7 +320,7 @@ error:
PyObject *
psutil_virtual_mem(PyObject *self, PyObject *args) {
- unsigned int total, active, inactive, wired, cached, free;
+ unsigned int total;
size_t size = sizeof(total);
struct uvmexp uvmexp;
int mib[] = {CTL_VM, VM_UVMEXP};
@@ -479,7 +478,6 @@ psutil_proc_connections(PyObject *self, PyObject *args
struct kinfo_file *freep = NULL;
struct kinfo_file *kif;
char *tcplist = NULL;
- struct tcpcb *tcp;
PyObject *py_retlist = PyList_New(0);
PyObject *py_tuple = NULL;
@@ -509,7 +507,6 @@ psutil_proc_connections(PyObject *self, PyObject *args
int state;
int lport;
int rport;
- char path[PATH_MAX];
char addrbuf[NI_MAXHOST + 2];
int inseq;
struct in6_addr laddr6;
@@ -555,7 +552,6 @@ psutil_proc_connections(PyObject *self, PyObject *args
else {
// local address, IPv6
memcpy(&laddr6, kif->inp_laddru, sizeof(laddr6));
- (void *)(uintptr_t)kif->inp_ppcb;
snprintf(addrbuf, sizeof(addrbuf), "%s",
psutil_inet6_addrstr(&laddr6));
py_laddr = Py_BuildValue("(si)", addrbuf, lport);
@@ -575,7 +571,6 @@ psutil_proc_connections(PyObject *self, PyObject *args
else {
// remote address, IPv6
memcpy(&laddr6, kif->inp_faddru, sizeof(laddr6));
- (void *)(uintptr_t)kif->inp_ppcb;
snprintf(addrbuf, sizeof(addrbuf), "%s",
psutil_inet6_addrstr(&laddr6));
py_raddr = Py_BuildValue("(si)", addrbuf, rport);
@@ -641,7 +636,6 @@ error:
PyObject *
psutil_per_cpu_times(PyObject *self, PyObject *args) {
- static int maxcpus;
int mib[3];
int ncpu;
size_t len;

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-setup_py,v 1.1.1.1 2015/11/14 07:35:29 landry Exp $
--- setup.py.orig Fri Nov 13 15:47:46 2015
+++ setup.py Fri Nov 13 15:47:58 2015
@@ -144,7 +144,7 @@ elif sys.platform.startswith("openbsd"):
ext = Extension(
'psutil._psutil_bsd',
sources=[
- 'psutil/_psutil_openbsd.c',
+ 'psutil/_psutil_bsd.c',
'psutil/_psutil_common.c',
'psutil/arch/bsd/openbsd.c',
],

View File

@ -0,0 +1,7 @@
psutil (python system and process utilities) is a cross-platform library
for retrieving information on running processes and system utilization
(CPU, memory, disks, network) in Python. It is useful mainly for system
monitoring, profiling and limiting process resources and management of
running processes. It implements many functionalities offered by command
line tools such as: ps, top, lsof, netstat, ifconfig, who, df, kill,
free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap.

View File

@ -0,0 +1,27 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2015/11/14 07:35:29 landry Exp $
lib/python${MODPY_VERSION}/site-packages/psutil/
lib/python${MODPY_VERSION}/site-packages/psutil-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/
lib/python${MODPY_VERSION}/site-packages/psutil-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO
lib/python${MODPY_VERSION}/site-packages/psutil-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/SOURCES.txt
lib/python${MODPY_VERSION}/site-packages/psutil-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/dependency_links.txt
lib/python${MODPY_VERSION}/site-packages/psutil-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt
lib/python${MODPY_VERSION}/site-packages/psutil/__init__.py
lib/python${MODPY_VERSION}/site-packages/psutil/__init__.pyc
lib/python${MODPY_VERSION}/site-packages/psutil/_common.py
lib/python${MODPY_VERSION}/site-packages/psutil/_common.pyc
lib/python${MODPY_VERSION}/site-packages/psutil/_compat.py
lib/python${MODPY_VERSION}/site-packages/psutil/_compat.pyc
lib/python${MODPY_VERSION}/site-packages/psutil/_psbsd.py
lib/python${MODPY_VERSION}/site-packages/psutil/_psbsd.pyc
lib/python${MODPY_VERSION}/site-packages/psutil/_pslinux.py
lib/python${MODPY_VERSION}/site-packages/psutil/_pslinux.pyc
lib/python${MODPY_VERSION}/site-packages/psutil/_psosx.py
lib/python${MODPY_VERSION}/site-packages/psutil/_psosx.pyc
lib/python${MODPY_VERSION}/site-packages/psutil/_psposix.py
lib/python${MODPY_VERSION}/site-packages/psutil/_psposix.pyc
lib/python${MODPY_VERSION}/site-packages/psutil/_pssunos.py
lib/python${MODPY_VERSION}/site-packages/psutil/_pssunos.pyc
lib/python${MODPY_VERSION}/site-packages/psutil/_psutil_bsd.so
lib/python${MODPY_VERSION}/site-packages/psutil/_psutil_posix.so
lib/python${MODPY_VERSION}/site-packages/psutil/_pswindows.py
lib/python${MODPY_VERSION}/site-packages/psutil/_pswindows.pyc