aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils/libutempter/files
diff options
context:
space:
mode:
authorlofi <lofi@FreeBSD.org>2004-08-30 06:54:38 +0800
committerlofi <lofi@FreeBSD.org>2004-08-30 06:54:38 +0800
commit336e3de45cfa87ede62c76ab76a126f93a0cf1fb (patch)
treeab1b8fadfef8eff52b5be963d7828e4cc45472e4 /sysutils/libutempter/files
parente5b728458ae77e73e20b413cea912b208b8a8d5b (diff)
downloadfreebsd-ports-gnome-336e3de45cfa87ede62c76ab76a126f93a0cf1fb.tar.gz
freebsd-ports-gnome-336e3de45cfa87ede62c76ab76a126f93a0cf1fb.tar.zst
freebsd-ports-gnome-336e3de45cfa87ede62c76ab76a126f93a0cf1fb.zip
Add libutempter, an interface to record user sessions to utmp and wtmp files
Diffstat (limited to 'sysutils/libutempter/files')
-rw-r--r--sysutils/libutempter/files/patch-Makefile47
-rw-r--r--sysutils/libutempter/files/patch-iface.c18
-rw-r--r--sysutils/libutempter/files/patch-utempter.c76
3 files changed, 141 insertions, 0 deletions
diff --git a/sysutils/libutempter/files/patch-Makefile b/sysutils/libutempter/files/patch-Makefile
new file mode 100644
index 000000000000..e93763181dd3
--- /dev/null
+++ b/sysutils/libutempter/files/patch-Makefile
@@ -0,0 +1,47 @@
+--- Makefile.orig Tue Dec 24 12:25:11 2002
++++ Makefile Wed Aug 18 15:54:06 2004
+@@ -30,12 +30,12 @@
+ TARGETS = $(PROJECT) $(SHAREDLIB) $(STATICLIB)
+
+ INSTALL = install
+-libdir = /usr/lib
+-libexecdir = /usr/lib
+-includedir = /usr/include
+-DESTDIR =
++libdir = /lib
++libexecdir = /libexec
++includedir = /include
++DESTDIR = $(PREFIX)
+
+-CFLAGS = $(RPM_OPT_FLAGS) -DLIBEXECDIR=\"$(libexecdir)\"
++CFLAGS+= -DLIBEXECDIR=\"$(PREFIX)$(libexecdir)\"
+
+ all: $(TARGETS)
+
+@@ -51,13 +51,21 @@
+
+ iface.o: iface.c utempter.h
+
++$(PROJECT).o: $(PROJECT).c
++
++$(PROJECT): $(PROJECT).o
++ $(LINK.o) $(PROJECT).o -o $(PROJECT) -lutil
++
++
+ install:
+- $(INSTALL) -pD -m2711 $(PROJECT) $(DESTDIR)$(libexecdir)/$(PROJECT)/$(PROJECT)
+- $(INSTALL) -pD -m644 $(PROJECT).h $(DESTDIR)$(includedir)/$(PROJECT).h
+- $(INSTALL) -pD -m755 $(SHAREDLIB) $(DESTDIR)$(libdir)/$(SHAREDLIB).$(VERSION)
+- $(INSTALL) -pD -m644 $(STATICLIB) $(DESTDIR)$(libdir)/$(STATICLIB)
++ mkdir -p $(DESTDIR)$(libexecdir)/$(PROJECT) $(DESTDIR)$(includedir) \
++ $(DESTDIR)$(libdir)
++ $(INSTALL) -m4711 $(PROJECT) $(DESTDIR)$(libexecdir)/$(PROJECT)/$(PROJECT)
++ $(INSTALL) -m644 $(PROJECT).h $(DESTDIR)$(includedir)/$(PROJECT).h
++ $(INSTALL) -m755 $(SHAREDLIB) $(DESTDIR)$(libdir)/$(SHAREDLIB).$(VERSION)
++ $(INSTALL) -m644 $(STATICLIB) $(DESTDIR)$(libdir)/$(STATICLIB)
+ ln -s $(SHAREDLIB).$(VERSION) $(DESTDIR)$(libdir)/$(SONAME)
+ ln -s $(SONAME) $(DESTDIR)$(libdir)/$(SHAREDLIB)
+
+ clean:
+- $(RM) $(TARGETS) iface.o iface.os core *~
++ $(RM) $(TARGETS) $(PROJECT).o iface.o iface.os core *~
diff --git a/sysutils/libutempter/files/patch-iface.c b/sysutils/libutempter/files/patch-iface.c
new file mode 100644
index 000000000000..1c214aacb334
--- /dev/null
+++ b/sysutils/libutempter/files/patch-iface.c
@@ -0,0 +1,18 @@
+--- iface.c.orig Wed Aug 18 16:09:25 2004
++++ iface.c Wed Aug 18 16:11:38 2004
+@@ -32,6 +32,15 @@
+ #include <sys/wait.h>
+ #include <sys/types.h>
+
++#ifndef TEMP_FAILURE_RETRY
++#define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; }))
++#endif
++
+ extern int getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid);
+
+ #include "utempter.h"
diff --git a/sysutils/libutempter/files/patch-utempter.c b/sysutils/libutempter/files/patch-utempter.c
new file mode 100644
index 000000000000..7b89e73506d9
--- /dev/null
+++ b/sysutils/libutempter/files/patch-utempter.c
@@ -0,0 +1,76 @@
+--- utempter.c.orig Wed Aug 18 15:04:15 2004
++++ utempter.c Wed Aug 18 15:16:18 2004
+@@ -29,11 +29,11 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+-#include <pty.h>
+ #include <pwd.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <utmp.h>
++#include <libutil.h>
+
+ #define DEV_PREFIX "/dev/"
+ #define DEV_PREFIX_LEN (sizeof(DEV_PREFIX)-1)
+@@ -102,42 +102,29 @@
+ pid_t pid, int add)
+ {
+ struct utmp ut;
+- int offset = strlen (term) - sizeof (ut.ut_id);
+
+ memset (&ut, 0, sizeof (ut));
+
+- strncpy (ut.ut_user, user, sizeof (ut.ut_user));
++ strncpy (ut.ut_name, user, sizeof (ut.ut_name));
+
+ strncpy (ut.ut_line, term, sizeof (ut.ut_line));
+
+- if (offset < 0)
+- offset = 0;
+- strncpy (ut.ut_id, term + offset, sizeof (ut.ut_id));
+-
+ if (host)
+ strncpy (ut.ut_host, host, sizeof (ut.ut_host));
+
+- if (add)
+- ut.ut_type = USER_PROCESS;
+- else
+- ut.ut_type = DEAD_PROCESS;
+-
+- ut.ut_pid = pid;
+-
+- gettimeofday (&ut.ut_tv, 0);
++ time (&ut.ut_time);
+
+- setutent ();
+- if (!pututline (&ut))
+- {
++ if (add) {
++ login (&ut);
++ } else {
++ if (logout (term) != 1) {
+ #ifdef UTEMPTER_DEBUG
+- fprintf (stderr, "utempter: pututline: %s\n",
+- strerror (errno));
++ fprintf (stderr, "utempter: logout: %s\n",
++ strerror (errno));
+ #endif
+ exit (EXIT_FAILURE);
++ }
+ }
+- endutent ();
+-
+- updwtmp (_PATH_WTMP, &ut);
+
+ #ifdef UTEMPTER_DEBUG
+ fprintf (stderr,
+@@ -203,7 +190,7 @@
+ exit (EXIT_FAILURE);
+ }
+
+- device = ptsname (STDIN_FILENO);
++ device = ttyname (STDIN_FILENO);
+ if (!device)
+ {
+ #ifdef UTEMPTER_DEBUG