diff options
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@ | 
