diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2008-03-24 03:52:36 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2008-03-24 03:52:36 +0000 |
commit | 6f32add9a75efb180e462ffbdb0b080bc88088e3 (patch) | |
tree | 0fc7af36e22fc0dc7c1dc8aacabf6fe117e881da /sysutils/consolekit/files | |
parent | b8d245fedd5842fb6d68d0bdc6539885555a84e3 (diff) | |
download | ports-6f32add9a75efb180e462ffbdb0b080bc88088e3.tar.gz ports-6f32add9a75efb180e462ffbdb0b080bc88088e3.zip |
Notes
Diffstat (limited to 'sysutils/consolekit/files')
-rw-r--r-- | sysutils/consolekit/files/ck-get-x11-display-device | 35 | ||||
-rw-r--r-- | sysutils/consolekit/files/ck-get-x11-server-pid | 17 | ||||
-rw-r--r-- | sysutils/consolekit/files/consolekit.in | 57 | ||||
-rw-r--r-- | sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c | 142 | ||||
-rw-r--r-- | sysutils/consolekit/files/patch-src_ck-sysdeps-unix.c | 18 | ||||
-rw-r--r-- | sysutils/consolekit/files/patch-src_main.c | 33 | ||||
-rw-r--r-- | sysutils/consolekit/files/patch-src_test-vt-monitor.c | 33 | ||||
-rw-r--r-- | sysutils/consolekit/files/patch-tools_Makefile.in | 77 |
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@ |