Hi
On Fri, Jul 31, 2015 at 6:47 PM, Orion Poplawski <orion(a)cora.nwra.com> wrote:
On 07/30/2015 11:57 AM, Lennart Poettering wrote:
> Heya!
>
> I'd like to ask everybody to test kdbus on Rawhide. Josh thankfully
> added it to the Rawhide kernel packages, and our systemd RPMs come
> with built-in support, too now. If you are running an up-to-date
> Rawhide system adding "kdbus=1" to your kernel command line is hence
> everything you need to run kdbus instead of dbus-daemon. (No
> additional RPMs need to be installed.) If you do, things should just
> work the same way as before, if we did everything right. By adding or
> dropping "kdbus=1" to/from the command line you can enable kdbus or
> revert back to dbus1 on each individual boot.
>
> This stuff is opt-in, and we are very keen on getting feedback and
> testing for this. The version of kdbus in Rawhide we consider API
> stable, there is a complete client side available now in systemd, with
> a client API in sd-bus. Compatibility with good old dbus1 is provided
> by the "systemd-bus-proxy" service.
>
> The folks involved in kdbus development have been running this code on
> their systems for more than half a year now. There were occasional
> hiccups, but we fixed everything we ran into, and it works pretty well
> now. Our focus was specifically on providing the best possible
> compatibility with dbus1. Now we'd like to increase the testing
> audience and added this to Rawhide because of this.
>
Cannot log into KDE with kdbus, I get:
$ cat .xsession-errors
startkde: Starting up...
startkde: Could not sync environment to dbus.
This is UpdateActivationEnvironment() failing. This call definitely
works and we use it on our machines. However, it returns an error if
the argument-array is empty. I fixed this in -git now [1]. It sounds
like you're hitting this. If the fix doesn't help, please let me know
(should be in rawhide by tomorrow).
Thanks a lot for the report!
David
[1]
https://github.com/systemd/systemd/commit/b2a0ac5e5b29c73ca7c0da23369a476...
Code is:
# At this point all environment variables are set, let's send it to the DBus
session server to update the activation environment
/usr/libexec/ksyncdbusenv
if test $? -ne 0; then
# Startup error
echo 'startkde: Could not sync environment to dbus.' 1>&2
test -n "$ksplash_pid" && kill "$ksplash_pid"
2>/dev/null
message "Could not sync environment to dbus."
exit 1
fi
./plasma-workspace-5.3.2/startkde/ksyncdbusenv/ksyncdbusenv.cpp:
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
EnvMap envMap;
for (const QString &key : env.keys()) {
envMap.insert(key, env.value(key));
}
QDBusMessage msg =
QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DBus"),
QStringLiteral("/org/freedesktop/DBus"),
QStringLiteral("org.freedesktop.DBus"),
QStringLiteral("UpdateActivationEnvironment"));
qDBusRegisterMetaType<EnvMap>();
msg.setArguments(QList<QVariant>({QVariant::fromValue(envMap)}));
QDBusPendingCall reply = QDBusConnection::sessionBus().asyncCall(msg);
reply.waitForFinished();
if (reply.isError()) {
qDebug() << reply.error().name() << reply.error().message();
}
return reply.isError() ? 1 : 0;
}
--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA, Boulder/CoRA Office FAX: 303-415-9702
3380 Mitchell Lane orion(a)nwra.com
Boulder, CO 80301
http://www.nwra.com
--
devel mailing list
devel(a)lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct:
http://fedoraproject.org/code-of-conduct