--- Makefile (revision 432633) +++ Makefile (working copy) @@ -2,21 +2,23 @@ # $FreeBSD$ PORTNAME= consolekit -PORTVERSION= 0.4.5 -PORTREVISION= 4 +PORTVERSION= 1.0.2 CATEGORIES= sysutils gnome -MASTER_SITES= http://www.freedesktop.org/software/ConsoleKit/dist/ -DISTFILES= ConsoleKit-${PORTVERSION}${EXTRACT_SUFX} +MASTER_SITES= https://github.com/ConsoleKit2/ConsoleKit2/releases/download/${PORTVERSION}/ +DISTFILES= ConsoleKit2-${PORTVERSION}${EXTRACT_SUFX} MAINTAINER= gnome@FreeBSD.org COMMENT= Framework for defining and tracking users +LICENSE= GPLv2 + LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \ - libpolkit-gobject-1.so:sysutils/polkit + libpolkit-gobject-1.so:sysutils/polkit -WRKSRC= ${WRKDIR}/ConsoleKit-${PORTVERSION} +WRKSRC= ${WRKDIR}/ConsoleKit2-${PORTVERSION} USES= gettext gmake libtool pathfix pkgconfig tar:bzip2 USE_XORG= x11 +USE_GNOME= glib20 GNU_CONFIGURE= yes USE_LDCONFIG= yes CPPFLAGS+= -I${LOCALBASE}/include @@ -24,14 +26,16 @@ CONFIGURE_ARGS= --with-pid-file=/var/run/${PORTNAME}.pid \ --enable-pam-module \ --with-pam-module-dir=${PREFIX}/lib \ - --localstatedir=/var + --localstatedir=/var \ + --enable-polkit \ + --disable-udev-acl \ + --without-systemdsystemunitdir INSTALL_TARGET= install-strip post-install: - ${INSTALL_SCRIPT} ${FILESDIR}/ck-get-x11-display-device \ - ${STAGEDIR}${PREFIX}/libexec/ck-get-x11-display-device - ${INSTALL_SCRIPT} ${FILESDIR}/ck-get-x11-server-pid \ - ${STAGEDIR}${PREFIX}/libexec/ck-get-x11-server-pid - @${MKDIR} ${STAGEDIR}/var/log/ConsoleKit + ${MKDIR} ${STAGEDIR}/var/log/ConsoleKit + ${MKDIR} ${STAGEDIR}${PREFIX}/etc/X11/xinit/xinitrc.d + ${INSTALL_SCRIPT} ${WRKSRC}/data/90-consolekit \ + ${STAGEDIR}${PREFIX}/etc/X11/xinit/xinitrc.d .include --- distinfo (revision 432633) +++ distinfo (working copy) @@ -1,2 +1,2 @@ -SHA256 (ConsoleKit-0.4.5.tar.bz2) = 43e0780c53078e125efcec3f847e484dc3533e49b408ce6a0ab1b223686b9c38 -SIZE (ConsoleKit-0.4.5.tar.bz2) = 425423 +SHA256 (ConsoleKit2-1.0.2.tar.bz2) = a2f7697f1e081b68839b85e375a1b8fcda55c2ca76fa4d9118674c5d0e50e800 +SIZE (ConsoleKit2-1.0.2.tar.bz2) = 622723 --- files/ck-get-x11-display-device (revision 432633) +++ files/ck-get-x11-display-device (nonexistent) @@ -1,46 +0,0 @@ -#!/bin/sh - -FSTAT="/usr/bin/fstat" -GREP="/usr/bin/grep" -AWK="/usr/bin/awk" -SED="/usr/bin/sed" -CAT="/bin/cat" - -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 | ${AWK} '{print $8}') - -if [ -z "${device}" -a -f "/var/log/Xorg.$dispnum.log" ]; then - device=$(awk '/using VT number/ { print "ttyv" ($7 - 1); }' \ - "/var/log/Xorg.$dispnum.log") -fi - -if [ -z "${device}" ]; then - echo "ERROR: Failed to find TTY device for X server on display ${dispnum}" - exit 1 -fi - -ret="" -for dev in ${device}; do - if [ "${dev}" \> "${ret}" ]; then - ret=${dev} - fi -done - -echo "/dev/${dev}" --- files/ck-get-x11-server-pid (revision 432633) +++ files/ck-get-x11-server-pid (nonexistent) @@ -1,17 +0,0 @@ -#!/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} --- files/patch-src_ck-manager.c (revision 432633) +++ files/patch-src_ck-manager.c (nonexistent) @@ -1,186 +0,0 @@ -$OpenBSD: patch-src_ck-manager_c,v 1.3 2011/04/28 13:08:33 ajacoutot Exp $ - -XXX revert 4f88228f31a63c026c424a92827f26ad7535275c -The Kit people assume the world runs Linux and PAM, see -https://bugs.freedesktop.org/show_bug.cgi?id=28377 - ---- src/ck-manager.c.orig Tue Oct 26 16:34:03 2010 -+++ src/ck-manager.c Sat Dec 4 12:18:29 2010 -@@ -1659,175 +1659,13 @@ open_session_for_leader (CkManager *manage - dbus_g_method_return (context, cookie); - } - --enum { -- PROP_STRING, -- PROP_BOOLEAN, --}; -- --#define CK_TYPE_PARAMETER_STRUCT (dbus_g_type_get_struct ("GValueArray", \ -- G_TYPE_STRING, \ -- G_TYPE_VALUE, \ -- G_TYPE_INVALID)) -- --static gboolean --_get_parameter (GPtrArray *parameters, -- const char *name, -- int prop_type, -- gpointer *value) --{ -- gboolean ret; -- int i; -- -- if (parameters == NULL) { -- return FALSE; -- } -- -- ret = FALSE; -- -- for (i = 0; i < parameters->len && ret == FALSE; i++) { -- gboolean res; -- GValue val_struct = { 0, }; -- char *prop_name; -- GValue *prop_val; -- -- g_value_init (&val_struct, CK_TYPE_PARAMETER_STRUCT); -- g_value_set_static_boxed (&val_struct, g_ptr_array_index (parameters, i)); -- -- res = dbus_g_type_struct_get (&val_struct, -- 0, &prop_name, -- 1, &prop_val, -- G_MAXUINT); -- if (! res) { -- g_debug ("Unable to extract parameter input"); -- goto cont; -- } -- -- if (prop_name == NULL) { -- g_debug ("Skipping NULL parameter"); -- goto cont; -- } -- -- if (strcmp (prop_name, name) != 0) { -- goto cont; -- } -- -- switch (prop_type) { -- case PROP_STRING: -- if (value != NULL) { -- *value = g_value_dup_string (prop_val); -- } -- break; -- case PROP_BOOLEAN: -- if (value != NULL) { -- *(gboolean *)value = g_value_get_boolean (prop_val); -- } -- break; -- default: -- g_assert_not_reached (); -- break; -- } -- -- ret = TRUE; -- -- cont: -- g_free (prop_name); -- if (prop_val != NULL) { -- g_value_unset (prop_val); -- g_free (prop_val); -- } -- } -- -- return ret; --} -- --static gboolean --_verify_login_session_id_is_local (CkManager *manager, -- const char *login_session_id) --{ -- GHashTableIter iter; -- const char *id; -- CkSession *session; -- -- g_return_val_if_fail (CK_IS_MANAGER (manager), FALSE); -- -- /* If any local session exists for the given login session id -- then that means a trusted party has vouched for the -- original login */ -- -- g_debug ("Looking for local sessions for login-session-id=%s", login_session_id); -- -- session = NULL; -- g_hash_table_iter_init (&iter, manager->priv->sessions); -- while (g_hash_table_iter_next (&iter, (gpointer *)&id, (gpointer *)&session)) { -- if (session != NULL) { -- gboolean is_local; -- char *sessid; -- -- sessid = NULL; -- g_object_get (session, -- "login-session-id", &sessid, -- "is-local", &is_local, -- NULL); -- if (g_strcmp0 (sessid, login_session_id) == 0 && is_local) { -- g_debug ("CkManager: found is-local=true on %s", id); -- return TRUE; -- } -- } -- } -- -- return FALSE; --} -- - static void --add_param_boolean (GPtrArray *parameters, -- const char *key, -- gboolean value) --{ -- GValue val = { 0, }; -- GValue param_val = { 0, }; -- -- g_value_init (&val, G_TYPE_BOOLEAN); -- g_value_set_boolean (&val, value); -- g_value_init (¶m_val, CK_TYPE_PARAMETER_STRUCT); -- g_value_take_boxed (¶m_val, -- dbus_g_type_specialized_construct (CK_TYPE_PARAMETER_STRUCT)); -- dbus_g_type_struct_set (¶m_val, -- 0, key, -- 1, &val, -- G_MAXUINT); -- g_value_unset (&val); -- -- g_ptr_array_add (parameters, g_value_get_boxed (¶m_val)); --} -- --static void - verify_and_open_session_for_leader (CkManager *manager, - CkSessionLeader *leader, -- GPtrArray *parameters, -+ const GPtrArray *parameters, - DBusGMethodInvocation *context) - { -- /* Only allow a local session if originating from an existing -- local session. Effectively this means that only trusted -- parties can create local sessions. */ -- -- g_debug ("CkManager: verifying session for leader"); -- -- if (parameters != NULL && ! _get_parameter (parameters, "is-local", PROP_BOOLEAN, NULL)) { -- gboolean is_local; -- char *login_session_id; -- -- g_debug ("CkManager: is-local has not been set, will inherit from existing login-session-id if available"); -- -- is_local = FALSE; -- -- if (_get_parameter (parameters, "login-session-id", PROP_STRING, (gpointer *) &login_session_id)) { -- is_local = _verify_login_session_id_is_local (manager, login_session_id); -- g_debug ("CkManager: found is-local=%s", is_local ? "true" : "false"); -- } -- -- add_param_boolean (parameters, "is-local", is_local); -- } -- -+ /* for now don't bother verifying since we protect OpenSessionWithParameters */ - open_session_for_leader (manager, - leader, - parameters, --- files/patch-src_ck-sysdeps-freebsd.c (revision 432633) +++ files/patch-src_ck-sysdeps-freebsd.c (nonexistent) @@ -1,208 +0,0 @@ ---- src/ck-sysdeps-freebsd.c.orig 2010-09-03 15:54:31.000000000 +0200 -+++ src/ck-sysdeps-freebsd.c 2015-03-23 09:28:20.476513000 +0100 -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -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; - } - -@@ -233,24 +232,28 @@ ck_process_stat_free (CkProcessStat *sta - GHashTable * - ck_unix_pid_get_env_hash (pid_t pid) - { -- GHashTable *hash; -+ GHashTable *hash = NULL; - char **penv; -+ char errbuf[_POSIX2_LINE_MAX]; - kvm_t *kd; - struct kinfo_proc p; - int i; - -- kd = kvm_openfiles (_PATH_DEVNULL, _PATH_DEVNULL, NULL, O_RDONLY, NULL); -+ kd = kvm_openfiles (_PATH_DEVNULL, _PATH_DEVNULL, NULL, O_RDONLY, errbuf); - if (kd == NULL) { -+ g_warning ("kvm_openfiles failed: %s", errbuf); - return NULL; - } - - if (! get_kinfo_proc (pid, &p)) { -- return NULL; -+ g_warning ("get_kinfo_proc failed: %s", g_strerror (errno)); -+ goto fail; - } - - penv = kvm_getenvv (kd, &p, 0); - if (penv == NULL) { -- return NULL; -+ g_warning ("kvm_getenvv failed: %s", kvm_geterr (kd)); -+ goto fail; - } - - hash = g_hash_table_new_full (g_str_hash, -@@ -261,6 +264,9 @@ ck_unix_pid_get_env_hash (pid_t pid) - for (i = 0; penv[i] != NULL; i++) { - char **vals; - -+ if (!penv[i][0]) -+ continue; -+ - vals = g_strsplit (penv[i], "=", 2); - if (vals != NULL) { - g_hash_table_insert (hash, -@@ -270,6 +276,7 @@ ck_unix_pid_get_env_hash (pid_t pid) - } - } - -+fail: - kvm_close (kd); - - return hash; -@@ -280,7 +287,7 @@ ck_unix_pid_get_env (pid_t pid, - const char *var) - { - GHashTable *hash; -- char *val; -+ char *val = NULL; - - /* - * Would probably be more efficient to just loop through the -@@ -288,6 +295,8 @@ ck_unix_pid_get_env (pid_t pid, - * table, but this works for now. - */ - hash = ck_unix_pid_get_env_hash (pid); -+ if (hash == NULL) -+ return val; - val = g_strdup (g_hash_table_lookup (hash, var)); - g_hash_table_destroy (hash); - -@@ -327,38 +336,38 @@ 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; -- } -+ g.gl_offs = 0; -+ glob ("/dev/ttyv*", GLOB_DOOFFS | GLOB_NOSORT, NULL, &g); -+ for (i = 0; i < g.gl_pathc && g.gl_pathv[i] != NULL; i++) { -+ struct stat sb; -+ char *cdev; - -- while ((t = getttyent ()) != NULL) { -- if (t->ty_status & TTY_ON && strncmp (t->ty_name, "ttyv", 4) == 0) -+ cdev = g.gl_pathv[i]; -+ if (stat (cdev, &sb) > -1 && S_ISCHR (sb.st_mode)) { - 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; - } - - gboolean -@@ -375,7 +384,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; - } -@@ -385,6 +399,7 @@ ck_get_console_num_from_device (const ch - guint *num) - { - guint n; -+ char c; - gboolean ret; - - n = 0; -@@ -394,7 +409,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; -@@ -414,6 +433,7 @@ ck_get_active_console_num (int consol - gboolean ret; - int res; - int active; -+ char ttyn; - - g_assert (console_fd != -1); - -@@ -426,7 +446,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: --- files/patch-src_ck-sysdeps-unix.c (revision 432633) +++ files/patch-src_ck-sysdeps-unix.c (working copy) @@ -1,18 +1,44 @@ ---- 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; -+ } +--- src/ck-sysdeps-unix.c.orig 2016-03-19 15:14:24 UTC ++++ src/ck-sysdeps-unix.c +@@ -31,7 +31,16 @@ + #include + #include + #include +- ++#ifdef __FreeBSD__ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include +#endif + #ifdef __linux__ + #include + #endif +@@ -137,6 +146,23 @@ ck_get_socket_peer_credentials (int + g_warning ("Failed to getpeereid() credentials: %s\n", + g_strerror (errno)); + } + - #ifdef __sun - /* On Solaris, first try Sun VT device. */ - fd = open_a_console ("/dev/vt/active"); ++char errbuf[_POSIX2_LINE_MAX]; ++int cnt=0; ++kvm_t* kd = kvm_openfiles(NULL,_PATH_DEVNULL,NULL,O_RDONLY,errbuf); ++if (kd == NULL) { ++ g_warning ("kvm_openfiles failed: %s", errbuf); ++ return NULL; ++} ++ ++struct kinfo_proc * prc = kvm_getprocs(kd, KERN_PROC_UID, uid_read, &cnt); ++for ( int i = 0; i< cnt; i++) { ++if(strncmp(prc[i].ki_comm,"Xorg",4)==0) { ++pid_read = prc[i].ki_pid; ++break; ++} ++} ++kvm_close(kd); + #else /* !SO_PEERCRED && !HAVE_GETPEERUCRED */ + g_warning ("Socket credentials not supported on this OS\n"); + #endif --- files/patch-src_main.c (revision 432633) +++ files/patch-src_main.c (nonexistent) @@ -1,33 +0,0 @@ ---- 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; --- files/patch-src_test-vt-monitor.c (revision 432633) +++ files/patch-src_test-vt-monitor.c (nonexistent) @@ -1,33 +0,0 @@ ---- 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 - #include - #include -+#include - - #include - -@@ -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); --- files/patch-tools_Makefile.in (revision 432633) +++ files/patch-tools_Makefile.in (nonexistent) @@ -1,77 +0,0 @@ ---- tools/Makefile.in.orig 2010-10-23 11:29:43.000000000 +0200 -+++ tools/Makefile.in 2010-10-23 11:32:41.000000000 +0200 -@@ -43,8 +43,7 @@ sbin_PROGRAMS = ck-log-system-start$(EXE - ck-log-system-restart$(EXEEXT) ck-log-system-stop$(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 -@@ -71,17 +70,6 @@ ck_collect_session_info_DEPENDENCIES = $ - AM_V_lt = $(am__v_lt_$(V)) - am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) - am__v_lt_0 = --silent --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) \ -@@ -441,24 +429,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) - -@@ -632,12 +602,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) - $(AM_V_CCLD)$(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) -- $(AM_V_CCLD)$(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) -- $(AM_V_CCLD)$(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) - $(AM_V_CCLD)$(LINK) $(ck_history_OBJECTS) $(ck_history_LDADD) $(LIBS) -@@ -664,8 +628,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-launch-session.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ck-log-system-restart.Po@am__quote@ --- files/patch-tools_ck-collect-session-info.c (revision 432633) +++ files/patch-tools_ck-collect-session-info.c (nonexistent) @@ -1,92 +0,0 @@ -$OpenBSD: patch-tools_ck-collect-session-info_c,v 1.1 2011/04/28 13:08:33 ajacoutot Exp $ - -XXX revert 4f88228f31a63c026c424a92827f26ad7535275c -The Kit people assume the world runs Linux and PAM, see -https://bugs.freedesktop.org/show_bug.cgi?id=28377 ---- tools/ck-collect-session-info.c.orig 2013-08-10 20:47:52.000000000 +0200 -+++ tools/ck-collect-session-info.c 2013-08-10 20:47:33.000000000 +0200 -@@ -226,6 +226,12 @@ fill_x11_info (SessionInfo *si) - gboolean res; - CkProcessStat *xorg_stat; - GError *error; -+ char *err; -+ char *out; -+ int status; -+ int i; -+ char *argv[4]; -+ GPtrArray *env; - - /* assume this is true then check it */ - si->x11_display = ck_unix_pid_get_env (si->pid, "DISPLAY"); -@@ -272,9 +278,56 @@ fill_x11_info (SessionInfo *si) - } - - si->x11_display_device = ck_process_stat_get_tty (xorg_stat); -+ if (g_strcmp0 (si->x11_display_device, si->display_device) != 0) { -+ goto gotit; -+ } -+ -+ g_free (si->x11_display_device); -+ -+ /* get the applicable environment */ -+ env = get_filtered_environment (si->pid); -+ -+ argv[0] = LIBEXECDIR "/ck-get-x11-display-device"; -+ argv[1] = NULL; -+ -+ error = NULL; -+ out = NULL; -+ err = NULL; -+ status = -1; -+ res = g_spawn_sync (NULL, -+ argv, -+ (char **)env->pdata, -+ 0, -+ (GSpawnChildSetupFunc)setuid_child_setup_func, -+ si, -+ &out, -+ &err, -+ &status, -+ &error); -+ for (i = 0; i < env->len; i++) { -+ g_free (g_ptr_array_index (env, i)); -+ } -+ g_ptr_array_free (env, TRUE); -+ -+ if (error != NULL) { -+ g_warning ("Unable to get display device for x11 server: %s", error->message); -+ g_error_free (error); -+ } -+ -+ if (status == 0) { -+ if (res && out != NULL) { -+ si->x11_display_device = g_strstrip (out); -+ goto gotit; -+ } -+ } -+ -+ si->x11_display_device = ck_process_stat_get_tty (xorg_stat); -+ -+gotit: - ck_process_stat_free (xorg_stat); - -- /* don't set is-local here - let the daemon do that */ -+ si->is_local = TRUE; -+ si->is_local_is_set = TRUE; - - g_free (si->remote_host_name); - si->remote_host_name = NULL; -@@ -303,6 +356,13 @@ fill_session_info (SessionInfo *si) - - fill_x11_info (si); - -+ if (! si->is_local_is_set) { -+ /* FIXME: how should we set this? */ -+ /* non x11 sessions must be local I guess */ -+ si->is_local = TRUE; -+ si->is_local_is_set = TRUE; -+ } -+ - res = ck_unix_pid_get_login_session_id (si->pid, &si->login_session_id); - if (! res) { - si->login_session_id = NULL; --- files/patch-tools_ck-get-x11-display-device.c (nonexistent) +++ files/patch-tools_ck-get-x11-display-device.c (working copy) @@ -0,0 +1,34 @@ +--- tools/ck-get-x11-display-device.c.orig 2016-01-22 00:47:57 UTC ++++ tools/ck-get-x11-display-device.c +@@ -38,6 +38,7 @@ + static char * + get_tty_for_pid (int pid) + { ++ + GError *error; + char *device; + gboolean res; +@@ -140,6 +141,8 @@ get_tty_for_display (Display *xdisplay) + + #if defined(__NetBSD__) + display = g_strdup_printf ("/dev/ttyE%ld", vt - 1); ++#elif defined(__FreeBSD__) ++ display = g_strdup_printf ("/dev/ttyv%ld", vt - 1); + #else + display = g_strdup_printf ("/dev/tty%ld", vt); + #endif +@@ -196,10 +199,11 @@ main (int argc, + res = ck_get_socket_peer_credentials (fd, &pid, NULL, NULL); + if (res) { + if (pid > 0) { +- device = get_tty_for_pid (pid); +- ++ device = get_tty_for_display (xdisplay); + if (device == NULL) { +- device = get_tty_for_display (xdisplay); ++ device = get_tty_for_pid (pid);//returns ttyv0 for startx ++ ++ + } + + if (device != NULL) { --- files/patch-tools_ck-history.c (revision 432633) +++ files/patch-tools_ck-history.c (nonexistent) @@ -1,20 +0,0 @@ ---- tools/ck-history.c.orig 2010-09-03 15:54:31.000000000 +0200 -+++ tools/ck-history.c 2013-08-10 20:56:36.000000000 +0200 -@@ -511,7 +511,7 @@ - char *session_type; - char *session_id; - char *seat_id; -- CkLogSeatSessionAddedEvent *e; -+ CkLogSeatSessionAddedEvent *e = NULL; - CkLogEvent *remove_event; - RecordStatus status; - -@@ -804,7 +804,7 @@ - data = user_counts->data; - - username = get_user_name_for_uid (data->uid); -- g_print ("%-8.8s %u\n", username, data->count); -+ g_print ("%-8s %u\n", username, data->count); - g_free (data); - user_counts = g_list_delete_link (user_counts, user_counts); - g_free (username); --- files/patch-tools_ck-log-system-start.c (revision 432633) +++ files/patch-tools_ck-log-system-start.c (nonexistent) @@ -1,60 +0,0 @@ ---- tools/ck-log-system-start.c.orig 2009-09-14 20:08:10.000000000 -0400 -+++ tools/ck-log-system-start.c 2009-09-26 01:35:37.000000000 -0400 -@@ -26,6 +26,9 @@ - #include - #include - #include -+#ifdef __FreeBSD__ -+#include -+#endif - #include - #include - #include -@@ -41,7 +44,9 @@ - - #define DEFAULT_LOG_FILENAME LOCALSTATEDIR "/log/ConsoleKit/history" - -+#ifdef __linux__ - #define LINUX_KERNEL_CMDLINE "/proc/cmdline" -+#endif - - /* Adapted from auditd auditd-event.c */ - static gboolean -@@ -162,6 +167,7 @@ write_log_for_event (CkLogEvent *event) - static char * - get_boot_arguments (void) - { -+#if defined(__linux__) - char *contents; - gboolean res; - -@@ -178,6 +184,29 @@ get_boot_arguments (void) - } - - return contents; -+#elif defined(__FreeBSD__) -+ char kern_name[1024], root[1024], mopts[1024]; -+ char *options; -+ -+ options = NULL; -+ if (kenv(KENV_GET, "kernelname", kern_name, sizeof (kern_name)) == -1) { -+ return options; -+ } -+ -+ if (kenv(KENV_GET, "vfs.root.mountfrom.options", mopts, sizeof (mopts)) == -1) { -+ g_strlcpy (mopts, "ro", sizeof (mopts)); -+ } -+ -+ if (kenv(KENV_GET, "vfs.root.mountfrom", root, sizeof (root)) == -1) { -+ g_strlcpy (root, "/", sizeof (root)); -+ } -+ -+ options = g_strdup_printf ("%s %s root=%s", mopts, kern_name, root); -+ -+ return options; -+#else -+ return NULL; -+#endif - } - - int --- pkg-descr (revision 432633) +++ pkg-descr (working copy) @@ -1,6 +1,4 @@ -ConsoleKit is a framework for defining and tracking users, login -sessions, and seats. The primary motivations for this framework are to -facilitate fast-user-switching and multi-seat capabilities, and to -enable more sophisticated policy decisions for desktop sessions. +ConsoleKit2 is a framework for defining and tracking users, login +sessions, and seats. -WWW: http://www.freedesktop.org/wiki/Software/ConsoleKit +WWW: https://github.com/ConsoleKit2/ConsoleKit2 --- pkg-plist (revision 432633) +++ pkg-plist (working copy) @@ -1,14 +1,18 @@ bin/ck-history bin/ck-launch-session bin/ck-list-sessions -sbin/ck-log-system-restart -sbin/ck-log-system-start -sbin/ck-log-system-stop etc/ConsoleKit/seats.d/00-primary.seat +etc/X11/xinit/xinitrc.d/90-consolekit etc/dbus-1/system.d/ConsoleKit.conf +etc/logrotate.d/consolekit include/ConsoleKit/ck-connector/ck-connector.h +lib/ConsoleKit/scripts/ck-get-x11-display-device +lib/ConsoleKit/scripts/ck-get-x11-server-pid +lib/ConsoleKit/scripts/ck-system-hibernate +lib/ConsoleKit/scripts/ck-system-hybridsleep lib/ConsoleKit/scripts/ck-system-restart lib/ConsoleKit/scripts/ck-system-stop +lib/ConsoleKit/scripts/ck-system-suspend lib/libck-connector.so lib/libck-connector.so.0 lib/libck-connector.so.0.0.0 @@ -17,19 +21,29 @@ libexec/ck-collect-session-info libexec/ck-get-x11-display-device libexec/ck-get-x11-server-pid +man/man1/ck-history.1.gz +man/man1/ck-launch-session.1.gz +man/man1/ck-list-sessions.1.gz +man/man1/console-kit-daemon.1m.gz man/man8/pam_ck_connector.8.gz +sbin/ck-log-system-restart +sbin/ck-log-system-start +sbin/ck-log-system-stop sbin/console-kit-daemon share/dbus-1/interfaces/org.freedesktop.ConsoleKit.Manager.xml share/dbus-1/interfaces/org.freedesktop.ConsoleKit.Seat.xml share/dbus-1/interfaces/org.freedesktop.ConsoleKit.Session.xml share/dbus-1/system-services/org.freedesktop.ConsoleKit.service +share/locale/bg/LC_MESSAGES/ConsoleKit2.mo +share/locale/es/LC_MESSAGES/ConsoleKit2.mo +share/locale/es_419/LC_MESSAGES/ConsoleKit2.mo +share/locale/ru/LC_MESSAGES/ConsoleKit2.mo share/polkit-1/actions/org.freedesktop.consolekit.policy -@dir /var/run/ConsoleKit -@dir /var/log/ConsoleKit -@postexec /usr/bin/touch /var/log/ConsoleKit/history -@rmtry /var/log/ConsoleKit/history @dir etc/ConsoleKit/run-seat.d @dir etc/ConsoleKit/run-session.d @dir lib/ConsoleKit/run-seat.d @dir lib/ConsoleKit/run-session.d - +@dir /var/log/ConsoleKit +@exec /usr/bin/touch /var/log/ConsoleKit/history +@rmtry /var/log/ConsoleKit/history +@dir /var/run/ConsoleKit