summaryrefslogtreecommitdiff
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
parent- Add USE_XORG= x11 (diff)
The FreeBSD GNOME team is proud to annunce the release of GNOME 2.22.0 for
FreeBSD. The official GNOME 2.22 release notes can be found at http://library.gnome.org/misc/release-notes/2.22/ . On the FreeBSD front, this release features an updated hal port with support for video4linux devices, DRM (Direct Rendering), and better support of removable media. Work is also underway to tie webkit more closely into GNOME. As part of the GNOME 2.22 upgrade, GStreamer received a rather large upgrade as well. Be sure to consult UPDATING on the proper steps to upgrade all of your GNOME ports. This release would not have been possible without the contributions and testing efforts of the following people: Pawel Worach kan edwin Peter Ulrich Kruppa J. W. Ballantine Yasuda Keisuke Andriy Gapon
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@