rpms/xorg-x11-xinit/F-11 ck-xinit-session.c, 1.1, 1.2 xorg-x11-xinit.spec, 1.65, 1.66
Nalin Dahyabhai
nalin at fedoraproject.org
Fri May 22 20:13:40 UTC 2009
- Previous message: rpms/kernel/devel config-generic, 1.238.6.20, 1.238.6.21 kernel.spec, 1.1294.2.27, 1.1294.2.28 xen.pvops.patch, 1.1.2.21, 1.1.2.22 xen.pvops.post.patch, 1.1.2.14, 1.1.2.15 xen.pvops.pre.patch, 1.1.2.11, 1.1.2.12
- Next message: rpms/xorg-x11-xinit/F-11 xorg-x11-xinit.spec,1.66,1.67
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: nalin
Update of /cvs/pkgs/rpms/xorg-x11-xinit/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32674
Modified Files:
ck-xinit-session.c xorg-x11-xinit.spec
Log Message:
- have ck-xinit-session tell the session bus to set XDG_SESSION_COOKIE
for services which it autostarts (#502258)
Index: ck-xinit-session.c
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-xinit/F-11/ck-xinit-session.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- ck-xinit-session.c 12 Oct 2007 18:27:29 -0000 1.1
+++ ck-xinit-session.c 22 May 2009 20:13:09 -0000 1.2
@@ -1,5 +1,5 @@
/*
- * Copyright Red Hat, Inc. 2007.
+ * Copyright Red Hat, Inc. 2007,2009.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,16 +40,72 @@
#include <sys/wait.h>
#include <paths.h>
#include <stdlib.h>
+#include <string.h>
#include <syslog.h>
#include <unistd.h>
#include <ck-connector.h>
+#include <dbus/dbus.h>
+
+static void
+setbusenv(const char *var, const char *val)
+{
+ DBusConnection *conn;
+ DBusMessage *req, *rep;
+ DBusMessageIter iter, sub, subsub;
+ DBusError error;
+
+ dbus_error_init (&error);
+
+ conn = dbus_bus_get(DBUS_BUS_SESSION, &error);
+ if (conn == NULL) {
+ return;
+ }
+
+ req = dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL);
+ if (req == NULL) {
+ return;
+ }
+
+ memset(&iter, 0, sizeof(iter));
+ memset(&sub, 0, sizeof(sub));
+ memset(&subsub, 0, sizeof(subsub));
+ dbus_message_iter_init_append(req, &iter);
+ if (!dbus_message_set_destination(req, DBUS_SERVICE_DBUS) ||
+ !dbus_message_set_path(req, DBUS_PATH_DBUS) ||
+ !dbus_message_set_interface(req, DBUS_INTERFACE_DBUS) ||
+ !dbus_message_set_member(req, "UpdateActivationEnvironment") ||
+ !dbus_message_iter_open_container(&iter,
+ DBUS_TYPE_ARRAY,
+ DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING
+ DBUS_TYPE_STRING_AS_STRING
+ DBUS_TYPE_STRING_AS_STRING
+ DBUS_DICT_ENTRY_END_CHAR_AS_STRING,
+ &sub) ||
+ !dbus_message_iter_open_container(&sub,
+ DBUS_TYPE_DICT_ENTRY,
+ NULL,
+ &subsub) ||
+ !dbus_message_iter_append_basic(&subsub, DBUS_TYPE_STRING, &var) ||
+ !dbus_message_iter_append_basic(&subsub, DBUS_TYPE_STRING, &val) ||
+ !dbus_message_iter_close_container(&sub, &subsub) ||
+ !dbus_message_iter_close_container(&iter, &sub)) {
+ dbus_message_unref(req);
+ return;
+ }
+ rep = dbus_connection_send_with_reply_and_block(conn, req,
+ 30000, &error);
+ dbus_message_unref(req);
+ if (rep) {
+ dbus_message_unref(rep);
+ }
+}
int
main(int argc, char **argv)
{
CkConnector *ckc = NULL;
DBusError error;
- const char *shell;
+ const char *shell, *cookie;
pid_t pid;
int status;
@@ -63,8 +119,9 @@ main(int argc, char **argv)
syslog(LOG_ERR, "error forking child");
break;
case 0:
- setenv("XDG_SESSION_COOKIE",
- ck_connector_get_cookie(ckc), 1);
+ cookie = ck_connector_get_cookie(ckc);
+ setenv("XDG_SESSION_COOKIE", cookie, 1);
+ setbusenv("XDG_SESSION_COOKIE", cookie);
break;
default:
waitpid(pid, &status, 0);
Index: xorg-x11-xinit.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-xinit/F-11/xorg-x11-xinit.spec,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -p -r1.65 -r1.66
--- xorg-x11-xinit.spec 8 May 2009 17:49:55 -0000 1.65
+++ xorg-x11-xinit.spec 22 May 2009 20:13:09 -0000 1.66
@@ -3,7 +3,7 @@
Summary: X.Org X11 X Window System xinit startup scripts
Name: xorg-x11-%{pkgname}
Version: 1.0.9
-Release: 7%{?dist}
+Release: 8%{?dist}
License: MIT
Group: User Interface/X
URL: http://www.x.org
@@ -75,9 +75,9 @@ autoreconf
# Makefile.am and submit it in a bug report or check into CVS.
make XINITDIR=/etc/X11/xinit
%{__cc} -o ck-xinit-session \
- `pkg-config --cflags ck-connector` $RPM_OPT_FLAGS \
+ `pkg-config --cflags ck-connector dbus-1` $RPM_OPT_FLAGS \
$RPM_SOURCE_DIR/ck-xinit-session.c \
- `pkg-config --libs ck-connector`
+ `pkg-config --libs ck-connector dbus-1`
%install
rm -rf $RPM_BUILD_ROOT
@@ -131,6 +131,10 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/xsessions/xinit-compat.desktop
%changelog
+* Fri May 22 2009 Nalin Dahyabhai <nalin at redhat.com> 1.0.9-8
+- have ck-xinit-session tell the session bus to set XDG_SESSION_COOKIE
+ for services which it autostarts (#502258)
+
* Fri May 08 2009 Adam Jackson <ajax at redhat.com> 1.0.9-7
- xinit-1.0.9-unset.patch: Also unset XDG_SESSION_COOKIE in startx. (#489999)
- Previous message: rpms/kernel/devel config-generic, 1.238.6.20, 1.238.6.21 kernel.spec, 1.1294.2.27, 1.1294.2.28 xen.pvops.patch, 1.1.2.21, 1.1.2.22 xen.pvops.post.patch, 1.1.2.14, 1.1.2.15 xen.pvops.pre.patch, 1.1.2.11, 1.1.2.12
- Next message: rpms/xorg-x11-xinit/F-11 xorg-x11-xinit.spec,1.66,1.67
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list