summaryrefslogtreecommitdiff
path: root/user/py3-psutil/utmpx.patch
blob: e7881e8f261c22ceceae86d48f99eaf6a5922992 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
--- psutil-5.6.2/psutil/_psutil_linux.c.old	2019-04-11 21:10:12.000000000 +0000
+++ psutil-5.6.2/psutil/_psutil_linux.c	2019-06-14 20:19:26.804374285 +0000
@@ -14,7 +14,7 @@
 #include <stdlib.h>
 #include <mntent.h>
 #include <features.h>
-#include <utmp.h>
+#include <utmpx.h>
 #include <sched.h>
 #include <linux/version.h>
 #include <sys/syscall.h>
@@ -454,7 +454,7 @@
  */
 static PyObject *
 psutil_users(PyObject *self, PyObject *args) {
-    struct utmp *ut;
+    struct utmpx *utx;
     PyObject *py_retlist = PyList_New(0);
     PyObject *py_tuple = NULL;
     PyObject *py_username = NULL;
@@ -465,20 +465,20 @@
     if (py_retlist == NULL)
         return NULL;
-    setutent();
+    setutxent();
-    while (NULL != (ut = getutent())) {
+    while (NULL != (utx = getutxent())) {
         py_tuple = NULL;
         py_user_proc = NULL;
-        if (ut->ut_type == USER_PROCESS)
+        if (utx->ut_type == USER_PROCESS)
             py_user_proc = Py_True;
         else
             py_user_proc = Py_False;
-        py_username = PyUnicode_DecodeFSDefault(ut->ut_user);
+        py_username = PyUnicode_DecodeFSDefault(utx->ut_user);
         if (! py_username)
             goto error;
-        py_tty = PyUnicode_DecodeFSDefault(ut->ut_line);
+        py_tty = PyUnicode_DecodeFSDefault(utx->ut_line);
         if (! py_tty)
             goto error;
-        py_hostname = PyUnicode_DecodeFSDefault(ut->ut_host);
+        py_hostname = PyUnicode_DecodeFSDefault(utx->ut_host);
         if (! py_hostname)
             goto error;
         py_tuple = Py_BuildValue(
@@ -486,9 +486,9 @@
             py_username,              // username
             py_tty,                   // tty
             py_hostname,              // hostname
-            (float)ut->ut_tv.tv_sec,  // tstamp
+            (float)utx->ut_tv.tv_sec, // tstamp
             py_user_proc,             // (bool) user process
-            ut->ut_pid                // process id
+            utx->ut_pid               // process id
         );
         if (! py_tuple)
             goto error;
@@ -499,7 +499,7 @@
         Py_DECREF(py_hostname);
         Py_DECREF(py_tuple);
     }
-    endutent();
+    endutxent();
     return py_retlist;
 
 error:
@@ -508,7 +508,7 @@
     Py_XDECREF(py_hostname);
     Py_XDECREF(py_tuple);
     Py_DECREF(py_retlist);
-    endutent();
+    endutxent();
     return NULL;
 }
 
--- psutil-5.6.2/setup.py.old	2019-04-11 21:10:12.000000000 +0000
+++ psutil-5.6.2/setup.py	2019-06-14 20:25:29.994927919 +0000
@@ -227,6 +227,7 @@
     ext = Extension(
         'psutil._psutil_linux',
         sources=sources + ['psutil/_psutil_linux.c'],
+	libraries=['utmps', 'skarnet'],
         define_macros=macros)
 
 elif SUNOS: