aboutsummaryrefslogtreecommitdiff
path: root/sysutils/consolekit/files
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2008-03-24 03:52:36 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2008-03-24 03:52:36 +0000
commit6f32add9a75efb180e462ffbdb0b080bc88088e3 (patch)
tree0fc7af36e22fc0dc7c1dc8aacabf6fe117e881da /sysutils/consolekit/files
parentb8d245fedd5842fb6d68d0bdc6539885555a84e3 (diff)
downloadports-6f32add9a75efb180e462ffbdb0b080bc88088e3.tar.gz
ports-6f32add9a75efb180e462ffbdb0b080bc88088e3.zip
Notes
Diffstat (limited to 'sysutils/consolekit/files')
-rw-r--r--sysutils/consolekit/files/ck-get-x11-display-device35
-rw-r--r--sysutils/consolekit/files/ck-get-x11-server-pid17
-rw-r--r--sysutils/consolekit/files/consolekit.in57
-rw-r--r--sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c142
-rw-r--r--sysutils/consolekit/files/patch-src_ck-sysdeps-unix.c18
-rw-r--r--sysutils/consolekit/files/patch-src_main.c33
-rw-r--r--sysutils/consolekit/files/patch-src_test-vt-monitor.c33
-rw-r--r--sysutils/consolekit/files/patch-tools_Makefile.in77
8 files changed, 355 insertions, 57 deletions
diff --git a/sysutils/consolekit/files/ck-get-x11-display-device b/sysutils/consolekit/files/ck-get-x11-display-device
new file mode 100644
index 000000000000..6fc508360b92
--- /dev/null
+++ b/sysutils/consolekit/files/ck-get-x11-display-device
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+FSTAT="/usr/bin/fstat"
+GREP="/usr/bin/grep"
+AWK="/usr/bin/awk"
+SED="/usr/bin/sed"
+CAT="/bin/cat"
+HEAD="/usr/bin/head"
+
+dispnum=0
+if [ x"$1" = x"--display" ]; then
+ if [ $# != 2 ]; then
+ echo "usage: $0 [--display DISPLAY]"
+ exit 1
+ fi
+ DISPLAY=$2
+fi
+if [ ! -z "${DISPLAY}" ]; then
+ dispnum=$(echo ${DISPLAY} | ${SED} -E -e 's|:([0-9]+).*|\1|')
+fi
+
+if [ ! -f "/tmp/.X${dispnum}-lock" ]; then
+ echo "ERROR: Failed to find X lock file for display ${dispnum}"
+ exit 1
+fi
+pid=$(${CAT} "/tmp/.X${dispnum}-lock")
+
+device=$(${FSTAT} -p ${pid} | ${GREP} ttyv | ${HEAD} -1 | ${AWK} '{print $8}')
+
+if [ -z "${device}" ]; then
+ echo "ERROR: Failed to find TTY device for X server on display ${dispnum}"
+ exit 1
+fi
+
+echo "/dev/${device}"
diff --git a/sysutils/consolekit/files/ck-get-x11-server-pid b/sysutils/consolekit/files/ck-get-x11-server-pid
new file mode 100644
index 000000000000..05c433e0175e
--- /dev/null
+++ b/sysutils/consolekit/files/ck-get-x11-server-pid
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+SED="/usr/bin/sed"
+CAT="/bin/cat"
+
+dispnum=0
+if [ ! -z "${DISPLAY}" ]; then
+ dispnum=$(echo ${DISPLAY} | ${SED} -E -e 's|:([0-9]+).*|\1|')
+fi
+
+if [ ! -f "/tmp/.X${dispnum}-lock" ]; then
+ echo "ERROR: Failed to find X lock file for display ${dispnum}"
+ exit 1
+fi
+pid=$(${CAT} "/tmp/.X${dispnum}-lock")
+
+echo ${pid}
diff --git a/sysutils/consolekit/files/consolekit.in b/sysutils/consolekit/files/consolekit.in
deleted file mode 100644
index 7eada3e639c2..000000000000
--- a/sysutils/consolekit/files/consolekit.in
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD$
-#
-# PROVIDE: consolekit
-# REQUIRE: DAEMON dbus
-#
-# Add the following line to /etc/rc.conf to enable the ConsoleKit daemon:
-#
-# consolekit_enable="YES"
-#
-
-. %%RC_SUBR%%
-. %%GNOME_SUBR%%
-
-consolekit_enable=${consolekit_enable-${gnome_enable}}
-
-name=consolekit
-rcvar=`set_rcvar`
-
-command="%%PREFIX%%/sbin/console-kit-daemon"
-pidfile="/var/run/${name}.pid"
-
-start_precmd="consolekit_precmd"
-stop_postcmd="consolekit_postcmd"
-
-local_force_depend()
-{
- _depend="$1"
- if [ -f %%LOCALBASE%%/etc/rc.d/${_depend}.sh ]; then
- _depend="${_depend}.sh"
- fi
-
- if ! %%LOCALBASE%%/etc/rc.d/${_depend} forcestatus 1>/dev/null 2>&1 &&
- ! %%LOCALBASE%%/etc/rc.d/${_depend} forcestart; then
- return 1
- fi
- return 0
-}
-
-consolekit_precmd()
-{
- if ! checkyesno dbus_enable
- then
- local_force_depend dbus || return 1
- fi
-
- mkdir -p $(dirname $pidfile)
-}
-
-consolekit_postcmd()
-{
- rm -f $pidfile
-}
-
-load_rc_config ${name}
-run_rc_command "$1"
diff --git a/sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c b/sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c
new file mode 100644
index 000000000000..5a0e1248b191
--- /dev/null
+++ b/sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c
@@ -0,0 +1,142 @@
+--- src/ck-sysdeps-freebsd.c.orig 2008-01-23 09:30:44.000000000 -0500
++++ src/ck-sysdeps-freebsd.c 2008-02-06 22:50:57.000000000 -0500
+@@ -27,6 +27,7 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <errno.h>
++#include <glob.h>
+ #include <paths.h>
+ #include <ttyent.h>
+ #include <kvm.h>
+@@ -202,7 +203,6 @@ ck_process_stat_new_for_unix_pid (pid_t
+ GError **error)
+ {
+ gboolean res;
+- GError *local_error;
+ CkProcessStat *proc;
+
+ g_return_val_if_fail (pid > 1, FALSE);
+@@ -217,7 +217,6 @@ ck_process_stat_new_for_unix_pid (pid_t
+ if (res) {
+ *stat = proc;
+ } else {
+- g_propagate_error (error, local_error);
+ *stat = NULL;
+ }
+
+@@ -318,38 +317,40 @@ gboolean
+ ck_get_max_num_consoles (guint *num)
+ {
+ int max_consoles;
+- int res;
+- gboolean ret;
+- struct ttyent *t;
++ int i;
++ glob_t g;
+
+- ret = FALSE;
+ max_consoles = 0;
+
+- res = setttyent ();
+- if (res == 0) {
+- goto done;
+- }
+-
+- while ((t = getttyent ()) != NULL) {
+- if (t->ty_status & TTY_ON && strncmp (t->ty_name, "ttyv", 4) == 0)
++ g.gl_offs = 0;
++ glob ("/dev/ttyv*", GLOB_DOOFFS, NULL, &g);
++ for (i = 0; i < g.gl_pathc && g.gl_pathv[i] != NULL; i++) {
++ int fd;
++ char *cdev;
++
++ cdev = g.gl_pathv[i];
++ fd = open (cdev, O_RDONLY | O_NOCTTY);
++ if (fd > -1) {
++ close (fd);
+ max_consoles++;
++ } else {
++ break;
++ }
+ }
+
+- /* Increment one more so that all consoles are properly counted
++ globfree (&g);
++
++ /*
++ * Increment one more so that all consoles are properly counted
+ * this is arguable a bug in vt_add_watches().
+ */
+ max_consoles++;
+
+- ret = TRUE;
+-
+- endttyent ();
+-
+-done:
+ if (num != NULL) {
+ *num = max_consoles;
+ }
+
+- return ret;
++ return TRUE;
+ }
+
+ char *
+@@ -360,7 +361,12 @@ ck_get_console_device_for_num (guint num
+ /* The device number is always one less than the VT number. */
+ num--;
+
+- device = g_strdup_printf ("/dev/ttyv%u", num);
++ if (num < 10)
++ device = g_strdup_printf ("/dev/ttyv%i", num);
++ else if (num < 32)
++ device = g_strdup_printf ("/dev/ttyv%c", num - 10 + 'a');
++ else
++ device = NULL;
+
+ return device;
+ }
+@@ -370,6 +376,7 @@ ck_get_console_num_from_device (const ch
+ guint *num)
+ {
+ guint n;
++ char c;
+ gboolean ret;
+
+ n = 0;
+@@ -379,7 +386,11 @@ ck_get_console_num_from_device (const ch
+ return FALSE;
+ }
+
+- if (sscanf (device, "/dev/ttyv%u", &n) == 1) {
++ if (sscanf (device, "/dev/ttyv%c", &c) == 1) {
++ if (c < 58)
++ n = c - 48;
++ else
++ n = c - 'a' + 10;
+ /* The VT number is always one more than the device number. */
+ n++;
+ ret = TRUE;
+@@ -399,6 +410,7 @@ ck_get_active_console_num (int consol
+ gboolean ret;
+ int res;
+ int active;
++ char ttyn;
+
+ g_assert (console_fd != -1);
+
+@@ -411,7 +423,12 @@ ck_get_active_console_num (int consol
+ goto out;
+ }
+
+- g_debug ("Active VT is: %d (ttyv%d)", active, active - 1);
++ if (active - 1 < 10)
++ ttyn = active - 1 + '0';
++ else
++ ttyn = active - 11 + 'a';
++
++ g_debug ("Active VT is: %d (ttyv%c)", active, ttyn);
+ ret = TRUE;
+
+ out:
diff --git a/sysutils/consolekit/files/patch-src_ck-sysdeps-unix.c b/sysutils/consolekit/files/patch-src_ck-sysdeps-unix.c
new file mode 100644
index 000000000000..e256e9f366f4
--- /dev/null
+++ b/sysutils/consolekit/files/patch-src_ck-sysdeps-unix.c
@@ -0,0 +1,18 @@
+--- src/ck-sysdeps-unix.c.orig 2008-02-06 22:59:55.000000000 -0500
++++ src/ck-sysdeps-unix.c 2008-02-06 22:52:34.000000000 -0500
+@@ -172,6 +172,15 @@ ck_get_a_console_fd (void)
+
+ fd = -1;
+
++#ifdef __FreeBSD__
++ /* On FreeBSD, try /dev/consolectl first as this will survive
++ * /etc/ttys initialization. */
++ fd = open_a_console ("/dev/consolectl");
++ if (fd >= 0) {
++ goto done;
++ }
++#endif
++
+ #ifdef __sun
+ /* On Solaris, first try Sun VT device. */
+ fd = open_a_console ("/dev/vt/active");
diff --git a/sysutils/consolekit/files/patch-src_main.c b/sysutils/consolekit/files/patch-src_main.c
new file mode 100644
index 000000000000..a791db0f9149
--- /dev/null
+++ b/sysutils/consolekit/files/patch-src_main.c
@@ -0,0 +1,33 @@
+--- src/main.c.orig 2007-11-08 15:05:55.000000000 -0500
++++ src/main.c 2007-11-08 15:07:39.000000000 -0500
+@@ -226,6 +226,21 @@ sigusr1_handler (int sig)
+ }
+
+ static void
++setup_termination_signals (void)
++{
++ struct sigaction sa;
++
++ sa.sa_handler = SIG_DFL;
++ sigemptyset (&sa.sa_mask);
++ sa.sa_flags = 0;
++
++ sigaction (SIGTERM, &sa, NULL);
++ sigaction (SIGQUIT, &sa, NULL);
++ sigaction (SIGINT, &sa, NULL);
++ sigaction (SIGHUP, &sa, NULL);
++}
++
++static void
+ setup_debug_log_signals (void)
+ {
+ struct sigaction sa;
+@@ -300,6 +315,8 @@ main (int argc,
+
+ setup_debug_log (debug);
+
++ setup_termination_signals ();
++
+ connection = get_system_bus ();
+ if (connection == NULL) {
+ goto out;
diff --git a/sysutils/consolekit/files/patch-src_test-vt-monitor.c b/sysutils/consolekit/files/patch-src_test-vt-monitor.c
new file mode 100644
index 000000000000..6fb9740f5295
--- /dev/null
+++ b/sysutils/consolekit/files/patch-src_test-vt-monitor.c
@@ -0,0 +1,33 @@
+--- src/test-vt-monitor.c.orig 2007-08-17 13:08:55.000000000 -0400
++++ src/test-vt-monitor.c 2007-11-08 15:11:37.000000000 -0500
+@@ -31,6 +31,7 @@
+ #include <pwd.h>
+ #include <string.h>
+ #include <errno.h>
++#include <signal.h>
+
+ #include <locale.h>
+
+@@ -55,12 +56,22 @@ main (int argc, char **argv)
+ GError *error;
+ guint num;
+ gboolean res;
++ struct sigaction sa;
+
+ if (! g_thread_supported ()) {
+ g_thread_init (NULL);
+ }
+ g_type_init ();
+
++ sa.sa_handler = SIG_DFL;
++ sigemptyset (&sa.sa_mask);
++ sa.sa_flags = 0;
++
++ sigaction (SIGINT, &sa, NULL);
++ sigaction (SIGTERM, &sa, NULL);
++ sigaction (SIGQUIT, &sa, NULL);
++ sigaction (SIGHUP, &sa, NULL);
++
+ if (! ck_is_root_user ()) {
+ g_warning ("Must be run as root");
+ exit (1);
diff --git a/sysutils/consolekit/files/patch-tools_Makefile.in b/sysutils/consolekit/files/patch-tools_Makefile.in
new file mode 100644
index 000000000000..b818fd9319d0
--- /dev/null
+++ b/sysutils/consolekit/files/patch-tools_Makefile.in
@@ -0,0 +1,77 @@
+--- tools/Makefile.in.orig 2008-01-31 16:09:08.000000000 -0500
++++ tools/Makefile.in 2008-01-31 16:10:21.000000000 -0500
+@@ -39,8 +39,7 @@ bin_PROGRAMS = ck-list-sessions$(EXEEXT)
+ $(am__EXEEXT_1)
+ sbin_PROGRAMS = ck-log-system-start$(EXEEXT) $(am__EXEEXT_1)
+ libexec_PROGRAMS = ck-collect-session-info$(EXEEXT) \
+- ck-get-x11-server-pid$(EXEEXT) \
+- ck-get-x11-display-device$(EXEEXT) $(am__EXEEXT_1)
++ $(am__EXEEXT_1)
+ subdir = tools
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -66,17 +65,6 @@ ck_collect_session_info_OBJECTS = \
+ am__DEPENDENCIES_1 =
+ ck_collect_session_info_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(top_builddir)/src/libck.la $(am__DEPENDENCIES_1)
+-am_ck_get_x11_display_device_OBJECTS = \
+- ck-get-x11-display-device.$(OBJEXT) $(am__objects_1)
+-ck_get_x11_display_device_OBJECTS = \
+- $(am_ck_get_x11_display_device_OBJECTS)
+-ck_get_x11_display_device_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+- $(top_builddir)/src/libck.la $(am__DEPENDENCIES_1)
+-am_ck_get_x11_server_pid_OBJECTS = ck-get-x11-server-pid.$(OBJEXT) \
+- $(am__objects_1)
+-ck_get_x11_server_pid_OBJECTS = $(am_ck_get_x11_server_pid_OBJECTS)
+-ck_get_x11_server_pid_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+- $(top_builddir)/src/libck.la $(am__DEPENDENCIES_1)
+ am_ck_history_OBJECTS = ck-history.$(OBJEXT) $(am__objects_1)
+ ck_history_OBJECTS = $(am_ck_history_OBJECTS)
+ ck_history_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+@@ -335,24 +323,6 @@ ck_collect_session_info_LDADD = \
+ $(top_builddir)/src/libck.la \
+ $(NULL)
+
+-ck_get_x11_server_pid_SOURCES = \
+- ck-get-x11-server-pid.c \
+- $(NULL)
+-
+-ck_get_x11_server_pid_LDADD = \
+- $(TOOLS_LIBS) \
+- $(top_builddir)/src/libck.la \
+- $(NULL)
+-
+-ck_get_x11_display_device_SOURCES = \
+- ck-get-x11-display-device.c \
+- $(NULL)
+-
+-ck_get_x11_display_device_LDADD = \
+- $(TOOLS_LIBS) \
+- $(top_builddir)/src/libck.la \
+- $(NULL)
+-
+ EXTRA_DIST = \
+ $(NULL)
+
+@@ -480,12 +450,6 @@ clean-sbinPROGRAMS:
+ ck-collect-session-info$(EXEEXT): $(ck_collect_session_info_OBJECTS) $(ck_collect_session_info_DEPENDENCIES)
+ @rm -f ck-collect-session-info$(EXEEXT)
+ $(LINK) $(ck_collect_session_info_OBJECTS) $(ck_collect_session_info_LDADD) $(LIBS)
+-ck-get-x11-display-device$(EXEEXT): $(ck_get_x11_display_device_OBJECTS) $(ck_get_x11_display_device_DEPENDENCIES)
+- @rm -f ck-get-x11-display-device$(EXEEXT)
+- $(LINK) $(ck_get_x11_display_device_OBJECTS) $(ck_get_x11_display_device_LDADD) $(LIBS)
+-ck-get-x11-server-pid$(EXEEXT): $(ck_get_x11_server_pid_OBJECTS) $(ck_get_x11_server_pid_DEPENDENCIES)
+- @rm -f ck-get-x11-server-pid$(EXEEXT)
+- $(LINK) $(ck_get_x11_server_pid_OBJECTS) $(ck_get_x11_server_pid_LDADD) $(LIBS)
+ ck-history$(EXEEXT): $(ck_history_OBJECTS) $(ck_history_DEPENDENCIES)
+ @rm -f ck-history$(EXEEXT)
+ $(LINK) $(ck_history_OBJECTS) $(ck_history_LDADD) $(LIBS)
+@@ -503,8 +467,6 @@ distclean-compile:
+ -rm -f *.tab.c
+
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ck-collect-session-info.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ck-get-x11-display-device.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ck-get-x11-server-pid.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ck-history.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ck-log-system-start.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list-sessions.Po@am__quote@