Package: consolekit
Version: 0.2.3-3
Severity: wishlist
Tags: patch
User: [EMAIL PROTECTED]
Usertags: origin-ubuntu intrepid ubuntu-patch

Hi,

In later versions upstream has added a "ck-launch-session" command.
It would be great to backport this, as it is useful for testing, and
for people who want to get a consolekit session without something
that creates one for them (I believe kdm4 may have a patch applied
now, but didn't before.

Attached is the patch that is used to do this in Ubuntu. Please consider
applying it.

Note that you will need to create an automake patch after applying
this one. I didn't forward that part, as it's probably safer for you
to create it in the correct environment.

Thanks,

James

diff -pruN 0.2.3-3/debian/90-console-kit 0.2.3-3ubuntu5/debian/90-console-kit
--- 0.2.3-3/debian/90-console-kit	1970-01-01 01:00:00.000000000 +0100
+++ 0.2.3-3ubuntu5/debian/90-console-kit	2008-03-21 11:12:35.000000000 +0000
@@ -0,0 +1,11 @@
+# -*- sh -*-
+# Xsession.d script for ck-launch-session.
+#
+#
+# This file is sourced by Xsession(5), not executed.
+
+CK_LAUNCH_SESSION=/usr/bin/ck-launch-session
+
+if [ -z "$XDG_SESSION_COOKIE" ] && [ -x "$CK_LAUNCH_SESSION" ]; then
+    STARTUP="$CK_LAUNCH_SESSION $STARTUP"
+fi
diff -pruN 0.2.3-3/debian/consolekit.install 0.2.3-3ubuntu5/debian/consolekit.install
--- 0.2.3-3/debian/consolekit.install	2008-03-21 11:16:32.000000000 +0000
+++ 0.2.3-3ubuntu5/debian/consolekit.install	2008-03-21 11:12:35.000000000 +0000
@@ -1,8 +1,10 @@
 debian/tmp/etc/dbus-1/system.d/ConsoleKit.conf
 debian/tmp/etc/ConsoleKit/
 debian/tmp/usr/bin/ck-list-sessions
+debian/tmp/usr/bin/ck-launch-session
 debian/tmp/usr/lib/consolekit/ck-get-x11-server-pid
 debian/tmp/usr/lib/consolekit/ck-get-x11-display-device
 debian/tmp/usr/lib/consolekit/ck-collect-session-info
 debian/tmp/usr/sbin/console-kit-daemon
 debian/org.freedesktop.ConsoleKit.service usr/share/dbus-1/system-services/
+debian/90-console-kit /etc/X11/Xsession.d
diff -pruN 0.2.3-3/debian/patches/ck-launch-session.patch 0.2.3-3ubuntu5/debian/patches/ck-launch-session.patch
--- 0.2.3-3/debian/patches/ck-launch-session.patch	1970-01-01 01:00:00.000000000 +0100
+++ 0.2.3-3ubuntu5/debian/patches/ck-launch-session.patch	2008-03-21 11:12:35.000000000 +0000
@@ -0,0 +1,142 @@
+diff -Nur consolekit-0.2.3/tools/Makefile.am consolekit-0.2.3.new/tools/Makefile.am
+--- consolekit-0.2.3/tools/Makefile.am	2007-08-16 22:23:41.000000000 -0400
++++ consolekit-0.2.3.new/tools/Makefile.am	2008-03-12 18:59:38.000000000 -0400
+@@ -18,6 +18,7 @@
+ 	-I.							\
+ 	-I$(srcdir)						\
+ 	-I$(top_srcdir)/src					\
++	-I$(top_srcdir)/libck-connector				\
+ 	$(CONSOLE_KIT_CFLAGS)					\
+ 	$(DISABLE_DEPRECATED_CFLAGS)				\
+ 	-DPREFIX=\""$(prefix)"\" 				\
+@@ -32,9 +33,19 @@
+ 	$(NULL)
+ 
+ bin_PROGRAMS = \
++	ck-launch-session		\
+ 	ck-list-sessions		\
+ 	$(NULL)
+ 
++ck_launch_session_SOURCES =		\
++	ck-launch-session.c		\
++	$(NULL)
++
++ck_launch_session_LDADD =		\
++	$(top_builddir)/libck-connector/libck-connector.la	\
++	$(CONSOLE_KIT_LIBS)		\
++	$(NULL)
++
+ ck_list_sessions_SOURCES =		\
+ 	list-sessions.c			\
+ 	$(NULL)
+diff -Nur consolekit-0.2.3/Makefile.am consolekit-0.2.3.new/Makefile.am
+--- consolekit-0.2.3/Makefile.am	2007-07-10 10:15:45.000000000 -0400
++++ consolekit-0.2.3.new/Makefile.am	2008-03-12 18:59:38.000000000 -0400
+@@ -6,10 +6,10 @@
+ 
+ SUBDIRS =			\
+ 	src			\
++	libck-connector         \
+ 	tools			\
+ 	data			\
+ 	doc			\
+-	libck-connector         \
+ 	pam-ck-connector        \
+ 	$(NULL)
+ 
+diff -Nur consolekit-0.2.3/tools/ck-launch-session.c consolekit-0.2.3.new/tools/ck-launch-session.c
+--- consolekit-0.2.3/tools/ck-launch-session.c	1969-12-31 19:00:00.000000000 -0500
++++ consolekit-0.2.3.new/tools/ck-launch-session.c	2008-03-12 18:52:45.000000000 -0400
+@@ -0,0 +1,92 @@
++/*
++ * Copyright Red Hat, Inc. 2007-2008.
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions are met:
++ *
++ *  * Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ *  * Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in
++ *    the documentation and/or other materials provided with the
++ *    distribution.
++ *  * Neither the name of Red Hat, Inc., nor the names of its
++ *    contributors may be used to endorse or promote products derived
++ *    from this software without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
++ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
++ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
++ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Gate a process inside of a ConsoleKit session.
++ *
++ */
++
++#include <sys/types.h>
++#include <sys/wait.h>
++#ifdef HAVE_PATHS_H
++#include <paths.h>
++#else
++#define _PATH_BSHELL "/bin/sh"
++#endif
++
++#include <stdlib.h>
++#include <syslog.h>
++#include <unistd.h>
++
++#include "ck-connector.h"
++
++int
++main (int argc, char **argv)
++{
++        CkConnector *ckc = NULL;
++        DBusError    error;
++        const char  *shell;
++        pid_t        pid;
++        int          status;
++
++        ckc = ck_connector_new ();
++        if (ckc != NULL) {
++                dbus_error_init (&error);
++                if (ck_connector_open_session (ckc, &error)) {
++                        pid = fork ();
++                        switch (pid) {
++                        case -1:
++                                syslog (LOG_ERR, "error forking child");
++                                break;
++                        case 0:
++                                setenv ("XDG_SESSION_COOKIE",
++                                       ck_connector_get_cookie (ckc), 1);
++                                break;
++                        default:
++                                waitpid (pid, &status, 0);
++                                exit (status);
++                                break;
++                        }
++                } else {
++                        syslog (LOG_ERR, "error connecting to ConsoleKit");
++                }
++        } else {
++                syslog (LOG_ERR, "error setting up to connection to ConsoleKit");
++        }
++
++        if (argc > 1) {
++                execvp (argv[1], argv + 1);
++        } else {
++                shell = getenv ("SHELL");
++                if (shell == NULL) {
++                        shell = _PATH_BSHELL;
++                }
++                execlp (shell, shell, NULL);
++        }
++        _exit (1);
++}
diff -pruN 0.2.3-3/debian/rules 0.2.3-3ubuntu5/debian/rules
--- 0.2.3-3/debian/rules	2008-03-21 11:16:32.000000000 +0000
+++ 0.2.3-3ubuntu5/debian/rules	2008-03-21 11:12:35.000000000 +0000
@@ -3,6 +3,7 @@
 include /usr/share/cdbs/1/rules/debhelper.mk
 include /usr/share/cdbs/1/class/autotools.mk
 include /usr/share/cdbs/1/rules/utils.mk
+include /usr/share/cdbs/1/rules/simple-patchsys.mk
 
 DEB_CONFIGURE_EXTRA_FLAGS := --enable-pam-module \
                              --enable-docbook-docs \

Reply via email to