diff -u consolekit-0.2.3/debian/changelog consolekit-0.2.3/debian/changelog --- consolekit-0.2.3/debian/changelog +++ consolekit-0.2.3/debian/changelog @@ -1,3 +1,9 @@ +consolekit (0.2.3-3ubuntu4) hardy; urgency=low + + * Backport ck-launch-session from consolekit-0.2.10 + + -- Michael Frey Wed, 12 Mar 2008 16:04:32 -0400 + consolekit (0.2.3-3ubuntu3) hardy; urgency=low * debian/patches/pam_console-compat.patch: Only create PAM console tags for diff -u consolekit-0.2.3/debian/consolekit.install consolekit-0.2.3/debian/consolekit.install --- consolekit-0.2.3/debian/consolekit.install +++ consolekit-0.2.3/debian/consolekit.install @@ -1,6 +1,7 @@ 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 only in patch2: unchanged: --- consolekit-0.2.3.orig/tools/ck-launch-session.c +++ consolekit-0.2.3/tools/ck-launch-session.c @@ -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 +#include +#ifdef HAVE_PATHS_H +#include +#else +#define _PATH_BSHELL "/bin/sh" +#endif + +#include +#include +#include + +#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); +} only in patch2: unchanged: --- consolekit-0.2.3.orig/tools/Makefile.am +++ consolekit-0.2.3/tools/Makefile.am @@ -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) only in patch2: unchanged: --- consolekit-0.2.3.orig/tools/Makefile.in +++ consolekit-0.2.3/tools/Makefile.in @@ -37,7 +37,8 @@ build_triplet = @build@ host_triplet = @host@ @CK_COMPILE_LINUX_TRUE@am__append_1 = linux -bin_PROGRAMS = ck-list-sessions$(EXEEXT) $(am__EXEEXT_1) +bin_PROGRAMS = ck-launch-session$(EXEEXT) ck-list-sessions$(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) @@ -75,6 +76,12 @@ 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_launch_session_OBJECTS = ck-launch-session.$(OBJEXT) \ + $(am__objects_1) +ck_launch_session_OBJECTS = $(am_ck_launch_session_OBJECTS) +ck_launch_session_DEPENDENCIES = \ + $(top_builddir)/libck-connector/libck-connector.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_ck_list_sessions_OBJECTS = list-sessions.$(OBJEXT) $(am__objects_1) ck_list_sessions_OBJECTS = $(am_ck_list_sessions_OBJECTS) ck_list_sessions_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -92,10 +99,12 @@ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(ck_collect_session_info_SOURCES) \ $(ck_get_x11_display_device_SOURCES) \ - $(ck_get_x11_server_pid_SOURCES) $(ck_list_sessions_SOURCES) + $(ck_get_x11_server_pid_SOURCES) $(ck_launch_session_SOURCES) \ + $(ck_list_sessions_SOURCES) DIST_SOURCES = $(ck_collect_session_info_SOURCES) \ $(ck_get_x11_display_device_SOURCES) \ - $(ck_get_x11_server_pid_SOURCES) $(ck_list_sessions_SOURCES) + $(ck_get_x11_server_pid_SOURCES) $(ck_launch_session_SOURCES) \ + $(ck_list_sessions_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ @@ -270,6 +279,7 @@ -I. \ -I$(srcdir) \ -I$(top_srcdir)/src \ + -I$(top_srcdir)/libck-connector \ $(CONSOLE_KIT_CFLAGS) \ $(DISABLE_DEPRECATED_CFLAGS) \ -DPREFIX=\""$(prefix)"\" \ @@ -283,6 +293,15 @@ $(DBUS_CFLAGS) \ $(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) @@ -423,6 +442,9 @@ 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_LDFLAGS) $(ck_get_x11_server_pid_OBJECTS) $(ck_get_x11_server_pid_LDADD) $(LIBS) +ck-launch-session$(EXEEXT): $(ck_launch_session_OBJECTS) $(ck_launch_session_DEPENDENCIES) + @rm -f ck-launch-session$(EXEEXT) + $(LINK) $(ck_launch_session_LDFLAGS) $(ck_launch_session_OBJECTS) $(ck_launch_session_LDADD) $(LIBS) ck-list-sessions$(EXEEXT): $(ck_list_sessions_OBJECTS) $(ck_list_sessions_DEPENDENCIES) @rm -f ck-list-sessions$(EXEEXT) $(LINK) $(ck_list_sessions_LDFLAGS) $(ck_list_sessions_OBJECTS) $(ck_list_sessions_LDADD) $(LIBS) @@ -436,6 +458,7 @@ @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-launch-session.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list-sessions.Po@am__quote@ .c.o: only in patch2: unchanged: --- consolekit-0.2.3.orig/Makefile.am +++ consolekit-0.2.3/Makefile.am @@ -6,10 +6,10 @@ SUBDIRS = \ src \ + libck-connector \ tools \ data \ doc \ - libck-connector \ pam-ck-connector \ $(NULL) only in patch2: unchanged: --- consolekit-0.2.3.orig/Makefile.in +++ consolekit-0.2.3/Makefile.in @@ -233,10 +233,10 @@ NULL = SUBDIRS = \ src \ + libck-connector \ tools \ data \ doc \ - libck-connector \ pam-ck-connector \ $(NULL)