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 \