Update consolekit to 1.2.0.

* Rename consolekit to consolekit2 to reflect that consolekit2 is a new
  project, even if it the continuation of the old consolekit project.
* Expand pkg-descr with some background info.
* Add license
* ConsoleKit2 has been ported to GDbus, so dbus-glib is not anymore required
* Add GObject introspection support for desktops environment such Pantheon or Deepin.
* Thanks to Jesper Schmitz Mouridsen, Ben Woods and Olivier Duchateau for
  assisting with there versions of the port, suggesting changes and testing.

PR:		202269
This commit is contained in:
Koop Mast 2017-08-05 10:58:48 +00:00
parent 91a21178ab
commit e18e2ae3c0
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=447399
31 changed files with 122 additions and 865 deletions

1
MOVED
View File

@ -9498,3 +9498,4 @@ security/openvas-cli|security/openvas8-cli|2017-08-03|Renamed to include openvas
security/openvas-manager|security/openvas8-manager|2017-08-03|Renamed to include openvas 9 ports. It reflects a better name
security/openvas-scanner|security/openvas8-scanner|2017-08-03|Renamed to include openvas 9 ports. It reflects a better name
security/greenbone-security-assistant|security/greenbone-security-assistant8|2017-08-03|Renamed to include openvas 9 ports. It reflects a better name
sysutils/consolekit|sysutils/consolekit2|2017-08-05|Continuation of the consolekit project

View File

@ -6,7 +6,7 @@
PORTNAME= pulseaudio
PORTVERSION= 10.0
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= audio
MASTER_SITES= http://freedesktop.org/software/pulseaudio/releases/
@ -21,7 +21,7 @@ LIB_DEPENDS= libsndfile.so:audio/libsndfile \
libfftw3f.so:math/fftw3-float \
libdbus-1.so:devel/dbus \
libltdl.so:devel/libltdl \
libck-connector.so:sysutils/consolekit
libck-connector.so:sysutils/consolekit2
USE_GNOME= glib20 intltool
USE_XORG= ice sm x11 xcb xtst

View File

@ -1,37 +0,0 @@
# Created by: FreeBSD GNOME Team <gnome@freebsd.org>
# $FreeBSD$
PORTNAME= consolekit
PORTVERSION= 0.4.5
PORTREVISION= 4
CATEGORIES= sysutils gnome
MASTER_SITES= http://www.freedesktop.org/software/ConsoleKit/dist/
DISTFILES= ConsoleKit-${PORTVERSION}${EXTRACT_SUFX}
MAINTAINER= gnome@FreeBSD.org
COMMENT= Framework for defining and tracking users
LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
libpolkit-gobject-1.so:sysutils/polkit
WRKSRC= ${WRKDIR}/ConsoleKit-${PORTVERSION}
USES= gettext gmake libtool pathfix pkgconfig tar:bzip2
USE_XORG= x11
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
CONFIGURE_ARGS= --with-pid-file=/var/run/${PORTNAME}.pid \
--enable-pam-module \
--with-pam-module-dir=${PREFIX}/lib \
--localstatedir=/var
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
.include <bsd.port.mk>

View File

@ -1,2 +0,0 @@
SHA256 (ConsoleKit-0.4.5.tar.bz2) = 43e0780c53078e125efcec3f847e484dc3533e49b408ce6a0ab1b223686b9c38
SIZE (ConsoleKit-0.4.5.tar.bz2) = 425423

View File

@ -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}"

View File

@ -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}

View File

@ -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 (&param_val, CK_TYPE_PARAMETER_STRUCT);
- g_value_take_boxed (&param_val,
- dbus_g_type_specialized_construct (CK_TYPE_PARAMETER_STRUCT));
- dbus_g_type_struct_set (&param_val,
- 0, key,
- 1, &val,
- G_MAXUINT);
- g_value_unset (&val);
-
- g_ptr_array_add (parameters, g_value_get_boxed (&param_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,

View File

@ -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 <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;
}
@@ -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:

View File

@ -1,18 +0,0 @@
--- 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");

View File

@ -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;

View File

@ -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 <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);

View File

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

View File

@ -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;

View File

@ -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);

View File

@ -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 <unistd.h>
#include <errno.h>
#include <fcntl.h>
+#ifdef __FreeBSD__
+#include <kenv.h>
+#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/utsname.h>
@@ -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

View File

@ -1,6 +0,0 @@
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.
WWW: http://www.freedesktop.org/wiki/Software/ConsoleKit

View File

@ -0,0 +1,41 @@
# Created by: FreeBSD GNOME Team <gnome@freebsd.org>
# $FreeBSD$
PORTNAME= consolekit
PORTVERSION= 1.2.0
CATEGORIES= sysutils gnome
MASTER_SITES= https://github.com/ConsoleKit2/ConsoleKit2/releases/download/${PORTVERSION}/
DISTNAME= ConsoleKit2-${PORTVERSION}
PKGNAMESUFFIX= 2
MAINTAINER= gnome@FreeBSD.org
COMMENT= Framework for defining and tracking users
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libdbus-1.so:devel/dbus \
libpolkit-gobject-1.so:sysutils/polkit
WRKSRC= ${WRKDIR}/ConsoleKit2-${PORTVERSION}
USES= gettext gmake libtool localbase pathfix pkgconfig tar:bzip2
USE_XORG= x11
USE_GNOME= glib20 libxslt introspection:build
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
CONFIGURE_ARGS= --with-pid-file=/var/run/${PORTNAME}.pid \
--enable-pam-module \
--with-pam-module-dir=${PREFIX}/lib \
--localstatedir=/var \
--enable-polkit \
--enable-introspection \
--without-html-dir \
--disable-udev-acl \
--disable-libcgmanager \
--disable-libdrm \
--disable-libevdev \
--disable-libudev \
--without-systemdsystemunitdir
INSTALL_TARGET= install-strip
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1501417547
SHA256 (ConsoleKit2-1.2.0.tar.bz2) = d6ea13b306557a76519388de39bf7f1a1ea9010af147fad4fb3131ce634bd8b3
SIZE (ConsoleKit2-1.2.0.tar.bz2) = 1125402

View File

@ -0,0 +1,20 @@
ConsoleKit2 is a framework for defining and tracking users, login
sessions, and seats. It allows multiple users to be logged in at the
same time and share hardware for their graphical session. ConsoleKit2
will keep track of those resources and whichever session is active
will have use of the hardware at that time.
What is a seat?
===============
A seat is a collection of sessions and a set of hardware (usually at
least a keyboard and mouse). Only one session may be active on a
seat at a time.
What is a session?
==================
A session is a collection of all processes that originate from a single
common ancestor and retain knowledge of a secret. As an implementation
detail, this secret may be stored in the process environment by the
login manager under the name XDG_SESSION_COOKIE.
WWW: https://github.com/ConsoleKit2/ConsoleKit2

View File

@ -1,35 +1,57 @@
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
include/ConsoleKit/libconsolekit.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/girepository-1.0/libconsolekit-1.0.typelib
lib/libck-connector.so
lib/libck-connector.so.0
lib/libck-connector.so.0.0.0
lib/libconsolekit.so
lib/libconsolekit.so.1
lib/libconsolekit.so.1.0.0
lib/pam_ck_connector.so
libdata/pkgconfig/ck-connector.pc
libdata/pkgconfig/libconsolekit.pc
libexec/ck-collect-session-info
libexec/ck-get-x11-display-device
@(,,4755) libexec/ck-get-x11-display-device
libexec/ck-get-x11-server-pid
libexec/ck-remove-directory
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/gir-1.0/libconsolekit-1.0.gir
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
@postexec /usr/bin/touch /var/log/ConsoleKit/history
@rmtry /var/log/ConsoleKit/history
@dir /var/run/ConsoleKit

View File

@ -4,7 +4,7 @@
PORTNAME= hal
DISTVERSION= 0.5.14
PORTREVISION= 31
PORTREVISION= 32
CATEGORIES= sysutils
MASTER_SITES= http://hal.freedesktop.org/releases/
@ -15,7 +15,7 @@ BUILD_DEPENDS= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat
# keep shlib version, to prevent confusion with polkit-* from sysutils/polkit
LIB_DEPENDS= libpolkit.so.2:sysutils/policykit \
libvolume_id.so:devel/libvolume_id \
libck-connector.so:sysutils/consolekit
libck-connector.so:sysutils/consolekit2
RUN_DEPENDS= ${LOCALBASE}/share/pciids/pci.ids:misc/pciids
USES= gettext gmake libtool:keepla pathfix pkgconfig python shebangfix

View File

@ -4,7 +4,7 @@
PORTNAME= gnome-user-share
PORTVERSION= 3.14.0
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= www deskutils gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome2
@ -18,7 +18,7 @@ LIB_DEPENDS= libavahi-client.so:net/avahi-app \
libcanberra-gtk3.so:audio/libcanberra-gtk3 \
libunique-1.0.so:x11-toolkits/unique
RUN_DEPENDS= ap*-mod_dnssd>=0:www/mod_dnssd \
console-kit-daemon:sysutils/consolekit
console-kit-daemon:sysutils/consolekit2
USES= gettext gmake libtool pkgconfig tar:xz
USE_APACHE= 22+

View File

@ -3,6 +3,7 @@
PORTNAME= lxsession
PORTVERSION= 0.5.3
PORTREVISION= 1
CATEGORIES= x11-wm
MASTER_SITES= SF/lxde/LXSession%20%28session%20manager%29/LXSession%200.5.x/
@ -18,7 +19,7 @@ LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
libfreetype.so:print/freetype2 \
libunique-1.0.so:x11-toolkits/unique \
libpolkit-agent-1.so:sysutils/polkit \
libck-connector.so:sysutils/consolekit
libck-connector.so:sysutils/consolekit2
USES= autoreconf gmake localbase pkgconfig tar:xz
USE_GNOME= glib20 gtk20 intltool cairo gdkpixbuf2 libxslt

View File

@ -3,7 +3,7 @@
PORTNAME= xfce4-session
PORTVERSION= 4.12.1
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= x11-wm xfce
MASTER_SITES= XFCE/src/xfce/${PORTNAME}/${PORTVERSION:R}
DIST_SUBDIR= xfce4
@ -15,7 +15,7 @@ LICENSE= GPLv2
BUILD_DEPENDS= iceauth:x11/iceauth
RUN_DEPENDS= iceauth:x11/iceauth \
console-kit-daemon:sysutils/consolekit
console-kit-daemon:sysutils/consolekit2
LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
libupower-glib.so:sysutils/upower \
libpolkit-gobject-1.so:sysutils/polkit

View File

@ -3,7 +3,7 @@
PORTNAME= cinnamon-session
PORTVERSION= 2.4.3
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= x11 gnome
DIST_SUBDIR= gnome3
@ -15,7 +15,7 @@ LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
libjson-glib-1.0.so:devel/json-glib \
libupower-glib.so:sysutils/upower \
libcanberra.so:audio/libcanberra
RUN_DEPENDS= console-kit-daemon:sysutils/consolekit \
RUN_DEPENDS= console-kit-daemon:sysutils/consolekit2 \
xdpyinfo:x11/xdpyinfo
USES= autoreconf:build execinfo gettext gmake libtool \

View File

@ -3,7 +3,7 @@
PORTNAME= gdm
PORTVERSION= 3.16.4
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= x11 gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome3
@ -14,7 +14,7 @@ COMMENT= GNOME 3 version of xdm display manager
BUILD_DEPENDS= zenity>=3.0.0:x11/zenity \
itstool:textproc/itstool \
iso-codes>=0:misc/iso-codes
LIB_DEPENDS= libck-connector.so:sysutils/consolekit \
LIB_DEPENDS= libck-connector.so:sysutils/consolekit2 \
libdbus-glib-1.so:devel/dbus-glib \
libupower-glib.so:sysutils/upower \
libnss3.so:security/nss \
@ -92,6 +92,8 @@ PKGMESSAGE= ${WRKDIR}/pkg-message
GNOME_LOCALSTATEDIR= /var
OPTIONS_DEFINE= IPV6
KEYRING_RUN_DEPENDS= ${LOCALBASE}/lib/pam_gnome_keyring.so:${PORTSDIR}/security/gnome-keyring
IPV6_CONFIGURE_ENABLE= ipv6
.include <bsd.port.options.mk>

View File

@ -3,7 +3,7 @@
PORTNAME= gnome-session
PORTVERSION= 3.18.1.2
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome3
@ -14,7 +14,7 @@ COMMENT= Session component for the GNOME 3 desktop
LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
libjson-glib-1.0.so:devel/json-glib \
libupower-glib.so:sysutils/upower
RUN_DEPENDS= ${LOCALBASE}/sbin/console-kit-daemon:sysutils/consolekit \
RUN_DEPENDS= ${LOCALBASE}/sbin/console-kit-daemon:sysutils/consolekit2 \
${LOCALBASE}/bin/xdpyinfo:x11/xdpyinfo
PORTSCOUT= limitw:1,even

View File

@ -2,14 +2,14 @@
PORTNAME= kde-workspace
PORTVERSION= ${KDE4_WORKSPACE_VERSION}
PORTREVISION= 7
PORTREVISION= 8
CATEGORIES= x11 kde kde-applications
MAINTAINER= kde@FreeBSD.org
COMMENT= KDE Plasma Desktop
LIB_DEPENDS= libdbus-1.so:devel/dbus \
libck-connector.so:sysutils/consolekit \
libck-connector.so:sysutils/consolekit2 \
libpci.so:devel/libpci \
libhal.so:sysutils/hal \
libqjson.so:devel/qjson \

View File

@ -3,6 +3,7 @@
PORTNAME= lightdm
PORTVERSION= 1.22.0
PORTREVISION= 1
CATEGORIES= x11
MASTER_SITES= https://launchpad.net/${PORTNAME}/${PORTVERSION:R}/${PORTVERSION}/+download/
@ -18,7 +19,7 @@ LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPL3
BUILD_DEPENDS= itstool:textproc/itstool
LIB_DEPENDS= libaccountsservice.so:sysutils/accountsservice \
libck-connector.so:sysutils/consolekit \
libck-connector.so:sysutils/consolekit2 \
libgcrypt.so:security/libgcrypt \
libxklavier.so:x11/libxklavier

View File

@ -3,6 +3,7 @@
PORTNAME= mate-session-manager
PORTVERSION= 1.18.0
PORTREVISION= 1
CATEGORIES= x11 mate
MASTER_SITES= MATE
DIST_SUBDIR= mate
@ -13,7 +14,7 @@ COMMENT= Session component for the MATE desktop
LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib \
libdbus-1.so:devel/dbus \
libupower-glib.so:sysutils/upower
RUN_DEPENDS= ${LOCALBASE}/sbin/console-kit-daemon:sysutils/consolekit \
RUN_DEPENDS= ${LOCALBASE}/sbin/console-kit-daemon:sysutils/consolekit2 \
${LOCALBASE}/bin/xdpyinfo:x11/xdpyinfo
PORTSCOUT= limitw:1,even

View File

@ -3,7 +3,7 @@
PORTNAME= slim
PORTVERSION= 1.3.6
PORTREVISION= 14
PORTREVISION= 15
CATEGORIES= x11
MASTER_SITES= ftp://ftp.berlios.de/pub/slim/ \
SF/slim.berlios
@ -45,7 +45,7 @@ PAM_CMAKE_OFF= -DUSE_PAM=no
UTF8_EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-utf8
CONSOLEKIT_CMAKE_ON= -DUSE_CONSOLEKIT=yes
CONSOLEKIT_LIB_DEPENDS= libck-connector.so:sysutils/consolekit
CONSOLEKIT_LIB_DEPENDS= libck-connector.so:sysutils/consolekit2
CONSOLEKIT_CMAKE_OFF= -DUSE_CONSOLEKIT=no
post-patch: